在Qt中加载外部样式表
Load an external stylesheet in Qt
我是Qt的新手,我阅读了所有关于样式表的文档,我几乎知道如何样式我的应用程序。我的文件是这样的:
Project/ ->
babel.pro resources.qrc
gui/ -> QtFiles, stylesheet.qss
app/ -> main.cpp
我的main是这样的:
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();
}
MyApplication.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
!和预期的一样…
相关文章:
- 加载由 MATLAB Coder 生成的带有函数的 DLL,该函数调用外部函数
- 强制资源管理器重新加载注册表值
- 从文本文件加载链表并打印时无限循环
- SqlDataAdapter 未加载数据表 - C++
- TinyXML-2 使用样式表加载文件时出错
- 如何从QtQuickWidget加载qt快速UI表单
- 加载共享库时出错:无法在外部硬件上打开共享对象文件:
- C++简体版链表,当我加载数据以创建链表并输入更多数据时,似乎存在差距
- 如何将数据文件加载到自动Excel工作表文档
- 断开命名管道(在加载表上)上的 SybaseIQ 问题
- 在模块加载/卸载时构造/破坏外部c++模块中的对象
- PostgreSQL C-Extension加载另一个外部库
- QtCreator:正在加载外部库
- 如何将值加载到外部共享数组中
- Qt全局样式表加载
- 如何修改运行时加载DLL的导入地址表
- 如何使用LuaBridge从文件加载表?[Lua来自C++]
- 如何在不使用外部库的情况下加载到 8 位C++位图图像
- 如何从流中加载html内容,然后如何创建样式表以在预览窗格中显示html文件(如html预览处理程序)
- 在Qt中加载外部样式表