系統: 紅帽企業Linux 7.2 Qt Creator的4.1.0 的Qt 5.6.1Qt的複選框,單選按鈕不會顯示
所以,當我使用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範例] [1] [1]
這似乎並沒有被引起太多的問題還是我的谷歌福是弱,因爲我無法找到的例子任何其他人有這個問題。那麼,有人知道爲什麼會發生這種情況嗎?是唯一的解決方案,用我自己的圖像替換複選框和單選按鈕使用樣式表?我現在要這樣做,但如果可能的話,寧願以正確的方式做到這一點。
更新1: 只是因爲我應該知道更好,我繼續前進,並更新Qt到最新和最大的5.8.0。仍然有同樣的問題。
更新2: 所以,事實證明,Qt造物主正在行動起來。當程序神祕地停止了構建,因爲我沒有在系統上安裝Android NDK,我發現Qt的流氓安裝存在於/ lib64中。理論上,它是針對一個版本進行編譯,並試圖與其他動態鏈接導致未定義的行爲。
從Creator工具包中清除所有Qt版本的所有痕跡後,一切都像魅力一樣。 Qt Creator的自動檢測功能似乎只是一個比可靠的陰影還差的已知問題。我現在在我的工具箱中添加了一個新的故障排除步驟。
你的代碼在我的機器上工作。 –
@ m.c。我現在也是。所以,事實證明,Qt Creator正在使用Qt的一個版本進行編譯和編譯,並針對另一個版本運行。一旦我發現系統上有一個流氓版本的Qt被我消滅了,安慰了Qt Creator直到它開始行事爲止,一切都很順利。 – soulsabr
我建議你只需發佈這個答案,而不是編輯標題解決。 :) – rbaleksandar