PYQT开发一个小软件模块记录

1、如何使用QTDesign 设计页面
在pycharm 中,接入两个工具,一个是QTDesigner,PyUIC
在这里插入图片描述
然后打开QTDesigner就可以进行界面的设计
在这里插入图片描述
设计好想要的界面后,保存为.ui文件,这时候返回pycharm,找到对应的.ui文件,右键选择external tool,选择PyUIC,就会生成对应的.py文件,这个文件就已经是从用python写的界面程序了,如下图中的mainUI.py文件。
在这里插入图片描述
在这里插入图片描述

2、如何把这个界面程序运行起来
直接运行这个mainUI.py 是不会出现窗口的,需要额外的加几行程序。
可以直接在mainUI.py 文件最后添加:

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)  # 创建一个QApplication,也就是要开发的软件app
    MainWindow = QtWidgets.QMainWindow()    # 创建一个QMainWindow,用来装载需要的各种组件、控件
    ui = Ui_MainWindow()                    # ui是Ui_MainWindow()类的实例化对象
    ui.setupUi(MainWindow)                  # 执行类中的setupUi方法,方法的参数是第二步中创建的QMainWindow
    MainWindow.show()                       # 执行QMainWindow的show()方法,显示这个QMainWindow
    sys.exit(app.exec_())                   # 使用exit()或者点击关闭按钮退出QApplicat
 

这种方式可以用来看一下界面是不是想要的界面。实际操作过程中,一般喜欢把界面和逻辑分开,简单来说就是mainUI.py 中只存界面的程序,不存其他的,到时候要改界面的时候就只需要更新这个文件就行了,很方便。
ps:虽然用QTDesigner来设计界面简单、快捷且美观,但是有时候直接在mainUI.py中写程序也很方便,并且必要的时候就是需要在里面直接写。

3、如何实界面和逻辑分开
上面说到了逻辑和界面分离,其实简单来说就是逻辑在另一个.py文件中写。建立一个新的文件,把界面程序import 进去。
在这里插入图片描述
在逻辑文件主窗口继承界面主窗口类(Ui_MainWindow)
然后就在这个类里面定义实现逻辑的函数。
同时,要运行这个文件也需要加入主程序:

if __name__ == '__main__':

    app = QApplication(sys.argv)  #必备
    myMainrun=Mainrun()
    myMainrun.show()
    sys.exit(app.exec_())  #必备

然后就在里面改改改就可以啦。

4、关于一些觉得复杂的事情
(1)将matplotlib 绘制的内容显示到页面上,而非单独plt.show()弹出一个子框

from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
import matplotlib.pyplot as plt
        #画布设置
        self.figure=plt.figure()
        self.ax1= self.figure.add_subplot()

        self.canvas=FigureCanvas(self.figure)
        self.verticalLayout.addWidget(self.canvas)  #将绘图链接到控件上

但是这样弄出来的图,就是一张图片的显示,没法放大缩小。
FigureCanvas的具体见这篇博客https://blog.csdn.net/qq_28485501/article/details/85329343
有空再写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值