2015-06-25 15:20:38
来 源
中存储网
Ubuntu
Qt是一个跨平台的C++开发库,设计思想是同样的C++代码无需修改就可以在Windows,Linux,Mac OS等平台上使用。Qt原来是Trolltech公司的,后来被Nokia收购了。现在Qt已经可以开发Nokia智能移动终端的app应用程序了。今天我们介绍如何搭建Qt开发环境以及如何开

Qt是一个跨平台的C++开发库,设计思想是同样的C++代码无需修改就可以在Windows,Linux,Mac OS等平台上使用。Qt原来是Trolltech公司的,后来被Nokia收购了。现在Qt已经可以开发Nokia智能移动终端的app应用程序了。今天大家介绍如何搭建Qt开发环境以及如何开发基于Nokia智能移动终端上的app应用程序。

1.在http://qt.nokia.com/downloads下载相应的Qt版本,我的是Linux/X11 32位的离线安装包Qt SDK 1.2.1,共764MB。安装Qt之前请确保磁盘至少有5G的剩余空间。

2.下载下来的是一个setup安装包,直接安装就可以。

选择Qt安装目录(强烈建议保持默认!)

点击Install开始安装:

3.接下来大家新建一个HelloWorld,它即可以在桌面OS上运行,也可以在Nokia手机上运行

打开Qt,选择“文件-->新建文件或工程”,选择"Qt Quick项目-->Qt Quick应用程序"

在项目介绍和位置中输入路径
在“Qt Quick应用类型”中选择第一项:仅限内置元素(全平台)

在目标设置中,选择前两项:桌面和Qt模拟器,最后一项Harmattan是Meego平台的,大家不需要

这样,helloworld就新建完成了。

4.点击Qt右下角,有两个Target,一个是Qt模拟器的,一个是桌面的,先选择Qt模拟器

5.然后按绿色三角,开始运行,之后就会弹出Nokia手机模拟器,打开的速度很快,比Android模拟器快多了

右边是模拟器的控制窗口,可以控制模拟器,包括手机型号,网络,传感器等

6.然后大家选择第二个Target:桌面,用同样的方法运行

注意:我没有修改任何代码,就可以运行在手机和桌面平台上了,因此说Qt是跨平台的

7.接下来大家以《C++ GUI Qt 4 编程(第二版)》一书的第一章的三个例子,介绍一下Qt编程(代码和Qt的helloworld自带的代码有较大出入,我还需要好好研究研究)

为了方便,大家不新建工程了,就在Hello World的main.cpp中修改:

第一个例子:hello

将main.cpp修改如下:

#include <QApplication>  
#include <QLabel>  

int main(int argc, char *argv[]) 

QApplication app(argc, argv); 
QLabel *label = new QLabel("Hello Qt!"); 
label->show(); 

return app.exec(); 

程序很简单,就是显示一个Label

第二个例子:quit

将main.cpp修改如下:

#include <QApplication>  
#include <QPushButton>  

int main(int argc, char *argv[]) 

QApplication app(argc, argv); 
QPushButton *button = new QPushButton("Quit"); 
QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit())); 
button->show(); 

return app.exec(); 
}

按一下Quit按钮,程序就退出了。

第三个例子:age

将main.cpp修改如下:

#include <QApplication>  
#include <QHBoxLayout>  
#include <QSlider>  
#include <QSpinBox>  

int main(int argc, char *argv[]) 

QApplication app(argc, argv); 

QWidget *window = new QWidget; 
window->setWindowTitle("Enter Your Age"); 

QSpinBox *spinBox = new QSpinBox; 
QSlider *slider = new QSlider(Qt::Horizontal); 
spinBox->setRange(0, 130); 
slider->setRange(0, 130); 

QObject::connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int))); 
QObject::connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int))); 
spinBox->setValue(35); 

QHBoxLayout *layout = new QHBoxLayout; 
layout->addWidget(spinBox); 
layout->addWidget(slider); 
window->setLayout(layout); 

window->show(); 

return app.exec(); 

拖动滑块,左边的文本框会显示滑块当前值。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。