一.自定义对话框的使用
1.应用场景
像我们前面一般就是只有一个主窗口,或者是只有一些简单的对话框,有的时候我们需要多窗口操作,并且需要一下高级的对话框的时候,我们就可以自定义来达到我们的需求。
2.项目效果
纸上得来终觉浅,咱们还是来继续跟着项目来
咱们有3个功能,我们就自定义3个对话框,并能完成相应的功能,OK,咋们开始吧!
3.界面拖放
这个我就不讲了,需要蔬菜的可以dd我
这里是把tableView设置为了中心组件
4.模型和视图的设置
还记得我们原来在tableView里面讲的的模型和视图嘛,现在我们来添加模型和设置视图。
哈哈,给你们截图,不给你们代码,自己敲,涨涨记性。
创建模型,并为视图设置模型!
运行结果:
但是很丑咯,只显示了一部分,还需要我手动放大,才能显示全,我们可以对表头的视图进行设置。
运行结果:
现在,表头就可以自动的拉伸,非常的银信,哈哈.
5.action功能实现
对咱们的action使用转到槽,接下来就是重点了.好好看,好好学!
二.自定义对话框的创建
1.设置对话框界面
选择不带按钮的对话框
类名,你自己随便起:
OK,现在就开始来设计我们的对话框,
这里可以设置按钮的图标哦.
设计完我们的对话框设计
2.创建对话框
首先在mainwindow.cpp包含咱们的头文件
void MainWindow::on_actionResize_triggered() { DialogResize*dialogResize=new DialogResize(this); }
这样我们自定义的对话框就创建好了!
三.对话框的功能与样式实现
1.对话框数据的交换
首先我们需要对话框拿到我们主窗口默认的行列数.
所以我们需要在dialogresize.h设置公有接口.
具体的实现:
现在就可以进行使用了
void MainWindow::on_actionResize_triggered() { DialogResize*dialogResize=new DialogResize(this); dialogResize->setCol(model->columnCount()); dialogResize->setRow(model->rowCount()); }
但是现在我们点击这个按钮无效,因为对话框还没有进行显示!
2.对话框的显示
dialogResize->exec();//模态方式进行显示,就是必须要处理完对话框,才能对主窗口进行操作 • 1
运行结果:
3.设置对话框的特性