使用你所熟悉的编辑器创建hello.cpp代码如下:
// 包含两个头文件,其中有QApplicaion和QLabel的定义
#include <QApplication>
#include <QLabel>
int main(int argc, char **argv)
{
// 创建QApplication对象用来关联整个应用程序所使用的资源
QApplication app(argc, argv);
// 创建一个QLabel窗口部件(可视化的元素)
QLabel *label = new QLabel("Hello Qt!");
// 让QLabel可见,创建时通常是隐藏的
label->show();
// 将应用程序的控制权传递给QT
return app.exec();
}
1)确认系统是否已经安装4.x版本的QT;
2)把QT的bin目录添加到PATH路径中,编辑/etc/profile文件,在最后添加如下一行代码:
PATH=$PATH:/usr/lib/qt4/bin
3)执行source重新导入环境变量:
source /etc/profile
4)创建一个hello目录:
mkdir hello
5)移动hello.cpp文件到目录中:
mv hello.cpp ./hello
6)进入到hello目录中,执行命令生成一个与平台无关的项目文件hello.pro:
gmake -project
7)执行命令从项目文件生成一个与平台无关的makefile文件:
gmake hello.pro
8)执行make命令编译该程序:make
编译完成后会在该目录下生成一个hello的可执行文件,运行它可以显示Hello Qt!的窗口。
在fedora14下运行Qt程序时出现:
GLib-GIO:ERROR:gdbusconnection.c:2270:initable_init:
assertion failed: (connection->initialization_error == NULL)
原因:在Gnome桌面运行终端,直接su切换到root用户后,在终端用命令行运行QT图形界面的程序,可能会出现上面的提示,这是由于直接使用su切换到root后,root使用的环境变量还是使用执行su命令的普通用户的环境变量。
解决:使用su - 命令来切换到root用户,‘-’参数指示su开启一个登录Shell(login shell)而不是非登录Shell(non-login shell)。这样root读取的是root本身的环境变量,而不是继承自那个输入su命令用户的环境变量。