LINUX.ORG.RU

QPushButton. Избыточные габариты

 ,


0

2

Я давно не рисовал интерфейсы на Qt, но сейчас снова столкнулся.
Беда:
Кнопка излишне большая.
Название кнопки — одна литера. Я могу указать максимальную ширину в пикселях, но это глупо. Мне нужна масштабируемость — я под Андроид пишу.
Итого: кнопка-хрень-кнопка-распорка-кнопка-хрень-кнопка
Всё это в горизонтальном лейауте.
Кнопки большие. Текст на ней занимает одно знакоместо.
В 4.х такой проблемы, вроде, не было.
Нужно больше «распорок» или это HIG какой-то?

★★☆

Нужно больше «распорок»

Такой вариант только размазал кнопки равномерно по лейауту.
Как попросить кнопку (желательно через QtDesigner) занимать минимум места так, чтобы лейаут помещался по горизонтали?
Т.е. чтобы при уменьшении экрана горизонтальные габариты кнопок тоже уменьшались покуда есть такая возможность?

Stahl ★★☆
() автор топика

О! Если у centralWodget поставить минимальное значение какое-то адекватное, то, вроде, что-то начинает получаться.
Просто там какого-то хрена стояло огромное.
Вроде что-то как-то где-то происходит.
Продолжаю наблюдения.

Stahl ★★☆
() автор топика
Ответ на: комментарий от Stil

Я игрался с этим. Но Expanded-то наоборот — расширяет.

Stahl ★★☆
() автор топика
Ответ на: комментарий от Stahl

Ты хоть скриншот покажи, а ещё лучше нарисуй, как, по-твоему, должно быть. Так проще будет понять, в чём проблема

XMs ★★★★★
()
Ответ на: комментарий от fluorite

Я не могу его указать. Если я его укажу, то на аппаратах с большим разрешением (я под андроид пишу — полноекранное) получится из рук вон плохо.

Stahl ★★☆
() автор топика
Ответ на: комментарий от fluorite

Да.
Но я уже понял: почему-то виджет, в котором находится самый внешний лейаут, оказался с указанием невменяемо большого минимального габарита.
Заменил на нормальный небольшой и всё стало хорошо — кнопки стали уменьшаться.

Stahl ★★☆
() автор топика
Ответ на: комментарий от anonymous

Кода больше на порядок, причем кода для интерфейса. Qml имеет главную фишку - property binding. Именно эта вещь и позволяет писать на порядки меньше и лаконичнее.

В очень уродском и костыльном исполнении аналог есть в JavaFX, но по сравнению с qml это просто смешно.

wolph ★★
()
Ответ на: комментарий от Pavval

Согласен. На QML можно очень быстро и удобно набросать интерфейс. Правда, в туториалах для Blackberry говорилось, что использование QML снижает производительность интерфейса, по сравнению с Qt/C++, ибо динамически создаёт код интерфейса и запускает его. Так что в Android тоже может быть такое.

Demacr ★★
()
Последнее исправление: Demacr (всего исправлений: 1)
Ответ на: комментарий от Demacr

Так что в Android тоже может быть такое.

Очень долгий запуск QML-приложений на Android с холодного старта. Впрочем, QtWidgets на Android это вообще забагованный лол, действительно, уж лучше копать более-менее предсказуемый QML, чем наступать на кучу мин.

EXL ★★★★★
()
Ответ на: комментарий от wolph

Почитал про property binding. Ну да, штука удобная, но не настолько, чтобы по ней убиваться. И я не уверен, что это стоит того, чтобы тащить за программой целый интерпретируемый движок.

А код для интерфейса виджетов руками почти никто не пишет, есть дизайнер.

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

Если что - я не идейный ненавистник QML, когда надо будет портировать свой проект на андроид, думаю нарисовать на QML альтернативную мырду к нему. Но на десктопе думаю сохранить вменяемый вариант, с виджетами...

hobbit ★★★★★
()
Ответ на: комментарий от Demacr

Правда, в туториалах для Blackberry говорилось, что использование QML снижает производительность интерфейса, по сравнению с Qt/C++, ибо динамически создаёт код интерфейса и запускает его.

Но QML выигрывает в скорости/плавности анимации - в виджетах ее без рывков не создать. Да и вообще мы на работе тестировали и прифигели от того, что производительность графики в принципе на уровне оптимизированных виджетов.

Pavval ★★★★★
()
Ответ на: комментарий от EXL

Очень долгий запуск QML-приложений на Android с холодного старта.

Я недавно пилил по работе Android-прогу на Qt и прифигел от того, что скорость запуска была на уровне остальных приложений. Это при том, что раньше демки от Qt бешено тормозили. Так что 4.2.

Pavval ★★★★★
()
Ответ на: комментарий от hobbit

Почитал про property binding. Ну да, штука удобная, но не настолько, чтобы по ней убиваться.

«Секс - это скучно, я читала». Ты попробуй на нем пописать - оценишь.

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

К сожалению, я не сравнивал с версией на голом Qt, чтобы сравнить. Для моих мелких поделок с головой хватало QML :) Так что поверю на честное слово.

Demacr ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.