class LoginWindow(QWidget): def init(self): super().init() self.initUI() def initUI(self): self.setFixedSize(800, 500) self.setWindowTitle('鸡爪称重系统') # 创建一个QStackedWidget控件 self.stacked_widget = QStackedWidget(self) self.stacked_widget.setGeometry(0, 0, 800, 500) # 创建Login界面 login_widget = QWidget() self.stacked_widget.addWidget(login_widget) # 在Login界面上创建一个按钮 button = QPushButton('开始称重', login_widget) button.move(100, 100) button.setGeometry(300, 200, 200, 50) button.clicked.connect(self.startWeighing) def startWeighing(self): self.info_label = QLabel("员工信息", self) self.info_label.move(100, 50) self.info_label.setStyleSheet("font-size: 24px; color: black; background-color: #eee; border-radius: 10px;") self.id_label = QLabel("员工ID:", self) self.id_label.move(70, 100) self.id_label.setStyleSheet("font-size: 18px; color: black;") self.name_label = QLabel("姓名:", self) self.name_label.move(70, 150) self.name_label.setStyleSheet("font-size: 18px; color: black;") self.six_label = QLabel("性别:", self) self.six_label.move(70, 200) self.six_label.setStyleSheet("font-size: 18px; color: black;") self.sfz_label = QLabel("身份证:", self) self.sfz_label.move(70, 250) self.sfz_label.setStyleSheet("font-size: 18px; color: black;") self.tel_label = QLabel("电话:", self) self.tel_label.move(70, 300) self.tel_label.setStyleSheet("font-size: 18px; color: black;") self.setFixedSize(800, 500) self.setWindowTitle('员工信息') # 创建数字显示框和外框 value_widget = QWidget(self) value_widget.setGeometry(500, 100, 200, 100) self.lcd_1 = QLCDNumber(value_widget) self.lcd_1.setSegmentStyle(QLCDNumber.Flat) self.lcd_1.setDigitCount(10) self.lcd_1.display('0 KG') # self.thread = DataThread() # self.thread.valueUpdated.connect(self.lcd_1.display) # self.thread.start() hbox_layout = QHBoxLayout(value_widget) hbox_layout.addWidget(self.lcd_1) hbox_layout.setContentsMargins(0, 0, 0, 0) hbox_layout.setSpacing(0) value_widget.setStyleSheet(''' background-color: #eee; border-radius: 10px; border: 2px solid black; ''') # 创建返回按钮 back_button = QPushButton('返回', self) back_button.setGeometry(600, 400, 100, 50) back_button.clicked.connect(self.backToLoginWindow) # 设置窗口大小和标题 self.setFixedSize(800, 500) self.setWindowTitle('员工信息') def backToLoginWindow(self): self.stacked_widget.setCurrentIndex(0)为什么没有执行跳转动作
时间: 2024-02-09 12:12:52 浏览: 18
这段代码中的`startWeighing`函数是在点击"开始称重"按钮时执行的,它会在当前的QWidget中创建一些新的QWidget,但是并没有将新的QWidget添加到QStackedWidget中,因此在执行`backToLoginWindow`函数时,当前的QWidget仍然是登录界面,没有跳转到其他界面。
为了实现跳转到其他界面的功能,需要在`startWeighing`函数中将新创建的QWidget添加到QStackedWidget中,代码如下:
```python
def startWeighing(self):
# 创建一个新的QWidget
info_widget = QWidget(self.stacked_widget)
# 添加标签等控件到info_widget中
# 将info_widget添加到QStackedWidget中
self.stacked_widget.addWidget(info_widget)
# 切换到新的QWidget
self.stacked_widget.setCurrentWidget(info_widget)
```
这样,在执行`backToLoginWindow`函数时,当前的QWidget就是新创建的QWidget,而不是登录界面,就能够正确地实现跳转到其他界面的功能。
相关问题
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) if name == 'main': app = QApplication(sys.argv) loginWindow = LoginWindow() loginWindow.show() sys.exit(app.exec_())点击开始称重后,弹窗输入ID
你需要给这个按钮添加一个点击事件,然后在事件中弹出一个输入框让用户输入ID。可以使用QInputDialog来实现这个输入框。以下是一个示例代码:
```
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QInputDialog
import sys
class LoginWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setFixedSize(800, 500)
self.setWindowTitle('鸡爪称重系统')
# 创建一个按钮
button = QPushButton('开始称重', self)
button.setGeometry(300, 200, 200, 50)
button.clicked.connect(self.showInputDialog)
def showInputDialog(self):
text, okPressed = QInputDialog.getText(self, "输入ID", "请输入ID:")
if okPressed and text != '':
print('输入的ID是:', text)
if __name__ == '__main__':
app = QApplication(sys.argv)
loginWindow = LoginWindow()
loginWindow.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个showInputDialog方法,它会在按钮被点击时弹出一个输入框。用户输入完ID后,我们会把ID输出到控制台。你可以将这个输出改为保存用户输入的ID,以便在其他地方使用。
class LoginWindow(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setFixedSize(800, 500) self.setWindowTitle('鸡爪称重系统') if __name__ == '__main__': app = QApplication(sys.argv) loginWindow = LoginWindow() loginWindow.show() sys.exit(app.exec_())创建一个按钮
可以在 `initUI` 方法中添加一个按钮,如下所示:
```python
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)
if __name__ == '__main__':
app = QApplication(sys.argv)
loginWindow = LoginWindow()
loginWindow.show()
sys.exit(app.exec_())
```
这样就在窗口中创建了一个名为“点击我”的按钮,并且该按钮的位置是 `(100, 100)`。