![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
RazrFalcon |
![]()
Сообщение
#1
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Такая вот проблема, вниз этих QGraphicsView уходит еще с 10-ок, но что б я не делал скролы не реагируют никак.
Скрол бары выставлены в примере "показывать всегда", так как если выставить "показывать при необходимости" то они просто не появляются. Пробовал управлять баром отдельно и через создание QVBoxLayout с QGraphicsView, ничего. Добавляю так:
|
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
а как ты управляешь размещением виджетов внутри QScrollArea?
|
|
|
RazrFalcon |
![]()
Сообщение
#3
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
а как ты управляешь размещением виджетов внутри QScrollArea? Всмысле?Это что ли?
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
RazrFalcon |
![]()
Сообщение
#5
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
RazrFalcon |
![]()
Сообщение
#7
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Litkevich Yuriy, В том то и дело что QVBoxLayout и QGridLayout не подходят, я в 3-м сообщении привел код, там циклом раскидываются просто, после ресайза окна.
|
|
|
ufna |
![]()
Сообщение
#8
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
на вид и цикл - типичный grid.
И откуда взяться скроллу, если виджет-родитель у тебя размер нигде не меняет? ну пусть виджет 600х400, а внутри него его дитятке ты ставишь (800,800,10,10) - размер родителя не меняется. |
|
|
RazrFalcon |
![]()
Сообщение
#9
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
RazrFalcon |
![]()
Сообщение
#11
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Судя по снимку экрана, оно и есть В том то и дело, что мне нужен аналог FlowLayout, они при изменении размера окна передвигаются. 2х5, 3х3+1 снизу и тд. Проэкт прикрепил, думаю так будет быстрее чем объяснять.
Прикрепленные файлы
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#12
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
RazrFalcon |
![]()
Сообщение
#13
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#14
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Так я еще и не понял как в него запихнуть QGraphicsView , с кнопками и лейблами он справлялся у меня. это всё виджеты, метод там один и тот же addWidgetа у меня всего то 10 строк. и не работают ![]() компоновщик всегда возвращает свой желаемый размер, из-за это родительский виджет принимает меры по изменению своих размеров (для прокручиваемой области - QScrollArea, изменяется вид линейки прокрутки). А у тебя этого нет |
|
|
RazrFalcon |
![]()
Сообщение
#15
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
это всё виджеты, метод там один и тот же addWidget Да, но в примере оно то пашит, а в моей проге уже говорит:QWidget::setLayout: Attempting to set QLayout "" on MainWindow "MainWindow", which already has a layout и нечего не отображается, хоть и компилит. Цитата и не работают работает ![]() ![]() +
Сообщение отредактировал RazrFalcon - 14.8.2010, 20:40 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#16
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Да, но в примере оно то пашит, а в моей проге уже говорит: как это будет по-русски?//так уже не пашит а с чего оно так должно работать? этот метод называется "установитьВиджет", а ты устанавливаешь компоновщик
scrollArea->setWidget(new FlowLayout); |
|
|
RazrFalcon |
![]()
Сообщение
#17
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#18
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
уже имеет слой. не слой, а компоновщик (layout)работа с компоновщиками описана в документации схема простая: некийКомпоновщик->добавитьВиджет(виджет_1) некийКомпоновщик->добавитьВиджет(виджет_2) некийКомпоновщик->добавитьВиджет(виджет_3) некийВиджет->добавитьКомпоновщик(некийКомпоновщик) |
|
|
ufna |
![]()
Сообщение
#19
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
Если у тебя QMainWindow родитель MainWindow класса, то ничего странного. Создай обычный виджет, ему присваивай лейаут, а в MainWindow делай setCentralWidget или чет такое.
|
|
|
RazrFalcon |
![]()
Сообщение
#20
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Ну в общем прикрепил FlowLayout. Глупая конечно ошибка.
Ну а виджет в скорол арию. но скролы то так и не пашут!
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#21
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Ну а виджет в скорол арию. арию пусть в опере поют.виджету нет необходимости устанавливать геометрию руками. В реальных программах этот приём почти не используется. после после создания области прокрутки нужно просто установить её свойство widgetResizable в ИСТИНУ. |
|
|
RazrFalcon |
![]()
Сообщение
#22
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#23
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
приведи код от создания области прокрутки, до помещения первого из виджетов, которые ты хочешь чтобы в ней были.
|
|
|
RazrFalcon |
![]()
Сообщение
#24
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
приведи код от создания области прокрутки, до помещения первого из виджетов, которые ты хочешь чтобы в ней были. widget в scrollAreа кидаю на форме. в проект скинул flowlayout.h и flowlayout.cpp из примера.
|
|
|
ufna |
![]()
Сообщение
#25
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
можешь кинуть минимальный код на твою проблему?
попробуй не через setGeometry, а через resize(). Когда меняешь геометрию, если память не изменяет, никаких событий не возникает - скролл арея не будет догадываться что размеры виджета изменились (либо если он поменян насильно до добавления в арею, то во время добавления лейаут менеджер урежет до нужных ему размеров). |
|
|
RazrFalcon |
![]()
Сообщение
#26
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
попробуй не через setGeometry, а через resize(). Тоже не пашит. Проект ниже. Сообщение отредактировал RazrFalcon - 16.8.2010, 2:24
Прикрепленные файлы
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#27
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
widget в scrollAreа в дизайнере вообще не помещаем.
RazrFalcon, все твои беды от того, что ты пытаешься размещать виджеты вручную. Я тебе уже говорил, что в реальных программах так не делают, без крайней нужды. Да и вообще стиль плохой. Файл main.cpp отсутствует. ![]() |
|
|
RazrFalcon |
![]()
Сообщение
#28
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Спасибо пашит. То есть все из-за того что я формой пользовался?! Хм...
В принципе она мне и не нужна практически никогда, так что буду теперь без нее. Только не пойму в чем проблема с main.cpp?! В него ничего не помещают, он всегда одинаковый, и еще и отдельным фалом, таскать с собой вечно. Так почему бы просто его не в писать в главный .cpp . Не вижу проблемы, ну "кроме хорошего тона написания программы". |
|
|
Litkevich Yuriy |
![]()
Сообщение
#29
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
RazrFalcon |
![]()
Сообщение
#30
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
главный и есть main (переводится именно так) Это я понял, просто мне что с ним что без него как то одинаково. По крайней мере разницы не вижу. И так и так компилит.PS перестал работать ресайз QGraphicsView. Все время одного размера появляются, стандартного. Где б я не ставил setGeometry, оно или не работает, или просто все обекты сбиваются в одну позицию, что значит я не то сделал.
|
|
|
Алексей1153 |
![]()
Сообщение
#31
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
RazrFalcon, возьми, сделай в редакторе форм то, что ты хочешь увидеть, а потом скомпилируй и посмотри содержимое Ui_MainWindow::setupUi
|
|
|
RazrFalcon |
![]()
Сообщение
#32
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#33
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
RazrFalcon, Ой, не знаю. Я бы не заморачивался с компоновщиками (если честно, я не понимаю смысла их существования даже при создании формы в редакторе) а просто разместил на главном окне там, где нужно. Правда, это у меня от MFC и WinAPI такие повадки остались, но, тем не менее это работает ))
|
|
|
RazrFalcon |
![]()
Сообщение
#34
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
RazrFalcon, Ой, не знаю. Я бы не заморачивался с компоновщиками (если честно, я не понимаю смысла их существования даже при создании формы в редакторе) Я тоже никогда ими не пользуюсь, только в данном случае без flowLayout не пашит скролбар, но и не меняется размер QGraphicsView. А без flowLayout меняется размер но скрол не пашит. Замкнутый круг какой то. Уже все перепробовал. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#35
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#36
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Не могу понять связь скролбара с компоновщиком...
Например, я могу положить полосу прокрутки просто на форму - и она будет работать |
|
|
Litkevich Yuriy |
![]()
Сообщение
#37
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
RazrFalcon |
![]()
Сообщение
#38
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
setFixedSize, сколько раз тебе говорить - не устанавливай руками геометрию. Геометрией ведает компоновщик Он ставит 260x190 QGraphicsView, а мне нужно то что я прописал. 350х100 к примеру. Как это сделать? Я то могу и просто скрол кинуть, но нужно ведь разобраться с этим.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#39
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
RazrFalcon |
![]()
Сообщение
#40
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#41
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 16.6.2025, 13:24 |