初始化

This commit is contained in:
rxy
2026-05-18 11:33:59 +08:00
commit b22e46dd60
20 changed files with 1440 additions and 0 deletions

87
demo/design/main_win.py Normal file
View File

@@ -0,0 +1,87 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'main_win.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!
#
# 学习说明:
# 这个文件由 Qt Designer 的 .ui 文件生成,真实项目中通常不手动维护。
# 这里添加中文注释是为了帮助理解界面树、布局和控件名称。
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
"""Qt Designer 生成的主窗口界面类。"""
def setupUi(self, MainWindow):
"""
创建控件并设置布局。
MainWinView 会调用 self.setupUi(self),因此这里创建出来的控件
会成为 MainWinView 的成员,例如 self.LogBrowser、self.YesBtn。
"""
# 设置主窗口对象名Qt 的样式和自动连接机制可能会用到它。
MainWindow.setObjectName("MainWindow")
# 设置主窗口初始大小。
MainWindow.resize(475, 571)
# 创建中心控件。QMainWindow 必须通过 setCentralWidget 设置主区域。
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
# 创建垂直布局:上方放日志框,下方放按钮区域。
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setObjectName("verticalLayout")
# 创建日志显示控件View 层会把它包装成 LogView。
self.LogBrowser = QtWidgets.QTextBrowser(self.centralwidget)
self.LogBrowser.setObjectName("LogBrowser")
self.verticalLayout.addWidget(self.LogBrowser)
# 创建按钮区域 frame用来承载水平布局。
self.frame = QtWidgets.QFrame(self.centralwidget)
self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame.setObjectName("frame")
# 创建水平布局:左右 spacer 负责把两个按钮推到中间。
self.horizontalLayout = QtWidgets.QHBoxLayout(self.frame)
self.horizontalLayout.setObjectName("horizontalLayout")
spacerItem = QtWidgets.QSpacerItem(132, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
# 创建 Yes 按钮。binder.py 中会绑定它的 clicked 信号。
self.YesBtn = QtWidgets.QPushButton(self.frame)
self.YesBtn.setObjectName("YesBtn")
self.horizontalLayout.addWidget(self.YesBtn)
# 创建 No 按钮。binder.py 中会绑定它的 clicked 信号。
self.NoBtn = QtWidgets.QPushButton(self.frame)
self.NoBtn.setObjectName("NoBtn")
self.horizontalLayout.addWidget(self.NoBtn)
# 右侧弹性空白,与左侧 spacer 一起让按钮组居中。
spacerItem1 = QtWidgets.QSpacerItem(131, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem1)
self.verticalLayout.addWidget(self.frame)
# 设置拉伸比例:日志区域占 10 份,按钮区域占 1 份。
self.verticalLayout.setStretch(0, 10)
self.verticalLayout.setStretch(1, 1)
MainWindow.setCentralWidget(self.centralwidget)
# 设置可翻译文本,例如窗口标题和按钮文字。
self.retranslateUi(MainWindow)
# Qt 自动槽连接机制,本 demo 没有依赖它,但生成代码会保留。
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
"""设置界面上的文字,便于后续做国际化翻译。"""
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.YesBtn.setText(_translate("MainWindow", "yes"))
self.NoBtn.setText(_translate("MainWindow", "no"))