上一章我们讲解了QWidget ,这一次我们讲对话框Dialog。
先来模态对话框和非模态对话框。
模态对话框就是你不关闭它之前,不能在和这个程序的其他窗口交互,我想大家在保存world文档时都听过叮的声音。非模态对话框就比较好说话了,你可以和他撩,也可以去撩其他窗口。
在这里,我们稍微讲述一种最简单的信号与槽函数的方法:
具体的写法如下:
connect(p1, &QAction::triggered,
[=]()
{
dlg.exec();
});
这是他的基本格式,我们可以看到这个函数需要三个参数,第一个是你想要出发的“按钮”,第二个是&他的类::想要出发的条件,最后一个是=的意思是这个按钮里所有的东西都触发,{}里边则是我们想要触发的结果,下面让我们用代码演示一下。
QPushButton *b = new QPushButton(this);
b->setText("^_^");
b->move(50,50);
b->resize(40,40);
connect(b,&QPushButton::clicked,
[=]()
{
b->setText("$_$");
});
大家运行后会发现当你单击这个按钮他的表情会由_变为KaTeX parse error: Expected group after '_' at position 1: _̲,你弄疼他了。讲到这里好像和我们的Dialog没啥关系,所以我们赶紧回来。
我们在保存文件时往往会出现是否保持的提示框其实就我个人学习QT来看应该就是对话框的一种,所以上边讲了信号槽其实就是为了下边的点击->显示对话框做准备。因为单设按钮太过麻烦,所以我选择了使用自定义菜单,这个东西我自己学习整理后会发布,不要急。
我们直接上代码,让大家了解对话框:
我自己为了更好地学习Qt我用的是空项目然后加东西,
pro文件
QT += widgets network
SOURCES += \
main.c