2016-05-04 11 views
-4

サラムAlikomQT:私は、このボタンを作りたいP​​USH_BUTTONは最初の窓 であり、私は私のプロジェクトで窓(login.uiとmenu.ui) に持っている「setModal」

という名前のメンバーを持っていません他のウィンドウ「menu.ui」クリックされたときに()

を開く私は

Menu menu; 
menu.setModal(true); 
menu.exec(); 

PUSH_BUTTON機能でこのコードをしましたが、それはこのエラーを仕事と与えるものではありません:

C:\Users\Amine\Documents\QT\E-LogBook\login.cpp:43: erreur : 'class Menu' has no member named 'setModal' 
menu.setModal(true); 
    ^
+0

'QMenu'にはsetModal()がありません。なぜモーダルダイアログではなくモーダルメニューが必要なのですか? – drescherjm

+0

「メニュー」のヘッダーを投稿する必要があります。その親が何であるかをどのように知っていますか? – drescherjm

+2

* "'class Menu'には 'setModal'" *というメンバーはありません。あなたの質問は何ですか? – IInspectable

答えて

1

それよりももう少しです。新しいプロジェクトを作成して、私の手順に従ってください:

メインウィンドウを開き、プッシュボタンをuiにドラッグします。プッシュボタンを右クリックし、[スロットに移動...]を選択します。ここから、すべてのトリガーアクションのリストが表示されます。 「clicked()」を選択します。

これは、押ボタンのクリックイベントに対処するために、mainwindow.cppに素晴らしいコードを生成します。

 void MainWindow::on_pushButton_clicked() 
     { 

     } 

次に、テキスト編集ウィンドウの左側にあるプロジェクトツリーのフォームフォルダを右クリックします。 "新規追加..." - > "Qt" - > "Qtデザイナーフォームクラス" - > "選択..." - > "ボタンなしのダイアログ"を選択し、任意の名前を付けてください。私は私の "MyDialog"と呼んだ。

これは、mydialog.ui、mydialog.cpp、およびmydialog.hを生成します。 MainWindowクラスをMyDialogクラスの親クラスにします。だから我々はmainwindow.hと

#include "mydialog.h" 

を挿入するために行くし、我々は民間に行く:mainwindow.hのセクションとMyDialogオブジェクトへのポインタを作成します。読むためにメイン・ウィンドウクラスのプライベートブロックを変更し :

private: 
     Ui::MainWindow *ui; 
     MyDialog *mDialog; 

だから今、私たちは、メイン・ウィンドウクラス内に含まMyDialogクラスへのポインタを持っています。

次は、読むためにmainwindow.cppに移動し、イベントメソッドを変更します。

void MainWindow::on_pushButton_clicked() 
    { 
     mDialog = new MyDialog(this); // allocated space for a new MyDialog 
            // while also giving a parent class of 
            // this, the MainWindow class 
     mDialog->show(); // call the show method on the object 
    } 

出来上がりを!できたね!

関連する問題