crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QWidget смена системы координат
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
ernie Дата 17.10.2010, 10:14
  igor_bogomolov, дико извиняюсь,правлю код писанный до меня,поэтому мысли немного путаются:)
В общем описываю всю ситуацию:
Есть окошко,у которого переобъявлен paintEvent и рисуется внешний вид нашего виджета,наследника QWidget,который представляет подобие дока,у окна выставлены флаги и атрибуты соответствующим образом:
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint |Qt::Tool);
setAttribute(Qt::WA_NoSystemBackground);
setAttribute(Qt::WA_TranslucentBackground);
Т.е. на экране отрисовывается только то,что объявлено в paintEvent,а самого окна и его границ мы не видим.
При запуске программы окно с виджетом перемещается к одной из сторон экрана,и с помощью resize выставляется минимальная ширина.
Далее при наведении мыши док разворачивается(с помощью QPropertyAnimation,в котором увеличивается ширина окна),когда окно с левой стороны экрана - проблем нет,всё отлично отрисовывается и нет проблем с анимацией,но когда окно у правой кромки экрана,возникает проблема: если делаем разворачивание подобно тому как это делается слева,то получается что док отрисовывается за пределами экрана,если же делаем одновременно увеличение ширины и передвижение окна влево,то анимация идёт рывками и справа появляется на время анимации достаточно толстая полоска границы.
Вот в общем такая проблема:)

И да,желательно это сделать именно через ширину окна,потому как на виджете отрисовываются другие виджеты,и надо чтобы они тоже скрывались и разворачивались одновременно с доком:)это я к тому,что я уже пробовал не трогать ширину окна,а работать только с paintEvent'ом и в нем с помощью анимации увеличивать ширину самой области дока,но в таком случае это не затрагивает виджеты,которые на нём расположены:)
igor_bogomolov Дата 16.10.2010, 17:17
  ernie, если бы ты конкретнее написал что ты хочешь получить, возможно и ответ получил бы быстрее (ну или дельный совет).
А то сначала ты спрашивал как систему координат поменять, потом как развернуть виджет. Теперь оказывается что развернуть нужно главное окно программы.
Заголовки окна ты все равно не развернешь (если только через API системы, но тут я не советчик). Если же заголовки скрыты, то никакой разницы с тем примером что я привел выше я не вижу.
В общем описывай подробнее задачу, если есть возможность минимальный код приложи. А там уже подумаем чем можно помочь :)
ernie Дата 16.10.2010, 17:04
  igor_bogomolov,спасибо за наводку,но это не совсем то)виджет у меня == главное окно(прозрачное),так можно ли как раз с этим окном такую штуку провернуть?ибо то что ты посоветовал,всё же относится к виджетам в пределах окна
igor_bogomolov Дата 15.10.2010, 23:02
 
Цитата(ernie @ 15.10.2010, 17:39) *
Может есть какие-нибудь еще мысли как можно разворачивание виджета сделать?
OrientationButton
ernie Дата 15.10.2010, 16:39
  Может есть какие-нибудь еще мысли как можно разворачивание виджета сделать?я делаю так,QPropertyAnimation,в setStartValue начальную(меньшую) ширину виджета,в setEndValue конечную(большую) ширину.
ernie Дата 14.10.2010, 17:46
  Как я понимаю для этого надо как то глобальную систему координат изменять или есть способ проще?
ernie Дата 14.10.2010, 17:01
  Доброго времени суток,господа.
Вопрос такой,можно ли сменить систему координат в виджете,т.е. например ширина виджета считается с левого края,мне же надо,чтобы она считалась с правого.
Заранее благодарю.

QPainter painter(this);
painter.translate(width(),0);
painter.rotate(90);
painter.save();
Не помогают,впечатление,что они ничего не изменили

В моем случае,есть виджет,который отрисовывается около края экрана и разворачивается,увеличивая ширину с помощью QAnimation,и если я разворачиваю слева направо,то никаких проблем,а вот как развернуть справа налево,я что-то немогу сообразить
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 23:19