1,文件对方框
创建 file对象,选择打开方式,打开后传递给QTextStream,读取,赋给QText显示,关闭文件。(QTextStream::readAll()直接读取文件所有内容,如果这个文件有 100M,程序会立刻死掉)实际应用中,分段读入怎么处理?
2、事件中的继承自QLabel 的鼠标事件 label->setMouseTracking(true); 设置后才能允许就跟踪,否则需要点击一次,才跟踪。为什么要点击鼠标之后才能在 mouseMoveEvent()函数中显示鼠标坐标值?这是因为 QWidget 中有一个 mouseTracking 属性,该属性用于设置是否追踪鼠标。只有鼠标被追 踪时,mouseMoveEvent()才会发出。如果 mouseTracking 是 false(默认即是),组件 在至少一次鼠标点击之后,才能够被追踪,也就是能够发出 mouseMoveEvent()事件。如 果 mouseTracking 为 true,则 mouseMoveEvent()直接可以被发出。
3、C++之构造函数后面:冒号的作用(对含有对象成员的对象进行初始化,对父类进行初始化)例如 72页中CustomButton::CustomButton(QWidget *parent) : QPushButton(parent)。
4、类里的static cosnt 和 const static成员初始化
这两种写法的作用一样,为了便于记忆,在此值说明一种通用的初始化方法:
在QT中事件分为系统事件和自定义事件,可以看到QT跟MFC的消息很相似,MFC中消息也分为系统消息和用户自定的消息,下面来说明一下QT中自定义事件的实现方法。
1>自定义一个从QEvent派生的的类如,TestEvent,实现如下:
testEvent.h文件
- #ifndef TESTEVENT_H
- #define TESTEVENT_H
- #include <QEvent>
- class TestEvent : public QEvent
- {
- public:
- TestEvent();
- public:
- static const Type EventType; // static const 和 const static 同一个意思 Type (类型名)EventType(变量名称)
- 方法2:#define ORI_DIS_EVENT QEvent::User+12
- };
- #endif // TESTEVENT_H
testEvent.cpp文件
- #include "testevent.h"
- const QEvent::Type TestEvent::EventType = (QEvent::Type)QEvent::registerEventType(QEvent::User+100); //TestEvent::EventType 中的一个成员变量
- TestEvent::TestEvent() : QEvent(EventType)
- {
- }