Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 23, 2009 15:27:20

topazz
От:
Зарегистрирован: 2008-09-12
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

QT первые шаги

Простите, если не туда запостил.

Начал разбираться с QT и затупил страшно.

Вот код

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
from PyQt4 import QtGui, QtCore

class MainAplication(QtGui.QWidget):

def __init__(self, *args):
QtGui.QWidget.__init__(self, *args)
self.setWindowTitle(u"Title")
self.setWindowIcon(QtGui.QIcon("logo.png"))

mainLayout = QtGui.QGridLayout(self)
self.setLayout(mainLayout)

startButton = QtGui.QPushButton(u"Пуск")

mainLayout.addWidget(startButton, 0, 0)

def sayHello(self):
print "Hello Word"
startButton.setDisabled(True)

self.connect(startButton, QtCore.SIGNAL("clicked()"), self.sayHello())

if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
aplica = MainAplication()
aplica.show()
sys.exit(app.exec_())
Но он не работает, т.е. по нажатию кнопки в консоль ничего не пишется.
Если не сложно, подскажите что я не так сделал.

UPD. Ой заклинило меня что-то, разобрался наконец. Думаю тему можно удалить.



Отредактировано (Ноя. 23, 2009 15:42:18)

Офлайн

#2 Ноя. 23, 2009 15:46:05

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

QT первые шаги

topazz
UPD. Ой заклинило меня что-то, разобрался наконец. Думаю тему можно удалить.
Напиши хотя бы в чем проблема, и как решил, чтобы никто на эти грабли не наступал



Офлайн

#3 Ноя. 24, 2009 15:19:26

topazz
От:
Зарегистрирован: 2008-09-12
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

QT первые шаги

Вот правильный код.

Вынимаем конекшен из функции, правильно указываем слот функцию.


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
from PyQt4 import QtGui, QtCore

class MainAplication(QtGui.QWidget):

def __init__(self, *args):
QtGui.QWidget.__init__(self, *args)
self.setWindowTitle(u"Title")
self.setWindowIcon(QtGui.QIcon("logo.png"))

mainLayout = QtGui.QGridLayout(self)
self.setLayout(mainLayout)

self.startButton = QtGui.QPushButton(u"Пуск")

mainLayout.addWidget(self.startButton, 0, 0)

self.connect(self.startButton, QtCore.SIGNAL("clicked()"), self.sayHello)

def sayHello(self):
print "Hello Word"
self.startButton.setDisabled(True)


if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
aplica = MainAplication()
aplica.show()
sys.exit(app.exec_())
Коль уж тема открыта, задам еще один вопрос.

Как правильно группировать, конекшены функии?
Как много клаcсов надо делать?
В моем случае мудрить нечего, но если приложение более солидное?

Просто хотелось услышать пару советов о том как правильно компоновать гуи приложения и их логику.

Заранее спасибо!



Офлайн

#4 Ноя. 24, 2009 15:57:44

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

QT первые шаги

topazz
Как правильно группировать, конекшены функии?
Если их накапливается достаточно, то выделяешь в отдельный метод и запускаешь его в __init__ после того, как все слоты и сигналы объявлены, то есть обычно последней строчкой.

а вообще, вопросы в стиле “какое пиво выбрать?” :)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version