Использование Qt 4.8.4 в Windows 7 (MSVC 2010) У меня есть стандартный QMainWindow
в моем приложении с панелью инструментов. Я хочу, чтобы панель инструментов оставалась серой, но центральный виджет должен иметь белый фон. Вызов centralWidget->setStyleSheet("background-color: white;")
сначала, казалось, выполнял эту работу, но использование его с помощью созданного конструктором виджета (Q_OBJECT
) не является. Впоследствии я играл с другими способами, чтобы установить таблицу стилей (также используя конструктор) безрезультатно.Установить фон центрального виджета QMainWindow
Для этого необходимо добавить или удалить строку Q_OBJECT
в test.h
. Когда он есть, только метка получает белый bg. Если Q_OBJECT
закомментирован, весь центральный виджет белый. Конечно, я хочу, чтобы вся область была белой, но также нужна Q_OBJECT
.
Вот файлы:
main.cpp:
#include "test.h"
class testwin : public QMainWindow {
public:
QWidget *centralWidget;
QToolBar *mainToolBar;
testwin(QWidget *parent = 0) : QMainWindow(parent) {
centralWidget = new test(this);
setCentralWidget(centralWidget);
mainToolBar = new QToolBar(this);
this->addToolBar(Qt::TopToolBarArea, mainToolBar);
};
~testwin() {};
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
testwin w;
w.centralWidget->setStyleSheet("background-color: white;");
w.show();
return a.exec();
}
test.h:
#include <QtGui>
class test : public QWidget
{
Q_OBJECT // remove this
public:
QLabel *label;
test(QWidget *parent = 0) {
resize(400, 300);
label = new QLabel(this);
label->setText("Test");
};
};
обновление Статус:
setStyleSheet("QWidget { background-color: white; }")
НЕ РЕШЕТ О проблемах- Мне удалось сделать каждый виджет (включая всплывающие диалоги) белым, но это не то, что я хочу.
не помогает - такое же поведение, белая метка на сером фоне :( – Batox