我是PyQt5的新手,我正在制作一个简单的程序,用户首先会看到两个按钮的选择,当他们按下一个应该将它们带到一个新的屏幕时,当他们按下另一个按钮它应该采取它们到不同的屏幕。按下按钮时,我无法打开新小部件。我尝试这样做的方法是通过创建一个创建窗口小部件的功能,当用户按下按钮时运行此功能,但当前窗口小部件不是由该功能创建的。
这是我的代码。
def StudentLog():
class StudentLogin(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Student log in screen')
self.show()
class Login(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
QToolTip.setFont(QFont('SansSerif', 10))
self.setToolTip('Login screen')
btn = QPushButton('Student Login', self)
btn.setToolTip('This will log you in as a student')
btn.move(10, 50)
btn.clicked.connect(StudentLog)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Log in screen')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Login()
sys.exit(app.exec_())
答案 0 :(得分:0)
这里的问题是你只在函数StudentLog()
中声明一个类,然后你永远不会创建这个类的实例。
我建议在类Login
中移动此函数,以创建一个方法,您可以轻松调用以创建此实例,并且优点是您可以使用{跟踪新窗口小部件{1}}:
self.