Russian Qt Forum
Ноябрь 24, 2024, 04:27
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Фиксированный размер ширины виджета
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Фиксированный размер ширины виджета (Прочитано 12470 раз)
DenTNT
Гость
Фиксированный размер ширины виджета
«
:
Март 02, 2011, 21:11 »
Я только недавно столкнулся с Qt, поэтому вопрос может быть нубский...
В главном окне есть 2 виджета, один из которых
QListWidget
, второй служит для вывода информации, пусть будет
QLabel
.
Хотелось бы, чтобы при масштабировании окна ширина
QListWidget
оставалась постоянной, менялась только высота. Размеры же второго виджета масштабировались согласно оставшемуся месту. Например, ширина главного окна минус ширина
QListWidget
, а по высоте масштабировалась по всему свободному пространству:
Сейчас это выглядит так:
Буду признателен за помощь!
Записан
Fat-Zer
Гость
Re: Фиксированный размер ширины виджета
«
Ответ #1 :
Март 02, 2011, 21:21 »
1) смотреть примеры/читать про лейауты в асистенте.
2) после п. 1 если не всё будет устраивать, то поэксперементировать со свойством sizePolicy дочерних виджетов.
Записан
deaks
Гость
Re: Фиксированный размер ширины виджета
«
Ответ #2 :
Март 02, 2011, 21:51 »
В дизайнере используйте например grid layout и регулируйте максимальные-минимальные размеры виджетов
Записан
DenTNT
Гость
Re: Фиксированный размер ширины виджета
«
Ответ #3 :
Март 03, 2011, 15:47 »
Ладно, не буду "прилеплять" виджет к правой границе окна, но остается вопрос, как в дизайнере "разрешить" границам виджета масштабироваться?
Ставлю в sizePolicy значение fixed для нужного мне виджета, все работает как хочу, но для второго виджета ставлю Expanding, но при изменении геометрии окна, размеры виджета не меняются...
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Фиксированный размер ширины виджета
«
Ответ #4 :
Март 03, 2011, 16:42 »
Цитата: deaks от Март 02, 2011, 21:51
В дизайнере используйте например
grid layout
и регулируйте максимальные-минимальные размеры виджетов
Записан
DenTNT
Гость
Re: Фиксированный размер ширины виджета
«
Ответ #5 :
Март 03, 2011, 18:16 »
1. Qt Designer -> Файл -> Новый -> Main Window -> Создать
2. Добавляю List Widget
3. Делаю minimumSize и maximumSize
ширину
по 100
Вопрос: Что нужно сделать, чтобы высота этого виджета автоматически изменялась в зависимости от высоты главного окна?
P.S. С Layout'ами поигрался, но желаемого эффекта не добился
Записан
shirushizo
Гость
Re: Фиксированный размер ширины виджета
«
Ответ #6 :
Март 03, 2011, 19:57 »
Создаешь QHBoxLauoyt на него кидай оба виджета. minimumWidth/maximumWidth устанавливай в 100, или программно в конструкторе setFixetWidth. Если надо QMainWindow, то QHBoxLauoyt помещаешь на виджет и устанавливаешь виджет центральным.
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Фиксированный размер ширины виджета
«
Ответ #7 :
Март 03, 2011, 21:26 »
Цитата: DenTNT от Март 03, 2011, 18:16
P.S. С Layout'ами поигрался, но желаемого эффекта не добился
Как конкретно? Тебе нужно просто щёлкнуть по пустому пространству главной формы и выбрать на тулбаре в Designer "Сгруппировать по сетке" (Layout in grid). Неужели это всё так сложно?
Записан
DenTNT
Гость
Re: Фиксированный размер ширины виджета
«
Ответ #8 :
Март 03, 2011, 23:09 »
Цитата: shirushizo от Март 03, 2011, 19:57
Создаешь QHBoxLauoyt на него кидай оба виджета. minimumWidth/maximumWidth устанавливай в 100, или программно в конструкторе setFixetWidth. Если надо QMainWindow, то QHBoxLauoyt помещаешь на виджет и устанавливаешь виджет центральным.
Цитата: Alex Custov от Март 03, 2011, 21:26
Как конкретно? Тебе нужно просто щёлкнуть по пустому пространству главной формы и выбрать на тулбаре в Designer "Сгруппировать по сетке" (Layout in grid). Неужели это всё так сложно?
Хотелось бы, чтобы QList был прижат к левой границе главного окна, но получилось вот как:
«
Последнее редактирование: Март 03, 2011, 23:11 от DenTNT
»
Записан
alexman
Гость
Re: Фиксированный размер ширины виджета
«
Ответ #9 :
Март 03, 2011, 23:28 »
Справа спейсер добавь.
Записан
Troglodit
Гость
Re: Фиксированный размер ширины виджета
«
Ответ #10 :
Март 03, 2011, 23:42 »
setAlignment(Qt::AlignLeft) по идее должно помочь
Записан
DenTNT
Гость
Re: Фиксированный размер ширины виджета
«
Ответ #11 :
Март 03, 2011, 23:57 »
Цитата: alexman от Март 03, 2011, 23:28
Справа спейсер добавь.
thx, но теперь QLabel уехал, а хотелось бы, чтобы он занимал все оставшееся место окна.
Вообще задумка такая, что в QList есть список компов, а в QLabel будет выводится информация по выбранному элементу списка...
Или есть более правильное решение?
Записан
alexman
Гость
Re: Фиксированный размер ширины виджета
«
Ответ #12 :
Март 04, 2011, 00:39 »
Выводи в QTextBrowser. Имхо так удобнее будет.
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Фиксированный размер ширины виджета
«
Ответ #13 :
Март 04, 2011, 01:15 »
не надо там спейсеров, если list имеет фиксированную ширину, то label будет занимать всё оставшееся пространство. Покажи разметку в самом дезайнере, а не в предпросмотре. И ещё лучше прикрепи сюда .ui. А ещё лучше почитай документацию. Как ты собираешься писать программу, если элементы на форме не можешь разместить?
Записан
DenTNT
Гость
Re: Фиксированный размер ширины виджета
«
Ответ #14 :
Март 04, 2011, 11:04 »
Цитата: Alex Custov от Март 04, 2011, 01:15
не надо там спейсеров, если list имеет фиксированную ширину, то label будет занимать всё оставшееся пространство. Покажи разметку в самом дезайнере, а не в предпросмотре. И ещё лучше прикрепи сюда .ui.
Если спэйсер убираю, получается вот что:
UI во вложении...
Цитата: Alex Custov от Март 04, 2011, 01:15
А ещё лучше почитай документацию. Как ты собираешься писать программу, если элементы на форме не можешь разместить?
лет 10 назад я писал на Watcom C++, чуть позже консольные приложения на Visual C++, с "дизайном" не сталкивался вообще, поэтому и прошу помощи
Цитата: alexman от Март 04, 2011, 00:39
Выводи в QTextBrowser. Имхо так удобнее будет.
Спасибо, попробую!
P.S. Да, с ним все масштабируется как нужно!!! Спасибо большое!
«
Последнее редактирование: Март 04, 2011, 11:07 от DenTNT
»
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...