pyqt之配置工具
刚开始,我一边看的绿皮书,经典的入门到实践,哈哈,一边抠出来的GUI,其实就是简单的对json文件中静态数据进行常规的crud,只不过是在可视化界面去操作。
那本书,我大概就看了第五章(初级控件)、第六章(高级控件)、第八章(各种对话框,消息、文件等对话框)、第九章(布局),还有一本蓝皮书,算是pyqt的进阶书籍(包括一些Model/View的介绍),也看了一部分,总之最后大体是搞出来了,代码是很糙,即使后来我也简单优化了一点,但很多还是看不下去,就上一部分代码吧
界面初始化
1 from PyQt5 import QtGui 2 from PyQt5 import QtCore 3 from PyQt5 import QtWidgets 4 5 6 class ConfigTool(QMainWindow): 7 """基于pyqt5的静态文件配置工具类""" 8 def __init__(self): 9 super(ConfigTool, self).__init__() 10 self.init_page_process() 11 # self.djs = ['通信式', '学习式', '脉冲式'] 12 # self.direction = ['北', '东北', '东', '东南', '南', '西南', '西', '西北'] 13 # self.attribute = ['进口', '出口', '其他'] 14 # self.flow = ['直行', '左转', '右转', '直左', '直右', '左右', '直左右', '掉头', '其他'] 15 # self.feature = ['机动车车道', '非机动车车道', '机非混合车道'] 16 17 @DecoratorTemplate.count_time() 18 def init_page_process(self): 19 """ 20 初始化界面全流程 21 :return: 22 """ 23 # Step 0: 初始化主界面 24 self.init_mainpage() 25 # Step 1: 初始化中心区域 26 self.init_centerpage() 27 # Step 2: 初始化菜单栏 28 self.init_menubar() 29 # Step 3: 初始化工具栏 30 self.init_toolbar() 31 # Step 4: 初始化状态栏 32 self.init_status_bar() 33 # Step 5: 初始化子窗口配置界面 34 self.init_child_window()
实例化客户端
1 if __name__ == '__main__': 2 # 实例化客户端 3 app = QApplication(sys.argv) 4 # 实例化图标 5 icon = QIcon(':/image/easyicon.ico') 6 # 客户端设置图标 7 app.setWindowIcon(icon) 8 # 界面初始化 9 gui = ConfigTool() 10 # 界面显示 11 gui.show() 12 # 程序结束退出进程 13 sys.exit(app.exec_())
运行界面显示:
然后在写这个专题前,我把之前的书籍又翻了一遍,本来想着后面再围绕各个控件展开具体介绍的,但是考虑到:1、今天29号了,下一阶段的工作任务即将展开,时间恐怕来不及了 2、GUI编程无非就是控件的堆叠,然后就是一些事件处理机制(键盘事件、信号和槽等),然后还有一些和数据库的交互(这个都有特定的三方库支持),上面处理得当,问题不大,现写GUI也来得及,不行就翻书、百度 3、传言如今形势不好,内部仍无长进,实在没劲,内心很矛盾
综上,这个专题可能暂时到这就告一段落了,后面看情况,可能会再来吧 ,针对上面那个小工具我临时画了一个UML草图,包含实体控件和控件对象的映射关系,确实很草