Название: GridLayout, как максимально растянуть виджет? Отправлено: Alchazar от Январь 12, 2010, 10:46 Есть GridLayout с 3-мя столбиками. 1 и 2 имеют фиксированную ширину, а третий должен растягиваться (или я ошибаюсь?) когда меняется размер окна, но он не растягивается. Виджет в третем столбике всегда минимальный.
QGridLayout Код
Третий виджет, который должен бы растянуться Код (http://img34.imageshack.us/img34/4862/gridlayout.jpg) Название: Re: GridLayout, как максимально растянуть виджет? Отправлено: Marat(Qt) от Январь 12, 2010, 16:14 Очень вероятно что проблема здесь:
Код: plot_data->enableAxis(2,false); Название: Re: GridLayout, как максимально растянуть виджет? Отправлено: Alchazar от Январь 12, 2010, 16:20 Код: plot_data->enableAxis(2,false); Если график помещать в QVBoxLayout он принимает максимальные размеры. Может QGridLayout не растягивает помещёные в него виджеты как QVBoxLayout? Название: Re: GridLayout, как максимально растянуть виджет? Отправлено: pastor от Январь 12, 2010, 16:23 Замени
Код
на Код
Название: Re: GridLayout, как максимально растянуть виджет? Отправлено: Marat(Qt) от Январь 12, 2010, 16:26 Блин, я так понимаю, пустое пространство слева от QwtPlot - это выросшая вторая колонка? А чем объяснить пробел справа?
Название: Re: GridLayout, как максимально растянуть виджет? Отправлено: Alchazar от Январь 12, 2010, 17:51 Код: gridLayout->setColumnStretch(2, 1); Я думаю, что размер колонок нормальный, только сам график не хочет вытягиваться. Название: Re: GridLayout, как максимально растянуть виджет? Отправлено: Alchazar от Январь 12, 2010, 17:58 Попробовал вставить QLineEdit вместо графика, результат тот же.
Что-то где-то я не замечаю. Название: Re: GridLayout, как максимально растянуть виджет? Отправлено: BRE от Январь 12, 2010, 18:01 Набросал пример:
Название: Re: GridLayout, как максимально растянуть виджет? Отправлено: Marat(Qt) от Январь 12, 2010, 20:59 Я так тоже делал, причем вместо QFrame у меня QwtPlot был и все работало в preview как положено.
Название: Re: GridLayout, как максимально растянуть виджет? Отправлено: Alchazar от Январь 13, 2010, 15:08 Посмотрел пример, попробовал вставить QwtPlot вместо QFrame, в дизайнере всё работает.
Переделал свою форму (положил в GroupBox VerticalLayout и уже в него засунул gridLayout), но ничего не изменилось. Пробовал ложить VerticalLayout в gridLayout вместо QwtPlot, а QwtPlot ложил в VerticalLayout, но всё равно результат тот же, только график рисовался с правого края не смотря на то, что Qt::AlignLeft. Название: Re: GridLayout, как максимально растянуть виджет? Отправлено: Alchazar от Январь 13, 2010, 15:55 Сделал немного по другому:
все QLabel положил в GridLayout, а потом GridLayout и QwtPlot положил в HorizontalLayout. Теперь всё растягивается как следует) Название: Re: GridLayout, как максимально растянуть виджет? Отправлено: BRE от Январь 13, 2010, 15:56 Ты на политики виджетов обрати внимание (QSizePolicy).
Название: Re: GridLayout, как максимально растянуть виджет? Отправлено: Alchazar от Январь 13, 2010, 16:33 Пробовал их менять, ничего не помогло.
Название: Re: GridLayout, как максимально растянуть виджет? Отправлено: Marat(Qt) от Январь 13, 2010, 18:18 Сделал немного по другому: Из этого ответа очевидно что вы напортачили со свойствами gridlayout. Для нормальной работы достаточно было трех столбцов, первые два - label'ы, третий - qwtPlot. Все свойства грида оставить такими, какими они были по умолчанию. Так тоже должно работать, по крайней мере я в дизайнере так делал.все QLabel положил в GridLayout, а потом GridLayout и QwtPlot положил в HorizontalLayout. Теперь всё растягивается как следует) |