代码如下:
//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