Russian Qt Forum
Ноябрь 25, 2024, 03:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Бегущий текст  (Прочитано 23518 раз)
kirill
Гость
« Ответ #15 : Сентябрь 26, 2008, 06:14 »

Тоже тормоза.
Имхо, надо делать как WigglyWidget из демонстрашек.

Переопределять paintEvent и использовать QPainter.
Код:
QPainter painter(this);
     for (int i = 0; i < text.size(); ++i) {
         int index = (step + i) % 16;
         color.setHsv((15 - index) * 16, 255, 191);
         painter.setPen(color);
         painter.drawText(x, y - ((sineTable[index] * metrics.height()) / 400),
                          QString(text[i]));
         x += metrics.width(text[i]);
     }
Записан
Mixolap
Гость
« Ответ #16 : Сентябрь 26, 2008, 13:28 »

да, тоже замечаю у себя иногда. мож таймер неточный в QObject...
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #17 : Сентябрь 26, 2008, 13:45 »

Уха ха ха...
Ну что это за фигня, господа?
Код:
C:\TestQt\runline>make
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/TestQt/runline'
g++ -c -O2 -O2 -frtti -Wall -fno-exceptions -DUNICODE -DQT_LARGEFILE_SUPPORT -DQ
T_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:
/Qt/4.1.1/include/QtCore" -I"C:/Qt/4.1.1/include/QtGui" -I"C:/Qt/4.1.1/include"
-I"." -I"C:/Qt/4.1.1/include/ActiveQt" -I"release" -I"." -I"C:/Qt/4.1.1/mkspecs/
win32-g++" -o release\main.o main.cpp
main.cpp: In function `int qMain(int, char**)':
main.cpp:10: error: `trUtf8' undeclared (first use this function)
main.cpp:10: error: (Each undeclared identifier is reported only once for each f
unction it appears in.)
mingw32-make[1]: *** [release\main.o] Error 1
mingw32-make[1]: Leaving directory `C:/TestQt/runline'
mingw32-make: *** [release] Error 2

C:\TestQt\runline>
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
ритт
Гость
« Ответ #18 : Сентябрь 26, 2008, 14:08 »

Цитировать
QString QObject::trUtf8 ( const char * sourceText, const char * comment = 0, int n = -1 )   [static]
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #19 : Сентябрь 26, 2008, 14:35 »

День добрый!
У меня Ваш виджет не компилится по причине отсутствия в версии 4.1.1 функции setOpenExternalLinks(bool) в QLabel

 Грустный
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
ритт
Гость
« Ответ #20 : Сентябрь 26, 2008, 21:48 »

на улице уже 2008 год (подходит к завершению), тролльтехи уже выпустили 4.4.2 и готовят 4.5.0. не пора ли обновиться? Улыбающийся
Записан
Mixolap
Гость
« Ответ #21 : Сентябрь 28, 2008, 11:23 »

Опять инопланетяне не виноваты. Эффект торможения удалось устранить обрабатывая начальный пробел в строке (пропуская его).

Цитировать
Переопределять paintEvent и использовать QPainter.
Так, думаю, была бы возможность выводить текст плавнее, но что тогда делать с html форматированием?
Записан
ритт
Гость
« Ответ #22 : Сентябрь 28, 2008, 12:53 »

как я и советовал ещё в самом начале, возьми QWidget, переопредели его paintEvent и рисуй плавненько. анимацию вообще можно рассчитывать в отдельном потоке и оптимизировать всё это дело так, что скорость/нагрузка от рисования самого QWidget не будет заметно отличаться (например, ввести спящий режим потока, когда виджет скрыт, и т.п.)
для html-форматирования подсмотри код QLabel. можно оставить лишь html-форматирование _текста_, т.к. картинки и html-ссылки в тексте тебе не нужны (вряд ли кто будет гоняться за убегающей ссылкой), а вот QUrl как отдельное свойство (+сеттер/геттер) было бы уместно - можно было бы из этого виджета подобие баннера делать (или просто информативную кнопку)...да и вообще, область использования такого виджета заметно расширится.

если у тебя всё получится, можно было бы опубликовать данный виджет под жпл - пущай народ балуется Улыбающийся
Записан
Sergeich
Гость
« Ответ #23 : Сентябрь 28, 2008, 14:35 »

Цитировать
Переопределять paintEvent и использовать QPainter.
Так, думаю, была бы возможность выводить текст плавнее, но что тогда делать с html форматированием?
QTextDocument::drawContents метод поможет тебе
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #24 : Сентябрь 28, 2008, 14:38 »

html-ссылки в тексте тебе не нужны (вряд ли кто будет гоняться за убегающей ссылкой)
а у него при наведении мыша текст останавливается.
Записан

Юра.
Mixolap
Гость
« Ответ #25 : Сентябрь 28, 2008, 16:31 »

html-ссылки мне как раз и нужны. Для показа ленты новостей виджет разрабатывал (типа rss).
Записан
niXman
Гость
« Ответ #26 : Январь 11, 2009, 11:00 »

Уухх... Понаписывали со времени моего последнего визита! )))) Респект и уважуха!!! Да, с наследованием я погорячился...
Кто-то, покажите что получилось?
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.