def delete_data(self): # 创建一个新窗口,并设置其属性 status_label = QLabel() new_window = QWidget(self) new_window.setWindowTitle("删除员工信息") new_window.setGeometry(200, 200, 500, 300) # 创建返回按钮并设置其属性 return_button = QPushButton("返回", new_window) return_button.clicked.connect(new_window.close) return_button.clicked.connect(self.window.show) # 设置输入框 self.input_box = QLineEdit(new_window) status_label.setText("输入需要删除的对象,格式为:部门/姓名/性别/职位/工号/状态,对象") # 获取输入框中的数据 data = self.input_box.text().split(",") if len(data) != 2 or not all(map(lambda x: x.strip(), data)): status_label.setText("输入格式错误!请按照 部门/姓名/性别/职位/工号/状态,对象 的格式输入。") return # 执行 SQL 删除语句 sql = "DELETE FROM Staff WHERE {} = (?)".format(data[0]) self.cursor.execute(sql, (data[1],)) try: self.cursor.execute(sql, data[0]) self.cnxn.commit() self.query("SELECT * FROM Staff") status_label.setText("数据删除成功!") except: status_label.setText("数据删除失败!") # 添加表格、按键到新窗口中 self.v_layout = QVBoxLayout(new_window) self.v_layout.addWidget(status_label) self.v_layout.addWidget(self.input_box) self.v_layout.addWidget(return_button) self.v_layout.addWidget(status_label) new_window.setLayout(self.v_layout) new_window.show()输出窗口什么都没有
时间: 2024-02-14 19:06:49 浏览: 65
QTImageDisplay-master.zip_DisplayUI QT_QLabel重写_QTImageDisplay_重
根据您提供的代码,可以看出您没有将输入框和标签添加到布局中,导致无法在窗口中显示。建议您将以下两行代码:
```
self.v_layout.addWidget(status_label)
self.v_layout.addWidget(self.input_box)
```
添加到输入框设置和 SQL 语句执行之前,即在以下这段代码的前面:
```
data = self.input_box.text().split(",")
if len(data) != 2 or not all(map(lambda x: x.strip(), data)):
status_label.setText("输入格式错误!请按照 部门/姓名/性别/职位/工号/状态,对象 的格式输入。")
return
```
这样就可以将输入框和标签添加到窗口的布局中,从而在窗口中显示了。
阅读全文