2016-01-07 29 views
0

我想一個標籤的文本更改爲滑塊的值當滑塊移動。我的滑塊名爲sld_bet,我的標籤爲lbl_betsld_bet_changed()是一個函數,它只有一個斷點,並且最終將包含lbl_bet的修改代碼。QT5信號和槽似乎並沒有工作

斷點永遠達不到的,我不明白爲什麼。

app::app(QWidget *parent) 
    : QMainWindow(parent) 
{ 
    ui.setupUi(this); 

    connect(ui.sld_bet, SIGNAL(ui.sld_bet->sliderMoved()), 
     this, SLOT(sld_bet_changed())); 
} 
+3

您沒有使用正確的語法。應該是'SIGNAL(sliderMoved())'。 sld_bet_changed定義爲插槽嗎? – ajshort

+0

是的。謝謝。 –

回答

3

如果您使用的是Qt 5,使用新的連接語法。這樣編譯器會在出現錯誤時拋出錯誤。

connect(ui.sld_bet, &QSlider::sliderMoved, this, &app::sld_bet_changed); 
+0

有沒有一個地方,那裏是一個QT5教程?我主要從qt文檔中提取我的代碼。 –

+0

[woboq](http://woboq.com/)有非常好的教程和博客,如果你對Qt的內部工作感興趣,你應該看看Qt 5信號和插槽:[Signals和Qt5中的插槽](http://woboq.com/blog/new-signals-slots-syntax-in-qt5.html) –

4

變化

connect(ui.sld_bet, SIGNAL(sliderMoved()), this, SLOT(sld_bet_changed())); 
+0

謝謝,不過我應該提到我使用的是qt5,而這不適用於qt5。 –

+0

嗯即時通訊使用它與qt5沒有問題。但是,如果您使用的是qt5,建議您也使用新的信號插槽語法。即時通訊只是懶惰地轉換所有我的舊項目。 https://wiki.qt.io/New_Signal_Slot_Syntax – DevGuy

+1

@DevGuy FYI:不知道你是否意識到這一點,但你可以使用最新的Qt Creator的快速修復,自動舊的語法轉換到新的(一個接一個不幸)。只需將光標放在連接語句上,按ALT + Enter(除非已更改,則默認爲)並選擇「convert connect()to Qt 5 Syle」。 –