Найти - Пользователи
Полная версия: Элементарщина по pyQT4 layouts
Начало » GUI » Элементарщина по pyQT4 layouts
1
Gradient
Что-то не могу разобраться с этими layout'ами. С первого взгляда всё просто и удобно, но когда хочется того, что надо тебе, как-то “простота” перестаёт радовать.
Впрочем, я грешу на то, что сам просто не разобрался, как нужное сделать.

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

Может, у кого есть ссылка на хорошее руководство по этим layouts? Оф. доку читал, но там как-то не очень понятно: описано много того, что можно сделать, но как сделать то, что мне тут надо, я не нашёл.
apologize828
>>>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();
Gradient
Спасибо, но как бы ещё сделать, чтобы у двух верхних полей метки были, а TextEdit под ними - во всю их ширину (подозреваю, надо добавить layout для едитов, layout для текста )?

Плюс как бы ещё все контролы к бортам прижать, то есть, чтобы промежутка край формы-край контрола не было?
apologize828
Почитай тут:
http://forum.vingrad.ru/forum/topic-159421/kw-pyqt.html
или
тут
Да и посмотри в примерах к PyQt, ну или на Хабре, или еще где.(примеров много)
pasaranax
Я в дизайнере никогда вручную лэйауты не создавал, там есть очень удобное и умное автоматическое выравнивание.


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

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

Так что более-менее разобрался с этим вопросом.
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