Название: Бегущий текст Отправлено: Mixolap от Сентябрь 22, 2008, 21:41 Посоветуйте виджет для отображения бегущего текста.
Название: Re: Бегущий текст Отправлено: ритт от Сентябрь 22, 2008, 22:06 QWidget :)
Название: Re: Бегущий текст Отправлено: niXman от Сентябрь 22, 2008, 23:51 Унаследуйся от QLineEdit или QLabel, и QThread перегрузи виртуальную функцию run() и в ней реализуй алгоритм бегущей строки.
Код: class MyLabel: public QLabel, public QThread { Удачи. Название: Re: Бегущий текст Отправлено: ритт от Сентябрь 23, 2008, 00:32 Код:
class MyLabel: public QLabel, public QThread { Q_OBJECT и что, скомпилится? Название: Re: Бегущий текст Отправлено: vaprele07 от Сентябрь 23, 2008, 03:37 тред на бегущую строку жестоко)))
примеры рулят: http://doc.trolltech.com/4.1/widgets-wiggly.html Название: Re: Бегущий текст Отправлено: pastor от Сентябрь 23, 2008, 14:26 Код: class MyLabel: public QLabel, public QThread { Q_OBJECT и что, скомпилится? В Qt3 да, и даже будет работать ;) Название: Re: Бегущий текст Отправлено: Mixolap от Сентябрь 23, 2008, 17:34 Ага, спасибо, сделаю через QLabel и QTimer ;)
Получится бегущая строка с новостями rss. Название: Re: Бегущий текст Отправлено: ритт от Сентябрь 23, 2008, 19:50 Код: class MyLabel: public QLabel, public QThread { Q_OBJECT и что, скомпилится? В Qt3 да, и даже будет работать ;) у него в подписи "qt-4.4.2 opensource" ^_^ Название: Re: Бегущий текст Отправлено: niXman от Сентябрь 23, 2008, 21:34 Код: class MyLabel: public QLabel, public QThread { Q_OBJECT и что, скомпилится? В Qt3 да, и даже будет работать ;) у него в подписи "qt-4.4.2 opensource" ^_^ Название: Re: Бегущий текст Отправлено: ритт от Сентябрь 23, 2008, 21:46 гцц говорит что-то вроде
Цитировать Warning: Class MyLabel inherits from two QObject subclasses QLabel and QThread. This is not supported! не знаю будет ли работать - не проверял...да и гуёвые объекты должны быть в одном потоке, насколько я помню.Название: Re: Бегущий текст Отправлено: kirill от Сентябрь 25, 2008, 05:40 да и гуёвые объекты должны быть в одном потоке, насколько я помню. Создаваться - да, управляться - нет. Отдай в поток адрес виджета и рули им. Название: Re: Бегущий текст Отправлено: ритт от Сентябрь 25, 2008, 07:10 и шо, без синхронизации с основным потоком прямо вот так по указателю и рулить?
Название: Re: Бегущий текст Отправлено: pastor от Сентябрь 25, 2008, 12:24 Создаваться - да, управляться - нет. Отдай в поток адрес виджета и рули им. ...и твое приложение вывалиться в кору ЗЫ: Все операции с гуем должны быть ТОЛЬКО в гуевом потоке! Название: Re: Бегущий текст Отправлено: Mixolap от Сентябрь 25, 2008, 20:32 Обошелся без QTimer (хватило встроенного в QObject).
Просьба покритиковать: http://qtfaq.ru/tiki-index.php?page=runline Название: Re: Бегущий текст Отправлено: Karl-Philipp от Сентябрь 26, 2008, 00:30 Обошелся без QTimer (хватило встроенного в QObject). тестировал на Celeron 1.1, встроенное видео:Просьба покритиковать: http://qtfaq.ru/tiki-index.php?page=runline Результат: Строчка "бежит" с некими задержками на любой скорости прокрутки (может так и надо - не знаю), но больше всего напрягает неравномерность задержек по длительности. Текст будто притормаживает в определенные промежутки. А вобще интересная идея Название: Re: Бегущий текст Отправлено: kirill от Сентябрь 26, 2008, 06:14 Тоже тормоза.
Имхо, надо делать как WigglyWidget из демонстрашек. Переопределять paintEvent и использовать QPainter. Код: QPainter painter(this); Название: Re: Бегущий текст Отправлено: Mixolap от Сентябрь 26, 2008, 13:28 да, тоже замечаю у себя иногда. мож таймер неточный в QObject...
Название: Re: Бегущий текст Отправлено: m_ax от Сентябрь 26, 2008, 13:45 Уха ха ха...
Ну что это за фигня, господа? Код: C:\TestQt\runline>make Название: Re: Бегущий текст Отправлено: ритт от Сентябрь 26, 2008, 14:08 Цитировать QString QObject::trUtf8 ( const char * sourceText, const char * comment = 0, int n = -1 ) [static] Название: Re: Бегущий текст Отправлено: m_ax от Сентябрь 26, 2008, 14:35 День добрый!
У меня Ваш виджет не компилится по причине отсутствия в версии 4.1.1 функции setOpenExternalLinks(bool) в QLabel :( Название: Re: Бегущий текст Отправлено: ритт от Сентябрь 26, 2008, 21:48 на улице уже 2008 год (подходит к завершению), тролльтехи уже выпустили 4.4.2 и готовят 4.5.0. не пора ли обновиться? :)
Название: Re: Бегущий текст Отправлено: Mixolap от Сентябрь 28, 2008, 11:23 Опять инопланетяне не виноваты. Эффект торможения удалось устранить обрабатывая начальный пробел в строке (пропуская его).
Цитировать Переопределять paintEvent и использовать QPainter. Так, думаю, была бы возможность выводить текст плавнее, но что тогда делать с html форматированием? Название: Re: Бегущий текст Отправлено: ритт от Сентябрь 28, 2008, 12:53 как я и советовал ещё в самом начале, возьми QWidget, переопредели его paintEvent и рисуй плавненько. анимацию вообще можно рассчитывать в отдельном потоке и оптимизировать всё это дело так, что скорость/нагрузка от рисования самого QWidget не будет заметно отличаться (например, ввести спящий режим потока, когда виджет скрыт, и т.п.)
для html-форматирования подсмотри код QLabel. можно оставить лишь html-форматирование _текста_, т.к. картинки и html-ссылки в тексте тебе не нужны (вряд ли кто будет гоняться за убегающей ссылкой), а вот QUrl как отдельное свойство (+сеттер/геттер) было бы уместно - можно было бы из этого виджета подобие баннера делать (или просто информативную кнопку)...да и вообще, область использования такого виджета заметно расширится. если у тебя всё получится, можно было бы опубликовать данный виджет под жпл - пущай народ балуется :) Название: Re: Бегущий текст Отправлено: Sergeich от Сентябрь 28, 2008, 14:35 Цитировать Переопределять paintEvent и использовать QPainter. Так, думаю, была бы возможность выводить текст плавнее, но что тогда делать с html форматированием? Название: Re: Бегущий текст Отправлено: lit-uriy от Сентябрь 28, 2008, 14:38 html-ссылки в тексте тебе не нужны (вряд ли кто будет гоняться за убегающей ссылкой) а у него при наведении мыша текст останавливается.Название: Re: Бегущий текст Отправлено: Mixolap от Сентябрь 28, 2008, 16:31 html-ссылки мне как раз и нужны. Для показа ленты новостей виджет разрабатывал (типа rss).
Название: Re: Бегущий текст Отправлено: niXman от Январь 11, 2009, 11:00 Уухх... Понаписывали со времени моего последнего визита! )))) Респект и уважуха!!! Да, с наследованием я погорячился...
Кто-то, покажите что получилось? |