Название: [РЕШЕНО] QMainWindow с масштабированием ? Отправлено: Денис от Январь 20, 2015, 19:15 Вопрос к знатокам как сделать QMainWindow масштабируемым ? Чтобы автоматически менялись и шрифты и и была привязка элементов к краям окна ? Пошарил в гугле ничего путевого не нашел ... Пишут мол надо несколько окон создать и переключаться между ними ... но как то не хотелось бы. Может можно подругому ?
Название: Re: QMainWindow с масштабированием ? Отправлено: Денис от Январь 20, 2015, 22:37 Или есть ли возможность к главному окну подтянуть Scroll, чтобы уменьшив его по высоту можно было прокрутить содержимое ?
Название: Re: QMainWindow с масштабированием ? Отправлено: gil9red от Январь 21, 2015, 07:33 Или есть ли возможность к главному окну подтянуть Scroll, чтобы уменьшив его по высоту можно было прокрутить содержимое ? Тогда, QScrollArea (http://qt-project.org/doc/qt-4.8/qscrollarea.html) Название: Re: QMainWindow с масштабированием ? Отправлено: Денис от Январь 22, 2015, 21:26 Или есть ли возможность к главному окну подтянуть Scroll, чтобы уменьшив его по высоту можно было прокрутить содержимое ? Тогда, QScrollArea (http://qt-project.org/doc/qt-4.8/qscrollarea.html) А по другому как-то можно без скрола ? Название: Re: QMainWindow с масштабированием ? Отправлено: gil9red от Январь 22, 2015, 22:13 Или есть ли возможность к главному окну подтянуть Scroll, чтобы уменьшив его по высоту можно было прокрутить содержимое ? Тогда, QScrollArea (http://qt-project.org/doc/qt-4.8/qscrollarea.html) А по другому как-то можно без скрола ? setHorizontalScrollBarPolicy ( Qt::ScrollBarPolicy ) setVerticalScrollBarPolicy ( Qt::ScrollBarPolicy ) http://qt-project.org/doc/qt-4.8/qt.html#ScrollBarPolicy-enum : Qt::ScrollBarAlwaysOff Тогда QScrollArea будет без скролов Название: Re: QMainWindow с масштабированием ? Отправлено: Денис от Январь 26, 2015, 23:36 Или есть ли возможность к главному окну подтянуть Scroll, чтобы уменьшив его по высоту можно было прокрутить содержимое ? Тогда, QScrollArea (http://qt-project.org/doc/qt-4.8/qscrollarea.html) А по другому как-то можно без скрола ? setHorizontalScrollBarPolicy ( Qt::ScrollBarPolicy ) setVerticalScrollBarPolicy ( Qt::ScrollBarPolicy ) http://qt-project.org/doc/qt-4.8/qt.html#ScrollBarPolicy-enum : Qt::ScrollBarAlwaysOff Тогда QScrollArea будет без скролов Хорошо а как QScrollArea установить на глвный виджет ? Название: Re: QMainWindow с масштабированием ? Отправлено: gil9red от Январь 27, 2015, 00:39 Или есть ли возможность к главному окну подтянуть Scroll, чтобы уменьшив его по высоту можно было прокрутить содержимое ? Тогда, QScrollArea (http://qt-project.org/doc/qt-4.8/qscrollarea.html) А по другому как-то можно без скрола ? setHorizontalScrollBarPolicy ( Qt::ScrollBarPolicy ) setVerticalScrollBarPolicy ( Qt::ScrollBarPolicy ) http://qt-project.org/doc/qt-4.8/qt.html#ScrollBarPolicy-enum : Qt::ScrollBarAlwaysOff Тогда QScrollArea будет без скролов Хорошо а как QScrollArea установить на глвный виджет ? QScrollArea * area = new QScrollArea(); mainWindow->setCentralWidget(area); Название: Re: QMainWindow с масштабированием ? Отправлено: Денис от Январь 27, 2015, 02:26 Или есть ли возможность к главному окну подтянуть Scroll, чтобы уменьшив его по высоту можно было прокрутить содержимое ? Тогда, QScrollArea (http://qt-project.org/doc/qt-4.8/qscrollarea.html) А по другому как-то можно без скрола ? setHorizontalScrollBarPolicy ( Qt::ScrollBarPolicy ) setVerticalScrollBarPolicy ( Qt::ScrollBarPolicy ) http://qt-project.org/doc/qt-4.8/qt.html#ScrollBarPolicy-enum : Qt::ScrollBarAlwaysOff Тогда QScrollArea будет без скролов Хорошо а как QScrollArea установить на глвный виджет ? QScrollArea * area = new QScrollArea(); mainWindow->setCentralWidget(area); Я делаю в конструкторе класса вот так: Код: QScrollArea *scrollArea = new QScrollArea(); И приложение у меня вылетает ... как правильно его добавить ? или не внутри конструктора надо это делать ? И можно ли это сделать через Qt Desiner ? Или только ручками надо прописывать ? Название: Re: QMainWindow с масштабированием ? Отправлено: gil9red от Январь 27, 2015, 07:09 Все в порядке с кодом.
Какая ошибки? Что отладчик показывает? Какие ос? Версия qt? Если скините минимально компилябельный проект с вашей проблемой, то можно не гадать :) Название: Re: QMainWindow с масштабированием ? Отправлено: Денис от Январь 27, 2015, 22:29 Все в порядке с кодом. Какая ошибки? Что отладчик показывает? Какие ос? Версия qt? Если скините минимально компилябельный проект с вашей проблемой, то можно не гадать :) Сильно много скидывать ... Ругается на выводимые элементы в ui с Qt Desiner-а ... Если же сделать вот так: Код: scrollArea = new QScrollArea(); (http://s014.radikal.ru/i329/1501/39/951326dd67e9t.jpg) (http://radikal.ru/fp/544084a08f3340a682f2a0231bcad4ee) С рисовалки ничего не выводится ... ругается именно на вывод ui->элементов в окно и ничего больше ... Что я сделал не так ? Название: Re: QMainWindow с масштабированием ? Отправлено: gil9red от Январь 27, 2015, 23:25 Все в порядке с кодом. Какая ошибки? Что отладчик показывает? Какие ос? Версия qt? Если скините минимально компилябельный проект с вашей проблемой, то можно не гадать :) Сильно много скидывать ... Ругается на выводимые элементы в ui с Qt Desiner-а ... Если же сделать вот так: Код: scrollArea = new QScrollArea(); (http://s014.radikal.ru/i329/1501/39/951326dd67e9t.jpg) (http://radikal.ru/fp/544084a08f3340a682f2a0231bcad4ee) С рисовалки ничего не выводится ... ругается именно на вывод ui->элементов в окно и ничего больше ... Что я сделал не так ? Забавно... Сначала вы размещаете центральный виджет текущего окна на скролл зону: scrollArea -> setWidget(this->centralWidget()); Потом на тот центральный виджет, который был на скролл зоне, размещаете скролл зону, которая на самом деле его и содержит: setCentralWidget(scrollArea); :) Название: Re: QMainWindow с масштабированием ? Отправлено: Денис от Январь 27, 2015, 23:42 Все в порядке с кодом. Какая ошибки? Что отладчик показывает? Какие ос? Версия qt? Если скините минимально компилябельный проект с вашей проблемой, то можно не гадать :) Сильно много скидывать ... Ругается на выводимые элементы в ui с Qt Desiner-а ... Если же сделать вот так: Код: scrollArea = new QScrollArea(); (http://s014.radikal.ru/i329/1501/39/951326dd67e9t.jpg) (http://radikal.ru/fp/544084a08f3340a682f2a0231bcad4ee) С рисовалки ничего не выводится ... ругается именно на вывод ui->элементов в окно и ничего больше ... Что я сделал не так ? Забавно... Сначала вы размещаете центральный виджет текущего окна на скролл зону: scrollArea -> setWidget(this->centralWidget()); Потом на тот центральный виджет, который был на скролл зоне, размещаете скролл зону, которая на самом деле его и содержит: setCentralWidget(scrollArea); :) А если сделать следующим образом: Код: scrollArea = new QScrollArea(); Та даже если без show(): Код: scrollArea = new QScrollArea(); Все равно на СкролАрие не хочет отображать ui. Может можно где-то почитать как правильно это сделать ? (http://s017.radikal.ru/i439/1501/da/883d5ce9f14bt.jpg) (http://radikal.ru/fp/9dd90f6895b649d895bd03bcb338f323) Название: Re: QMainWindow с масштабированием ? Отправлено: gil9red от Январь 28, 2015, 05:37 Посмотрите, в архиве лежит пример создания формы и размещение centralWidget формы на QScrollArea.
А лучше бы вы рассказали, что хотите в итоге ;) Название: Re: QMainWindow с масштабированием ? Отправлено: Денис от Январь 28, 2015, 09:54 Посмотрите, в архиве лежит пример создания формы и размещение centralWidget формы на QScrollArea. А лучше бы вы рассказали, что хотите в итоге ;) Смотри происходит тоже самое: (http://s014.radikal.ru/i328/1501/a3/d95d1abd4e09t.jpg) (http://radikal.ru/fp/b91be086a9544512a7edc75f9ccbbf6b) Два окна вместо одного ... ( Версия Qt 5.3.0 ... блин как же его правильно собрать может быть надо еще какие то флаги у QMainWindow включить и они у различных версий разные ? Название: Re: QMainWindow с масштабированием ? Отправлено: gil9red от Январь 28, 2015, 10:55 Давайте я попытаюсь угадать, что вам нужно? :)
У вас формочка в ui, и вам нужно ее содержимое, то которое находится в centralWidget поместить на QScrollArea и, при этом, чтобы эта QScrollArea оказалась в форме? :) Название: Re: QMainWindow с масштабированием ? Отправлено: Денис от Январь 28, 2015, 12:07 Давайте я попытаюсь угадать, что вам нужно? :) У вас формочка в ui, и вам нужно ее содержимое, то которое находится в centralWidget поместить на QScrollArea и, при этом, чтобы эта QScrollArea оказалась в форме? :) Типа того только чтобы QScrollArea оказалась центральным виджетом а не отдельным виджетом формы Название: Re: QMainWindow с масштабированием ? Отправлено: gil9red от Январь 28, 2015, 12:42 Ну в дизейнере форм разместите QScrollArea на форму окна, а те виджеты, который были там раньше, разместите на QScrollArea
Не забудьте QScrollArea растянуть по окну и виджеты в ней :) Название: Re: QMainWindow с масштабированием ? Отправлено: Денис от Январь 28, 2015, 13:10 Ну в дизейнере форм разместите QScrollArea на форму окна, а те виджеты, который были там раньше, разместите на QScrollArea Не забудьте QScrollArea растянуть по окну и виджеты в ней :) Но полоса прокрутки все равно не появляется и если нижнюю границу окна поднять все равно скролл не появляется ? Название: Re: QMainWindow с масштабированием ? Отправлено: __Heaven__ от Январь 28, 2015, 13:19 widgetResizable поменяйте в свойствах QScrollArea
Название: Re: QMainWindow с масштабированием ? Отправлено: Денис от Январь 30, 2015, 18:56 Спс получилось надо было еще Скрол Арию привязать по сетке к centralWidet-виджету и все ок !!!!!!!!
|