网站的种类有哪些,微信公众平台小程序入口,网站开发外包合同,网站备案信息是什么意思模态对话框接受和拒绝消息
我们创建一个模态对话框#xff0c;调用exec函数后可以根据其返回值进行不同的处理#xff0c;exec的返回值有两种#xff0c;Qt的官方文档记录的为
QDialog::Accepted
QDialog::RejectedAccepted 表示接受消息#xff0c; Rejected表示拒绝消息…模态对话框接受和拒绝消息
我们创建一个模态对话框调用exec函数后可以根据其返回值进行不同的处理exec的返回值有两种Qt的官方文档记录的为
QDialog::Accepted
QDialog::RejectedAccepted 表示接受消息 Rejected表示拒绝消息。 还是按照之前的操作选择新建QT Application项目然后创建类名为MainWindow, 基类选择QDialog, 点击创建生成Qt项目。然后我们添加设计师界面类类名MyDialog, 基类选择QDialog。然后在这个mydialog.ui中添加两个按钮一个是进入主界面一个是退出程序。 在设计师界面点击Edit Signal/Slots 信号槽的按钮进入信号槽编辑界面, 鼠标按住退出程序按钮不松开拖动将另一端连接到MyDialog对话框QPushbutton这边信号选择clicked() MyDialog信号选择reject这样就将两个信号连接起来了我们点击退出程序按钮会触发MyDialog发送reject信号因为MyDialog调用exec后等待信号返回此时收到reject信号exec就会返回Rjected值。 同样道理MyDialog发送accetp()信号后, exec返回值为Accepted。 我们点击Edit Widget 按钮 然后右键点击键入主界面按钮点击进入槽在Qt 为我们生成的槽函数里添加accetp()信号发送逻辑
void MyDialog::on_pushButton_clicked()
{accept();
}我们在main函数里调用对话框然后根据返回值为Accepted调用主窗口显示否则直接退出
int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;MyDialog dialog;if(dialog.exec() QDialog::Accepted){w.show();return a.exec();}else{return 0;}
}运行后我们点击进入主界面按钮界面跳转至主界面点击退出按钮程序退出。
主界面和登录界面切换
现在我们要实现主界面和登录界面的互相切换我们刚才创建的对话框界面MyDialog界面是登录界面主界面是MainWindow类。 我们在mainwindow.ui添加两个按钮返回登录按钮和退出程序按钮, 再添加一个label表示这是主界面. 然后点击Edit Signal/Slot 进入信号编辑界面点击退出程序按钮不松开拖动到尾部连接MainWindow的主界面上选择退出程序的clicked()信号MainWindow选择reject信号,将两个信号连接起来。 然后右击登录按钮转到槽在槽函数里添加这个逻辑
void MainWindow::on_pushButton_clicked()
{close();MyDialog mydialog;if(mydialog.exec() QDialog::Accepted ){this-show();}else{return;}
}点击返回登陆按钮就会close主窗口但是并不是真的关闭只是将主窗口隐藏Qt回收机制是所有窗口都关闭后才回收。 再次运行程序点击进入主界面按钮就可以进入主界面点击返回登录按钮就可以返回登录界面可以实现两个界面的切换了。
总结
视频链接https://www.bilibili.com/video/BV1nY4y1K7cD/?spm_id_from333.999.0.0vd_source8be9e83424c2ed2c9b2a3ed1d01385e9
源码链接https://gitee.com/secondtonone1/qt-learning-notes