首页 > 编程语言 >【Python】使用PySide6 + Qt Designer创建简易用户界面(含用户交互)

【Python】使用PySide6 + Qt Designer创建简易用户界面(含用户交互)

时间:2024-07-18 16:25:40浏览次数:18  
标签:Designer Qt Python self py PySide6 ui

【Python】使用PySide6 + Qt Designer创建简易用户界面(含用户交互)

文章目录

相关代码运行环境

电脑系统:Windows 11
Python版本:3.12.4
使用的Python开发环境:PyCharm Community Edition 2024.1

操作过程

1.PySide6和Qt Designer的安装

首先需要确认是否已安装pip库,使用快捷键win+R,输入cmd打开终端,输入pip -V语句,如果出现如下显示,则代表pip已安装

已安装pip

如果没有安装成功,会提示:“pip”不是内部或外部命令,也不是可运行的程序或批处理文件,在cmd中输入以下命令进行安装:
py -m ensurepip --upgrade
在cmd中输入以下命令安装PySide6:
pip install pyside6
在以下地址安装Qt Designer
Qt Designer安装官网

2.创建外部工具PyUIC和Qt Designer

首先说明我们所需要用到的这两个工具的作用:
Qt Designer:自定义用户界面(包括按钮、文本框等),完成后生成.ui文件
PyUIC:将.ui文件转换为.py文件,右键运行即可看到我们之前制作的用户图形界面(以窗口展示)

新建项目以及配置环境详见之前的文章:【Python】Tkinter + Pandas实现窗口表格显示

在我们新建的项目中,点击左上角文件->设置->工具->外部工具
我们新建外部工具,名称随意填写(自己认得出就行),工具设置中程序一栏选择designer.exe的存放位置,一般在python->Lib->site_packages->PySide6

实参部分填写:$FilePath$(或者不填也行)

工作目录在程序一栏填写完成后会自动填充(或者也可以填写:$ProjectFileDir$
如下图所示:

在这里插入图片描述

外部工具PyUIC的设置同上,其中pyside6-uic.exe存放于python->Scripts

实参部分填写:$FileName$ -o $FileNameWithoutExtension$.py

工作目录在程序一栏填写完成后会自动填充(或者也可以填写:$FileDir$

3.Qt Designer的简单使用说明

现在我们已经配置好了外部工具,在PyCharm中右键我们的工程文件夹,在外部工具中找到我们刚刚设置的Qt Designer,打开后界面如下:

在这里插入图片描述

我们选择Widget并创建,可以看到,左侧是组件板块,中间是设计板块,右侧是信息板块(包含组件、信号/槽等信息)
在左侧组件板块中选择push buttontext browser置于中间设计板块中,一个简单的界面就完成了,在右侧的信息板块中我们可以修改这些组件的名称(组件较多时建议修改,方便后续代码中的引用)

在这里插入图片描述

保存该工程文件于我们刚刚的项目文件夹中,我们可以看到一个.ui类型的文件,点击进去就可以打开我们刚刚的设计界面
右键该.ui文件,选择外部工具中的PyUIC,将其转换为.py文件(注意后续如果修改该界面改变的是.ui文件,不会改变.py文件,需要重新使用PyUIC生成新的.py文件)
新建.py文件,通过from “.ui生成的.py文件名” import Ui_Form
获取之前的ui设计,通过该新建的.py文件我们可以实现所需的功能

4.完整代码展示以及最终结果

由于代码较简单就不逐行说明了,代码中注释应该可以完整解释

import sys
from PySide6 import QtWidgets
from test1 import Ui_Form

count = 0


class MyPyQT_Form(QtWidgets.QWidget, Ui_Form):
    def __init__(self):
        super(MyPyQT_Form, self).__init__()
        self.setupUi(self)  # 设置初始ui界面
        self.pushButton.clicked.connect(self.pushButton_click)  # 调用按钮点击函数

    def pushButton_click(self):
        global count
        count += 1
        textline = '按下按键'+str(count)+'次'
        self.textBrowser.append(textline)
        # 打印信息至textBrowser(append打印是在之前的文本后面换行添加新文本,想覆盖之前文本打印的话可以使用setText)


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    my_pyqt_form = MyPyQT_Form()
    my_pyqt_form.show()
    sys.exit(app.exec())
# 将最终界面显示在窗口

最终运行结果如下:
在这里插入图片描述

标签:Designer,Qt,Python,self,py,PySide6,ui
From: https://blog.csdn.net/lin_xi15/article/details/140522729

相关文章

  • 一个python代码
     一个python代码importosimportnumpyasnpimportrefrompathlibimportPathoutput_folder='./data'filename_lineEdge=r'./data/fx0022/dom1lines_Edge.txt'filename_jgw=r'./data/fx0022/test/dom1.jgw'#读取线段文件data=[]i=......
  • 基于SpringBoot的宠物领养系统-07863(免费领源码+开发文档)可做计算机毕业设计JAVA、PHP
    摘 要21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论文主要是对宠物领养系统......
  • ubuntu 20 pyenv安装python环境
    安装pyenvgitclonehttps://github.com/pyenv/pyenv.git~/.pyenv或者自动安装程序curlhttps://pyenv.run|bash依赖库sudoapt-getupdatesudoapt-getupgradesudoapt-getinstallgccmakezlib1g-devdist-upgradesudoapt-getinstalllibbz2-devbuild-essenti......
  • python中的 == 和 is
    在Python中,==和is都是用于比较两个值的运算符,但它们的用途和含义不同。理解它们之间的区别对于编写正确的代码非常重要。==运算符==运算符用于比较两个对象的值是否相等。它检查对象的内容是否相同,而不关心它们是否是同一个对象。a=[1,2,3]b=[1,2,3]print(a......
  • springboot整合mqtt
    安装emqxhttps://blog.csdn.net/weixin_41542513/article/details/134328627springboot整合mqtt1、引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-integration&l......
  • Qt区分鼠标按下时移动的是哪个多边形
    使用不同的鼠标事件处理器:为每个多边形分配不同的事件处理器,或者在同一个处理器中使用逻辑来区分。检查鼠标点击位置:在鼠标按下事件中,检查鼠标的位置是否在某个多边形的边上或顶点上。使用图形的标识符:给每个多边形分配一个唯一的标识符,并在鼠标事件中使用这个标识符来识......
  • Socket、WebSocket 和 MQTT 的区别
    Socket协议定义:操作系统提供的网络通信接口,抽象了TCP/IP协议,支持TCP和UDP。特点:通用性:不限于Web应用,适用于各种网络通信。协议级别:直接使用TCP/UDP,需要手动管理连接和数据传输。实现复杂性:需要编写代码处理连接、数据传输和错误。使用场景:实时通信(聊天应用)、文件传输......
  • QT中常见QImage、Pixmap、Mat三种图像格式的转换
    写在前面    暑假实习参与了单位的QT项目开发,在过程中遇见了一些困扰以及解决方式,在此记录下来常见图像格式之间的转换    我将他们都封装在了一个类中,代码见下#ifndefUTIL_H#defineUTIL_H#include"qimage.h"#include"QPixmap"#include"opencv2/open......
  • python 内置类型简述(4) —— 集合映射类(set、frozenset、dict)
    注:Iterable[int]为任一元素为int类型的可迭代对象,如列表[1,2,3]注:set()为一个集合实例,可用任一列表替换(如{‘asd’}),frozenset()、dict()同理注:set|frozenset|dict表示参数可为set、frozenset、dict任一类型,set()|frozenset()|dict()同理1.新建字典{k......
  • qtchooser -install qt6 $(which qmake6)
    qtchooser-installqt6$(whichqmake6)https://askubuntu.com/questions/1460242/ubuntu-22-04-with-qt6-qmake-could-not-find-a-qt-installation-of InUbuntu22.04afterinstalling Qt6 usingsudoaptinstallqt6-base-devcalling qmake resultsinaner......