Russian Qt Forum
Мая 10, 2025, 01:30
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
QGridLayout вставка между строк
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QGridLayout вставка между строк (Прочитано 9695 раз)
vovan1982
Гость
QGridLayout вставка между строк
«
:
Июня 21, 2011, 09:40 »
Здравствуйте.
Помогите пожалуйста ни как не могу сообразить как это можно реализовать.
Есть QGridLayout я в него руками (не через дизайнер) добавляю к примеру 4-е виджета
Widget1
Widget2
Widget3
Widget4
нужно вставить ещё один виджет между 2-м и 3-м, так чтобы получилось следующее
Widget1
Widget2
Widget5
Widget3
Widget4
при использовании addWidget(widget,row,column), Widget5 ложится поверх Widget3.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5877
Жаждущий знаний
Re: QGridLayout вставка между строк
«
Ответ #1 :
Июня 21, 2011, 09:42 »
Код приведи.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
vovan1982
Гость
Re: QGridLayout вставка между строк
«
Ответ #2 :
Июня 21, 2011, 09:48 »
Во вложении весь проект, он пока маленький, суть проекта - фильтр с динамически создаваемыми полями.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5877
Жаждущий знаний
Re: QGridLayout вставка между строк
«
Ответ #3 :
Июня 21, 2011, 10:02 »
В твоем случае нужно использовать QVBoxLayout.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
vovan1982
Гость
Re: QGridLayout вставка между строк
«
Ответ #4 :
Июня 21, 2011, 10:11 »
подскажите правильно ли я понял,
мне нужно в каждую строку QVBoxLayout, вставлять QGridLayout и уже в неё вставлять виждеты?
и ещё вопрос, а как в QVBoxLayout вставлять между строк?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: QGridLayout вставка между строк
«
Ответ #5 :
Июня 21, 2011, 10:41 »
Цитата: vovan1982 от Июня 21, 2011, 10:11
подскажите правильно ли я понял,
мне нужно в каждую строку QVBoxLayout, вставлять QGridLayout и уже в неё вставлять виждеты?
Это уж как хочешь.
Цитировать
и ещё вопрос, а как в QVBoxLayout вставлять между строк?
void QBoxLayout::insertWidget ( int index, QWidget * widget, int stretch = 0, Qt::Alignment alignment = 0 )
Записан
Qt 5.11/4.8.7 (X11/Win)
vovan1982
Гость
Re: QGridLayout вставка между строк
«
Ответ #6 :
Июня 21, 2011, 10:49 »
спасибо большое, insertWidget не заметил, сразу начал в сторону addWidget копать
буду разбираться дальше.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5877
Жаждущий знаний
Re: QGridLayout вставка между строк
«
Ответ #7 :
Июня 21, 2011, 13:06 »
QGridLayout тебе вообще не нужен.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
vovan1982
Гость
Re: QGridLayout вставка между строк
«
Ответ #8 :
Июня 21, 2011, 13:08 »
Цитата: Пантер от Июня 21, 2011, 13:06
QGridLayout тебе вообще не нужен.
я извиняюсь может вопрос глупый но в qt я новичок,
а как без него можно обойтись?
у меня ведь таблица из виджетов
«
Последнее редактирование: Июня 21, 2011, 13:12 от vovan1982
»
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5877
Жаждущий знаний
Re: QGridLayout вставка между строк
«
Ответ #9 :
Июня 21, 2011, 13:11 »
В своем коде замени QGridLayout на QVBoxLayout и делай не addWidget (widget, row, column), а addWidget (widget).
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
vovan1982
Гость
Re: QGridLayout вставка между строк
«
Ответ #10 :
Июня 21, 2011, 13:22 »
Цитата: Пантер от Июня 21, 2011, 13:11
В своем коде замени QGridLayout на QVBoxLayout и делай не addWidget (widget, row, column), а addWidget (widget).
немного исправил предыдущий пост, этот вариант мне бы подошёл если бы мне не нужно было в одну строку несколько виджетов вставлять, а так QVBoxLayout в качестве строк и отдельный QGridLayout в качестве столбцов для каждой строки вполне подходит.
тока осталась одна проблема, самая первая строка имеет на один элемент меньше чем все остальные, можно как нибудь в QGridLayout добавить пустую колонку?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5877
Жаждущий знаний
Re: QGridLayout вставка между строк
«
Ответ #11 :
Июня 21, 2011, 13:27 »
void QGridLayout::addWidget ( QWidget * widget, int fromRow, int fromColumn, int rowSpan,
int columnSpan
, Qt::Alignment alignment = 0 )
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
DenisKh001
Гость
Re: QGridLayout вставка между строк
«
Ответ #12 :
Июня 21, 2011, 19:10 »
Можно объединить колонки как писал "Пантер", можно вставить пружинку в ячейку.
Для понимания как что работает я рисовал в Креаторе, смотрел файл ../*build-desktop/ui*.h, в нем код создания окна из которого можно понять как что создавать.
Записан
vovan1982
Гость
Re: QGridLayout вставка между строк
«
Ответ #13 :
Июня 24, 2011, 15:13 »
спасибо
Пантер
, но
columnSpan
это немного не то что мне нужно было
DenisKh001
с пружинкой ещё сложнее стало
, а на счёт ui*.h это я знаю, уже давно там копаюсь.
Мне нужно было добавить просто пустую ячейку , с этим мне помог
setColumnMinimumWidth
, но после этого начались проблемы с попыткой автоматически устанавливать ширину пустой ячейки, в результате я немного пересмотрел внешний вид интерфейса и надобность в пустой ячейке отпала
Ещё раз большое спасибо за ответы.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...