初始化

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

1
demo/design/__init__.py Normal file
View File

@@ -0,0 +1 @@
"""Qt Designer 生成界面代码所在包。"""

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"))

78
demo/design/main_win.ui Normal file
View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>611</width>
<height>571</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,0">
<item>
<widget class="QTextBrowser" name="LogBrowser"/>
</item>
<item>
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>132</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="YesBtn">
<property name="text">
<string>yes</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="NoBtn">
<property name="text">
<string>no</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>131</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>