1

ほとんど何も残らないまでコードを削除しようとしましたが、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'
4

0 に答える 0