根据UI项目开发过程中遇到的问题,本文为整理出的相应解决方案汇总。持续更新。若有相应建议,可评论留言,集思广益。
目录
- 一、界面卡死、多窗口、多线程和多进程相关
- 二、部件性能与展示相关
-
- 1、QTextEdit、QTextBrowser添加的文字超出视图后,滑动条自动移至最底部显示最新文本的解决办法
- 2、如何让窗体右上角只显示关闭按钮(最大化按钮、或最小化按钮)
- 3、在子窗口关闭后,如何通知主窗口进行进一步操作
- 4、子窗口显示区域很小,且旁边有大量留白
- 5、窗口运行之后,各个控件都挤成了一坨
- 6、如何使用pyqt5和pyqtgraph在图像上增加图例并显示鼠标位置处的变量值
- 7、如何画折线图并滚动显示更新横轴坐标,且保留全部信息
- 8、基于pyqt5、pyqtgraph和GLViewWidget持续动态更新3D散点图点的位置,提高刷新帧数,使其有飘动的效果
- 9、PythonGUI)如何将借助pyqt5和pyqtgraph绘制的图片输出保存到本地(支持jpg,svg,png等多个格式)
- 三、常用功能实现的代码技巧
一、界面卡死、多窗口、多线程和多进程相关
1、PyQt5中使用线程QThread和Thread进行耗时操作的问题
2、pyqt5 的多线程(QThread)遇到的坑
3、主窗口关闭后子窗口仍在运行,或者窗口进程仍在运行
点击查看
补充:在closeEvent()中可以设置其它的窗口被关闭后的操作
4、子窗口关闭后,如何触发主窗口做相应操作
可以通过signal触发的方式:
- 在子窗口中设置signal,重写closeEvent(),使在子窗口右上角关闭按钮被点击后,触发closeEvent,signal.emit(),从而使得主窗口中实例的子窗口对象的signal.connect()的函数被触发。由此实现通知机制。
5、主窗口关闭按钮被点击,进行关闭确认询问,且关闭所有线程
重写主窗口的closeEvent()
函数:
def closeEvent(self, event):
"""
主窗口关闭后,令子窗口也关闭
对主窗口的函数closeEvent进行重构
- 退出软件时结束所有进程
:param event:
:return:
"""
try:
self.is_MainWindow_running = False
reply = QMessageBox.question(self,
'本程序',
'是否要退出本程序',
QMessageBox.Yes | QMessageBox.No,
QMessageBox.No
)
if reply == QMessageBox.Yes:
event.accept()
os._exit(