【PySide6】(二)第一个Qt程序

第一个Qt程序

开发方式

Qt 提供了两种技术来构建用户界面:

  • Qt Widgets: 是一种命令式编程和设计方法,自 Qt 诞生以来就一直存在,使其成为一种稳定可靠的 UI 应用程序技术。
  • Qt Quick:一种声明式编程和设计方法,使您能够通过用简单的元素来描述它们来创建流畅的 UI。

Qt Widget 适合对性能要求高、界面风格传统的桌面应用程序开发;而 Qt Quick 则更适合开发具有现代 UI 设计、需要流畅交互体验的移动应用程序和触摸屏应用程序。

我们首先来学习Qt Widgets式的开发,首先介绍一下我们需要使用到的一个工具Qt Designer,这个工具也被打包在我们下载的PySide6中,其具体位置在虚拟环境根目录下的\Lib\site-packages\PySide6文件夹中找到designer.exe文件。每次都这样找非常麻烦,建议复制一个其快捷方式放到桌面上。其可以通过拖拉控件的方式帮助我们快速构建前端页面。

基础空框架

Qt的主要窗口有三种类型:

  • QMainWindow提供了一个包含菜单栏、工具栏、状态栏和中心部件的完整框架。QMainWindow 适合用作应用程序的主要窗口,特别是当需要复杂的用户界面布局时。
  • QWeidget是轻量级的,通常用于创建自定义控件或简单的对话框。QWidget 不自带任何标准的窗口元素(如菜单栏、工具栏),因此非常适合构建自定义的 UI 组件或作为其他复杂窗口(如 QMainWindowQDialog)的一部分。
  • QDialog 用于创建对话框窗口,通常是临时性的,用于与用户进行交互以获取输入或确认操作。它可以是模态的(阻止用户与主窗口交互,直到对话框关闭)或非模态的(允许用户继续与主窗口交互)。QDialog 常见于打开文件、保存文件、设置选项等场景。

除了上述的三种基础框架之外,我们还需要了解核心组件QApplication,QApplication是 Qt 库中用于管理应用程序的控制流和主要设置的类。它是每个 Qt 应用程序的核心对象,主要负责事件处理、主消息循环、应用程序的初始化和最终化等操作。一个 Qt 应用程序通常只有一个QApplication实例。

我们最常用的就是QWidget。首先搭建一个QWidget的基础框架,后续就是往这个框架中填充内容,有关基础框架的搭建应该多练习几遍,烂熟于心。

【基础框架】

from PySide6.QtWidgets import QApplication,QWidget

class MyWindow(QWidget):  # 自定义的窗口继承QWidget
    def __init__(self):
        super().__init__()  # 继承父类的初始化方法

if __name__ == '__main__':
    app = QApplication()  # QApplication作为应用程序的入口点
    window = MyWindow()  # 实例化
    window.show()  # 展示
    app.exec()  # 退出

运行结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

designer设计

上面是通过python代码实现的框架搭建和最基础的页面显示,接下来使用一下PySide提供的Qt Widgets Designer工具。

首先让我们来看一下这个软件的界面,刚打开的时候,它会提示让我们创建一个窗口,我们选择QWidget。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

打开后的界面是这个样子的

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

左边是我们用到的窗口中的控件,我们可以通过拖拉的方式将其添加到中间的窗口中去

中间就是我们主要的窗口的设计区域,使用快捷键【ctrl+R】可以进行快速地预览

右边的部分主要是窗口和各个组件的属性设置,我们从左侧拖动一个文本框控件到窗口中,在右侧观察一下其属性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

首先是QObeject,因为我们现在操作的是QWidget窗口,而QWidget又继承自QObeject,所以所有的QWidget组件都会有QObeject和QWidget的相关属性。

Obeject的主要属性为objectName,它是每个 Qt 对象(如窗口、按钮、标签等)的一个标识符。这个标识符是一个字符串,用于在代码中唯一地引用该对象。可以把它想象成对象的 “名字”,方便在程序的不同部分对特定对象进行操作。

QWidget中有各种各样控件定义的属性,这里介绍一些重要的属性:

  • geometry :包含了窗口部件(QWidget)的位置和大小信息。它由x、y、width和height四个值组成,x和y表示窗口部件在其父部件中的坐标位置(左上角为原点),width和height分别表示窗口部件的宽度和高度。

  • sizePolicy :决定了QWidget在布局中的尺寸行为。它是一个QSizePolicy类型的对象,包含了水平和垂直方向上的策略。例如,QSizePolicy=Fixed表示部件的大小是固定的,不会随着布局的变化而改变;QSizePolicy=Expanding表示部件会尽可能地扩展以填充可用空间。

  • windowTitle 属性:用于设置窗口部件(如果它是一个顶层窗口)的标题栏文字。例如:

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • visible 属性:决定了所选组件是否可见。当visible为true时,部件会显示在屏幕上;当visible为false时,部件不会被显示。

剩余还有关于控件大小、位置、字体等等属性,可以自己尝试一下设置不同的值来熟悉这些属性。

除了QObeject和QWidget的相关属性之外,大部分控件都会有自己特殊的属性,不同控件不同的特有属性我会在后面讲解某类控件的时候详细介绍。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在,我们可以利用designer工具来做一个简单的登录界面,只需要使用到按钮(PushButton)、标签(Label)和文本框(Plain Text Edit)三种简单的控件,目前还不需要实现其功能。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

设计完成之后记得保存,Designer设计的文件保存后缀名都为ui

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值