PySide6 + Qt Designer开发用户界面

这篇文章只是我做的笔记而已,不是一篇教程,PySide6是对标PyQt6的产品,截止至今天2021年7月5日,PySide6的官网文档还没有写完整,但不影响我们直接使用。

首先肯定是安装这个包啦,在终端直接pip安装就完事了:

pip install pyside6

然后再目录Lib->site-packages中找到Qt De

signer.exe并打开就可以使用它画界面了

创建完一个MainWindow窗口,然后会保存成一个ui文件,接下来用命令将它转成py文件:

pyside6-uic untitled.ui > untitled.py

打开这个文件我们可以看到其中定义了一个Ui_MainWindow类,但其核心是setupUi函数:

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.setEnabled(True)
        MainWindow.resize(700, 550)
        MainWindow.setCursor(QCursor(Qt.ArrowCursor))
        MainWindow.setMouseTracking(False)

从这个setupUi()函数可以看出来,其实这个类是将一个MainWindow对象进行修改,也就是说我们在Qt Designer中创建了一个MainWindow对象并将其定制后,这种定制通过Ui_MainWindow对象的setupUi()函数实现了

那我们如何使用它呢:首先还是要创建一个继承QMainWindow类的MainWindow类

然后给这个类添加属性,添加一个Ui_MainWindow对象进去(就相当于添加了魔法)

最后对MainWindow自身使用魔法操作来实现对界面的定制:

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui = Ui_MainWindow()

        # 这一句可以说非常妙,将自身传入自身属性的对象中去
        self.ui.setupUi(self)

让我来做一个类比的例子,猜猜下面的代码会发生什么呢?

class Change(object):
    def do(self, MyString):
        MyString.mystr = "Hello, Mother Fucker!"
        print(MyString.mystr)


class MyString(object):
    def __init__(self, param_string):
        self.mystr = param_string
        self.ch = Change()
        self.ch.do(self)


if __name__ == "__main__":

    # 我这里传入的是I LOVE YOU!,但是猜猜看会发生什么
    test = MyString("I LOVE YOU!")

不是I LOVE YOU!,而是在终端输出了......

PySide6 + Qt Designer开发用户界面_第1张图片

有趣!

这是我的GitHub链接:

RamboKingder/PySide6: 这里有我学习PySide6的笔记和一些使用PySide6的程序 (github.com) 

你可能感兴趣的:(python,qt)