pyqt界面设计的流程是什么?如何做一个商品数据管理界面?界面具有增删改查功能,给出代码。
时间: 2024-03-26 08:35:59 浏览: 26
PyQt界面设计的流程一般为以下几步:
1. 使用Qt Designer设计UI界面,设置控件、布局、样式等属性。
2. 将UI文件转换为Python代码文件。
3. 在Python代码中添加功能逻辑,连接信号和槽函数。
4. 运行Python代码,显示界面并响应用户操作。
以下是一个简单的商品数据管理界面的代码示例,具有增删改查功能:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QPushButton, QLabel, QLineEdit
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('商品数据管理')
# 创建商品列表表格
self.tableWidget = QTableWidget(self)
self.tableWidget.setGeometry(50, 50, 500, 200)
self.tableWidget.setColumnCount(3)
self.tableWidget.setHorizontalHeaderLabels(['商品编号', '商品名称', '商品价格'])
# 添加测试数据
self.tableWidget.setRowCount(3)
self.tableWidget.setItem(0, 0, QTableWidgetItem('001'))
self.tableWidget.setItem(0, 1, QTableWidgetItem('商品1'))
self.tableWidget.setItem(0, 2, QTableWidgetItem('10.00'))
self.tableWidget.setItem(1, 0, QTableWidgetItem('002'))
self.tableWidget.setItem(1, 1, QTableWidgetItem('商品2'))
self.tableWidget.setItem(1, 2, QTableWidgetItem('20.00'))
self.tableWidget.setItem(2, 0, QTableWidgetItem('003'))
self.tableWidget.setItem(2, 1, QTableWidgetItem('商品3'))
self.tableWidget.setItem(2, 2, QTableWidgetItem('30.00'))
# 创建标签和编辑框用于添加新商品
self.label_id = QLabel('商品编号:', self)
self.label_id.setGeometry(50, 270, 80, 20)
self.lineEdit_id = QLineEdit(self)
self.lineEdit_id.setGeometry(130, 270, 80, 20)
self.label_name = QLabel('商品名称:', self)
self.label_name.setGeometry(50, 300, 80, 20)
self.lineEdit_name = QLineEdit(self)
self.lineEdit_name.setGeometry(130, 300, 80, 20)
self.label_price = QLabel('商品价格:', self)
self.label_price.setGeometry(50, 330, 80, 20)
self.lineEdit_price = QLineEdit(self)
self.lineEdit_price.setGeometry(130, 330, 80, 20)
# 创建添加商品按钮
self.button_add = QPushButton('添加商品', self)
self.button_add.setGeometry(50, 360, 100, 30)
self.button_add.clicked.connect(self.add_product)
# 创建删除商品按钮
self.button_del = QPushButton('删除商品', self)
self.button_del.setGeometry(170, 360, 100, 30)
self.button_del.clicked.connect(self.del_product)
# 添加商品
def add_product(self):
row_count = self.tableWidget.rowCount()
self.tableWidget.setRowCount(row_count + 1)
self.tableWidget.setItem(row_count, 0, QTableWidgetItem(self.lineEdit_id.text()))
self.tableWidget.setItem(row_count, 1, QTableWidgetItem(self.lineEdit_name.text()))
self.tableWidget.setItem(row_count, 2, QTableWidgetItem(self.lineEdit_price.text()))
# 删除商品
def del_product(self):
selected_items = self.tableWidget.selectedItems()
if selected_items:
for item in selected_items:
row = item.row()
self.tableWidget.removeRow(row)
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
```
该界面包括一个商品列表表格,用于显示商品数据,以及一个添加商品的表单和两个按钮,分别用于添加和删除商品。其中,添加和删除商品的逻辑分别在add_product和del_product函数中实现,通过连接信号和槽函数实现按钮的响应。