使用PySide6创建窗口以及各类窗口的区别

在本文中,你将了解Qt的窗口,以及QMainWindowQWidgetQDialog之间的区别和在PySide6中的使用方法;

Qt主要使用PySide6.QtWidgets.QMainWindowQWidgetQDialog这几个类创建窗口;

区别

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的类,继承自QMainWindowMyWindow经过实例化后即可调用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)

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/pyside6-window.html

分类: 计算机技术
推荐阅读:
什么是控制字符? 控制字符是ASCII码表中的一部分字符,其编码在0到31之间(包括0和31),以及字符127;这些字符通常不用于显示文本,而是用于控制计算机的输入输出,或者用于传输数据时控制信息;
Python计算卡特兰数(catanlan number) 卡特兰数(Catalan number),是组合数学中一种常出现于各种计数问题中的数列;本文使用Python来计算卡特兰数;
Kali国内源 Kali是一个开源的、基于Debian的Linux发行版,旨在进行高级渗透测试和安全审计;Kali 包含数百个针对各种信息安全任务的工具,例如渗透测试、安全研究、计算机取证和逆向工程。
Python int()函数 在Python中,int()函数用于将一个数值或字符串转换为整数。如果提供了一个字符串作为参数,那么int()函数将尝试将该字符串解释为一个整数,并返回对应的整数值。如果字符串无法解释为整数,则会引发ValueError异常。
Python 异常处理及常见错误 一般情况下,在python无法正确处理程序时,就会发生异常;当发生异常时,我们需要捕获它并进行处理,否则程序会终止运行。
判断文件格式 在某些时候,我们需要判断文件是什么类型;而通过文件后缀(扩展名)并不能满足需求,因为扩展名可随意修改,试想一下对方给你发送了一个伪造扩展名的图片文件,实际上却是个木马病毒,又或者恶意攻击者上传了一个木马病毒到你的服务器,而你的程序却认为它是张图片;