【发布时间】:2015-01-06 12:04:15
【问题描述】:
在 PyQt4 中,我有一个主窗口,单击设置按钮时会打开设置对话框
from PyQt4 import QtCore, QtGui
import ui_Design, ui_Settings_Design
class MainDialog(QtGui.QMainWindow, ui_Design.Ui_arbCrunchUI):
def __init__(self, parent=None):
super(MainDialog, self).__init__(parent)
self.setupUi(self)
self.settingsBtn.clicked.connect(lambda: self.showSettings())
def showSettings(self):
dialog = QtGui.QDialog()
dialog.ui = SettingsDialog()
dialog.ui.setupUi(dialog)
dialog.exec_()
上述方法有效,我的 SettingsDialog 已显示,但我无法让 setPageIndex 正常工作
class SettingsDialog(QtGui.QDialog, ui_Settings_Design.Ui_SettingsDialog):
def __init__(self, parent=None):
super(SettingsDialog, self).__init__(parent)
self.setupUi(self)
self.bookSettingsBtn.clicked.connect(self.setPageIndex)
@QtCore.pyqtSlot()
def setPageIndex(self):
print 'selected'
self.settingsStackedWidget.setCurrentIndex(0)
bookSettingsBtn 是一个 QToolButton
self.bookSettingsBtn = QtGui.QToolButton(self.navigationFrame)
而 settingsStackedWidget 是一个 QStackedWidget
self.settingsStackedWidget = QtGui.QStackedWidget(SettingsDialog)
在这一点上,我对信号和插槽感到非常困惑,我读过的任何内容都没有解决这个问题 - 如果有人能指出我在上面做错了什么,并且还可能指导我找到一个好的(初学者)指南/关于信号的教程和插槽将不胜感激
我也想知道如何使 setPageIndex 工作如下:
def setPageIndex(self, selection):
self.settingsStackedWidget.setCurrentIndex(selection)
【问题讨论】:
标签: python qt pyqt4 signals-slots