Название: Размножение ? QLabel Отправлено: Геннадий Пастухов от Ноября 15, 2009, 13:22 Рисую собственную форму. В верхней части экрана мне нужна бегущая строка хитрого вида (на картинке)http://laul.no-ip.info/topBar.png (http://laul.no-ip.info/topBar.png). Решил сделать QLabel, загрузить в него картинку, а потом уже поверх него расположить виджет с бегущим текстом. Но этот QLabel должен растягиваться и сжиматься по ширине при изменении размеров окна приложения. Для этого в paintEvent главной формы я выставляю новую геометрию для него через setGeometry. И, видимо, что-то делаю не так, потому что вместо изменения размеров при растягивании окна справа появляются его копии. Также, как если картинку на рабочий стол Windows вывести с параметром "Мозаикой". В-общем, вопросов 2:
- Может есть готовое решение для бегущего текста с собственным внешним видом? - Почему QLabel не растягивается? Название: Re: Размножение ? QLabel Отправлено: Пантер от Ноября 15, 2009, 14:31 Используй QLayout для размещения контролов на окне.
Название: Re: Размножение ? QLabel Отправлено: lit-uriy от Ноября 15, 2009, 14:32 1) Бегущая строка (http://qt.shamangrad.net/doku.php?id=%D0%B1%D0%B5%D0%B3%D1%83%D1%89%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0) (насчёт собственного стиля не знаю)
2) он растягивается, а чтобы картинка растягивалась (и уродовалась) нужно использовать свойство scaledContents П.С. пои дее такие виджеты делают из нескольких картинок, покраям стационарные картинки, а в середине вертикальная шириной, например, в один пиксель и её копируют, тогда картинка не уродуется Пример смотри тут: %QTDIR%\demos\shared\images -button_normal_cap_left.png -button_normal_cap_right.png -button_normal_stretch.png Название: Re: Размножение ? QLabel [частично решено] Отправлено: Геннадий Пастухов от Ноября 15, 2009, 14:36 Немного почесал репу и сделал по-другому. Раньше устанавливал фон QLabel через стили:
Код: ui->topBar->setStyleSheet("QLabel#topBar {background-image: url(pics/topBar.png); border: 0px;}"); Код: topB = new QPixmap("pics/topBar.png"); Или это неправильное решение? Название: Re: Размножение ? QLabel Отправлено: lit-uriy от Ноября 15, 2009, 14:36 я свой пост обновил
Название: Re: Размножение ? QLabel [решено] Отправлено: Геннадий Пастухов от Ноября 15, 2009, 14:39 1) Бегущая строка (http://qt.shamangrad.net/doku.php?id=%D0%B1%D0%B5%D0%B3%D1%83%D1%89%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0) (насчёт собственного стиля не знаю) Огромнищее спасибище!!!! 2) он растягивается, а чтобы картинка растягивалась (и уродовалась) нужно использовать свойство scaledContents П.С. пои дее такие виджеты делают из нескольких картинок, покраям стационарные картинки, а в середине вертикальная шириной, например, в один пиксель и её копируют, тогда картинка не уродуется Пока это пилотный проект, не страшно, в рабочей версии думаю для таких картинок использовать SVG. Название: Re: Размножение ? QLabel Отправлено: lit-uriy от Ноября 15, 2009, 16:43 >>думаю для таких картинок использовать SVG.
рендеринг SVG, я думаю, будет медленнее копирования растрового рисунка Название: Re: Размножение ? QLabel Отправлено: Геннадий Пастухов от Ноября 15, 2009, 17:31 >>думаю для таких картинок использовать SVG. рендеринг SVG, я думаю, будет медленнее копирования растрового рисунка Возможно, но тут это некритично, операция будет очень редкая и буквально со считанными элементами интерфейса. |