初始化
This commit is contained in:
1
demo/design/__init__.py
Normal file
1
demo/design/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
"""Qt Designer 生成界面代码所在包。"""
|
||||
87
demo/design/main_win.py
Normal file
87
demo/design/main_win.py
Normal 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
78
demo/design/main_win.ui
Normal 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>
|
||||
Reference in New Issue
Block a user