我想在Qt5中使用 QLineEdit 来做这件事:
QLineEdit
当我使用函数 f() 在 QLineEdit 对象中设置特定的文本时,我希望在一秒钟后文本的字体大小会自动变小。
f()
例如:
QLineEdit* edit; void f() edit->setText("good"); }
我希望在我使用 f() 后的一段时间,文本 "good" 的字号会自动变小。
"good"
如何做到这一点?非常感谢!
618夏日盛惠
2核2G云服务器首年95元,GPU云服务器低至9.93元/天,还有更多云产品低至0.1折…
#ifndef OWNTEXTEDIT_H #define OWNTEXTEDIT_H #include <qlineedit.h> #include <qtimer.h> #define STARTSIZE 30 #define SPEED 50 #define ENDSIZE 15 class OwnTextEdit : public QLineEdit { Q_OBJECT public slots: void setText(const QString& text) { QLineEdit::setText(text); m_timer->start(SPEED); m_size = STARTSIZE; setFont(QFont(font_name, m_size)); public: OwnTextEdit(QWidget *parent = 0) { setMinimumSize(QSize(500, 100)); m_timer = new QTimer(this); QObject::connect(m_timer, &QTimer::timeout, this, &OwnTextEdit::decreaseSize); ~OwnTextEdit() {}; private slots: void decreaseSize() { if (m_size == ENDSIZE) m_timer->stop(); m_size--; setFont(QFont(font_name, m_size)); private: