本简介介绍了一个简单的Python图形用户界面(GUI)程序的创建过程。它利用了Tkinter库来实现基本的窗口和控件操作,适合初学者学习基础编程技巧与界面设计。
```python
# -*- coding: utf-8 -*-
# 由阅读ui文件 aaa.ui 自动生成的表单实现
#
# 使用 PyQt5 UI code generator 版本:5.11.3 创建
#
# 警告!在此文件中所做的所有更改将被丢失!
import sys, os
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
class U_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(MainWindow)
MainWindow.resize(1204, 836)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
if sizePolicy.hasHeightForWidth():
height_for_width_policy = True
else:
height_for_width_policy = False
sizePolicy.setHeightForWidth(height_for_width_policy)
MainWindow.setSizePolicy(sizePolicy)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName(centralwidget)
self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.tableWidget.setGeometry(QtCore.QRect(80, 240, 1041, 371))
self.tableWidget.setAutoScrollMargin(9)
row_count = 9
column_count = 8
self.tableWidget.setRowCount(row_count)
self.tableWidget.setColumnCount(column_count)
for i in range(row_count):
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(i, item)
font = QtGui.QFont()
font.setPointSize(8)
horizontal_header_items = [, , Item Name, Phase, Variant,
Model Name, Model, Additional]
for i in range(column_count):
if 1 <= i < column_count:
item = QtWidgets.QTableWidgetItem(horizontal_header_items[i])
self.tableWidget.setHorizontalHeaderItem(i, item)
if font is not None:
item.setFont(font)
self.tableWidget.horizontalHeader().setCascadingSectionResizes(True)
# 添加按钮和复选框
button_positions_and_texts = [
(130, 720, MSG Box, pushButton),
(860, 720, Clear, pushButton_4),
(940, 720, Import , pushButton_3),
(940, 670, Export, pushButton_7)
]
for pos_x, pos_y, text, name in button_positions_and_texts:
btn = QtWidgets.QPushButton(self.centralwidget)
btn.setGeometry(QtCore.QRect(pos_x, pos_y, 81 if name == pushButton_3 or name == pushButton_7 else 221, 28))
btn.setText(text)
setattr(btn, objectName, name)
# 添加复选框
checkbox_positions_and_texts = [
(840, 630, DelOriginal, checkBox_5),
(100, 670, , radioButton)
]
for pos_x, pos_y, text, name in checkbox_positions_and_texts:
if checkbox in str(name).lower():
cb = QtWidgets.QCheckBox(self.centralwidget)
setattr(cb, setGeometry, QtCore.QRect(pos_x, pos_y, 91 if name == checkBox_5 else 115, 19))
cb.setText(text)
setattr(cb, objectName, name)
elif radioButton in str(name):
rb = QtWidgets.QRadioButton(self.centralwidget)
setattr(rb, setGeometry, QtCore.QRect(pos_x, pos_y, 115 if text == else None , 19))
rb.setText(text)
setattr(rb, objectName, name)
# 添加输入框
line_edit_positions_and_texts = [
(80, 30, Project Name:, lineEdit),
(80, 30 + 54 * i , text if text else , flineEdit_{i+1})
for i in range(9)
]
widget = QtWidgets.QWidget(self.centralwidget)
widget.setGeometry(QtCore.QRect(80, 30, 1041, 191))
verticalLayout = QtWidgets.QVBoxLayout(widget)
layouts_and_items = [
(horizontal, [flineEdit_{i} for i in range(2)]),
(horizontal_2, [flineEdit_{i} for i in range(3,7)]),
(horizontal_3, [flineEdit_{i} for i