Я новичок в Python, и я пытаюсь написать тривиальное приложение с обработчиком событий, который активируется при нажатии элемента в настраиваемом QTreeWidget. По какой-то причине это не работает. Поскольку я только в начале изучения этого, я не могу понять, что я делаю неправильно. Вот код:PyQt: событие не срабатывает, что случилось с моим кодом?
#!/usr/bin/env python
import sys
from PyQt4.QtCore import SIGNAL
from PyQt4.QtGui import QApplication
from PyQt4.QtGui import QMainWindow
from PyQt4.QtGui import QTreeWidget
from PyQt4.QtGui import QTreeWidgetItem
class MyTreeItem(QTreeWidgetItem):
def __init__(self, s, parent = None):
super(MyTreeItem, self).__init__(parent, [s])
class MyTree(QTreeWidget):
def __init__(self, parent = None):
super(MyTree, self).__init__(parent)
self.setMinimumWidth(200)
self.setMinimumHeight(200)
for s in ['foo', 'bar']:
MyTreeItem(s, self)
self.connect(self, SIGNAL('itemClicked(QTreeWidgetItem*, column)'), self.onClick)
def onClick(self, item, column):
print item
class MainWindow(QMainWindow):
def __init__(self, parent = None):
super(MainWindow, self).__init__(parent)
self.tree = MyTree(self)
def main():
app = QApplication(sys.argv)
win = MainWindow()
win.show()
app.exec_()
if __name__ == '__main__':
main()
Моя первоначальная цель состоит в том, чтобы сделать MyTree.onClick() напечатать что-нибудь, когда я нажимаю элемент дерева (и иметь доступ к щелкнутому пункту в этом обработчик).
Спасибо, это сработало! По какой-то причине мой браузер не позволит мне отмечать ваш ответ как принятый, но он работает. – 2009-07-13 13:36:23