papel ingles fondo espacio como color cambiar c++ qt qstylesheet qwindow

c++ - ingles - como cambiar el fondo de autocad 2015



¿Cómo configuro un color de fondo para toda la ventana de una aplicación Qt? (5)

Esto me ha funcionado:

a = new QApplication(argc, argv); QPalette pal = a->palette(); pal.setColor(QPalette::Window, Qt::white); a->setPalette(pal);

¿Alguien sabe cómo se podría establecer un color de fondo para toda la ventana de una aplicación Qt?

Hasta ahora estoy usando hojas de estilo pero solo puedo descubrir cómo asignar un color de fondo a un widget como QGroupBox o QPushButton . Básicamente, si quiero un fondo negro, ¿cómo podría hacerlo sin ningún borde del fondo original?


Para establecer el color de fondo, la combinación

setPaletteBackgroundColor(Qt::black); setAutoFillBackground(true);

en la clase derivada de QWidget funcionó para mí. Esta es una variante de la solución de Dirk Eddelbuettel, pero hace uso de la función específicamente para el fondo.



Simplemente agrega

setStyleSheet("background-color: white;");

a su código, puede dar cualquier color directamente.


Simplemente usaría una Hoja de Estilo para toda la ventana.

Por ejemplo, si su ventana hereda de QWidget, esto 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, toda la ventana de la aplicación es negra (excepto la barra de título).

EDITAR: según los comentarios, aquí hay una solución sin usar archivos ui y cargar 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 la hoja de estilo (default.qss) es el 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í está mi archivo de proyecto:

TARGET = StyleSheet TEMPLATE = app SOURCES += main.cpp RESOURCES += stylesheet.qrc