Files
mvvm--learn/demo/design/main_win.py
2026-05-18 11:33:59 +08:00

88 lines
3.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- 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"))