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);
^
答案 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
}
瞧!你做到了!