软硬件环境
- Windows 10 64bit
- Anaconda3 with python 3.7
- PyQt5
实战
进入 designer
设计界面,非常简单,拖控件,一个 Label
和 一个 Table Widget
然后双击表格处,添加表格的列元素,分别是 编号、数量 和 操作,数量 部分使用些模拟数据,操作 列,我们就来添加一个 清零 按钮,作用就是将第二列的元素清零
操作完成后保存成 .ui
文件,然后转换成对应的 python
代码
pyuic5.bat -o ui.py project.ui
最后写核心代码
import sys
import random
from PyQt5.QtWidgets import QMainWindow, QTableWidgetItem, QAbstractItemView, QPushButton, QApplication, QWidget, QHBoxLayout
from ui import Ui_MainWindow
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
# 设置总的行数,列数已经在designer中做好了
self.tableWidget.setRowCount(5)
self.tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)
for i in range(5):
# 设置第一列
item_id = QTableWidgetItem(str(i + 1))
self.tableWidget.setItem(i, 0, item_id)
# 设置第二列
item_num = QTableWidgetItem(str(random.randint(10, 100)))
self.tableWidget.setItem(i, 1, item_num)
# 设置第三列,也就是添加一个清零按钮
self.tableWidget.setCellWidget(i, 2, self.add_button(i, 1))
def add_button(self, row, column):
# 实例化按钮
self.button_add = QPushButton('清零')
# 设置样式
self.button_add.setStyleSheet(''' text-align : center;
background-color : Red;
height : 30px;
font : 12px; ''')
# 绑定槽函数
self.button_add.clicked.connect(lambda: self.clear_number(row, column))
# 将按钮放在一个水平布局里
widget = QWidget()
layout = QHBoxLayout()
layout.addWidget(self.button_add)
widget.setLayout(layout)
return widget
def clear_number(self, row, column):
item = QTableWidgetItem('0')
self.tableWidget.setItem(row, column, item)
if __name__ == '__main__':
app = QApplication(sys.argv)
windows = MainWindow()
windows.show()
sys.exit(app.exec_())
程序启动后,点击相应行中的清零按钮,那么同行中的数量值就变为了0
源码下载
https://github.com/xugaoxiang/learningPyQt5
PyQt5系列教程
更多 PyQt5
教程,请移步