QT:没有名为' setModal'

时间:2016-05-04 16:06:00

标签: c++ windows qt

Salam Alikom

我必须在我的项目中使用windows(login.ui和menu.ui) 第一个窗口上有一个push_button 我想让这个按钮打开另一个窗口" menu.ui"何时被点击()

我在push_button函数

中完成了这段代码
Menu menu;
menu.setModal(true);
menu.exec();

但它不起作用并发出此错误:

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

1 个答案:

答案 0 :(得分:1)

确定。还有一点比这更多。尝试创建一个新项目并按照我的步骤进行操作:

打开mainwindow.ui并将pushButton拖到ui上。右键单击按钮并选择"转到插槽..."。从这里,您应该看到所有触发操作的列表。选择"点击()"。

这将在mainwindow.cpp中生成一段很好的代码来处理按钮上的点击事件。它应如下所示:

      void MainWindow::on_pushButton_clicked()
      {

      }

接下来,右键单击文本编辑窗口左侧项目树中的Forms文件夹。选择"添加新..." - >" Qt" - >" Qt设计师表单类" - >"选择... " - >"没有按钮的对话框"然后根据需要命名。我打电话给我的" MyDialog"。

生成mydialog.ui,mydialog.cpp和mydialog.h。我们希望MainWindow类成为MyDialog类的父级。所以我们转到mainwindow.h并插入

    #include "mydialog.h"

然后我们转到mainwindow.h的private:部分并创建一个指向MyDialog对象的指针。 将MainWindow类私有块更改为:

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

所以现在我们有一个指向MainWindow类中包含的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
    }

瞧!你做到了!