Windows 7 (MSVC 2010) で Qt 4.8.4 を使用するQMainWindow
と、アプリにツールバーを備えた標準があります。ツールバーをグレーのままにしたいのですが、中央のウィジェットの背景は白にする必要があります。呼び出しcentralWidget->setStyleSheet("background-color: white;")
は最初は機能するように見えましたが、デザイナーが生成したウィジェット (a Q_OBJECT
) でそれを使用すると機能しません。その後、スタイル シートを設定する他のさまざまな方法をいじりました (これも Designer を使用)。
この効果を確認するには、 のQ_OBJECT
行を追加または削除しtest.h
ます。そこにある場合、ラベルのみが白い背景になります。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; }")
問題を解決しない- すべてのウィジェット (ポップアップ ダイアログを含む) を白くすることに成功しましたが、それは私が望んでいることではありません。