2011-08-17 10 views
4

Qt SDKとVisual Studio QtアドインをVS2008で使用しています。メインウィンドウクラスMainWindowでQt UIプロジェクトを作成しました。 mainwindow.uiをダブルクリックするとQt Designerが開きます。それから私は、ウィンドウにプッシュボタンを追加し、それをpushButtonと呼んだ。 Signals-Slotsモードでは、ボタンのクリック信号をMainWindow ButtonClickedスロットに接続することができました。信号/スロットエディタは次のようになります。QtプロジェクトのVisual Studioのボタンクリックハンドラを追加します。

 
Sender pushButton 
Signal clicked() 
Receiver MainWindowClass 
Slot  ButtonClicked() 

mainwindow.uiファイルは、この新しい情報を反映して変更されました。ただし、mainwindow.cppとmainwindow.hは変更されません。私は自分のコードを追加できる場所を見たいと思う。そこで、私はこのコードを手動で追加しました:

 
// mainwindow.h 
... 
protected slots: 
    void ButtonClicked(); 

// mainwindow.cpp 
void MainWindow::ButtonClicked() 
{ 
    QMessageBox msgBox; 
    msgBox.setText("Clicked"); 
    msgBox.exec(); 
} 

これは正しい方法ですか?スロットの宣言と実装は手動で追加する必要がありますか、または何か不足していますか?

答えて

4

信号/スロットエディタを使用する場合は、これらのコードを手動で追加する必要があります。デザイナーからボタンをダブルクリックすると、古いQtアドインが自動的に追加されました。 Qt Designerは別のアプリケーションです。ダブルクリックはできません。

automatic connectionsも使用できます。自動接続では、信号をスロットに接続する必要はありません。特別な命名規則を持つ関数。自動的に呼び出されます。 on_okButton_clickedのように。

関連する問題