0. Qt小例子
在终端下编写Qt程序
我们先要介绍在终端窗口编写Qt程序.
打开一个终端,建立一个文件夹,如:mkdir hello
然后进入这个文件夹:cd hello
创建c++文件,vi hello.cpp
在文件中键入下面的代码:
#include <qapplication.h>
#include <qlabel.h>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QLabel *label=new QLabel("Hello Qt!",0);
app.setMainWidget(label);
label->show();
return app.exec();
}
然后我们用qt的工具qmake来生成工程文件:
qmake -project
大家可以用ls查看一下,是不是多了一个名为hello.pro的工程文件.
接下来是生成Makefile文件:
qmake hello.pro
呵呵,ls一下,Makefile终于看到你的.
接下来就是make了,等上一段时间.
运行程序./hello
1. qt3是#include<qapplication.h> ,而qt4是#include<QApplication>
2. 一个qt的程序,为什么在图形界面下正常,在在命令行模式下提示:cannot connect to X server ?
因为qt依靠xwindows,不进入X window界面(就是没启动X window),界面程序就没有运行的平台。
解决方法:startx,进入图形界面。
3.qt-x11版本可以产生Qt开发工具,如designer等等,最重要的是可以得到qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。qt-embedded版本就是专门用于嵌入式方面的版本。QT/E 是用于嵌入式Linux系统的QT版本。QT/E中去掉了X lib的依赖而直接工作于Frame Buffer上,因而应用程序处理过程效率比较高。它的运行只要有Framebuffer设备就可以了,不需要X服务器的支持。但其本身运行也是有服务器和客户端的概念。在服务器没有启动前运行QT/E程序,需要在加“-qws”来启动服务器。如:
#./hello –qws
在QT4以后,QT/E改名位Qtopia Core了,并且集成到Qtopia成品中去了。
4.用Designer设计窗体时候,在main.cpp中要添加相应形如XXX.h的头文件,而不是形如XXX.ui.h的头文件。
5.用Designer设计窗体时候,在main.cpp中要窗体名要写正确。
我在参考嵌入式Linux用Qt Designer快速开发(http://www.oklinux.cn/html/developer/qrs/20070325/11505.html) 这个例子时候,由于作者没有指出把MainForm改成cfconvMainFrom,导出make出现错误:MainForm undeclared 。把MainForm改成cfconvMainFrom后问题解决。