本篇介绍PyQt5中的自定义对话框,有时候为了完成一些特定的功能,可能需要自己设定自定义对话框。自定义对话框一般继承QDialog类,可以在UI designer中设计。
本篇介绍一个QTableWidget控件,使用自定义对话框对其操作。本Demo总共有四个ui文件,三个QDialog文件,一个主窗口QMainWindow。
![d5a0e706e709624559f22d34cf9adcdd.png](https://img-blog.csdnimg.cn/img_convert/d5a0e706e709624559f22d34cf9adcdd.png)
项目组成
窗口介绍
- QMainWindow主窗口。
顶部三个ToolButton设置表格的格式表头等。中间部分一个QTableWidget控件,预先在UI designer中设置其单元格内容,底部是一个QStatusBar状态栏显示单元格的位置及内容。
![518ddb7aae19a6258c8950ce0592f9ec.png](https://img-blog.csdnimg.cn/img_convert/518ddb7aae19a6258c8950ce0592f9ec.png)
主窗口MainWindow
- DialogSize设置行数/列数对话框。
![da7f62b3170a8fb2167bedef64bc0ba8.png](https://img-blog.csdnimg.cn/img_convert/da7f62b3170a8fb2167bedef64bc0ba8.png)
DialogSize设置行数/列数窗口
- DialogHeader设置表头对话框。放置一个ListView控件。
![029ed7504f69a417abdc132fb65390cf.png](https://img-blog.csdnimg.cn/img_convert/029ed7504f69a417abdc132fb65390cf.png)
DialogHeader设置表头对话框
- DialogLocate定位单元格对话框。
![d04fb8eb5a4fcab96dac34049cddf55a.png](https://img-blog.csdnimg.cn/img_convert/d04fb8eb5a4fcab96dac34049cddf55a.png)
DialogLocate定位单元格对话框
主窗口QMainWindow
- 自定义一个槽函数,当前单元格发生改变的时候发生信号。在DialogLocate对话框内使用。
cellIndexChanged = pyqtSignal(int, int)
def currentChanged(self, current, previous): try: if current is not None: self.label1.setText("当前单元格:%d行, %d列" % (current.row(), current.column())) item =