Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 27, 2010 10:37:28

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

Элементарщина по pyQT4 layouts

Что-то не могу разобраться с этими layout'ами. С первого взгляда всё просто и удобно, но когда хочется того, что надо тебе, как-то “простота” перестаёт радовать.
Впрочем, я грешу на то, что сам просто не разобрался, как нужное сделать.

В общем, вопросы (картинка сюда что-то не вставляется, выложил на http://www.postimage.org/image.php?v=PqP0FIS):
- Как сделать так, чтобы layout был во всю ClientArea формы? И автоматически ресайзился вместе с ней?
- Два верхних label при ресайзе ведут себя ожидаемо, а нижний TextEdit остаётся по возможности “на месте” (то есть, если layout уменьшать, то он будет уменьшаться, но если увеличивать - увеличиваться он не будет). Как бы его сделать во всю ширину и чтобы он увеличивался с увеличением формы?

Может, у кого есть ссылка на хорошее руководство по этим layouts? Оф. доку читал, но там как-то не очень понятно: описано много того, что можно сделать, но как сделать то, что мне тут надо, я не нашёл.



Отредактировано (Авг. 27, 2010 10:42:54)

Офлайн

#2 Авг. 27, 2010 12:33:51

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

Элементарщина по pyQT4 layouts

>>>Form.setLayout();

import sys
from PyQt4 import QtGui

app=QtGui.QApplication(sys.argv);
form=QtGui.QWidget();
ed_1=QtGui.QLineEdit();
ed_2=QtGui.QLineEdit();
text=QtGui.QTextEdit();
lay=QtGui.QVBoxLayout();
lay.addWidget(ed_1);
lay.addWidget(ed_2);
lay.addWidget(text);
form.setLayout(lay);
form.show();
app.exec();



Отредактировано (Авг. 27, 2010 12:54:36)

Офлайн

#3 Авг. 27, 2010 13:14:51

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

Элементарщина по pyQT4 layouts

Спасибо, но как бы ещё сделать, чтобы у двух верхних полей метки были, а TextEdit под ними - во всю их ширину (подозреваю, надо добавить layout для едитов, layout для текста )?

Плюс как бы ещё все контролы к бортам прижать, то есть, чтобы промежутка край формы-край контрола не было?



Офлайн

#4 Авг. 27, 2010 14:01:06

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

Элементарщина по pyQT4 layouts

Почитай тут:
http://forum.vingrad.ru/forum/topic-159421/kw-pyqt.html
или
тут
Да и посмотри в примерах к PyQt, ну или на Хабре, или еще где.(примеров много)



Офлайн

#5 Авг. 27, 2010 17:25:00

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

Элементарщина по pyQT4 layouts

Я в дизайнере никогда вручную лэйауты не создавал, там есть очень удобное и умное автоматическое выравнивание.




Офлайн

#6 Авг. 31, 2010 15:40:05

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

Элементарщина по pyQT4 layouts

Здорово, всем спасибо.

В моём случае оказалось, что у layout есть такие вещи как setSpacing (это я быстро нашёл) и setContentsMargins (а вот на это я долго не мог наткнуться), которые как раз призваны решить озвученные проблемы.

Так что более-менее разобрался с этим вопросом.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version