ほとんど何も残らないまでコードを削除しようとしましたが、addButton
ウィジェットをself.add
メソッドに接続できないようです。私は痛いほど明白な何かを見逃していると確信していますが、私の目はそれを捉えていません..
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
class StringListDlg(QDialog):
def __init__(self, name, strings, parent=None):
super(StringListDlg, self).__init__(parent)
self.listWidget = QListWidget()
self.listWidget.addItems(strings)
addButton = QPushButton("&Add...")
grid = QGridLayout()
grid.addWidget(self.listWidget, 0, 0, 7, 1)
self.setLayout(grid)
self.setWindowTitle("Edit {} List".format(name))
self.connect(addButton, SIGNAL("clicked()"), self.add)
def add(self):
pass
if __name__ == "__main__":
app = QApplication(sys.argv)
form = StringListDlg("Fruit", ['apples', 'bananas'])
form.exec_()
これが私のトレースバックです:
Traceback (most recent call last):
File "C:/pyqt/chap05/test.py", line 27, in <module>
form = StringListDlg("Fruit", ['apples', 'bananas'])
File "C:/pyqt/chap05/test.py", line 20, in __init__
self.connect(addButton, SIGNAL("clicked()"), self.add)
AttributeError: 'StringListDlg' object has no attribute 'add'