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

Qt checkboxes and radiobuttons not displayed

系统: 红帽企业 Linux 7.2 Qt 创作者 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();
}

[![最小示例][1]][1]

这似乎并没有引起太多问题,或者我的 google-fu 很弱,因为我找不到任何其他人遇到此问题的例子。那么,有人知道为什么会这样吗?使用样式表将复选框和单选按钮替换为我自己的图像的唯一解决方案是什么?我现在打算这样做,但如果可能的话,我更愿意以正确的方式这样做。

更新一: 只是因为我应该知道得更多,所以我继续将 Qt 更新到最新最好的 5.8.0。仍然有同样的问题。

更新 2: 所以,事实证明 Qt Creator 出了问题。当程序神秘地停止构建时,因为我在系统上没有 Android NDK,我发现 Qt 的恶意安装潜伏在 /lib64 中。理论上它是针对一个版本编译并尝试动态 link 与另一个导致未定义的行为。

从 Creator 的工具包中清除该 Qt 版本的所有痕迹后,一切正常。 Qt Creator 的自动检测功能不太可靠,这似乎是一个已知问题。我现在已经在我的工具包中添加了一个新的故障排除步骤。

所以,事实证明 Qt Creator 出了问题。当程序神秘地停止构建时,因为我在系统上没有 Android NDK,我发现 Qt 的恶意安装潜伏在 /lib64 中。理论上它是针对一个版本编译并尝试动态 link 与另一个导致未定义的行为。

从 Creator 的工具包中清除该 Qt 版本的所有痕迹后,一切正常。 Qt Creator 的自动检测功能不太可靠,这似乎是一个已知问题。我现在已经在我的工具包中添加了一个新的故障排除步骤。