ja po prostu użyć arkusza stylów dla całego okna.
Na przykład, jeśli okno jest dziedziczenie z QWidget, tutaj jest to, co robię:
MainWindow::MainWindow(QWidget *parent) : QWidget(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setStyleSheet("background-color: black;");
}
Na moim Mac, całe okno aplikacji jest czarny (z wyjątkiem paska tytułowego).
EDIT: Według komentarza, o to rozwiązanie bez korzystania z plików i ładowanie ui zewnętrznego arkusza stylów
#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();
}
plik arkusza stylów (default.qss) jest następująca:
QWidget {
background-color: black;
}
Ten plik jest częścią pliku zasobów (stylesheet.qrc):
<RCC>
<qresource prefix="/qss">
<file>default.qss</file>
</qresource>
</RCC>
I tu jest mój projekt Plik:
TARGET = StyleSheet
TEMPLATE = app
SOURCES += main.cpp
RESOURCES += stylesheet.qrc
Jak to zrobić w arkuszu stylów? Zrobiłem to dla widżetów, takich jak QPushButton, ale nie mogę dowiedzieć się, co używać w tle jako całości. – bryce
Pozwolę sobie również wyjaśnić kilka rzeczy. Nie używam pliku .ui od projektanta, ponieważ zakodowałem wszystko.Ponadto mam oddzielny plik .qss arkusza stylów w przeciwieństwie do umieszczania kodu bezpośrednio w kodzie źródłowym. – bryce
Dzięki, wiedziałem, że to było tuż pod moim nosem. QWidget {background-color: black;} był tym, czego potrzebowałem. Nie zdawałem sobie sprawy, że mogę bezpośrednio użyć QWidget. – bryce