C++ QT:没有名为“setModal”的成员

C++ QT:没有名为“setModal”的成员,c++,windows,qt,C++,Windows,Qt,萨拉姆·阿利科姆 我必须在我的项目login.ui和menu.ui中打开windows 第一个窗口上有一个按钮 我想使此按钮在单击时打开另一个窗口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 me

萨拉姆·阿利科姆

我必须在我的项目login.ui和menu.ui中打开windows 第一个窗口上有一个按钮 我想使此按钮在单击时打开另一个窗口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);
      ^

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

打开mainwindow.ui并将按钮拖到ui上。右键单击按钮并选择“转到插槽…”。。。。从这里,您应该可以看到所有触发操作的列表。选择“单击”

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

      void MainWindow::on_pushButton_clicked()
      {

      }
接下来,右键单击文本编辑窗口左侧项目树中的Forms文件夹。选择Add New…->Qt->Qt Designer Form Class->choose…->Dialog With buttons,然后根据需要命名它。我叫我的对话

这将生成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
    }

瞧!你做到了

QMenu没有setModal。为什么你想要一个模式菜单而不是一个模式对话框?等一下,你必须为菜单贴上标题。我们如何知道它的父项是什么?似乎“类菜单”没有名为“setModal”的成员。你的问题是什么?