c++ - 如何为 Qt 应用程序的整个窗口设置背景颜色?

标签 c++ qt qstylesheet qwindow

有谁知道如何为 Qt 应用程序的整个窗口设置背景颜色?

到目前为止,我正在使用样式表,但只能弄清楚如何为 QGroupBoxQPushButton 等小部件分配背景颜色。基本上,如果我想要一个黑色背景,我该如何让它无缝而没有原始背景的任何边框?

最佳答案

我会简单地为整个窗口使用样式表。

例如,如果您的窗口是从 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();
}

样式表文件(default.qss)如下:

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

关于c++ - 如何为 Qt 应用程序的整个窗口设置背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1675992/

相关文章:

c++ - 打印出动态数组或矩阵的元素

c++ - 以编程方式选择 QAbstractItemView 中的 QModelIndexes

QToolButton 带图标 + 文本 : How to center both?

c++ - 自定义 QComboBox

c++ - Wt - 如何从 WTableView 中检索选定的记录?

c++ - 错误 : malloc():memory corruption in Comparison function for sort

java - JNI native 方法导致 VM 崩溃

linux - 由于 glibc 版本,基于 Qt 的应用程序二进制兼容性问题

c++ - 调试运行良好,但不在 Release模式下

c++ - QTreeView 禁用悬停在行上的突出显示