系统: 红帽企业Linux 7.2 Qt Creator 4.1.0 Qt 5.6.1
因此,当我使用Qt Creator构建GUI时,一切看起来都很棒。但是,一旦我编译并运行复选框和单选按钮就会消失,按钮看起来像标签。
我使用样式表来使用边框和渐变来修复按钮,但我似乎无法弄清楚复选框或单选按钮。
#include <QApplication>
#include <QWidget>
#include <QCheckBox>
#include <QVBoxLayout>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QCheckBox* box = new QCheckBox();
box->setText("BLARG");
QVBoxLayout* layout = new QVBoxLayout;
layout->addWidget(box);
w.setLayout(layout);
w.show();
return a.exec();
}
[![minmal example] [1]] [1]
这似乎并没有导致太多问题,或者我的google-fu很弱,因为我无法找到其他人遇到此问题的示例。那么,有人知道为什么会这样吗?是使用样式表替换复选框和单选按钮的唯一解决方案吗?我现在要去做,但如果可能的话,我更愿意以正确的方式做到这一点。
更新1: 仅仅因为我应该知道更好,我继续将Qt更新到最新的5.8.0。还有同样的问题。
更新2: 事实证明,Qt Creator正在表演。当程序神秘地停止构建因为我在系统上没有Android NDK时,我发现Qt的流氓安装潜伏在/ lib64中。理论是,它正在针对一个版本进行编译,并尝试与另一个版本动态链接,从而导致未定义的行为。
从Creator的工具包中擦除Qt版本的所有痕迹后,一切都像魅力一样。 Qt Creator的自动检测功能似乎是一个已知的问题,而不是可靠的阴影。我现在已经为我的工具包添加了一个新的故障排除步骤。
答案 0 :(得分:0)
所以,事实证明Qt Creator正在表演。当程序神秘地停止构建因为我在系统上没有Android NDK时,我发现Qt的流氓安装潜伏在/ lib64中。理论是,它正在针对一个版本进行编译,并尝试与另一个版本动态链接,从而导致未定义的行为。
从Creator的工具包中擦除Qt版本的所有痕迹后,一切都像魅力一样。 Qt Creator的自动检测功能似乎是一个已知的问题,而不是可靠的阴影。我现在已经为我的工具包添加了一个新的故障排除步骤。