使用PySide6创建窗口以及各类窗口的区别
在本文中,你将了解Qt的窗口,以及QMainWindow
、QWidget
、QDialog
之间的区别和在PySide6中的使用方法;
Qt主要使用PySide6.QtWidgets.QMainWindow
、QWidget
、QDialog
这几个类创建窗口;
区别
QMainWindow
,Qt的主窗口管理类;某些部件如菜单QMenuBar
、状态栏QStatusBar
只能在QMainWindow
上显示;
QDialog
,Qt的对话框窗口基类,主要用于短期任务(如设置窗口)和用于与用户进行简短的交流;QDialog
可以是模态和非模态的,通俗点说就是它可以在窗口没关闭前,它的父窗口无法选中;QDialog
继承自QWidget
;
QWidget
,是Qt中所有用户界面对象(像按钮、文本框)的基类;
创建窗口
PySide6创建窗体是非常简单的,示例代码如下:
import sys
from PySide6 import QtWidgets
import ui_xxxx # 创建UI的代码,如果有的话
class MyWindow(QtWidgets.QMainWindow):#继承QMainWindow
def __init__(self):
super().__init__()
#在此创建窗体上的部件
#使用UI文件创建部件,如果有的话
self.ui = ui_xxxx.Ui_MainWindow()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QtWidgets.QApplication([])
window = MyWindow() #实例化窗口
window.show()#显示
sys.exit(app.exec())
代码中定义了一个MyWindow
的类,继承自QMainWindow
;MyWindow
经过实例化后即可调用show()
方法显示窗口;
如果使用了槽函数,只需在MyWindow
类中定义或重新定义即可;
使用QDialog
class MyDialog(QtWidgets.QDialog):
def __init__(self):
super().__init__()
#在此创建窗体上的部件
#使用UI文件创建部件,如果有的话
self.ui = ui_xxxx.Ui_Dialog()
self.ui.setupUi(self)
使用QWidget
class MyWidget(QtWidgets.QWidget):
def __init__(self):
super().__init__()
#在此创建窗体上的部件
#使用UI文件创建部件,如果有的话
self.ui = ui_xxxx.Ui_Form()
self.ui.setupUi(self)