我有2个ui文件 - main_ui
和sub_ui
当打开main_ui时,有一个QPushButton和一个QListWidget。 如果用户点击QPushButton,它将打开sub_ui。
另一方面,sub_ui中只有一个QPushButton。
如果用户点击此QPushButton,则应禁用main_ui中的listWidget
。
我遇到了禁用问题。 虽然没有提示错误,但我无法禁用listWidget。
这是我的main_ui
代码:
class MainUI(QtGui.QDialog):
def __init__(self, parent=None):
super(MainUI, self).__init__(parent=parent)
self.init_main_ui()
self.main_signals()
self.setFixedSize(QtCore.QSize(300, 600))
def init_main_ui(self):
self.mainBtn = QtGui.QPushButton("show sub ui")
self.listWidget = QtGui.QListWidget(self)
self.mainLayout = QtGui.QVBoxLayout()
self.mainLayout.addWidget(self.mainBtn)
self.mainLayout.addWidget(self.listWidget)
self.setLayout(self.mainLayout)
def main_signals(self):
self.mainBtn.clicked.connect(self.onClicked)
def onClicked(self):
subUI = SubUI()
subUI.show()
这是我的sub_ui
代码:
import main_ui
class SubUI(QtGui.QDialog):
def __init__(self, parent=None):
super(SubUI, self).__init__(parent=parent)
subLayout = QtGui.QVBoxLayout(self)
subBtn = QtGui.QPushButton('Testing')
subLayout.addWidget(subBtn)
subBtn.clicked.connect(self.disable_list)
def disable_list(self):
mainUI = main_ui.MainUI()
mainUI.listWidget.setEnabled(False)
我该如何解决?
答案 0 :(得分:0)
按如下方式更改onClicked
:
def onClicked(self):
subUI = SubUI()
subUI.subBtn.clicked.connect(self.disable_list)
subUI.show()
将disable_list
移至MainUI并将其更改为:
def disable_list(self):
self.listWidget.setEnabled(False)
从SubUI删除subBtn.clicked.connect
来电(已移至onClicked
)。
使subBtn成为SubUI的成员变量,以便您可以从onClicked
访问它。
self.subBtn = QtGui.QPushButton('Testing')
subLayout.addWidget(self.subBtn)