Уведомления

Группа в Telegram: @pythonsu

#1 Март 17, 2013 09:44:09

PretendeR
От:
Зарегистрирован: 2012-03-21
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с сигналами и событиями

Доброго времени суток!
Начал учил питон. Щас пытаюсь элементарно написать простой блокнот на нём используя 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 )
То все пашет, окно закрывается, а как туда же впихнуть свою функцию не понимаю

Офлайн

#2 Март 17, 2013 09:47:01

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Помогите с сигналами и событиями

Офлайн

#3 Март 17, 2013 09:52:20

PretendeR
От:
Зарегистрирован: 2012-03-21
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с сигналами и событиями

Спасибо, помогло

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version