gpt4 book ai didi

python - PyQt4 信号和槽 - QToolButton

转载 作者:太空宇宙 更新时间:2023-11-03 18:00:14 25 4
gpt4 key购买 nike

在 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)

最佳答案

我不确定您为什么要执行以下操作,但这就是问题所在:

def showSettings(self):
dialog = QtGui.QDialog()
dialog.ui = SettingsDialog()
dialog.ui.setupUi(dialog)
dialog.exec_()

SettingsDialog本身就是一个正确的QDialog。您不需要实例化另一个QDialog

现在,您正在创建一个空的QDialog,然后使用与SettingsDialog相同的用户界面填充它(即setupUi(dialog) ),然后显示此对话框。但是...信号连接用于 SettingsDialog,而您显示的对话框没有该信号连接。

基本上,您根本不需要额外的QDialog。以下内容应该足够了:

def showSettings(self):
dialog = SettingsDialog()
dialog.exec_()

关于python - PyQt4 信号和槽 - QToolButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27798292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com