【发布时间】:2019-03-03 11:13:40
【问题描述】:
我正在处理 QWizard 的样式表,我想删除按钮上方的水平线:
我尝试递归浏览所有小部件并将其边框设置为无,但似乎没有小部件具有此边框。
这是我的代码(可以在here找到完整的可构建示例):
licensewizard.h
#ifndef LICENSEWIZARD_H
#define LICENSEWIZARD_H
#include <QWizard>
class LicenseWizard : public QWizard
{
Q_OBJECT
public:
enum
{
Page_Welcome
};
LicenseWizard(QWidget *parent = 0);
};
class WelcomePage : public QWizardPage
{
Q_OBJECT
public:
WelcomePage(QWidget *parent = 0);
};
#endif
licensewizard.cpp
#include <QtWidgets>
#include "licensewizard.h"
#include <QtDebug>
LicenseWizard::LicenseWizard(QWidget *parent)
: QWizard(parent)
{
setPage(Page_Welcome, new WelcomePage);
setStartId(Page_Welcome);
setWizardStyle(ModernStyle);
setWindowTitle(tr("License Wizard"));
for (auto *widget : this->findChildren<QWidget *>())
{
widget->setStyleSheet("background:none; border:none; margin:0; padding:0;");
}
}
WelcomePage::WelcomePage(QWidget *parent)
: QWizardPage(parent)
{
setTitle(tr("Welcome"));
}
有可能吗?如何实现?
【问题讨论】:
-
一个最小的例子是少于一半的行数,全部在一个 .cpp 文件中,带有 Java 风格的类(没有单独的方法定义)——并且很适合这个问题,可能没有滚动条:)。我建议你这样做,它会让重现变得更容易——所以问题不是你需要大量样板的企业怪物。
标签: c++ qt user-interface qwizard