diff --git a/src/budget/_category.py b/src/budget/_category.py index 51ebaba..8084dc8 100644 --- a/src/budget/_category.py +++ b/src/budget/_category.py @@ -1,4 +1,5 @@ from PyQt6.QtWidgets import * +import json def initCategorytTab(self): # 创建连接信息控件 @@ -32,12 +33,18 @@ def onCategoryAddClicked(self): label1 = QLabel("Category Name:") line1 = QLineEdit() - label2 = QLabel("Category Type") + label2 = QLabel("Category Type:") line2 =QComboBox() + label3 = QLabel("Description:") + line3 = QLineEdit() line2.addItem("Income") line2.addItem("Expense") + button1 = QPushButton("Confirm") button2 = QPushButton("Abort") + buttonLayout = QHBoxLayout() + buttonLayout.addWidget(button1) + buttonLayout.addWidget(button2) button1.clicked.connect(addDialog.accept) button2.clicked.connect(addDialog.reject) @@ -45,14 +52,33 @@ def onCategoryAddClicked(self): layout = QFormLayout() layout.addRow(label1,line1) layout.addRow(label2,line2) - layout.addRow(button1,button2) + layout.addRow(label3,line3) + layout.addRow(buttonLayout) addDialog.setLayout(layout) # 显示添加数据对话框 if addDialog.exec() == QDialog.DialogCode.Accepted: try: - print("success") + # 获取输入数据 + name = line1.text() + type = line2.currentText() + if (name == ''): + raise Exception('Category name cannot be empty') + if(type == "Income"): + type = True + else: + type = False + + description = line3.text() + + # JSONB插入数据 + data = {"name": line1.text(), "income_type": type, "description": description} + data = json.dumps(data) + print("insert data:",data) + self.cur.execute("INSERT INTO category (meta) VALUES (%s)", (data,)) + self.conn.commit() + except Exception as e: # 处理插入数据错误 print(e)