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.
Para los widgets, sugiero que veas En Qt, ¿cómo configuro el color de fondo de un widget como el combobox o el cuadro de doble giro? . También verifique las miradas personalizadas usando hojas de estilo Qt 4.2 . Recuerde que este segundo enlace le muestra cómo usar las hojas de estilo en estos widgets.
Si ya has desarrollado algo para la Web y has usado CSS, es lo mismo.
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