Qt实例中analogclock详解

本文详细讲解了Qt中的AnalogClock实例,从初始化到事件处理,特别是paintEvent事件的触发条件。通过继承QWidget并使用Q_OBJECT宏,创建了一个可显示的时钟组件。在构造函数中,确保AnalogClock随父窗口的关闭而析构。代码中包含了详细的注释,便于理解。
摘要由CSDN通过智能技术生成

代码如下:

//main.cpp

#include <QApplication>
#include "analogclock.h"
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    AnalogClock clock;
    clock.show();
    return app.exec();
}
 对于main函数,首先调用了QApplication类,这个类管理GUI程序的控制流和主设置,与之类似的是QCoreApplication类,这个类用于非GUI应用程序提供自己的事件循环。对于使用Qt的非GUI程序,便用它。

之后初始化AnalogClock的实例clock,由于clock是继承自QWidget的,这个类是所有组件类的父类,有show()函数。

app.exec()表示开启事件循环,等待用户输入及系统反馈。

//analogclock.h

#ifndef ANALOGCLOCK_H
#define ANALOGCLOCK_H
#include <QWidget>

class AnalogClock : public QWidget
{
    Q_OBJECT

public:
    AnalogClock(QWidget *parent = 0);

protected:
    void paintEvent(QPaintEvent *event) override;
};
//! [0]

#endif 

AnalogClock公有继承自QWidget,

Q_OBJECT表示使用moc工具,在编译之前对Qt源代码进行一次预处理

构造函数,参数表示父类的children中包含该类型,若关闭程序,AnalogClock也会随着父类的关闭而一起析构

再下来重写了paintEvent事件,该事件触发的原因是以下:

repaint() or
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值