gpt4 book ai didi

c++ - 在 Qt 中加载外部样式表

转载 作者:行者123 更新时间:2023-11-30 05:38:00 25 4
gpt4 key购买 nike

我是 Qt 的新手,我阅读了所有关于样式表的文档并且我几乎知道如何设置我的应用程序的样式。我的文件是这样的:

项目/->
babel.pro 资源.qrc
gui/-> QtFiles, stylesheet.qss
app/-> main.cpp

我的主图是这样的:

int main(int ac, char **av) {
MyApplication app(ac, av);
MyWidget widget;

QFile File(":/gui/stylesheet.qss");
File.open(QFile::ReadOnly);
QString StyleSheet = QLatin1String(File.readAll());

app.setStyleSheet(StyleSheet);
widget.show();

return app.exec();

}

我的应用程序.hpp :

class MyApplication : public QApplication {

public:

MyApplication(int argc, char **av) : QApplication(argc, av) {}
virtual ~MyApplication() {}
virtual bool notify(QObject *rec, QEvent *ev) {
try {
return QApplication::notify(rec, ev);
}
catch (const std::exception &e) {
std::cerr << e.what() << std::endl;
exit(0);
}
return false;
}
};

最后是 MyWidget.cpp :

MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
QVBoxLayout *mainLayout = new QVBoxLayout;

setFixedSize(1920, 1200);
setWindowTitle(tr("Babel"));

_tabWidget = new QTabWidget;
_tabWidget->addTab(new Home(), tr("Home"));
_tabWidget->addTab(new Contact(), tr("Contact"));

_tabWidget->resize(10, _tabWidget->height());

mainLayout->addWidget(_tabWidget);
setLayout(mainLayout);
}

我在我的 babel.pro(这是编译的通用 .pro)中添加了这一行:RESOURCES += resources.qrc

但我在运行应用程序时出现此错误:QIODevice::read: device not open

编辑:

我的资源文件是这样的:

<!DOCTYPE RCC>                                                                        
<RCC version="1.0">
<qresource>
<file>/gui/stylesheet.qss</file>
</qresource>
</RCC>

最佳答案

路径缺少“.”,所以 /gui/stylesheet.qss 变成了 ./gui/stylesheet.qss !它按预期工作..

谢谢你们抽出时间来,我不会再犯一个愚蠢的错误!

关于c++ - 在 Qt 中加载外部样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32989280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com