Название: QGridLayout вставка между строк Отправлено: vovan1982 от Июня 21, 2011, 09:40 Здравствуйте.
Помогите пожалуйста ни как не могу сообразить как это можно реализовать. Есть QGridLayout я в него руками (не через дизайнер) добавляю к примеру 4-е виджета Widget1 Widget2 Widget3 Widget4 нужно вставить ещё один виджет между 2-м и 3-м, так чтобы получилось следующее Widget1 Widget2 Widget5 Widget3 Widget4 при использовании addWidget(widget,row,column), Widget5 ложится поверх Widget3. Название: Re: QGridLayout вставка между строк Отправлено: Пантер от Июня 21, 2011, 09:42 Код приведи.
Название: Re: QGridLayout вставка между строк Отправлено: vovan1982 от Июня 21, 2011, 09:48 Во вложении весь проект, он пока маленький, суть проекта - фильтр с динамически создаваемыми полями.
Название: Re: QGridLayout вставка между строк Отправлено: Пантер от Июня 21, 2011, 10:02 В твоем случае нужно использовать QVBoxLayout.
Название: Re: QGridLayout вставка между строк Отправлено: vovan1982 от Июня 21, 2011, 10:11 подскажите правильно ли я понял,
мне нужно в каждую строку QVBoxLayout, вставлять QGridLayout и уже в неё вставлять виждеты? и ещё вопрос, а как в QVBoxLayout вставлять между строк? Название: Re: QGridLayout вставка между строк Отправлено: GreatSnake от Июня 21, 2011, 10:41 подскажите правильно ли я понял, Это уж как хочешь.мне нужно в каждую строку QVBoxLayout, вставлять QGridLayout и уже в неё вставлять виждеты? Цитировать и ещё вопрос, а как в QVBoxLayout вставлять между строк? void QBoxLayout::insertWidget ( int index, QWidget * widget, int stretch = 0, Qt::Alignment alignment = 0 )Название: Re: QGridLayout вставка между строк Отправлено: vovan1982 от Июня 21, 2011, 10:49 спасибо большое, insertWidget не заметил, сразу начал в сторону addWidget копать
буду разбираться дальше. Название: Re: QGridLayout вставка между строк Отправлено: Пантер от Июня 21, 2011, 13:06 QGridLayout тебе вообще не нужен.
Название: Re: QGridLayout вставка между строк Отправлено: vovan1982 от Июня 21, 2011, 13:08 QGridLayout тебе вообще не нужен. я извиняюсь может вопрос глупый но в qt я новичок, а как без него можно обойтись? у меня ведь таблица из виджетов Название: Re: QGridLayout вставка между строк Отправлено: Пантер от Июня 21, 2011, 13:11 В своем коде замени QGridLayout на QVBoxLayout и делай не addWidget (widget, row, column), а addWidget (widget).
Название: Re: QGridLayout вставка между строк Отправлено: vovan1982 от Июня 21, 2011, 13:22 В своем коде замени QGridLayout на QVBoxLayout и делай не addWidget (widget, row, column), а addWidget (widget). немного исправил предыдущий пост, этот вариант мне бы подошёл если бы мне не нужно было в одну строку несколько виджетов вставлять, а так QVBoxLayout в качестве строк и отдельный QGridLayout в качестве столбцов для каждой строки вполне подходит. тока осталась одна проблема, самая первая строка имеет на один элемент меньше чем все остальные, можно как нибудь в QGridLayout добавить пустую колонку? Название: Re: QGridLayout вставка между строк Отправлено: Пантер от Июня 21, 2011, 13:27 void QGridLayout::addWidget ( QWidget * widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = 0 )
Название: Re: QGridLayout вставка между строк Отправлено: DenisKh001 от Июня 21, 2011, 19:10 Можно объединить колонки как писал "Пантер", можно вставить пружинку в ячейку.
Для понимания как что работает я рисовал в Креаторе, смотрел файл ../*build-desktop/ui*.h, в нем код создания окна из которого можно понять как что создавать. Название: Re: QGridLayout вставка между строк Отправлено: vovan1982 от Июня 24, 2011, 15:13 спасибо Пантер, но columnSpan это немного не то что мне нужно было
DenisKh001 с пружинкой ещё сложнее стало :), а на счёт ui*.h это я знаю, уже давно там копаюсь. Мне нужно было добавить просто пустую ячейку , с этим мне помог setColumnMinimumWidth, но после этого начались проблемы с попыткой автоматически устанавливать ширину пустой ячейки, в результате я немного пересмотрел внешний вид интерфейса и надобность в пустой ячейке отпала :) Ещё раз большое спасибо за ответы. |