QT Pyside2 Designer 的基本使用

在这里插入图片描述

文章目录

  • 前言
    • PySide2
    • PySide2 Designer
  • 一、安装PySide2、PyQt5
  • 二、使用designer.exe
    • 2.1 工具的大致介绍
    • 2.2 创建一个新的UI
    • 2.3 UI文件另存为/保存(Ctrl+S)
    • 2.4 使用python操作UI文件
  • 总结


前言

PySide2

QT PySide2 是一个用于 Python 编程语言的开源框架,它提供了与 QT C++ 框架的绑定,使得开发者可以使用 Python 进行跨平台的图形用户界面 (GUI) 应用程序开发。QT 是一个功能强大的跨平台应用程序开发框架,具有丰富的 GUI 组件和工具集,以及广泛的应用领域。

PySide2 是 QT 的官方 Python 绑定,由 The Qt Company 维护和支持。它允许开发者使用 Python 的简洁语法和强大的功能来构建 GUI 应用程序,而无需学习 C++。PySide2 提供了对 QT 的完整访问,包括 QT 的核心库、GUI 组件、网络功能、多媒体支持等。

PySide2 Designer

Designer 是一个可视化界面设计工具,它允许开发者通过拖拽和放置的方式创建和编辑图形用户界面 (GUI)。设计师可以使用各种 QT 控件和布局来构建界面,设置属性和样式,定义交互逻辑,并预览界面的外观和行为。

QT PySide2 Designer 提供了一个直观和用户友好的界面,使得界面设计变得简单和快速。开发者可以在设计器中选择和放置各种 QT 控件,如按钮、标签、文本框、列表框等,然后通过属性编辑器设置控件的属性,如大小、位置、颜色、字体等。同时,设计器还提供了布局管理器,用于管理控件的布局和自动调整。

设计好界面后,开发者可以将设计文件保存为.ui 格式,这是一种 XML 文件格式,包含了界面的布局、属性和信号槽的定义。设计文件可以被 PySide2 的代码加载和使用,使得开发者可以在应用程序中动态地创建和管理界面。

总结而言,QT PySide2 Designer 是一个强大的界面设计工具,使得开发者能够轻松创建和编辑 QT GUI 应用程序的界面


提示:以下是本篇文章正文内容,下面案例可供参考

一、安装PySide2、PyQt5

pip install pyside2 -i https://pypi.douban.com/simple/
pip install pyqt5-tools -i https://pypi.douban.com/simple/

安装了之后,在本地找到pyside2模块目录,主要使用这个工具:designer.exe,建议创建个快捷方式;在这里插入图片描述

二、使用designer.exe

2.1 工具的大致介绍

  • 1、工具需要的组件,可点击某个组件拖入至创建好的界面中;
  • 2、查看大概的GUI界面效果,选中组件、双击部分组件可直接修改组件的标题或属性值;
  • 3、查看、修改、删除、选中、已选用的组件及组件名称,关键是操作各种组件的布局;
  • 4、操作组件的属性、标题、水平距离、垂直距离、宽高大小、字体、等其他样式;

在这里插入图片描述

2.2 创建一个新的UI

点击:文件/新建
在这里插入图片描述

2.3 UI文件另存为/保存(Ctrl+S)

点击:文件/另存为
文件后缀为:ui
在这里插入图片描述

2.4 使用python操作UI文件

读入UI文件、修改对象组件的属性、绑定按钮的方法

import sys
from PySide2.QtWidgets import QApplication, QWidget, QTableWidgetItem
from PySide2.QtUiTools import loadUiType, QUiLoader
from PySide2.QtCore import QFile, Qt
from PySide2.QtGui import QIconclass Gui(QWidget):def __init__(self):# 加载ui文件,创建qt文件对象,加载文件对象并创建ui对象QtFileObj = QFile("yk.ui")QtFileObj.open(QFile.ReadOnly)QtFileObj.close()self.ui = QUiLoader().load(QtFileObj)# 设置界面图标icon = QIcon("yk.ico")self.ui.setWindowIcon(icon)# 变量定义、ui组件对象属性设置self.index = 0self.ui.tableWidgetAnswer.horizontalHeader().setVisible(True)  # 设置tableWidget组件的标题显示为Trueself.ui.startButton.clicked.connect(self.logger_show)  # 绑定按钮的方法def logger_show(self):# 插入内容logger_item = {'one': '-' * 20, 'two': '-' * 20, 'three': '-' * 20, 'four': '-' * 20,'five': '程序已经开始运行,请勿多次点击开始运行按钮'}self.ui.tableWidgetAnswer.insertRow(int(self.ui.tableWidgetAnswer.rowCount()))self.index += 1new_item_one = QTableWidgetItem(logger_item['one'])new_item_one.setTextAlignment(Qt.AlignCenter)new_item_two = QTableWidgetItem(logger_item['two'])new_item_two.setTextAlignment(Qt.AlignCenter)new_item_three = QTableWidgetItem(logger_item['three'])new_item_three.setTextAlignment(Qt.AlignCenter)new_item_four = QTableWidgetItem(logger_item['four'])new_item_four.setTextAlignment(Qt.AlignCenter)new_item_five = QTableWidgetItem(logger_item['five'])new_item_five.setTextAlignment(Qt.AlignCenter)self.ui.tableWidgetAnswer.setItem(self.index - 1, 0, new_item_one)self.ui.tableWidgetAnswer.setItem(self.index - 1, 1, new_item_two)self.ui.tableWidgetAnswer.setItem(self.index - 1, 2, new_item_three)self.ui.tableWidgetAnswer.setItem(self.index - 1, 3, new_item_four)self.ui.tableWidgetAnswer.setItem(self.index - 1, 4, new_item_five)# 定位至最新行self.ui.tableWidgetAnswer.verticalScrollBar().setSliderPosition(self.index)# 刷新QApplication.processEvents()if __name__ == '__main__':app = QApplication(sys.argv)ykGuiObj = Gui()ykGuiObj.ui.show()sys.exit(app.exec_())

总结

本篇文章适合小白同学看看,做个简单的GUI工具完全够用,主要根据自己的需求不断深入的学习和进步,下面为给大家列出一些注意事项和学习资源,小伙伴有问题和建议可以在评论处说欧;
1、组件的属性不但可以在designer工具中设置,也可以在python设置组件的属性,最后会以python设置的属性为准;
2、使用GUI常见的问题就是,执行函数时界面卡死,关于这个问题我会在下面这篇文章来介绍;
QT pyside2 线程嵌套子线程 实现开始运行和停止运行:https://blog.csdn.net/EXIxiaozhou/article/details/131401531
3、入门文档请看白月黑羽:https://www.byhy.net/tut/py/gui/qt_01
4、入门视频请看白月黑羽:https://www.bilibili.com/video/BV19A411H7dS/
5、深入学习博主推荐-国内站点:https://gitee.com/feiyangqingyun
6、深入学习博主推荐-国际站点:https://github.com/feiyangqingyun
7、CSDN个人主页:https://blog.csdn.net/feiyangqingyun
8、官网:https://www.pythonguis.com/topics/pyside2/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/130798.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Faster Rcnn

一、公用特征Feature Maps的获取 二、Region Proposal Network Feature Maps[bs,1024,38,38]经过3*3卷积,然后分别经过两个1*1的卷积,通道数分别为18,36 18 9*2 代表每个位置9个先验框为背景和目标的概率 36 9*4 代表每个位置9个先验框的…

pinduoduo(商品详情)API接口

为了进行电商平台 的API开发,首先我们需要做下面几件事情。 1)开发者注册一个账号 2)然后为每个pinduoduo应用注册一个应用程序键(App Key) 。 3)下载pinduoduo API的SDK并掌握基本的API基础知识和调用 4&#xff…

【Terraform】Terraform自动创建云服务器脚本

Terraform 是由 HashiCorp 创建的开源“基础架构即代码”工具 (IaC) 使用HCL(配置语言)描述云平台基础设施(这里教你使用低级基础设施:交换机、云服务器、VPC、带宽) Terraform提供者&#xf…

数据结构和算法(5):二叉树

树 向量允许通过下标或秩,在常数的时间内找到目标对象;然而,一旦需要对这类结构进行修改,那么无论是插入还是删除,都需要耗费线性的时间。 列表允许借助引用或位置对象,在常数的时间内插入或删除元素&…

Springboot整合JWT完成验证登录

目录 一、引入依赖二、JwtUtil 代码解读三、LoginController 代码解读四、整体代码五、结果展示 一、引入依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></depende…

el-table 实现表、表格行、表格列合并

最近写vue开发项目的时候&#xff0c;很多地方用到了Element组件中的Table 表格。经过一周的边学边做&#xff0c;我总结了以下三种有关表格的合并方法。 一、合并表头 话不多说&#xff0c;先看效果图 代码如下&#xff1a; 表格结构如上&#xff0c;其中:header-cell-style对…

233062C++QTday5

实现一个图形类&#xff08;Shape&#xff09;&#xff0c;包含受保护成员属性&#xff1a;周长、面积&#xff0c; 公共成员函数&#xff1a;特殊成员函数书写 定义一个圆形类&#xff08;Circle&#xff09;&#xff0c;继承自图形类&#xff0c;包含私有属性&#xff1a;半…

自动化测试框架unittest与pytest的区别!

引言   前面文章已经介绍了python单元测试框架&#xff0c;大家平时经常使用的是unittest&#xff0c;因为它比较基础&#xff0c;并且可以进行二次开发&#xff0c;如果你的开发水平很高&#xff0c;集成开发自动化测试平台也是可以的。而这篇文章主要讲unittest与pytest的区…

QQ 逻辑漏洞可执行文件 漏洞复现

本文由掌控安全学院- wax 投稿 首先拿到QQ的版本&#xff0c;目前可测试版本包括QQ最新版本&#xff0c;TIM最新版本 新创建一个bat文件&#xff08;这个可以随意&#xff0c;上马的也可以&#xff0c;exe也可以&#xff09; &#xff0c;本次测试内容如下首先向你的手机端发一…

对接西部数据Western Digital EDI 系统

近期我们为国内某知名电子产品企业提供EDI解决方案&#xff0c;采用知行之桥 EDI 系统作为核心组件&#xff0c;成功与西部数据Western Digital&#xff08;简称西数&#xff09;建立EDI连接&#xff0c;实现数据安全且自动化传输。 EDI实施需求 EDI连接 传输协议&#xff1a;A…

数据结构 排序

目录 第八章 排序8.1排序的基本概念1. 概念2. 排序算法的分类 8.2 插入排序8.2.1 直接插入排序8.2.2 算法效率分析8.2.2 折半插入排序总结8.2.3 希尔排序 8.3 交换排序8.3.1冒泡排序8.3.2快速排序&#xff08;了解栈的过程&#xff09; 8.4 选择排序8.4.1 简单选择排序8.4.2 堆…

小工具之视频抽帧

视频抽帧工具&#xff0c;所有视频所在目录以及抽帧图片保存路径 单个视频抽帧操作步骤&#xff1a; 选择文件路径->选择保存路径->拖动跳帧间隔->点击抽取帧 批量视频抽帧操作步骤&#xff1a; 选择文件夹路径->选择保存路径->拖动跳帧间隔->点击抽取帧 imp…

iview label-in-value 和 @on-change 的使用

在select加上label-in-value 之后&#xff0c;就可以调用通过on-change默认的方法&#xff0c;获取到value和label的值了 <Select v-model"params.area" placeholder"选择区县" label-in-value clearable style"width: 102px"><Option…

pip和conda的环境管理,二者到底应该如何使用

关于pip与conda是否能混用的问题&#xff0c;Anaconda官方早就给出了回答 先说结论&#xff0c;如果conda和pip在相同环境下掺杂使用&#xff0c;尤其是频繁使用这两个工具进行包的安装&#xff0c;可能会导致环境状态混乱 就像其他包管理器一样&#xff0c;大部分这些问题均…

mysql在ubuntu上命令行登陆密码不正确

1.登陆提示如下 2.使用mysql -u root -p登录也是类似的 3.打开宝塔面板 点击root密码&#xff0c;更改密码后即可在命令行界面登录 4.登录效果如下

深度学习环境搭建——之Anaconda3安装配置

序言&#xff1a; 工作中一直从事的是FPGA嵌入式开发&#xff0c;图像处理相关的工作。目前随着AI的浪潮&#xff0c;也被动卷入到深度学习的漩涡中&#xff0c;为了不被漩涡卷入深渊&#xff0c;只能自学些深度学习相关的知识&#xff0c;俗话说“好记性不如烂笔头”何况已经…

profinet是什么?

profinet是什么&#xff1f; 参考&#xff1a;一文读懂Profibus、Profinet、Ethernet的区别 PROFINETPROFIbusetherNET&#xff0c;把Profibus的主从结构移植到以太网上&#xff0c;所以profinet会有Controller和Device&#xff0c;他们的关系可以简单的对应于profibus的Maste…

【C++】构造函数意义 ( 构造函数显式调用与隐式调用 | 构造函数替代方案 - 初始化函数 | 初始化函数缺陷 | 默认构造函数 )

文章目录 一、构造函数意义1、类的构造函数2、构造函数显式调用与隐式调用3、构造函数替代方案 - 初始化函数4、初始化函数缺陷5、默认构造函数6、代码示例 - 初始化函数无法及时调用 一、构造函数意义 1、类的构造函数 C 提供的 构造函数 和 析构函数 作为 类实例对象的 初始化…

长短期记忆网络(LSTM)

概念 三个门&#xff1a;遗忘门、输入门、输出门 候选记忆单元 记忆单元 隐状态 ot 控制是否让输出&#xff0c;是否要进行重置。 总结 代码实现 import torch from torch import nn from d2l import torch as d2lbatch_size,num_steps 32,35 train_iter,vocab d2l.load_…

Linux中安装MySQL_图解_2023新

1.卸载 为了避免不必要的错误发生,先将原有的文件包进行查询并卸载 // 查询 rpm -qa | grep mysql rpm -qa | grep mari// 卸载 rpm -e 文件名 --nodeps2.将安装包上传到指定文件夹中 这里采用的是Xftp 3.将安装包进行解压 tar -zxvf 文件名 -C 解压路径4.获取解压的全路…