当前位置: 首页 > article >正文

Qt Designer and Python: Build Your GUI

1.install pyside6

2.pyside6-designer.exe 发送到桌面快捷方式

在Python安装的所在 Scripts 文件夹下找到此文件。如C:\Program Files\Python312\Scripts

 

3. 打开pyside6-designer 设计UI

4.保存为simple.ui 文件,再转成py文件

用代码执行 pyside6-uic.exe simple.ui -o simple.py

生成源文件simple.py:

# -*- coding: utf-8 -*-
 
################################################################################
## Form generated from reading UI file 'simple.ui'
##
## Created by: Qt User Interface Compiler version 6.8.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
 
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
    QMetaObject, QObject, QPoint, QRect,
    QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
    QFont, QFontDatabase, QGradient, QIcon,
    QImage, QKeySequence, QLinearGradient, QPainter,
    QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QAbstractButton, QApplication, QDialog, QDialogButtonBox,
    QLabel, QSizePolicy, QTextEdit, QWidget)
 
class Ui_Dialog(object):
    def setupUi(self, Dialog):
        if not Dialog.objectName():
            Dialog.setObjectName(u"Dialog")
        Dialog.resize(736, 520)
        self.buttonBox = QDialogButtonBox(Dialog)
        self.buttonBox.setObjectName(u"buttonBox")
        self.buttonBox.setGeometry(QRect(50, 360, 341, 32))
        self.buttonBox.setOrientation(Qt.Orientation.Horizontal)
        self.buttonBox.setStandardButtons(QDialogButtonBox.StandardButton.Cancel|QDialogButtonBox.StandardButton.Ok)
        self.txtName = QTextEdit(Dialog)
        self.txtName.setObjectName(u"txtName")
        self.txtName.setGeometry(QRect(340, 110, 221, 31))
        self.txtpassword = QTextEdit(Dialog)
        self.txtpassword.setObjectName(u"txtpassword")
        self.txtpassword.setGeometry(QRect(340, 170, 221, 31))
        self.label = QLabel(Dialog)
        self.label.setObjectName(u"label")
        self.label.setGeometry(QRect(230, 120, 61, 21))
        font = QFont()
        font.setPointSize(14)
        self.label.setFont(font)
        self.label.setLineWidth(3)
        self.label_2 = QLabel(Dialog)
        self.label_2.setObjectName(u"label_2")
        self.label_2.setGeometry(QRect(220, 180, 71, 21))
        self.label_2.setFont(font)
 
        self.retranslateUi(Dialog)
        self.buttonBox.accepted.connect(Dialog.objectName)
        self.buttonBox.rejected.connect(Dialog.objectName)
 
        QMetaObject.connectSlotsByName(Dialog)
    # setupUi
 
    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(QCoreApplication.translate("Dialog", u"Dialog", None))
        self.label.setText(QCoreApplication.translate("Dialog", u"\u59d3\u540d", None))
        self.label_2.setText(QCoreApplication.translate("Dialog", u"\u5bc6\u7801", None))
    # retranslateUi

加上点击事件

# -*- coding: utf-8 -*-

################################################################################
## Form generated from reading UI file 'simple.ui'
##
## Created by: Qt User Interface Compiler version 6.8.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
    QMetaObject, QObject, QPoint, QRect,
    QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
    QFont, QFontDatabase, QGradient, QIcon,
    QImage, QKeySequence, QLinearGradient, QPainter,
    QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QAbstractButton, QApplication, QDialog, QDialogButtonBox,
    QLabel, QSizePolicy, QTextEdit, QWidget,QVBoxLayout)



class Ui_Dialog(object):
    """

    """
    def setupUi(self, Dialog):
        """

        :param Dialog:
        :return:
        """
        if not Dialog.objectName():
            Dialog.setObjectName(u"Dialog")
        Dialog.resize(736, 520)
        self.buttonBox = QDialogButtonBox(Dialog)
        self.buttonBox.setObjectName(u"buttonBox")
        self.buttonBox.setGeometry(QRect(90, 280, 341, 32))
        self.buttonBox.setOrientation(Qt.Orientation.Horizontal)
        self.buttonBox.setStandardButtons(QDialogButtonBox.StandardButton.Cancel|QDialogButtonBox.StandardButton.Ok)

        self.txtName = QTextEdit(Dialog)
        self.txtName.setObjectName(u"txtName")
        self.txtName.setGeometry(QRect(340, 110, 221, 31))
        self.txtpassword = QTextEdit(Dialog)
        self.txtpassword.setObjectName(u"txtpassword")
        self.txtpassword.setGeometry(QRect(340, 170, 221, 31))
        self.label = QLabel(Dialog)
        self.label.setObjectName(u"label")
        self.label.setGeometry(QRect(230, 120, 61, 21))
        font = QFont()
        font.setPointSize(14)
        self.label.setFont(font)
        self.label.setLineWidth(3)
        self.label_2 = QLabel(Dialog)
        self.label_2.setObjectName(u"label_2")
        self.label_2.setGeometry(QRect(230, 180, 71, 21))
        self.label_2.setFont(font)

        self.retranslateUi(Dialog)
        self.buttonBox.accepted.connect(Dialog.objectName)
        self.buttonBox.rejected.connect(Dialog.objectName)
        self.buttonBox.clicked.connect(self.buttonClicked)
        QMetaObject.connectSlotsByName(Dialog)
     # setupUi


    def buttonClicked(self,button):

          role = self.buttonBox.standardButton(button)
          if role == QDialogButtonBox.StandardButton.Ok:


              print("Save clicked")
          elif role == QDialogButtonBox.StandardButton.Cancel:

              print("Cancel clicked")

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(QCoreApplication.translate("Dialog", u"Dialog\u6d4b\u8bd5", None))
#if QT_CONFIG(tooltip)
        self.buttonBox.setToolTip(QCoreApplication.translate("Dialog", u"\u6309\u786e\u5b9a", None))
#endif // QT_CONFIG(tooltip)
        self.label.setText(QCoreApplication.translate("Dialog", u"\u59d3\u540d", None))
        self.label_2.setText(QCoreApplication.translate("Dialog", u"\u5bc6\u7801", None))
    # retranslateUi


simply2.py 引用 simply.py

# -*- coding: utf-8 -*-
# 版权所有 2024 涂聚文有限公司
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:pip install pyqt6
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2023.1 python 3.11
# os        : windows 10
# database  : mysql 9.0 sql server 2019, poostgreSQL 17.0
# Datetime  : 2024/12/7 23:37
# User      : geovindu
# Product   : PyCharm
# Project   : Pysimple
# File      : simply2.py
# explain   : 学习
 
import sys
from PySide6.QtWidgets import QApplication,QWidget
from simple import Ui_Dialog
 
class Windows(Ui_Dialog,QWidget):
    """
 
    """
    def __init__(self):
        """
 
        """
        super().__init__()
        self.setupUi(self)
 
if __name__ == '__main__':
    app=QApplication(sys.argv)
    win=Windows()
    win.show()
    m=app.exec()
    sys.exit(m)

测试运行结果:


http://www.kler.cn/a/518796.html

相关文章:

  • Oracle Agile PLM Web Service Java示例测试开发(一)环境环境、准备说明
  • 乒乓球日常烧拍日记之四海绵支撑
  • CentOS 7 安装fail2ban hostdeny方式封禁ip —— 筑梦之路
  • Flutter中PlatformView在鸿蒙中的使用
  • 路径总和(力扣112)
  • 奇怪的单词(快速扩张200个单词)
  • fpga系列 硬件:FPGA 最小系统参考图与图释+Zynq-7010 最小系统Zynq-7010 启动配置
  • 解锁 MySQL 数据库的无限潜能:全方位深度解析
  • 容器内判断当前的运行环境是docker还是podman
  • 从曾国藩的经历看如何打破成长中的瓶颈
  • 【算法】数论基础——唯一分解定理(算术基本定理)python
  • ES6 类语法:JavaScript 的现代化面向对象编程
  • 前端开发学习路线
  • 【信息系统项目管理师-选择真题】2017下半年综合知识答案和详解
  • 在java java.util.Date 已知逝去时间怎么求年月日
  • Spring AOP通知类型全解析:掌握方法执行前后的艺术
  • Github 2025-01-25Rust开源项目日报Top10
  • JavaScript学习笔记(3)
  • 16.知识图谱中的本体、实体、属性与关系:区别与联系
  • Redis缓存:春招面试的关键知识点
  • Electron版本列表
  • 【自然语言处理(NLP)】循环神经网络RNN
  • 【unity游戏开发之InputSystem——06】PlayerInputManager组件实现本地多屏的游戏(基于unity6开发介绍)
  • 【Flask】在Flask应用中使用Flask-Limiter进行简单CC攻击防御
  • 钉钉群机器人设置——python版本
  • Android AOP:aspectjx