12.qtcreator配置
1.打开 tools->options 选择Build&Run              
2.增加Compilers(编译器)
点击Add选择GCC
然后点击Browse选择g++
/home/csgec/software/arm-2014.05/bin/arm-none-linux-gnueabi-g++
选择完成点Apply
3.增加Qt版本
选择Qt Versions
点击Add
选择/usr/local/qtlib5.6.0/bin/qmake
选择完成点击Apply
4.增加工具包
选择Kits
点击Add
修改Complier为第2步设置的
修改Qt version为第3步设置的
Name改为Qt5.6.0-ARM
完成后点击Apply and OK 

 

 

 

集成的QT及QT Creator安装比较easy,本文介绍的是QT和QT Create独立安装的方法,当然,也不是很难。

      首先说明一下:QT是一个类库,QTCreator是一个框架。要使用QTCreator这个框架必须先把QT的平台搭建好。这个平台需要什么呢?主要需要以下几样:QT(QT库每个版本都有些许变化,可以根据自己需要选择版本,这里的个人需要并不是指功能,而是指你可以选择的教学资源,你有本QT4的书,最好就选择QT4的库,当然,你非要选择QT5也是可以的啦,这里只是建议),编译器(这里主要有两种,一种是GNU的MinGw,一种是微软的VS平台,如果你安装了VS,那就没必要去安装MinGW了,对我而言,两者没什么区别),调试器(MinGW有gdb,VS我就不清楚了,我先下的qt-opensource-windows-x86-vs2008-4.8.6.exe,这个版本的条件估计就是你必须要装了VS2008的平台,我装了VS2008,编译运行都没问题,可是调试出了点小问题,不知道怎么解决,所以就转投MinGW了)。

       综上,要下载的就三样:QT Creator,QT库,(http://download.qt-project.org/official_releases/

                                              MinGW  (http://www.gnu.org/ 具体就自己去找吧,MinGW是一个套件 ,

                                               包括了gcc,g++,gdb,所以不用去额外下gdb了)

        三个的具体安装方法就不介绍了,基本都是默认安装,也不用破解什么的,你懂的,都是开源软件。

       安装完毕后打开QT Creator,进入工具-->选项-->构建与运行,在这里指定QT库和编译器,调试器不用指定,QTCreator会自己指定。具体是先选QT库和编译器,然后是构建套件。搭建完毕之后就可以开始写程序了。但调试的时候还是会提示调试助手未开的问题,直接忽略吧,没什么大问题。

        以上是在win7的环境下安装,比较简单。Linux下的安装过程可能比较复杂一点,但大致也是相同的,只是软件的安装过程有点不一样。因为QT库提供的是源码包,所以安装比较麻烦,大致是解压(tarzxvf...)-->配置(./configure)-->执行make-->最后执行sudo makeinstall来安装。QT库安装完毕之后一样的配置方法。

 

 

 

  说到Qt,不能不说到C++,这门伟大的语言。因为其面向对象的编程思想和陡峭的学习曲线,一开始学习起来很是吃力。Qt从QT4开始基本封装了很多C++的工具库和界面库,而且支持跨平台,这是它最大的优势。相比于古老的MFC和使用C#的WPF来说,我更喜欢Qt来进行C++的界面设计,这也是我从新开始拾起Qt学习之路的原因。

  说完了感受和学习的原因,就开始介绍Qt5了。我这里只做简单的介绍,重要的还是在学习过程中体会Qt的编程逻辑和设计思想。

  Qt,坦白来说,并不只是一个界面库,他是C++编程思想的集大成者。它是得到完善的C++应用程序框架。使用Qt,在一定程度上你获得的是一个“一站式”、“全方位”的解决方案,STL。string、XML、数据库、网络这些零散的功能都包含在Qt中,并且得到了封装,一共开发者使用。

  跨平台GUI通常有三种实现策略,分别是:

 

  1. API 映射:API 映射是说,界面库使用同一套 API,将其映射到不同的底层平台上面。大体相当于将不同平台的 API 提取公共部分。比如说,将 Windows 平台上的按钮控件和 Mac OS 上的按钮组件都取名为 Button。当你使用 Button 时,如果在 Windows 平台上,则编译成按钮控件;如果在 Mac OS 上,则编译成按钮组件。这么做的好处是,所有组件都是原始平台自有的,外观和原生平台一致;缺点是,编写库代码的时候需要大量工作用于适配不同平台,并且,只能提取相同部分的 API。比如 Mac OS 的文本框自带拼写检测,但是 Windows 上面没有,则不能提供该功能。这种策略的典型代表是 wxWidgets。这也是一个标准的 C++ 库,和 Qt 一样庞大。它的语法看上去和 MFC 类似,有大量的宏。据说,一个 MFC 程序员可以很容易的转换到 wxWidgets 上面来。
  2. API 模拟:前面提到,API 映射会“缺失”不同平台的特定功能,而 API 模拟则是解决这一问题。不同平台的有差异 API,将使用工具库自己的代码用于模拟出来。按照前面的例子,Mac OS 上的文本框有拼写检测,但是 Windows 的没有。那么,工具库自己提供一个拼写检测算法,让 Windows 的文本框也有相同的功能。API 模拟的典型代表是 wine ——一个 Linux 上面的 Windows 模拟器。它将大部分 Win32 API 在 Linux 上面模拟了出来,让 Linux 可以通过 wine 运行 Windows 程序。由此可以看出,API 模拟最大优点是,应用程序无需重新编译,即可运行到特定平台上。另外一个例子是微软提供的 DirectX,这个开发库将屏蔽掉不同显卡硬件所提供的具体功能。使用这个库,你无需担心硬件之间的差异,如果有的显卡没有提供该种功能,SDK 会使用软件的方式加以实现。
  3. GUI 模拟:任何平台都提供了图形绘制函数,例如画点、画线、画面等。有些工具库利用这些基本函数,再不同绘制出自己的组件,这就是 GUI 模拟。GUI 模拟的工作量无疑是很大的,因为需要使用最基本的绘图函数将所有组件画出来;并且这种绘制很难保证和原生组件一模一样。但是,这一代价带来的优势是,可以很方便的修改组件的外观——只要修改组件绘制函数即可。很多跨平台的 GUI 库都是使用的这种策略,例如 gtk+(这是一个 C 语言的图形界面库。使用 C 语言很优雅地实现了面向对象程序设计。不过,这也同样带来了一个问题——使用大量的类型转换的宏来模拟多态,并且它的函数名一般都比较长,使用下划线分割单词,看上去和 Linux 如出一辙。gtk+ 并不是模拟的原生界面,而有它自己的风格,所以有时候就会和操作系统的界面格格不入。),Swing 以及我们的 Qt

  Qt 和 wxWidgets 一样,也是一个标准的 C++ 库。但是它的语法类似于 Java 的 Swing,十分清晰,而且使用信号槽(signal/slot)机制,让程序看起来很明白——这也是很多人优先选择 Qt 的一个很重要的原因。不过,所谓“成也萧何,败也萧何”。这种机制虽然很清楚,但是它所带来的后果是你需要使用 Qt 的 moc 对程序进行预处理,才能够再使用标准的 make 或者 nmake 进行正常的编译,并且信号槽的调用要比普通的函数调用慢大约一个数量级(Qt 4 文档中说明该数据,但 Qt 5 尚未有官方说明)。Qt 的界面也不是原生风格的,尽管 Qt 使用 style 机制十分巧妙地模拟了原生界面。另外值得一提的是,Qt 不仅仅能够运行在桌面环境中,还可以运行在嵌入式平台以及手机平台。

  Qt 第一版于 1991 年由 Trolltech (奇趣科技)发布。后来在 2008 年,Nokia 斥资 1.5 亿美元收购 TrollTech,将 Qt 应用于 Symbian 程序开发。2012 年 8 月 9 日,Nokia 将 Qt 以 400 万欧元的价格出售给 Digia。

  伴随着 Qt,一直有两种授权协议:商业授权以及开源授权。在 Qt 的早期版本,商业授权包含一些开源授权不提供的组件,但是在近期版本则不存在这个问题。以往人们对 Qt 的开源授权多有诟病。早期版本的 Qt 使用与 GPL 不兼容的协议授权,这直接导致了 KDE 与 GNOME 的战争(由于 Linux 使用 GPL 协议发布,GPL 协议具有传染性,作为 Linux 桌面环境的 KDE 却是基于与 GPL 不兼容的 Qt 开发,这就不遵守 GPL 协议)。不过,现在 Qt 的开源版本使用的是 GPLv3 以及 LGPL 协议。这意味着,你可以将 Qt 作为一个库连接到一个闭源软件里面。可以说,Qt 协议的争议已经不存在了。

二、Qt的安装与配置

2.1 Qt的安装

 

Qt的安装与配置问题

上面是两种Qt,第一种是使用mingw编译和调试开发的Qt,第二种(红线中)是使用msvc也就是vs调试和编译的Qt。开始学习的建议安装第一种,自带gcc编译器和gdb调试器。安装过程就不说了,一路绿灯就行,安装完之后的状态如下图。

Qt的安装与配置问题

2.2Qt的项目创建

Qt的安装与配置问题

Qt的安装与配置问题

一直往下,中间过程就是自己改一下项目的名字和文件名字,直到出现下面的图,就是创建完成了。

Qt的安装与配置问题

Qt的安装与配置问题

上图是创建好的工程,这样就是可以运行的。

 2.3 Qt的配置

这里说一下mingw版本的配置,此外msvc版本的Qt的编译器和调试器都是msvc(我的具体版本是MSVC2013)。

我的是32bit,然后所有的编译器和调试器都是套件自带的,不用另行下载。

Qt的安装与配置问题

Qt的安装与配置问题

Qt的安装与配置问题

好了,Qt的开始工作做好了,就可以开始学习了,就先到这里。

no pains ,no gains. 给自己加油,为未来奋斗。
 
 
 
安装成功了,开始下载的是msvc版本的qt,还少下一个qt-vsaddin插件(msvc版本的要下,里面没有调试器和编译器),
后来下了一个mingw自带qt库,直接安装,就可以编译运行代码了。
 
 
#include "widget.h"
#include <QApplication>
#include <QLabel>
#include <Qstring>
#include <QDebug>
#include <cstdio>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
//    QWidget w;
//    QLabel label("hello world");
//    w.show();
//    label.show();
//    QString str1,str2;
//    str1="hello microgrid power ";
//    str2="this is microgrid power ";
//    str1+=str2;
//    str1.append("welcome to microgrid power");
//    str1=QString("dcdc双向变换器   %1   %2").arg(str1).arg(str2);
//    QLabel *label=new QLabel(str1);
//    label->show();
//    QList<QString> list;
//    {
//        QString str("this is a test string");
//        list<<str;
//        list<<str;
//    }
//    qDebug()<<list[0]<<list[1];


    QList<int> list;
    for(int j=0;j<10;j++)
        list.insert(list.end(),j);
    QList<int>::iterator i;
    for(i=list.begin();i!=list.end();i++)
    {
        qDebug()<<*i<<" ";
    }

    return a.exec();
}








1 #include <QCoreApplication>
 2 #include <QString>
 3 #include <QtDebug>
 4 int main(int argc, char *argv[])
 5 {
 6     QCoreApplication a(argc, argv);
 7     QMap<QString,QString>map;
 8     map.insert("lili","1990");
 9     map.insert("wangli","1992");
10     map.insert("zhangli","1989");
11     QMap<QString,QString>::const_iterator i;
12     for(i=map.constBegin();i!=map.constEnd();i++)
13         qDebug()<<" "<<i.key()<<" "<<i.value();
14     QMap<QString,QString>::iterator mi;
15     mi=map.find("lili");
16     if(mi!=map.end())
17         mi.value()="1995";
18     QMap<QString,QString>::const_iterator modi;
19     for(modi=map.constBegin();modi!=map.constEnd();modi++)
20        qDebug()<<" "<<modi.key()<<" "<<modi.value();
21     return a.exec();
22 }

  说到Qt,不能不说到C++,这门伟大的语言。因为其面向对象的编程思想和陡峭的学习曲线,一开始学习起来很是吃力。Qt从QT4开始基本封装了很多C++的工具库和界面库,而且支持跨平台,这是它最大的优势。相比于古老的MFC和使用C#的WPF来说,我更喜欢Qt来进行C++的界面设计,这也是我从新开始拾起Qt学习之路的原因。

  说完了感受和学习的原因,就开始介绍Qt5了。我这里只做简单的介绍,重要的还是在学习过程中体会Qt的编程逻辑和设计思想。

  Qt,坦白来说,并不只是一个界面库,他是C++编程思想的集大成者。它是得到完善的C++应用程序框架。使用Qt,在一定程度上你获得的是一个“一站式”、“全方位”的解决方案,STL。string、XML、数据库、网络这些零散的功能都包含在Qt中,并且得到了封装,一共开发者使用。

  跨平台GUI通常有三种实现策略,分别是:

 

  1. API 映射:API 映射是说,界面库使用同一套 API,将其映射到不同的底层平台上面。大体相当于将不同平台的 API 提取公共部分。比如说,将 Windows 平台上的按钮控件和 Mac OS 上的按钮组件都取名为 Button。当你使用 Button 时,如果在 Windows 平台上,则编译成按钮控件;如果在 Mac OS 上,则编译成按钮组件。这么做的好处是,所有组件都是原始平台自有的,外观和原生平台一致;缺点是,编写库代码的时候需要大量工作用于适配不同平台,并且,只能提取相同部分的 API。比如 Mac OS 的文本框自带拼写检测,但是 Windows 上面没有,则不能提供该功能。这种策略的典型代表是 wxWidgets。这也是一个标准的 C++ 库,和 Qt 一样庞大。它的语法看上去和 MFC 类似,有大量的宏。据说,一个 MFC 程序员可以很容易的转换到 wxWidgets 上面来。
  2. API 模拟:前面提到,API 映射会“缺失”不同平台的特定功能,而 API 模拟则是解决这一问题。不同平台的有差异 API,将使用工具库自己的代码用于模拟出来。按照前面的例子,Mac OS 上的文本框有拼写检测,但是 Windows 的没有。那么,工具库自己提供一个拼写检测算法,让 Windows 的文本框也有相同的功能。API 模拟的典型代表是 wine ——一个 Linux 上面的 Windows 模拟器。它将大部分 Win32 API 在 Linux 上面模拟了出来,让 Linux 可以通过 wine 运行 Windows 程序。由此可以看出,API 模拟最大优点是,应用程序无需重新编译,即可运行到特定平台上。另外一个例子是微软提供的 DirectX,这个开发库将屏蔽掉不同显卡硬件所提供的具体功能。使用这个库,你无需担心硬件之间的差异,如果有的显卡没有提供该种功能,SDK 会使用软件的方式加以实现。
  3. GUI 模拟:任何平台都提供了图形绘制函数,例如画点、画线、画面等。有些工具库利用这些基本函数,再不同绘制出自己的组件,这就是 GUI 模拟。GUI 模拟的工作量无疑是很大的,因为需要使用最基本的绘图函数将所有组件画出来;并且这种绘制很难保证和原生组件一模一样。但是,这一代价带来的优势是,可以很方便的修改组件的外观——只要修改组件绘制函数即可。很多跨平台的 GUI 库都是使用的这种策略,例如 gtk+(这是一个 C 语言的图形界面库。使用 C 语言很优雅地实现了面向对象程序设计。不过,这也同样带来了一个问题——使用大量的类型转换的宏来模拟多态,并且它的函数名一般都比较长,使用下划线分割单词,看上去和 Linux 如出一辙。gtk+ 并不是模拟的原生界面,而有它自己的风格,所以有时候就会和操作系统的界面格格不入。),Swing 以及我们的 Qt

  Qt 和 wxWidgets 一样,也是一个标准的 C++ 库。但是它的语法类似于 Java 的 Swing,十分清晰,而且使用信号槽(signal/slot)机制,让程序看起来很明白——这也是很多人优先选择 Qt 的一个很重要的原因。不过,所谓“成也萧何,败也萧何”。这种机制虽然很清楚,但是它所带来的后果是你需要使用 Qt 的 moc 对程序进行预处理,才能够再使用标准的 make 或者 nmake 进行正常的编译,并且信号槽的调用要比普通的函数调用慢大约一个数量级(Qt 4 文档中说明该数据,但 Qt 5 尚未有官方说明)。Qt 的界面也不是原生风格的,尽管 Qt 使用 style 机制十分巧妙地模拟了原生界面。另外值得一提的是,Qt 不仅仅能够运行在桌面环境中,还可以运行在嵌入式平台以及手机平台。

  Qt 第一版于 1991 年由 Trolltech (奇趣科技)发布。后来在 2008 年,Nokia 斥资 1.5 亿美元收购 TrollTech,将 Qt 应用于 Symbian 程序开发。2012 年 8 月 9 日,Nokia 将 Qt 以 400 万欧元的价格出售给 Digia。

  伴随着 Qt,一直有两种授权协议:商业授权以及开源授权。在 Qt 的早期版本,商业授权包含一些开源授权不提供的组件,但是在近期版本则不存在这个问题。以往人们对 Qt 的开源授权多有诟病。早期版本的 Qt 使用与 GPL 不兼容的协议授权,这直接导致了 KDE 与 GNOME 的战争(由于 Linux 使用 GPL 协议发布,GPL 协议具有传染性,作为 Linux 桌面环境的 KDE 却是基于与 GPL 不兼容的 Qt 开发,这就不遵守 GPL 协议)。不过,现在 Qt 的开源版本使用的是 GPLv3 以及 LGPL 协议。这意味着,你可以将 Qt 作为一个库连接到一个闭源软件里面。可以说,Qt 协议的争议已经不存在了。

二、Qt的安装与配置

2.1 Qt的安装

 

Qt的安装与配置问题

上面是两种Qt,第一种是使用mingw编译和调试开发的Qt,第二种(红线中)是使用msvc也就是vs调试和编译的Qt。开始学习的建议安装第一种,自带gcc编译器和gdb调试器。安装过程就不说了,一路绿灯就行,安装完之后的状态如下图。

Qt的安装与配置问题

2.2Qt的项目创建

Qt的安装与配置问题

Qt的安装与配置问题

一直往下,中间过程就是自己改一下项目的名字和文件名字,直到出现下面的图,就是创建完成了。

Qt的安装与配置问题

Qt的安装与配置问题

上图是创建好的工程,这样就是可以运行的。

 2.3 Qt的配置

这里说一下mingw版本的配置,此外msvc版本的Qt的编译器和调试器都是msvc(我的具体版本是MSVC2013)。

我的是32bit,然后所有的编译器和调试器都是套件自带的,不用另行下载。

Qt的安装与配置问题

Qt的安装与配置问题

Qt的安装与配置问题

好了,Qt的开始工作做好了,就可以开始学习了,就先到这里。

相关文章:

  • 2021-11-30
  • 2021-11-18
  • 2022-12-23
  • 2022-12-23
  • 2021-06-28
  • 2021-12-29
  • 2021-12-21
  • 2022-12-23
猜你喜欢
  • 2021-07-26
  • 2022-12-23
  • 2022-12-23
  • 2021-10-04
  • 2021-05-25
  • 2021-07-19
相关资源
相似解决方案