注:本文示例都是从官方文档中找到的,有条件的可以去看一下。
基本结构
首先,我们看一下,Qt应用最简单的结构是什么样。
import sys
from PySide6.QtWidgets import QApplication, QLabel
app = QApplication(sys.argv)
label = QLabel("Hello World!")
label.show()
app.exec()
一行一行解释。
前两行是导入需要使用的包。这个后面再讲。
app = QApplication(sys.argv)
这行代码创建了一个QApplication类的实例。首先什么是QApplication?回答这个问题可能会比较复杂。我们先了解一下PySide6这个包的结构。

主要就是这三个模块。其中QtCore提供了Qt项目的基础机制,例如信号与槽等等。在QtCore基础上,QtGui提供了有关图形界面的基础操作,比如事件,2d或者3d的表现等等。最后才是真正我们看到的东西——QtWidgets,它包含了所有的组件。
而在上面的例子中,我们知道QApplication是从QtWidgets中导入的,因此它应该属于GUI的组件部分(QtGUI我认为是GUI的机制部分)。
但实际上QApplication并不会创造一个可视化的界面。你可以理解它为一个初始化的地基,它提供了很多初始化的能力,例如使用系统风格或者切换主题等等,详见官方文档QApplication
因此一个Qt的GUI应用都必须要实例一个QApplication,而构造函数中的参数sys.argv并不是必须的,关于sys.argv我看的这篇博客Python中的sys.argv是什么含义。简单的说就是用命令行启动的时候可以传参,实际上写成这两个也没问题。
app = QApplication()
#or
app = QApplication([])
然后是label = QLabel("Hello World!"); label.show();
实例了一个QLabel对象,然后show。哪些组件可以show哪些不能?show又是什么方法?关于这个我们需要了解其父类。

图中可以看到,QLabel是QWidget的子类,实际上绝大多数都是QW
1056


:弹窗小页面&spm=1001.2101.3001.11974&articleId=127064567&d=1&t=3&u=6132c861d767442e9e69199eb8192fc6)

被折叠的 条评论
为什么被折叠?



