共计 1549 个字符,预计需要花费 4 分钟才能阅读完成。
因为须要构建西医症状同义词库,须要从根本西医书籍中收集西医症状的同义词。《西医症状学钻研》里蕴含较多同义词,能够用来收集。然而,一个个输出太慢,能够利用 OCR 提取文字后,再依据文本格式特点将同义词主动提出进去。于是构建一个简略的 gui 程序,左侧输出原始文本,右侧输入提取的同义词文本。
1、创立新我的项目 GUI_Tongyici
2、装置 pyqt5
D:\mypython\GUI_Tongyici\venv\Scripts>activate
(venv) D:\mypython\GUI_Tongyici\venv\Scripts>pip install pyqt5
(venv) D:\mypython\GUI_Tongyici\venv\Scripts>pip install pyqt5-tools
(venv) D:\mypython\GUI_Tongyici\venv\Scripts>pip install pyqt5designer
因为之前在 Pycharm 上配置过 QtDesigner,所以此配置能够省略,如果没配置过,能够参考文章:
https://blog.csdn.net/yuanchenglei/article/details/124936528
3、设计 qt 界面
在我的项目上点击鼠标右键,找到第 2 步中配置好的 PyQt5 的 QtDesigner,就会运行 QtDesigner,就能够开始拖拽设计了。
然而,因为很久没应用 gui 编程,呈现了一个小问题:拖拽过去的控件不会随着窗口大小变动主动调整!
在代码外面设置最大化,在代码外面增加布局,居然都没有解决这个问题。于是在网上所搜了一下,发现要在 QtDesigner 设计中进行布局设置,而且布局不要之间拖布局进来,而是要在控件上点击右键增加布局。
在右侧的对象查看器外面,如果以后的控件有那个红色禁止的符号,阐明以后没有增加布局。如下:
增加布局须要留神:不要从左侧拖拽一个布局过去,而是在以后的控件上右键后抉择布局!
最终,终于失去了能够随主窗口主动调整的布局和子空间了。
4、增加事件
给转换 pushbutton 增加一个信号槽。
#增加信号槽
# self.pushButton.clicked.connect(self.plainTextEdit_2.close)
self.pushButton.clicked.connect(self.convert)
convert 是一个自定义的事件处理函数,然而,增加的自定义信号槽后,点击“转换”按钮基本没有响应。而应用正文中的零碎定义函数则没有问题。
查找了很久,齐全没有没发现任何端倪。记得上一次如同也遇到了相似问题,把那个代码再看了一遍,用上次的代码,如同就有响应,区别就在 main 函数的调用形式上:
上面这段是点击“转换”能响应的代码:
if __name__ == '__main__':
app = QApplication(sys.argv)
myw = QMainWindow()
# myWin = Ui_MainWindow().setupUi(myw)
myWin = Ui_MainWindow()
myWin.setupUi(myw)
myw.show()
sys.exit(app.exec())
上面这个是点击“转换”按钮没有响应的代码
if __name__ == '__main__':
app = QApplication(sys.argv)
myw = QMainWindow()
myWin = Ui_MainWindow().setupUi(myw)
myw.show()
sys.exit(app.exec())
两者的区别在于正文的那一行!是不是第一种调用形式,使得 Ui_MainWindow() 对象存在的生命周期与正文中调用的生命周期不一样,而导致的呢?