2017-07-25 38 views
1

我有一個槽一個複選框稱爲Qt的:狹槽不要求手動功能呼叫

void MainWindow::on_checkBoxPhaseUnwrap_stateChanged(int state) 

這被自動連接。

主窗口的構造是這樣的

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow), 
{ 
    ui->setupUi(this); 
    setupWidgets(); 
} 

setupWidgets我設置的複選框

ui->checkBoxPhaseUnwrap->setChecked(true); 

但是狹槽不叫的背景值,因此,數據的基礎上不更新。

一旦顯示窗口,我可以點擊複選框並按照慣例調用插槽。爲什麼我打電話時不打電話setChecked注意:在gui設計器中,默認值已經是checked。這是原因嗎?

+0

是否調用帶有false參數觸發插槽的功能? – rubenvb

+0

你能告訴我們你是如何連接的嗎? –

+0

ymself沒有連接。這是在Qt中自動完成的。 –

回答

2

在GUI設計器中,默認值已被檢查。這是原因嗎?

void QCheckBox::stateChanged(int state)

這個信號被髮射時的複選框的狀態改變,即,每當用戶檢查或取消選中它。

這意味着如果您嘗試將狀態從Qt::Checked更改爲Qt::Checked,則不會發射它。

解決方案將發出信號自己:

setupWidgets添加

emit ui->checkBoxPhaseUnwrap->stateChanged(Qt::Checked);