Qt实现光标线段闪烁效果

      有时某些特殊需求需要实现类似光标的闪烁效果,例如下图:

Qt实现光标线段闪烁效果

Qt实现光标线段闪烁效果

 

      这种效果用计时器可以实现,光标线段在paintEvent事件中进行绘制,两次绘制,根据时间的变化改变画笔的颜色即可,空白的线段的颜色和背景色保持一致,这样就实现了闪烁,代码如下

      头文件:

#ifndef WIDGET_H
#define WIDGET_H

#includeQT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    void paintEvent(QPaintEvent* e) override;
    void timerEvent(QTimerEvent * e) override;

private:
    Ui::Widget *ui;

    long long m_count = 0;
    int timerID;
};
#endif // WIDGET_H

      cpp文件

上一篇:Qt点击按钮弹出菜单以及按钮箭头样式的处理


下一篇:Qt控件自绘:温度计控件