Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как сменить обычную top-left corner систему координат под Qt

2.1K
19 декабря 2007 года
vectoroc
234 / / 25.07.2006
Пытаюсь заставить виджет считать, что центр его координат начинается в левом нижнем углу, и Y вверх увеличивыется. Где-то вроде видел, что это воозможно, но никак не могу вспомнить где и как.
Может кто-нибудь помнит, как это делается? (Qt 4.3.2)
361
19 декабря 2007 года
Odissey_
661 / / 19.09.2006
Угу, появилась такая возможность в 4 Qt. На сколько мне известно, функция setCorner есть у QMainWindow. Ваш вроде как Qt::BottomLeftCorner.

Но вот с отдельным виджетом... незнаю. Узнаете поделитесь =)

Хотя, мне кажется проще написать свой конвертор координат в данном случае проще простого (не думаю что в недрах Qt это реализованном как то по другому =), но можно глянуть при желании) - просто отнимаете от heigth заданную координату и будет top-left -> bottom-left. =)
2.1K
19 декабря 2007 года
vectoroc
234 / / 25.07.2006
я пробовал mainwindow->setCorner(Qt::BottomLeftCorner, Qt::AllDockWidgetAreas), но что-то невооруженным взглядом не заметил результата... тоже всё больше прихожу к выводу, что быстрее будет по старинке :)
2.1K
20 декабря 2007 года
vectoroc
234 / / 25.07.2006
Надоело делать по старинке (height - y), подсказали такой способ:
 
Код:
QPainter painter(this);
painter.scale(1, -1);
painter.translate(0, -geometry().height());
2.1K
20 декабря 2007 года
vectoroc
234 / / 25.07.2006
Или сделать матрицу и с помощью неё всё транслировать
 
Код:
QMatrix m;
mscale(1, -1);
m.translate(0, -height());
m.map(x, y);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог