Wizard产生的头文件类包含了必须的#include文件、构造函数、析构函数和UI对象:


#include <QMainWindow>

namespace Ui {class Notepad;}

class Notepad : public QMainWindow
{
Q_OBJECT public:
explicit Notepad(QWidget *parent = );
~Notepad(); private:
Ui::Notepad *ui;
};

解释如下:

行4提供了主应用窗口;

行6声明Notepad类在Ui命名空间内(Ui命名空间是由uic tool产生的、用于所有后缀为.ui的文件对应的UI类的标准命名空间)。

行10包括一个宏定义Q_OBJECT,必须在类定义的第一个,声明这个类是QObject。他也需要从QObject继承。QObject给一般C++类添加几个能力。注意:类名和槽名必须在运行时确定。查询一个槽的参数类型然后驱动他也是可行的。

行15声明构造函数,默认参数parent,值为0表示这个控件没有父控件(是顶层控件)。

行16为虚的析构函数,用于释放在其生命期间该对象获得的所有资源。根据C++命名规则,析构函数和它对应的类名相同,前缀为~。在QObject中,析构函数是虚函数保证了当一个对象以“a pointer-to-base-class”方式删除时,继承类的析构函数可以恰当析构。

行19声明一个成员变量,是指向Notepad类的指针。成员变量和特定类关联,可以访问其所有的成员方法。


QT编辑模式:

  • 默认模式F3——控件模式;
  • 信号与槽模式F4;
  • Buddy编辑模式:帮助label控件正确处理键盘聚焦;
  • Tab顺序编辑模式:设置控件接收键盘聚焦顺序。

使用QFile表示Text文本,用QTextStream读取,并用QTextEdit::setPlainText()将其展示在textEdit上:

void loadTextFile() {
QFile inputFile(":/input.txt");
inputFile.open(QIODevice::ReadOnly); QTextStream in(&inputFile);
QString line = in.readAll();
inputFile.close(); ui->textEdit->setPlainText(line);
  //设置cursor
QTextCursor cursor = ui->textEdit->textCursor();
cursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, );
}

上述代码需要包括头文件:

#include <QFile>
#include <QTextStream>

【QT相关】类头文件解读、QT编辑模式、读取text文本的更多相关文章

  1. 实现C++模板类头文件和实现文件分离的方法

    如何实现C++模板类头文件和实现文件分离,这个问题和编译器有关. 引用<<C++primer(第四版)>>里的观点:1)标准C++为编译模板代码定义了两种模型:“包含”模型和“ ...

  2. EPANET头文件解读系列7——MEMPOOL.H

    //EPANET应用程序使用了大量的节点与管段数据,而且每个对象数据又有不同时段的数据,这些数据占用了大量内存,而mempool.h就是一个简单快速的内存分配相关的头文件/***  mempool.h ...

  3. C++模板类头文件和实现文件分离

    http://www.cnblogs.com/lvdongjie/p/4288373.html 如何实现C++模板类头文件和实现文件分离,这个问题和编译器有关. 引用<<C++primer ...

  4. Qt - 错误总结 - 在自定义类头文件中添加Q_OBJECT 编译时报错(undefined reference to ‘vtable for xxThread)

    错误提示:在添加的QThread子类头文件添加Q_OBJECT时,编译程序,出现"undefined reference to 'vtable for xxThread'"错误提示 ...

  5. qt c++对象头文件如何相互包含

    今天在写qt时,遇到了两个类相互包含的问题,类A要用到类B,类B要用到类A. 类A:a.h #ifndef A_H #define A_H #include <b.h> class A { ...

  6. C++11 多线程相关的头文件

    C++11 新标准中引入了四个头文件来支持多线程编程,他们分别是<atomic> ,<thread>,<mutex>,<condition_variable& ...

  7. EPANET头文件解读系列3——TOOLKIT.H

    /******************************************************************** TOOLKIT.H - Prototypes for EPA ...

  8. [转]VC++的类头文件

    本文转自:http://blog.csdn.net/forevertali/article/details/4370602   animal.h //在头文件中包含类的定义及类成员函数的声明 clas ...

  9. EPANET头文件解读系列6——HASH.H

    该文件是EPANET中HASH.C的头文件,下面列出了该文件的源码以及我的中文注释 /* HASH.H**** Header file for Hash Table module HASH.C***/ ...

随机推荐

  1. 5.6.3.8 fromCharCode()方法

    String构造函数本身还有一个静态方法:fromCharCode().这个方法的任务是接收一或多个字符编码,然后将它们转换成一个字符.从本质上来看,这个方法与实例方法charCodeAt()执行的是 ...

  2. 【转】vs2008中leptonica-1.68安装配置

    tesseract ocr挺不好配置的,找到一篇不错的文章,分享如下:http://hi.baidu.com/ever8936/blog/item/6998e1196b1d0161dab4bd8f.h ...

  3. tcpdump抓包并保存成cap文件

    首选介绍一下tcpdump的常用参数 tcpdump采用命令行方式,它的命令格式为: tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接 ...

  4. Spring Boot使用自定义的properties

    spring boot使用application.properties默认了很多配置.但需要自己添加一些配置的时候,我们应该怎么做呢. 若继续在application.properties中添加 如: ...

  5. USACO 2001 OPEN

    第1题 绿组. 奶牛接力赛[relay] 题目描述 农夫约翰已经为一次赛跑选出了K(2≤K≤40)头牛组成了一支接力队.赛跑在农夫约翰所拥有的农场上进行,农场的编号为1到Ⅳf4≤Ⅳ< 800), ...

  6. docpad建站记录

    记一下用docpad建站的过程作为备忘.不定时更新 why docpad wordpress对我来说太过于臃肿,我就想要个代码干净的小站来写东西.想要个markdown为基础的静态站. 比较流行的St ...

  7. cocos2d-x新手学习之Helloworld(第三篇)[版本号:cocos2d-x-3.1.1]

    上篇中,能够正常执行NDK中的样例.可是由cocos2d-x生成的项目,不能编译成功.上一篇戳这里: http://blog.csdn.net/xjjjjjjjjjjj/article/details ...

  8. NeHe OpenGL lession 4

    // lession4.c #include <OpenGL/OpenGL.h> #include <GLUT/GLUT.h> #include <stdio.h> ...

  9. Oracle存储过程function语法及案例

    create or replace function F01_SX03_SUM(statdate varchar2, code varchar2, para varchar2) RETURN numb ...

  10. Codeforces 492B B. Vanya and Lanterns

    Codeforces  492B   B. Vanya and Lanterns 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...