Russian Qt Forum
Ноябрь 24, 2024, 09:44
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Как мне лучше создать такой дизайн?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как мне лучше создать такой дизайн? (Прочитано 5823 раз)
Temi4
Гость
Как мне лучше создать такой дизайн?
«
:
Апрель 25, 2010, 22:00 »
Привет, подскажите как лучше добиться результата?
проблема в том, что прога автоматом должна подстраиваться под различные расширения экрана.
Прогу делаю для WinCe
http://file.qip.ru/file/126895332/c9950914/skin.html
Как может лучше порезать картинки или все таки не резать ничего а делать все общим фоном, и под это все подстраивать уже нужные кнопки нужного размера высчитывающие пропорции в зависимости от разрещения экрана? (те задать идеальный размер, затем просто если размер не 1, пересчет...)
Пользоваться не пользоваться различными Layout'ами?
Как вот реализовать лучше?
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Как мне лучше создать такой дизайн?
«
Ответ #1 :
Апрель 25, 2010, 22:24 »
пользоваться
Записан
SABROG
Гость
Re: Как мне лучше создать такой дизайн?
«
Ответ #2 :
Апрель 26, 2010, 00:59 »
Цитата: Temi4 от Апрель 25, 2010, 22:00
проблема в том, что прога автоматом должна подстраиваться под различные расширения экрана.
Возможно через QGraphicsView это можно сделать, а вот с обычными виджетами будут проблемы. Размеры шрифтов сами по себе не будут увеличиваться, растровые иконки тоже, виджеты имеющие минимальные размеры не станут меньше, если разрешение станет меньше, чем сумма всех минимальных размеров виджетов находящихся в окне.
Записан
break
Гипер активный житель
Offline
Сообщений: 846
Re: Как мне лучше создать такой дизайн?
«
Ответ #3 :
Апрель 26, 2010, 02:46 »
Цитировать
Возможно через QGraphicsView это можно сделать, а вот с обычными виджетами будут проблемы.
через него действительно можно сделать ресайз произвольного виджета в том числе со шрифтами - обсуждалось здесь
http://www.prog.org.ru/index.php?topic=11996.msg85039#msg85039
только вот проблемы также будут - а именно с производительностью - рисуется через proxyWidget оч. медленно, если использовать OpenGL то быстро но глючит все что выводилось через QPixmap (т.е. надо заменять все на QImage). Да и вообще на целевом девайсе может не быть OpenGL. Но там и проц слабы так что тормоза QProxyWidget врят ли переживет...
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Как мне лучше создать такой дизайн?
«
Ответ #4 :
Апрель 26, 2010, 08:25 »
а если картинка в лейбле, разве она не отрезайзится, будучи в лайауте?
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Как мне лучше создать такой дизайн?
«
Ответ #5 :
Апрель 26, 2010, 09:41 »
Цитировать
а если картинка в лейбле, разве она не отрезайзится, будучи в лайауте?
Нет, не отресайзится(
И GraphicsView (на мой взгляд) здесь тож не вариант
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
ufna
Гость
Re: Как мне лучше создать такой дизайн?
«
Ответ #6 :
Апрель 26, 2010, 10:44 »
есть два варианта
первый - более сложный и более кривой, если разрешение "не учтено".
суть проста - рисуем это все в бэкгроунде, ресайзя под разрешение. Положение виджетов стретчами задастся однозначно. Шрифт - задается при первом ресайзе, через QFont, просто соразмерно ресайзу. Постоянно ресайзить ведь нужды нет, разрешение фиксировано.
второй - самый привычный для геймдевелоперов
)
имеем набор и "настройки" гуи для основных разрешений экрана. Если разрешение экрана иное, выбираем ту конфигурацию, которая наибольшая из тех, что полностью влезают в это разрешение. Применяем для основного рабочего виджета.
А главное окно программы - виджет "носитель", который вмешает в себя рабочий виджет ровно в центр. Результат думаю ясен
Записан
break
Гипер активный житель
Offline
Сообщений: 846
Re: Как мне лучше создать такой дизайн?
«
Ответ #7 :
Апрель 26, 2010, 13:19 »
оба варианта по сравнению с QGraphicsView более геморные - сама идея правильная - иметь некоторый proxyWidget котрый задаст трансформацию декораций для исходного виджета (ресайз), жаль что хромает реализация (по производительности), хотя я с GL нормально заставил работать.
Цитировать
имеем набор и "настройки" гуи для основных разрешений экрана
этот способ как бы вообще можно не обсуждать - понятно что можно нарисовать 10 видов BMP которых можно класть в виде фона под свое разрешение экрана, вроде как вопрос состоял в том как бы сделать так чтобы этого не приходилось делать. Особенно весело будет когда прийдется делатиь мелкое изменение в интерфейсе - и тогда вместо правки 1-й BMP - сразу в 10 местах...
Записан
ufna
Гость
Re: Как мне лучше создать такой дизайн?
«
Ответ #8 :
Апрель 26, 2010, 13:41 »
а 10 видов не надо. "По минимуму" достаточно двух, "по максимуму" - четырех. Это нормальная практика для приложений под мобилку, и нужно понимать именно контекст мобильников, а не десктопных приложений. Посмотрите любые серьезные приложения для них как привязаны к разрешению - будет либо константное, т.е. чем выше разрешение, тем все меньше, либо несколько наборов. А двух - достаточно, и изменения делать в них не сложно, если правильно все сделать.
Прокси виджет, GV и т.п. - это конечно хорошо и "правильно", но по скорости совершенно неприемлимо для наладонников, да и сам процесс ресайза постоянного - не айс.
Записан
ufna
Гость
Re: Как мне лучше создать такой дизайн?
«
Ответ #9 :
Апрель 26, 2010, 13:46 »
и еще - для мобильников часто нельзя применять "общие решения". Т.к. еле движимый проц, 64 метра памяти и WinCE5 - это реальность для многих устройств.
конкретная задача показана выше. Сколько у нее интерфейса? Немного. Как вывод - для скорости нужно сделать лучше несколько частностей, чем навешивать общий ресайз и т.п.
Записан
Temi4
Гость
Re: Как мне лучше создать такой дизайн?
«
Ответ #10 :
Апрель 26, 2010, 16:53 »
Спасибо огромное)
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...