关于qt5:症状词表转化GUI

7次阅读

共计 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() 对象存在的生命周期与正文中调用的生命周期不一样,而导致的呢?

5、转换函数

正文完
 0