Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: pacahon от Сентябрь 14, 2010, 14:53



Название: Анимация цвета текста QLabel
Отправлено: pacahon от Сентябрь 14, 2010, 14:53
Как правильно реализовать плавную смену цвета текста у QLabel? Пробовал использовать QPropertyAnimation и менять свойство palette, но это не привело ни к каким результатам. GUI делаю с использованием PyQt. Вот код, который я пытался заставить работать (от C++ несильно отличается):
Код
Python
import sys
from PyQt4 import QtGui,QtCore
 
app = QtGui.QApplication(sys.argv)
 
widget = QtGui.QMainWindow()
text = QtGui.QTextEdit("Example",widget)
 
animation = QtCore.QPropertyAnimation(text, "palette")
animation.setDuration(1000)
pal = QtGui.QPalette()
pal.setColor(QtGui.QPalette.Text,QtGui.QColor(255,40,40))
animation.setEndValue(pal)
animation.start()
 
widget.show()
sys.exit(app.exec_())
 
P.S. Ещё небольшой вопрос:
Можно ли использовать нижеследующий код применительно для QLabel? И QLabel и QTextEdit наследуются от QWidget, который и обладает методом setPalette, но в случае с QTextEdit он работает, а вот применительно к QLabel у меня ничего не происходит (текст не меняет своего цвета).
Код
Python
...
text = QtGui.QTextEdit("Example",widget)
pal = QtGui.QPalette()
pal.setColor(QtGui.QPalette.Text,QtGui.QColor(255,40,40))
text.setPalette(pal)
 



Название: Re: Анимация цвета текста QLabel
Отправлено: An0TheR от Сентябрь 28, 2010, 10:54
...
text = QtGui.QTextEdit("Example",widget)
pal = QtGui.QPalette()
pal.setColor(QtGui.QPalette.Text,QtGui.QColor(255,40,40))
text.setPalette(pal)
QtGui.QTextEdit.setText(text)