因此,我的预期结果是login.ui在单击login按钮时显示。我的代码到达了def gotologin
函数和class LoginScreen
,但它没有加载ui
import sys
from PyQt5.uic import loadUi
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QDialog, QApplication
class WelcomeScreen(QDialog):
def __init__(self):
super(WelcomeScreen, self).__init__()
loadUi('welcomescreen.ui', self)
self.login.clicked.connect(self.gotologin)
def gotologin(self):
login = LoginScreen()
widget.addWidget(login)
widget.setCurrentIndex(widget.currentIndex()+1)
class LoginScreen(QDialog):
def __init__(self):
super(LoginScreen, self).__init__()
loadUi('login.ui', self)
app = QApplication(sys.argv)
welcome = WelcomeScreen()
widget = QtWidgets.QStackedWidget()
widget.addWidget(welcome)
widget.setFixedHeight(800)
widget.setFixedWidth(1200)
window = WelcomeScreen()
window.show()
try:
sys.exit(app.exec_())
except:
print('Exiting')
您的逻辑很奇怪,因为您正在创建两个WelcomeScreen:一个添加到QStackedWidget,另一个作为窗口。除此之外,QStackedWidget从未显示过。作为蛋糕上的糖衣,你没有限制变量的范围
考虑到上述情况,最好创建一个实现切换小部件和限制范围逻辑的控制器
最后,不要让例外沉默,因为它们存在的原因是为了表明有什么不对劲。我更喜欢当程序失败时,它会对我大喊大叫,因为后者是许多错误的原因
相关问题 更多 >
编程相关推荐