这篇文章只是我做的笔记而已,不是一篇教程,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!,而是在终端输出了......
有趣!
这是我的GitHub链接:
RamboKingder/PySide6: 这里有我学习PySide6的笔记和一些使用PySide6的程序 (github.com)