Форум сайта python.su
Здавствуйте, формучане!
Нарисовал форму в Qt Designer. Теперь подгружаю ее используя uic.LoadUi. На форме есть меню-бар (menubar) на нем пункт меню menuApplication в него добавлено действие (пусть хоть ActionExit).
Хочу создать связь сигнал-слот с этим действием. Делаю вот так:
#! /usr/bin/env python
from PyQt4 import QtCore, QtGui, uic
class MainForm(QtGui.QMainWindow):
def __init__(self):
super(MainForm, self).__init__()
uic.loadUi("mainform.ui", self)
self.menubar.menuApplication.connect(ActionExit, QtCore.SIGNAL('clicked()'), QtCore.SLOT('close()'))
Офлайн
Вот смотри.
Есть стандартный пример в C:\Python27\Lib\site-packages\PyQt4\examples\pyuic\compile-on-the-fly.pyw
В твоём случае не clicked() а triggered()
Я построил на основе этого примера твой код
#!/usr/bin/env python
# coding=utf-8
import sys
from PyQt4 import QtCore, QtGui, uic
formClass, base_class = uic.loadUiType('mainform.ui')
class FormMain(QtGui.QMainWindow, formClass):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.setupUi(self)
self.connect(self.actionPrint_me, QtCore.SIGNAL('triggered()'), self.hello)
def hello(self):
print("hello print_me")
def main():
app = QtGui.QApplication(sys.argv)
window=FormMain()
window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
Офлайн
Наконец-то проверил. И правда работает) Спасибо большое. Я нашел у себя доки в /usr/share/doc/python-qt4-doc/examples/pyuic
Мне как раз был интересен вариант без конвертирования: глазам приятно не смотреть на тонны пайтон кода, а просто использовать готовый класс с необходимым интерфейсом :D
Офлайн