项目新建.ui文件

保存覆盖项目中原ui文件

ui转换为.py文件

新建自定义类继承UI界面

# -*- codeing = utf-8 -*-
# @Time : 2025/5/28 10:00
# @Author : geXX
# @File : main.py
# @Software : PyCharm


# -*- coding: utf-8 -*-
import sys # 导入系统模块,用于处理程序退出等操作
from PySide6.QtWidgets import QApplication, QWidget, QMessageBox  # 导入Qt组件
from PySide6.QtCore import Qt  # 导入Qt核心功能
from myUi import Ui_Form  # 导入自动生成的UI类


class MainWindow(QWidget, Ui_Form):
    """
    主窗口类,继承自QWidget和Ui_Form
    无论UI文件如何修改,都能自动适应变化
    QWidget 是Qt提供的基础窗口
    Ui_Form 是Qt Designer自动生成的界面布局
    """

    def __init__(self, parent=None):
        # 初始化父类
        super().__init__(parent) # 调用父类的初始化方法

        # 设置UI界面(自动加载Qt Designer设计的界面)
        self.setupUi(self)

        # 自定义初始化
        self.init_ui()

        # 连接信号槽
        self.connect_signals()


    def init_ui(self):
        """初始化界面元素"""
        self.setWindowTitle("文本编辑器")  # 设置窗口标题
        self.pushButton.setText("清空文本")  # 修改按钮文字
        self.textEdit.setPlaceholderText("请输入文本...")  # 设置文本框提示


    def connect_signals(self):
        """连接信号与槽

        """

        pass


    def closeEvent(self, event):
        """重写关闭事件
            点击窗口关闭时弹出对话框,防止误操作
        """
        reply = QMessageBox.question(
            self, '确认退出',
            '确定要退出程序吗?',
            QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No,
            QMessageBox.StandardButton.No # 默认选中否
        )

        if reply == QMessageBox.StandardButton.Yes:
            event.accept() # 接收关闭事件,程序退出
        else:
            event.ignore() # 忽略,程序继续运行


if __name__ == '__main__':  # 主程序入口,直接运行该程序时执行

    # 启用高DPI缩放,不同分辨率屏幕上正常显示
    QApplication.setHighDpiScaleFactorRoundingPolicy(
        Qt.HighDpiScaleFactorRoundingPolicy.PassThrough
    )

    # 创建应用实例,Qt程序必备
    app = QApplication(sys.argv)

    # 创建主窗口
    window = MainWindow()
    window.resize(400, 300)  # 可选的窗口大小设置

    # 显示窗口
    window.show()

    # 执行应用
    sys.exit(app.exec())

原ui文件用PySide6_Designer修改,

设计师改界面,程序员写逻辑,互不干扰

改完Designer只需重新生成myui.py,不用改main.py

试着运行这个main.py,然后:

  1. 用Qt Designer修改myui.ui(比如移动按钮位置)

  2. 重新生成myui.py

  3. 再次运行main.py → 你会发现界面变了,但按钮点击功能依然有效!

Logo

一站式 AI 云服务平台

更多推荐