QT:setStyleSheet是否来自资源QSS文件?

QT:setStyleSheet是否来自资源QSS文件?,qt,Qt,在我的小部件中,我可以做如下操作: MyWindow::MyWindow(QWidget *parent) : QWidget(parent) { ui.setupUi(this); setStyleSheet("QWidget { background-color: red }"); // <--- HERE } MyWindow::MyWindow(QWidget*parent): QWidget(父级) { ui.setupUi(这个); setStyle

在我的小部件中,我可以做如下操作:

MyWindow::MyWindow(QWidget *parent) :
    QWidget(parent)
{
    ui.setupUi(this);
    setStyleSheet("QWidget { background-color: red }");  // <--- HERE
}
MyWindow::MyWindow(QWidget*parent):
QWidget(父级)
{
ui.setupUi(这个);

setStyleSheet(“QWidget{background color:red}”);//明白了:您实际上必须从资源中“读取文件”,将其转换为QString并将其提供给setStyleSheet。例如:


作为为每个小部件设置样式表的替代方法,您可以为整个应用程序加载并设置样式表。类似如下:

QApplication app( argc, argv );

// Load an application style
QFile styleFile( ":/style.qss" );
styleFile.open( QFile::ReadOnly );

// Apply the loaded stylesheet
QString style( styleFile.readAll() );
app.setStyleSheet( style );

在这种情况下,所有小部件都将自动从给定的样式表中选择其样式。

但不要忘记调用EnsureProlished(),否则可能无法应用新样式表。EnsureProlished的用途是什么?@ffttyy这确保了新样式实际应用于小部件。我曾经遇到过这样的情况,即新样式在其他情况下没有应用。
QApplication app( argc, argv );

// Load an application style
QFile styleFile( ":/style.qss" );
styleFile.open( QFile::ReadOnly );

// Apply the loaded stylesheet
QString style( styleFile.readAll() );
app.setStyleSheet( style );