|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.04.2011, 18:04 | #1 |
Форумчанин
Регистрация: 25.02.2009
Сообщений: 145
|
Размеры окна и QGraphicsScene, Qt.
Добрый день.
Проблема в следующем: когда я создаю свой класс, наследуемый от QGraphicsView и устанавливаю размеры сцены и окна одинаковыми, появляются полосы прокрутки. И хоть я полосы убираю, прокрутка все равно совершается(управление итэмами идет с помощью стрелок). Если же размеры окна больше размера сцены, то смещаются система координат сцены, объекты не перемещаются до самой границы окна и еще куча неудобств. Причем если я создаю объект непосредственно QGraphicsView, то всего этого нет. Как можно сделать так, чтобы размеры сцены и окна были одинаковыми, да к тому же не было прокрутки? Премного благодарен. P.S. Делаю тетрис, во вложении только каркас игры.
Компьютеры бесподобны: за несколько минут они могут совершить такую грандиозную ошибку, какую не в состоянии сделать множество людей за многие месяцы.
|
28.04.2011, 04:16 | #2 |
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
Эм. Ну чтоб прокрутка клавишами не срабатывала, делай keyPressEvent как тебе надо (то есть если кнопка является стрелкой, то не делай QGraphicsView::keyPressEvent).
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su |
28.04.2011, 08:01 | #3 |
Форумчанин
Регистрация: 25.02.2009
Сообщений: 145
|
Хм...Я не совсем понял. Ты имеешь ввиду делать keyPressEvent для любых кнопок, кроме стрелок? Хм. Можно, но не так удобно, если я правильно понял.
А даже если так: уберу я полосы, не сделаю для стрелок keyPressEvent, все равно по вертикали и горизонтали окно само прокрутиться до максимума. И дальше пойдет смещение. Все же как избежать прокрутки окна? Я, как вариант, все равно собирался делать рамки, счетчики и прочее. Т.е. мне не обязательно, чтобы размеры сцены и окна были одинаковыми. Но все же интересно, на будущее.
Компьютеры бесподобны: за несколько минут они могут совершить такую грандиозную ошибку, какую не в состоянии сделать множество людей за многие месяцы.
|
26.05.2011, 23:30 | #4 |
Регистрация: 26.05.2011
Сообщений: 7
|
Размеры окна и QGraphicsScene Qt
Добрый день
Необходимо получить размеры зоны рабочего стола без панели задач. Размер всего экрана можно определить так: Set objWMIService = GetObject"winmgmts:.rootcimv2" Set colItems = objWMIService.ExecQuery"Select from Win32_DesktopMonitor" DeskHight = 0 DeskWidth = 0 For Each objItem in colItems DeskHight = objItem.ScreenHeight DeskWidth = objItem.ScreenWidth Next ВысотаНужнойЗоны= DeskHight - ВысотаПанелиЗадач Подскажите как определить либо размер самой зоны, либо как определить высоту панели задач? |
09.06.2011, 15:53 | #5 |
Форумчанин
Регистрация: 16.08.2008
Сообщений: 276
|
QGraphicsScene является бесконечным полем. Масштабировать можно только QGraphicsView (собственно для подобного он и создавался). Если ваша картинка выходит за размеры области экрана - автоматом появятся полосы прокрутки, но они появляются у QGraphicsVIew (см. выше). Если все что нарисовано не умещается на экране, а руки чешутся все разместить... - юзайте метод scale.
Искусственный интеллект - фигня по сравнению с естественной глупостью
|
10.06.2011, 10:48 | #6 |
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
Не совсем верно насчёт бесконечного поля. Ведь есть QGraphicsScene::sceneRect, размер сцены.
Ну и да, не надо забывать про QGraphicsView::sceneRect, отображаемый размер сцены.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su |
10.06.2011, 12:07 | #7 | ||
Форумчанин
Регистрация: 16.08.2008
Сообщений: 276
|
Цитата:
Цитата:
Искусственный интеллект - фигня по сравнению с естественной глупостью
|
||
11.06.2011, 17:48 | #8 | |
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
Неправда. Это ведь property. У которого есть сеттер. А нафига было бы делать сеттер для величины, которая от вас по сути не зависит?
Ты говоришь про это: Цитата:
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su |
|
13.06.2011, 09:46 | #9 |
Форумчанин
Регистрация: 16.08.2008
Сообщений: 276
|
Полагаю что часть этого проперти юзает QGraphicsView, а часть сам QGraphicsScene. Мы его конечно тоже можем изменить, только больших результатов оно не даст. Ну да отображаемая часть конечно измениться, но изображение не обрежется. Так что он, по сути, нужен только для скроллинга изображения.
Код:
Искусственный интеллект - фигня по сравнению с естественной глупостью
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
QGraphicsScene!!! | marselik | Qt и кроссплатформенное программирование С/С++ | 0 | 18.11.2010 12:27 |
QGraphicsScene...? | marselik | Qt и кроссплатформенное программирование С/С++ | 2 | 08.11.2010 12:45 |
Изменить размеры окна программы | КамТерДал | Microsoft Office Excel | 6 | 08.10.2009 14:47 |
Как обратиться к объектам QGraphicsScene по индексу? | jojahti | Общие вопросы C/C++ | 0 | 23.08.2009 21:27 |
Qt : рисование, QGraphicsScene, QGraphicsView | Shchigi | Помощь студентам | 1 | 03.05.2009 02:11 |