基于PySide6的界面开发

项目新建.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 → 你会发现界面变了,但按钮点击功能依然有效!

基于PySide6开发扫雷游戏是指使用PySide6框架来创建一个图形用户界面(GUI)版本的扫雷游戏。PySide6是一个跨平台的GUI工具包,它是Qt for Python的官方实现,提供了一套完整的工具和控件来帮助开发者设计和实现复杂的窗口应用程序。 以下是使用PySide6开发扫雷游戏的一些基本步骤和概念: 1. **安装PySide6**:首先,需要确保已经安装了PySide6。可以通过pip安装: ``` pip install PySide6 ``` 2. **创建主窗口**:在PySide6中,所有的GUI组件都是从QWidget派生的。主窗口可以通过创建一个QMainWindow或QWidget的子类来实现。 3. **设计布局**:使用QGridLayout来布局游戏的网格。QGridLayout允许你把窗口分成行和列的网格,并在每个网格中放置小部件,如按钮,每个按钮对应游戏中的一个格子。 4. **初始化游戏数据**:创建一个二维数组来存储扫雷游戏的状态信息,包括每个格子是否是雷、是否被揭露、周围雷的数量等。 5. **添加逻辑**: - 为每个按钮添加点击事件的处理逻辑,实现揭露格子或者标记雷的功能。 - 当玩家点击一个没有雷的格子时,应该自动揭露周围没有雷的格子(递归揭露),并显示周围雷的数量。 - 如果玩家点击到雷,则游戏结束,揭露所有雷的位置。 - 如果玩家揭露所有非雷格子,则玩家胜利。 6. **添加游戏结束和重置功能**:提供游戏结束时的处理逻辑和重置游戏的功能。 7. **测试和调试**:运行程序,测试游戏的所有功能是否正常工作,并进行调试。 使用PySide6开发扫雷游戏的关键是将游戏逻辑和界面逻辑分离,确保代码的可读性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值