QT开发中文网

用qt动态画线条

可以使用Qt中的QPainter类来绘制动态线条。

以下是一个示例程序:

#include <QtWidgets>

class LineWidget : public QWidget {
public:
    LineWidget(QWidget *parent = nullptr) : QWidget(parent), m_pos(0)
    {
        // 设置定时器,每隔10毫秒更新一次界面
        QTimer *timer = new QTimer(this);
        connect(timer, &QTimer::timeout, this, &LineWidget::onTimeout);
        timer->start(10);
    }

protected:
    void paintEvent(QPaintEvent *) override
    {
        QPainter painter(this);
        painter.setPen(Qt::red);
        painter.drawLine(QPoint(m_pos, 0), QPoint(width(), height() - m_pos));
    }

private slots:
    void onTimeout()
    {
        // 更新线条位置并重绘界面
        ++m_pos;
        if (m_pos >= height())
            m_pos = 0;
        update();
    }

private:
    int m_pos;
};

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    LineWidget widget;
    widget.show();

    return app.exec();
}

该程序创建了一个自定义QWidget派生类LineWidget,在paintEvent中使用QPainter绘制一条红色线条。在构造函数中设置定时器,每隔10毫秒调用onTimeout槽函数。该槽函数会更新线条位置并调用update()函数重绘界面。

运行该程序,可以看到动态的红色线条从左上角向右下角移动。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=2057

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?