【发布时间】:2017-08-08 12:43:22
【问题描述】:
我正在尝试使用qdarkstyle 主题。 我遵循了代码,但我似乎无法加载样式表。这是我在 main.cpp 中加载代码的方式:
QFile f(":qdarkstyle/style.qss");
if (!f.exists())
{
printf("Unable to set stylesheet, file not found\n");
}
else
{
f.open(QFile::ReadOnly | QFile::Text);
QTextStream ts(&f);
qApp->setStyleSheet(ts.readAll());
}
但 exists() 总是错误的。文件夹 qdarkstyle 在我的主源的子目录中
我尝试了以下调用:
QFile f(":qdarkstyle/style.qss");
QFile f("://qdarkstyle/style.qss");
QFile f(":/qdarkstyle/style/qdarkstyle/style.qss");
但我总是存在总是假的。关于我做错了什么的任何想法
添加我的 .pro 文件
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = MediaManagerV2
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
RESOURCES += \
resources.qrc \
qdarkstyle/style.qrc
来源链接
https://drive.google.com/file/d/0BwXCsqWT3wkXV1dYNzF1dFM4dTQ/view?usp=sharing
修复
修改后的代码
QApplication a(argc, argv);
MainWindow w;
w.show();
QFile f(":/qdarkstyle/style.qss");
if (!f.exists())
{
printf("Unable to set stylesheet, file not found\n");
}
else
{
f.open(QFile::ReadOnly | QFile::Text);
QTextStream ts(&f);
a.setStyleSheet(ts.readAll());
}
基本上把 show() 移到上面
【问题讨论】:
-
你可以展示你的 .pro 文件。
-
您已将 .qrc 文件添加到您的 .pro 中:
RESOURCES += qdarkstyle/style.qrc -
我已经在上面更新并添加了我的 .pro 文件
-
我已经尝试过了,我没有遇到任何问题,如果您通过 github、dropbox 或类似方式分享您的项目,我可以提供帮助。
-
我实际上是这样做的。它只是一个新项目,所以它非常小。谢谢