Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 20, 2010 05:30:06

yaourt
От:
Зарегистрирован: 2010-04-20
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt] Помогите разобраться

Имею опыт работы с C#, и после знакомства с PyQt, взглянув на базовый пример, что-то во мне заколдобилось:

import sys
from PyQt4.QtGui import *
app = QApplication(sys.argv)
wid = QWidget()
wid.resize(320, 240)
wid.setWindowTitle("Hello, World!")
wid.show()
sys.exit(app.exec_())
насколько я понимаю, создаются 2 экземпляра классов — “app” и “wid”. Но как “app” понимает, что “wid” относится к нему? Как происходит их связь? Или здесь какая-то особенность Python`а, выполняющая это действие неявно?



Офлайн

#2 Апрель 20, 2010 09:43:59

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

[PyQt] Помогите разобраться

скорее особенность qt, не стесняйтесь, обращайтесь к документации http://doc.trolltech.com/4.6/qapplication.html



Офлайн

#3 Апрель 20, 2010 10:36:44

yaourt
От:
Зарегистрирован: 2010-04-20
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt] Помогите разобраться

truporez
скорее особенность qt, не стесняйтесь, обращайтесь к документации http://doc.trolltech.com/4.6/qapplication.html
Не нашёл по ссылке объяснения. Можно уточнить, где именно про это написано?



Офлайн

#4 Апрель 20, 2010 12:09:34

dartNNN
От:
Зарегистрирован: 2009-12-08
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt] Помогите разобраться

Офлайн

#5 Апрель 20, 2010 14:12:44

Митрич
От:
Зарегистрирован: 2009-03-19
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt] Помогите разобраться

вообще-то app - это синглет, который инкапсулирует платформенно-зависимую часть кода и бла-бла-бла:-). он не знает про wid и знать ничего не хочет. зато wid может обращаться к app через методы класса и бла-бла-бла:-)



Офлайн

#6 Апрель 21, 2010 14:00:52

yaourt
От:
Зарегистрирован: 2010-04-20
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt] Помогите разобраться

По ссылке общие фразы про QApplication, объяснения механизма там нет. Буду благодарен, если кто-то подскает литературу, где это подробно описано.



Офлайн

#7 Апрель 23, 2010 11:13:09

Митрич
От:
Зарегистрирован: 2009-03-19
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt] Помогите разобраться

http://www.qtrac.eu/pyqtbook.html
как найти её в электронном виде подсказывать не буду: надеюсь сам справишься
а на исходный вопрос отвечу wid ничего не знает про app, но может воспользоваться статическими методами класса QApplication, перечисленными в документации. например, так:

QApplication.AboutQt()
app про wid знает благодаря регистрации любого виджета в оконном менеджере, которая выполняется где-то в конструкторе wid.
Кстати, все механизмы о том как приложения узнают какие виджеты к ним относятся заложены не в Qt, а в оконную систему.



Отредактировано (Апрель 23, 2010 11:25:07)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version