Найти - Пользователи
Полная версия: QT первые шаги
Начало » GUI » QT первые шаги
1
topazz
Простите, если не туда запостил.

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

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


#!/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сов надо делать?
В моем случае мудрить нечего, но если приложение более солидное?

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

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

а вообще, вопросы в стиле “какое пиво выбрать?” :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB