yo simplemente utilizar una hoja de estilo para toda la ventana.
Por ejemplo, si la ventana está heredando de QWidget, aquí es lo que estoy haciendo:
MainWindow::MainWindow(QWidget *parent) : QWidget(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setStyleSheet("background-color: black;");
}
en mi Mac, mi ventana de la aplicación entera es negro (excepto la barra de título).
EDIT: de acuerdo a comentar, aquí es una solución sin necesidad de utilizar archivos de interfaz de usuario y la carga de una hoja de estilo externa
#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();
}
El archivo de hoja de estilos (default.qss) es la siguiente:
QWidget {
background-color: black;
}
Este archivo es parte de un archivo de recursos (stylesheet.qrc):
<RCC>
<qresource prefix="/qss">
<file>default.qss</file>
</qresource>
</RCC>
Y aquí es mi proyecto archivo:
TARGET = StyleSheet
TEMPLATE = app
SOURCES += main.cpp
RESOURCES += stylesheet.qrc
¿Cómo hago esto en una hoja de estilo? He hecho esto para widgets como QPushButton, pero no puedo imaginarme qué usar para el fondo como un todo. – bryce
Permítanme aclarar algunas cosas también. No utilizo un archivo .ui del diseñador porque he codificado todo a mano.Además, tengo un archivo .qss de hoja de estilos por separado en lugar de poner el código directamente en el código fuente. – bryce
Gracias, sabía que estaba justo debajo de mis narices. QWidget {background-color: black;} era lo que necesitaba. No me di cuenta de que podía usar QWidget directamente. – bryce