- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在处理 QWizard
的样式表,我想删除按钮上方的水平线。
我已经发布了一个最小的例子 here ,这个问题是由 scopchanov 从最小的例子中解决的,但是我的项目中有一些代码行避免了解决方案的工作,所以我在这里发布了另一个问题。
这是我的代码(完整的可构建示例可以从 gist here 下载):
licensewizard.h
#include <QWizard>
class LicenseWizard : public QWizard {
Q_OBJECT
public:
LicenseWizard(QWidget *parent = 0);
};
licensewizard.cpp
#include <QApplication>
#include <QtWidgets>
#include "licensewizard.h"
LicenseWizard::LicenseWizard(QWidget *parent) : QWizard(parent) {
setWizardStyle(ModernStyle);
// solution from @scopchanov https://stackoverflow.com/a/52541248/8570451
QPalette p(palette());
p.setColor(QPalette::Mid, p.color(QPalette::Base));
setPalette(p);
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// this line breaks @scopchanov solution.
// replace QLabel by QPushButton, or anything else... still broken.
qApp->setStyleSheet("QLabel { color:black; }");
LicenseWizard wizard;
wizard.show();
return app.exec();
}
正如 scopchanov 所说,我使用了 QPalette
技巧。但是我在 qApp 上定义了一个很大的样式表,这就是我的问题的原因。使用非常小的样式会产生同样的问题。
重现的步骤是在QApplication
声明之后添加这一行:
qApp->setStyleSheet("QLabel { color:black; }");
我希望有人能帮助我。
最佳答案
要解决此问题,请设置整个应用程序的调色板,而不仅仅是 LicenseWizard
类,如下所示:
LicenseWizard::LicenseWizard(QWidget *parent) : QWizard(parent) {
setWizardStyle(ModernStyle);
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QPalette p(qApp->palette());
p.setColor(QPalette::Mid, p.color(QPalette::Base));
qApp->setPalette(p);
qApp->setStyleSheet("QLabel { color:black; }");
LicenseWizard wizard;
wizard.show();
return app.exec();
}
注意:正如我在对链接问题的回答中提到的,如果这个颜色角色被任何其他项目使用,它的颜色也会受到影响。
关于c++ - 如何使用样式表删除 QWizard 中的水平线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52667937/
我尝试对用户输入进行一些验证,并显示输入信息的摘要,并在一切正常的情况下得到用户的确认。我想我需要修改 QWizard FinishButton 的插槽,但我找不到主插槽。 我尝试了这种方式,但向导在
我想在 QWizard 对话框中禁用或隐藏后退按钮。我该怎么做? 最佳答案 我查看了 Qt 的源代码,发现可以通过创建自定义按钮布局并在列表中省略后退按钮来隐藏后退按钮: QList button
我正在创建一个数据库驱动的 Qt 应用程序。如果配置文件丢失(第一次运行),那么应该运行一个向导来帮助用户配置应用程序。由于数据库设置是此过程的一部分,我想让用户能够创建新数据库或使用现有数据库。如果
我正在使用 Qt,并且使用包含多个页面的 QWizard 对象。当涉及到特定页面时,我想先隐藏“下一步”按钮,并在用户执行某些操作(例如单击单选按钮...)后显示它 当这个特定页面出现时,我想对向导进
我目前正在尝试为我正在开发的 Python/Qt 应用程序实现一个简单的“第一步”向导。使用 Designer 确实很容易做到这一点,但与往常一样,问题在于细节。我的问题是“标题”字段对我来说太大了(
如何删除 QWizard 窗口中的帮助(?)。 示例应用程序 Img 编辑:这是代码。这是 Qt 的简单应用程序。我只是想禁用它并使用帮助按钮。我知道如何在每个页面中添加帮助按钮,但找不到删除帮助 (
我正在QWizard中制作一个向导 我有QLineEdit和QPushButton # Enter token self.enter_token_box = QLineEdit() # Enter t
QWizard有一些与按钮相关的选项如下: NoDefaultButton NoBackButtonOnStartPage NoBackButtonOnLastPage
我正在按照 Qt 的 classwizard 构建一个小向导示例。 现在我设置了我的 QWizard 的副标题一些包含链接的 html 文本的实例。我知道 QLabel.setOpenExternal
如何调整 QWizard 的按钮宽度(后退、下一步按钮)。是否有我可以使用的任何样式表 (qss) 选项,或者我是否必须识别按钮并设置小部件宽度? 样式表方法是最好的。 最佳答案 您必须使用 butt
我一直在看this例子。我基于它编写了我的代码,但我仍然无法弄清楚如何连接 qwizard 的下一步按钮。例如,我希望它在每次单击下一个按钮时打印页面的名称和编号。与完成按钮相同,单击完成时我希望它打
我有一个多页 QWizard,我需要在其中对数字输入进行一些验证。多个 QLineEdit 小部件可以包含任何浮点类型或字符串“无”,其中“无”是 sqlite 中 REAL 列的默认空值。 QVal
我有一个有 2 个页面的 Qwizard。 当向导打开时,它位于屏幕中间。 第一页比第二页小。 当单击下一步并显示第二页时,它会将额外的项目添加到第一页的底部,但不会重新居中页面。 在较小的屏幕上,这
我正在尝试将代码从 PyQt5 更改为 PySide2。我的大多数脚本只需将导入从 PyQt5 更改为 PySide2,它的工作原理是相同的。不过,我尝试将 Qt 文档中的许可证向导示例从 PyQt5
我正在尝试使用以下语法将 QString 定义为 QWizard 页面中的字段: registerField("MESSAGE", this); 我可以正确设置字段值并使用 QWizardPage::
我有一个 QWizard,每次出现向导页面时我都需要执行某些操作。目前我正在 validateCurrentPage 函数中执行此操作,但我意识到它仅在按下“下一步”按钮时调用,而不是“返回”按钮。
我想做什么 我正在尝试创建一个 QWizardPage 的子类,它看起来有点像这样,但有轻微的调整。当计数器变量大于 0 时,我想禁用下一个按钮。(由于某些功能需要它去 x..x-1...0,它不能从
我有一个基于 QWizard(继承自 QDialog)的 Windows 应用程序。它必须有一个有效的最大化按钮。 默认情况下,最大化按钮甚至是不可见的。我已将其设置为显示,使用: auto flag
我正在处理 QWizard 的样式表,我想删除按钮上方的水平线: 我试图递归浏览所有的小部件并将它们的边框设置为无,但似乎没有一个小部件有这个边框。 这是我的代码(可以找到完整的可构建示例 here
默认情况下,QWizard 对话框在右上角有一个上下文帮助 [?] 和一个关闭 [X] 按钮。我可以隐藏上下文帮助按钮,但无法使用 setWindowFlags 使关闭按钮消失。例如: # prese
我是一名优秀的程序员,十分优秀!