Qt复选框和单选按钮未显示

时间:2017-01-27 14:57:13

标签: c++ linux qt rhel

系统: 红帽企业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的自动检测功能似乎是一个已知的问题,而不是可靠的阴影。我现在已经为我的工具包添加了一个新的故障排除步骤。

1 个答案:

答案 0 :(得分:0)

所以,事实证明Qt Creator正在表演。当程序神秘地停止构建因为我在系统上没有Android NDK时,我发现Qt的流氓安装潜伏在/ lib64中。理论是,它正在针对一个版本进行编译,并尝试与另一个版本动态链接,从而导致未定义的行为。

从Creator的工具包中擦除Qt版本的所有痕迹后,一切都像魅力一样。 Qt Creator的自动检测功能似乎是一个已知的问题,而不是可靠的阴影。我现在已经为我的工具包添加了一个新的故障排除步骤。