Название: Определение размеров окна. Отправлено: Sanya от Май 06, 2010, 07:52 Доброго времени суток!
Вопрос может примитивный, но я что-то не понимаю: Согласно доке(Window Geometry) функции x(), y(), frameGeometry().width(), frameGeometry().height() возвращают координаты верхнего левого угла и ширину, высоту окна. Но при вызове их от QMainWindow получаю данные скорее Client Area. Как проверка делаю так: Код: setMask(QRegion(x(), y(), frameGeometry().width(), frameGeometry().height())); Но реальная область методом тыка делается так: Код: setMask(QRegion((-3,-22,frameGeometry().width()+6,frameGeometry().height()+3+22)); Как получать нормальные числа, а не подбором "3" и "22"? Название: Re: Определение размеров окна. Отправлено: alexman от Май 06, 2010, 07:56 const QRect & QWidget::geometry () const
Название: Re: Определение размеров окна. Отправлено: Sanya от Май 06, 2010, 08:05 В конструкторе формы:
Код: QRect r = ((QWidget*)this)->geometry(); Корректно только Код: QRect r = ((QWidget*)this)->geometry(); P.S.: Пишу под WinXP Название: Re: Определение размеров окна. Отправлено: Sanya от Май 06, 2010, 11:14 Уважаемые форумчане, правильно ли я понимаю:
Вообще виджет QMainWindow ни как не связан с заголовком окна. В том смысле, что отрисовкой этого самого заголовка занимается винда? В таком случае у меня на место "встают" "минусы" координат. Может быть кто-то подскажет иной способ, ибо задача следующая: Скруглить углы главной формы. Название: Re: Определение размеров окна. Отправлено: sendevent от Май 06, 2010, 12:12 Вообще виджет QMainWindow ни как не связан с заголовком окна. В том смысле, что отрисовкой этого самого заголовка занимается винда? да Скруглить углы главной формы. либо QWidget::setMask, либо убираешь нативные рамку/тайтл (флагами окна) и рисуешь/обрабатываешь взаимодействие с пользователем самостоятельно. глянь на виндовый десктоп гдажет (http://www.prog.org.ru/topic_13299_0.html) (в аттаче); эта тема (http://www.prog.org.ru/topic_11991_0.html) тоже вроде в тему. поиск по форуму и примеры (%кьютдир%/икземплз/виджет) расскажут подробнее, что и как ;-) Название: Re: Определение размеров окна. Отправлено: Sanya от Май 06, 2010, 15:08 Большое спасибо за ответы, но ...
Проблема не решена. В том примере что любезно дан sendevent и в правду отказываются вообще от отрисовки заголовка и все ручками - мне это тяжко ибо окно будет много и разных. Ставить цифры экспериментальные(запас на заголовок) ... с разными темами будет по разному. Еще один момент всплыл: при действе QRegion(x,y,rx,ry,QRegion::Ellipse) - эллипс получается асимметричным. Есть ли еще у кого-нить идеи, плиз? Название: Re: Определение размеров окна. Отправлено: kirill от Май 06, 2010, 15:25 Оно не учитавает виндовое обрамление. и правильно в общем то делает.
Название: Re: Определение размеров окна. Отправлено: Sanya от Май 06, 2010, 15:45 То что не учитывает я прекрасно понимаю, но мне б п учесть .... вообще, напомню, задача сгладить углы.
|