Я пишу приложение для браузера базы данных с PyQt4 и, поскольку я новичок в Qt, у меня есть некоторые проблемы. У меня уже есть большинство функций, написанных на python, но я знаю, что пытаюсь реализовать их с помощью PyQt4 GUI.
Прежде всего, мое приложение теперь выглядит так:
Браузер
В этих каталогах у меня есть XML-файлы, которые я хотел бы проанализировать.
Я написал что-то вроде этого:
QtCore.QObject.connect(self.ui.treeView, QtCore.SIGNAL("clicked(QModelIndex)"), self.ui.plainTextEdit, QtCore.SLOT("paste()"))
и это работает. Но когда я пытаюсь сделать что-то вроде этого:
QtCore.QObject.connect(self.ui.treeView, QtCore.SIGNAL("clicked(QModelIndex)"), self.ui.plainTextEdit, QtCore.SLOT("insertPlainText('test')"))
это терпит неудачу. После прочтения руководства я знаю, что SIGNAL и SLOT должны принимать одинаковые аргументы. Поэтому я должен написать некоторый сигнал, который выполняет SLOT, который является функцией с аргументом QModelIndex, который находит файл, по которому щелкнули, создает объект xmldocument и затем распечатывает его словари.
Мои вопросы:
Поскольку внутри файла пользовательского интерфейса я создал функцию:
def test(self):
print "Debug"
И когда я пытаюсь вызвать это
QtCore.QObject.connect(self.ui.treeView, QtCore.SIGNAL("clicked(QModelIndex)"), self.ui.test())
, я получаю эту ошибку:
TypeError: arguments did not match any overloaded call:<br>
QObject.connect(QObject, SIGNAL(), QObject, SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'<br>
QObject.connect(QObject, SIGNAL(), callable, Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'<br>
QObject.connect(QObject, SIGNAL(), SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 2 has unexpected type 'str'
И еще один вопрос: