QT:没有名为"setModal"的成员

QT : has no member named 'setModal'

本文关键字:setModal 成员 QT      更新时间:2023-10-16

Salam Alikom

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

我在按钮功能中做了这个代码

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

但它不起作用,并给出以下错误:

C:UsersAmineDocumentsQTE-LogBooklogin.cpp:43: erreur : 'class Menu' has no member named 'setModal'
 menu.setModal(true);
      ^

好的。还有更多的东西。尝试创建一个新项目,并按照我的步骤进行:

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

这将在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
    }

哇!你做到了!