class EmployeeInfoWindow(QWidget): def init(self, user_id): super().init() self.user_id = user_id self.initUI() def initUI(self): # 连接数据库,获取员工信息 conn = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', database='jj_tset') cursor = conn.cursor() cursor.execute("SELECT * FROM employee_table WHERE user_id='%s'" % self.user_id) result = cursor.fetchone() conn.close() # 创建用于显示员工信息的控件 info_label = QLabel("员工信息", self) info_label.move(100, 100) name_label = QLabel("姓名:" + result[1], self) name_label.move(100, 150) age_label = QLabel("年龄:" + str(result[2]), self) age_label.move(100, 200) # TODO: 创建其他员工信息控件 # 设置窗口大小和标题 self.setFixedSize(800, 500) self.setWindowTitle('员工信息') class LoginWindow(QWidget): def init(self): super().init() self.initUI() def initUI(self): self.setFixedSize(800, 500) self.setWindowTitle('鸡爪称重系统') # 创建一个按钮 button = QPushButton('开始称重', self) button.move(100, 100) button.setGeometry(300, 200, 200, 50) button.clicked.connect(self.showInputDialog) def showInputDialog(self): # 创建一个输入框,获取员工ID text, okPressed = QInputDialog.getText(self, "输入员工ID", "输入员工ID:") if okPressed and text != '': # 连接数据库,检查员工ID是否存在 conn = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', database='jj_tset') cursor = conn.cursor() cursor.execute("SELECT * FROM employee_table WHERE user_id='%s'" % text) result = cursor.fetchone() conn.close() if result: # 员工ID存在,跳转到下一个界面,显示员工信息 print('输入的ID是:', text) employee_info_window = EmployeeInfoWindow(text) employee_info_window.show() self.hide() else: # 员工ID不存在,弹出提示框,提示重新输入 QMessageBox.warning(self, '错误', '员工ID不存在,请重新输入!') if name == 'main': app = QApplication(sys.argv) loginWindow = LoginWindow() loginWindow.show() sys.exit(app.exec_())没有跳转界面
时间: 2023-12-14 19:39:29 浏览: 59
在代码中,当员工ID存在时,你创建了一个新的 `EmployeeInfoWindow` 对象并调用了 `show()` 方法来显示该界面,但没有隐藏 `LoginWindow` 界面。因此,你需要在创建 `EmployeeInfoWindow` 后隐藏 `LoginWindow` 界面,可以在 `showInputDialog()` 方法中添加 `self.hide()` 来实现。例如:
```python
def showInputDialog(self):
# 创建一个输入框,获取员工ID
text, okPressed = QInputDialog.getText(self, "输入员工ID", "输入员工ID:")
if okPressed and text != '':
# 连接数据库,检查员工ID是否存在
conn = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', database='jj_tset')
cursor = conn.cursor()
cursor.execute("SELECT * FROM employee_table WHERE user_id='%s'" % text)
result = cursor.fetchone()
conn.close()
if result:
# 员工ID存在,跳转到下一个界面,显示员工信息
print('输入的ID是:', text)
employee_info_window = EmployeeInfoWindow(text)
employee_info_window.show()
self.hide() # 隐藏当前界面
else:
# 员工ID不存在,弹出提示框,提示重新输入
QMessageBox.warning(self, '错误', '员工ID不存在,请重新输入!')
```
这样,当员工ID存在时,`LoginWindow` 界面就会隐藏,同时显示 `EmployeeInfoWindow` 界面。