Russian Qt Forum

Программирование => Общий => Тема начата: lit-uriy от Декабрь 21, 2014, 14:24



Название: [Borland C++ Builder] как управлять компоновкой контролов
Отправлено: lit-uriy от Декабрь 21, 2014, 14:24
Ребята подскажите как управлять компоновкой визуальных элементов (controls) на форме, вроде в Билдере нет аналога QLayout.
визуальные элементы создаются в коде.
Нужно в цикле намолотить "строки" состоящие из метки (TLabel) и поля ввода (TEdit):
Код
C++ (Qt)
for(unsigned int i = 0; i < count; ++i){
   TLabel *label = new TLabel(this);
   label->Parent = this;
   label->Caption = names[i];
   TAnchors left;
   left << akLeft << akTop << akBottom;
   label->Anchors = left;
 
   TEdit *edit = new TEdit(this);
   edit->Parent = this;
   edit->Text = names[i];
   edit->Anchors << akRight << akTop << akBottom;
}
 

Пытался играть с якарями (Anchors) и выравниванием (Align), но стоит только задать выравнивание, как элементы (метка/поле ввода) накладываются друг на друга.

Может кто-то помнит, как это делать в Bilder-е?


Название: Re: [Borland C++ Builder] как управлять компоновкой контролов
Отправлено: sergek от Декабрь 22, 2014, 09:56
Каждую пару (метка, редактор) располагаете на панели TPanel. Выравнивание задаете для панели, например alTop.
Чтобы панель не была видна, убираете bevelinner, bevelouter.


Название: Re: [Borland C++ Builder] как управлять компоновкой контролов
Отправлено: lit-uriy от Декабрь 22, 2014, 17:52
Располагать пары придётся по координатам (Left/Top)?


Название: Re: [Borland C++ Builder] как управлять компоновкой контролов
Отправлено: sergek от Декабрь 22, 2014, 21:47
Да.


Название: Re: [Borland C++ Builder] как управлять компоновкой контролов
Отправлено: Пантер от Декабрь 22, 2014, 22:59
Эх, помнится, очень радовался концепции лайотов, когда перешел с билдера на Кьют. :)


Название: Re: [Borland C++ Builder] как управлять компоновкой контролов
Отправлено: __Heaven__ от Декабрь 22, 2014, 23:10
Эх, помнится, очень радовался концепции лайотов, когда перешел с билдера на Кьют. :)
Её придумал Бог и передал людям


Название: Re: [Borland C++ Builder] как управлять компоновкой контролов
Отправлено: lit-uriy от Декабрь 26, 2014, 17:39
Если терпежа хватит, то добью, то что откровенно сговнил за день работы - жалкое подобие QVBoxLayout/QHBoxLayout.
Пока не умеет растягиваться на родителе (т.к. у родителя нет setLayout() ), но уже компонует под размер содержимого.

П.С.
Чувак, для которого я делал на Билдере пример использования Qt-шной DLL-ки, долго вкуривал, как вообще возможно чтоб само размещалось, потом начал свою прогу переделывать под использование моей поделки.


Название: Re: [Borland C++ Builder] как управлять компоновкой контролов
Отправлено: sergek от Декабрь 26, 2014, 21:24
Те контролы, для которых задано выравнивание, растягиваются сами. Для остальных в обработчике изменения родителя (onresize, кажется, не помню) рассчитываются и устанавливаются размеры вручную.