Russian Qt Forum
Ноябрь 01, 2024, 18:27
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
2D и 3D графика
>
Расположение элементов в QGraphicsScene
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Расположение элементов в QGraphicsScene (Прочитано 5791 раз)
SeverusSnape
Гость
Расположение элементов в QGraphicsScene
«
:
Апрель 02, 2011, 11:59 »
Добрый день! Впервые начал использовать QgraphicsView(Scene) и столкнулся с небольшой проблемой: создаю QGraphicsPixmapItem в Scene, но не могу указать ему расположение, например в левом верхем углу с отступом от верхнего и левого края в 20 пикселей. SetPos для итема не помогает, он, итем, все равно рисуется по центру.
Для View пытался пробовать устанавливать setAligment с флагами, но он рисует, действительно в верхнем левом углу, но впритык. А мне ко всему процему за этим итемом (справа от него) нужно расположить еще несколько.
Так вот, скажите, пожалуйста - как можно устанавливать произвольные координаты для итемов в Scene?
Заранее благодарен!
Записан
madRoger
Гость
Re: Расположение элементов в QGraphicsScene
«
Ответ #1 :
Апрель 02, 2011, 12:14 »
Попробуйте воспользоваться методом QGraphicsView::setSceneRect для принудительного указания области сцены.
При добавлении QGraphicsItem в QGraphicsScene происходит автоматическое центрирование на этом Итеме. Вероятно, в этом проблема.
Записан
SeverusSnape
Гость
Re: Расположение элементов в QGraphicsScene
«
Ответ #2 :
Апрель 02, 2011, 12:34 »
Пробовал, но что-то не получается:
QGraphicsView* topView = new QGraphicsView(this);
topView->setBackgroundBrush(QBrush(QColor(229, 221, 200)));
topView->setScene(new QGraphicsScene(this));
// topView->setAlignment(Qt::AlignLeft | Qt::AlignTop);
// topView->setContentsMargins(20,20,20,20);
topView->setSceneRect(0,0,topView->width(),topView->height());
Мне нужно получить следующее: (см. вложение)
Спасибо!
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Расположение элементов в QGraphicsScene
«
Ответ #3 :
Апрель 02, 2011, 12:40 »
Цитировать
topView->setSceneRect(0,0,topView->width(),topView->height());
А теперь подумай и сделай вывод о размере topView при этом вызове.
Записан
Qt 5.11/4.8.7 (X11/Win)
madRoger
Гость
Re: Расположение элементов в QGraphicsScene
«
Ответ #4 :
Апрель 02, 2011, 12:55 »
только что попробовал программно. Все ОК.
QGraphicsPixmapItem *px = new QGraphicsPixmapItem(QPixmap("C:/pix.png"));
QGraphicsTextItem *tx1 = new QGraphicsTextItem("qtGraphic Test TextItem N1");
QGraphicsTextItem *tx2 = new QGraphicsTextItem("qtGraphic Test TextItem N2");
px->setPos(20.0,20.0);
gs->addItem(px);
tx1->setPos(105.0,20.0);
gs->addItem(tx1);
tx2->setPos(105.0,40.0);
gs->addItem(tx2);
ui->gv->setScene( gs );
ui->gv->setSceneRect(0.0,0.0,400.0,400.0);
где gv - QGraphicsView, gs - QGraphicsScene.
400Х400 размер gv. Координаты взял примерно, мой пиксмап размером 64Х64.
Вам в вашем случае нужно подставить свои цифры.
UPD: Какой размер у topView до запуска программы ?
«
Последнее редактирование: Апрель 02, 2011, 12:59 от madRoger
»
Записан
SeverusSnape
Гость
Re: Расположение элементов в QGraphicsScene
«
Ответ #5 :
Апрель 02, 2011, 15:41 »
Спасибо всем. Помогли! Разобрался - проблема была в размерах сцены.
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...