python - PyQt4:如何通过单击按钮从一个窗口切换到另一个窗口
问题描述
因此,我为我的 python 类构建了一个“TeacherPortal”,老师希望我们通过单击专门使用 PyQt4 的按钮转到另一个窗口。我环顾四周,但我只发现了 PyQt5,我对 GUI 还是很陌生
我尝试创建 2 个不同的类,一个用于主窗口,另一个用于第二个窗口(它们是单独的类),我将一个按钮与它链接到另一个类,但它不起作用
from PyQt4 import QtGui, QtCore
import sys
class Window(QtGui.QMainWindow):
def __init__(self):
super(Window,self).__init__()
self.setWindowTitle("TeahcherPortal")
self.setGeometry(50,50,800,600)
self.FirstWindow()
def FirstWindow(self):
btn = QtGui.QPushButton("Login",self)
btn.clicked.connect(SecondPage())
btn.move(400,300)
self.show()
class SecondPage(QtGui.QMainWindow):
def __init__(self):
super(SecondPage,self).__init__()
self.setGeometry(50,50,800,600)
def run():
app = QtGui.QApplication(sys.argv)
GUI = Window()
Page = SecondPage()
sys.exit(app.exec_())
run()
我预计它会转到另一个窗口,但遗憾的是这并没有发生。但发生的事情是我得到一个错误TypeError: connect() slot argument should be a callable or a signal, not 'SecondPage'
解决方案
试试看:
import sys
# PyQt5
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
# PyQt4
#from PyQt4.QtCore import *
#from PyQt4.QtGui import *
class Window(QMainWindow):
def __init__(self):
super(Window,self).__init__()
self.setWindowTitle("TeahcherPortal")
self.setGeometry(50,50,800,600)
self.FirstWindow()
def FirstWindow(self):
btn = QPushButton("Login", self)
btn.clicked.connect(self.secondPage) # - (SecondPage())
btn.move(400,300)
self.show()
def secondPage(self): # +++
self.secondWindow = SecondPage()
self.secondWindow.show()
class SecondPage(QMainWindow):
def __init__(self):
super(SecondPage,self).__init__()
self.setWindowTitle("SecondPage")
self.setGeometry(50,50,800,600)
def run():
app = QApplication(sys.argv)
GUI = Window()
Page = SecondPage()
sys.exit(app.exec_())
run()
推荐阅读
- java - 如何在 JPA 上加入键值表
- tableau-api - 如何在画面上制作额外的过滤器
- google-cloud-platform - 阿帕奇尼菲。授予所有策略但是尝试列出队列时出错。权限不足。无法满足此请求
- javascript - 为什么 css 类不包含在 bundle css 中?
- javascript - 在 javascript 的 var 中分配 WordPress 当前用户名值
- python - 给定Django-Python中模型内部的名称,从云存储访问图像
- r - 识别 R 向量中的特定元素顺序模式
- microsoft-teams - 有没有办法使用 Graph API 将通知(主动消息)发送到活动和聊天窗口,而之前没有对话 ID?
- python - Networkx Spring Layout:减少 iIsolated 节点到主图的距离
- c# - EF 6 代码优先为多对多表生成额外表?