Здравствуйте, гость ( Вход | Регистрация )
Litkevich Yuriy | Дата 5.2.2010, 16:43 |
Но чтука в том что под виндой эти кнопки получаются с идеально на мой взгляд ровными обводами засчет антиалайзинга.. А вот под линуксом они ужасны. Посмотри эту тему может в будущем пригодится. |
|
Rocky | Дата 5.2.2010, 9:01 |
Все понятно. | |
Litkevich Yuriy | Дата 5.2.2010, 4:30 |
Если в конструкторе класса формировать пусть тот же QImage, то как? В смысле если мы находимся внутри самого конструктора класса, то его объект еще не создан. И тем более не отображен на экране. Как тогда получить правильные размеры всех виджетов и пр? есть разные способы применительно к твоей задаче:1) Поискать по форуму по поводу определения размеров в конструкторе (точно помню обсуждалось) 2) Отлавливать resizeEvent и корректировать QImage 3) Сделать как в файле примера %QTDIR%\examples\painting\svgviewer\svgview.cpp класс SvgRasterView 4) переопределить метод show(), в котором вызывать метод базового класса (после него станут известны размеры), а затем корректировать QImage |
|
Rocky | Дата 5.2.2010, 0:50 |
Да, насчет отрисовки завтра переделаю... Весь день буду оптимизацией заниматься... Хотя стоп... Litkevich Yuriy можно задам вопрос, который давно меня мучает... Вроде как он касается этого. Если в конструкторе класса формировать пусть тот же QImage, то как? В смысле если мы находимся внутри самого конструктора класса, то его объект еще не создан. И тем более не отображен на экране. Как тогда получить правильные размеры всех виджетов и пр? Я щас так делаю: просто в main-е после того, как вызвал exec(...) или show(...) главного окна, вызываю некий метод Initialize(...) который по сути далее вызывается иерархически по вссем потомкам главного виджета (окна).. Но как-то не очень нравится этот способ... Может можно как-то лучше? Вобщем щас вот так в линуксе выглядит: Завтра на работе сделаю скрин как с этим же кодом в XP. --------------------------------------- Вот так выглядит картинка в винде |
|
Litkevich Yuriy | Дата 5.2.2010, 0:22 |
Rocky, отпишись, на Линухе использование QImage даёт лучшее сглаживание или нет. Ну и если будешь продолжать использовать QImage, то лучше рисовать на QImage в отдельном методе, который вызывается в конструкторе и в методах установки свойств. А в обработчике события рисования только выводить уже готовый QImage (QPainter::drawImage()). Так будет быстрее отрисовка происходить |
|
Rocky | Дата 4.2.2010, 23:57 |
Странно.. но действительно работает.. )) дело было в fill(...) =) |
|
Litkevich Yuriy | Дата 4.2.2010, 23:02 |
Rocky, сделал попроще чем у тебя и всё работает (Проверял на виндовозе). Проверь AeroButton2.zip ( 4.44 килобайт ) Кол-во скачиваний: 434 П.С. на окно добавил переключатель, чтобы рисовать напрямую или через QImage |
|
Rocky | Дата 4.2.2010, 21:39 |
Вот: Раскрывающийся текст
|
|
Litkevich Yuriy | Дата 4.2.2010, 21:30 |
Rocky, ты можешь выложить код AeroButton модифицированный под QImage? | |
Rocky | Дата 4.2.2010, 21:28 |
неа (( в том-то и дело что не забыл | |
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 0:20 |