学习一 PyQt5 GUI程序框架

阅读: 评论:0

学习一  PyQt5 GUI程序框架

学习一 PyQt5 GUI程序框架

一、使用可视化设计窗体的GUI程序
1、QT Creator的基本操作
2、将ui文件编写成py文件
在cmd窗口内输入指令

C:Users13788>cd C:Users13788DesktopC:Users13788Desktop>pyuic5 -o ui_dialog.py dialog.ui

我将ui文件放在了桌面上,电脑要将添加到系统的PATH环境变量之中才能执行转换。
3、通过继承关系来实行界面与逻辑的分离
这里边有三种情况:

  • 不用继承:
import ui_dialog
app = QApplication(sys.argv)
#QApplication代表一个应用程序,在窗口的实例前完成
deme = QWidget() #创建一个实例
ui = Ui_dialog() #创建一个ui类的实例
ui.setup_UI(demo) #用实例中的函数初始化demo
demo.show() #界面输出
_())

在ui文件中只是设置了各种组件的内容,本身并不能作为一个承载内容输出,所以在输出中不使用ui.show(),需要通过一个父容器即其中的demo才行。
在这种情况下,不能通过实例demo来修改界面中的标签,需要通过ui来更改。

  • 多继承法
class QmyWidget(QWidget, Ui_dialog): #继承QWidget和Ui_dialogdef __init__(self, parent =None):super().__init__(parent)#多继承时使用super()得到第一个基类,此时self就是一个QWidget的对象self.lab ="多重继承的QmyWidget"self.setupUI(self)#调用setupUI使self自身被初始化self.LabHello.setText(self.lab)#ui中的界面组件就成为公共属性,可以通过self直接改变UI中的值

缺点:过于开放,不符合面对对象严格封装的设计思想;ui中的属性和类中新定义的属性混合在一起

  • 单继承
class QmyWidget(QWidget): def __init__(self, parent =None):super().__init__(parent)self.lab ="单继承的QmyWidget"self.__ui =Ui_dialog()#在类中定义一个ui的对象作为成员self.__ui.setupUI(self)self.__ui.LabHello.setText(self.lab)#区别与多继承时直接用self调用,多了一个_ui作为分别的标志#根据Python命名规则,两个下划线表示是私有的

窃以为就是写上更加的麻烦了。
4、信号与槽的使用

  • 自动关联的槽函数
tSlotsByName(Dialog)

qt creator 通过这句话即使在mydialog类的引用中不继承ui也能在不写代码的情况下使槽函数和信号结合。但是只有在UI设计界面自动生成的槽函数框架才有用。

  • overload型信号

    这中名称相同参数却不同的称为overload型信号
    如果要自动关联必须用@pyqtSlot(类型)指定类型
  • 手动关联
    就是得自己写
    5、便利的将ui文件转换成py文件
    可以用一个bat文件,编辑中加入以下内容
echo off
pyuic5 -o ui_Dialog.py Dialog.ui

这之后点击一下就可以用了

学习资料来自《Python Qt CUI与数据可视化编程》

本文发布于:2024-01-29 00:27:56,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170645928111402.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:框架   程序   GUI
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23