Начал учил питон. Щас пытаюсь элементарно написать простой блокнот на нём используя PyQt
Но вот столкнулся с проблемой как в обработчик сигналов засунуть собственную функцию?
Пример того что делаю:
# -*- coding: utf-8 -*- from PyQt4 import QtCore, QtGui, uic import sys app = QtGui.QApplication(sys.argv) window = uic.loadUi("MyForm.ui") def writeToFile(text): f1 = open("text.txt", 'w') f1.write(text) # MENU BUTTONS SaveText = window.action_1 SaveText.setShortcut('Ctrl+S') QtCore.QObject.connect( SaveText, QtCore.SIGNAL('triggered()'), writeToFile('ok') ) # Не получается свою функцию запихнуть SaveAs = window.action_2 SaveAs.setShortcut('Ctrl+Shift+S') SaveAs.triggered.connect(QtGui.qApp.quit) CloseWindow = window.action_3 CloseWindow.setShortcut('Esc') CloseWindow.triggered.connect(QtGui.qApp.quit) window.show() sys.exit(app.exec_())
Вот в меню окна используется событие triggered() а не clicked() как для кнопки
Пробовал и так:
QtCore.QObject.connect( SaveText, QtCore.SIGNAL('triggered()'), writeToFile('ok') )
QtCore.QObject.connect(SaveText, QtCore.SIGNAL("triggered()"), QtCore.SLOT("writeToFile('ok')"))
Уже прогуглил всё, и все методы которые в мануалах и примерах дают перепробовал, не получается
К примеру если делать просто закрытие окна так:
QtCore.QObject.connect( SaveText, QtCore.SIGNAL('triggered()'), QtGui.qApp.quit )