有人知道如何为Qt应用程序的整个窗口设置背景颜色吗?
到目前为止,我正在使用样式表,但只能弄清如何分配小部件(例如QGroupBox
或QPushButton
)的背景颜色。 基本上,如果我想要黑色背景,我该如何使其无缝,没有原始背景的边框?
有人知道如何为Qt应用程序的整个窗口设置背景颜色吗?
到目前为止,我正在使用样式表,但只能弄清如何分配小部件(例如QGroupBox
或QPushButton
)的背景颜色。 基本上,如果我想要黑色背景,我该如何使其无缝,没有原始背景的边框?
我会为整个窗口使用样式表。
例如,如果您的窗口继承自QWidget,以下是我的做法:
MainWindow::MainWindow(QWidget *parent) : QWidget(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setStyleSheet("background-color: black;");
}
在我的 Mac 上,我的整个应用窗口都是黑色的(除了标题栏)。
编辑:根据评论,这里提供一种不使用 UI 文件和加载外部样式表的解决方法。
#include <QtGui/QApplication>
#include <QtGui/QMainWindow>
#include <QtGui/QVBoxLayout>
#include <QtGui/QPushButton>
#include <QtCore/QFile>
int main(int ArgC, char* ArgV[])
{
QApplication MyApp(ArgC, ArgV);
QMainWindow* pWindow = new QMainWindow;
QVBoxLayout* pLayout = new QVBoxLayout(pWindow);
pWindow->setLayout(pLayout);
QPushButton* pButton = new QPushButton("Test", pWindow);
pLayout->addWidget(pButton);
QFile file(":/qss/default.qss");
file.open(QFile::ReadOnly);
QString styleSheet = QLatin1String(file.readAll());
qApp->setStyleSheet(styleSheet);
pWindow->setVisible(true);
MyApp.exec();
}
QWidget {
background-color: black;
}
这个文件是资源文件(stylesheet.qrc)的一部分:
<RCC>
<qresource prefix="/qss">
<file>default.qss</file>
</qresource>
</RCC>
这是我的项目文件:
TARGET = StyleSheet
TEMPLATE = app
SOURCES += main.cpp
RESOURCES += stylesheet.qrc
这对我有用:
a = new QApplication(argc, argv);
QPalette pal = a->palette();
pal.setColor(QPalette::Window, Qt::white);
a->setPalette(pal);
this->setAutoFillBackground(true);
这样的代码才能使其正常工作。这是我在设置小部件的默认背景颜色时所做的操作。 - gnovicesetStyleSheet("background-color: white;");
对于你的代码,你可以直接给出任何颜色。
为了设置背景颜色,需要使用以下组合
setPaletteBackgroundColor(Qt::black);
setAutoFillBackground(true);