我现在有一个基本的 GUI,每个页面都在自己的文件中。我可以毫无问题地在每个页面之间导航,但我很难将搜索查询简单地传递给另一个小部件。这是我在主文件中设置连接的地方:from PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *import sysimport searchimport watchingimport helpinfoimport resultsclass MainWindow(QMainWindow): def __init__(self, parent=None): ''' Constructor ''' QMainWindow.__init__(self, parent) self.centralWidget = QStackedWidget() self.setCentralWidget(self.centralWidget) self.startScreen = Start(self) self.searchScreen = search.Search(self) self.watchingScreen = watching.Watching(self) self.helpInfoScreen = helpinfo.HelpInfo(self) self.resultsScreen = results.Results(self) self.centralWidget.addWidget(self.startScreen) self.centralWidget.addWidget(self.searchScreen) self.centralWidget.addWidget(self.watchingScreen) self.centralWidget.addWidget(self.helpInfoScreen) self.centralWidget.addWidget(self.resultsScreen) self.centralWidget.setCurrentWidget(self.startScreen) self.startScreen.searchClicked.connect(lambda: self.centralWidget.setCurrentWidget(self.searchScreen)) self.startScreen.watchingClicked.connect(lambda: self.centralWidget.setCurrentWidget(self.watchingScreen)) self.startScreen.helpInfoClicked.connect(lambda: self.centralWidget.setCurrentWidget(self.helpInfoScreen)) self.searchScreen.searchSubmitted.connect(lambda: self.centralWidget.setCurrentWidget(self.resultsScreen)) self.searchScreen.passQuery.connect(lambda: self.resultsScreen.grabSearch) #This is the problem line按照我的理解,我现在所拥有的应该是有效的。当用户在搜索页面上提交一些文本时,它会调用 submitSearch() 函数。该函数发出两个信号:第一个,searchSubmitted,将屏幕更改为结果屏幕(这按预期工作)。第二个,passQuery,应该将文本框的内容传递给结果文件中连接的函数grabSearch()。但是,尽管已连接,但 passQuery 似乎从未被结果页面捕获。我和打印报表证实它正在被发出,但仅此而已。我在这里缺少什么?
添加回答
举报
0/150
提交
取消