Hello Qt(在Linux下编写运行Qt程序)
From:?http://www.yafeilinux.com/?p=763
<一>Hello Qt小試牛刀!
說明:我們需要在Linux下已經安裝了Qt。
1.下面是整個程序的詳細介紹:
#include <QApplication>
?//第一行是定義一個應用程序類<QApplication>的頭文件,所有Qt圖形化應用程序都包含在此頭文件,它包含了Qt圖形化應用程序的各種資源、基本設置、控制流以及事件處理等,如果是Qt的非圖形化應用程,則需包含<QCoreApplication>
#include <QLabel>
//第二行定義一個應用到的標簽類<QLabel>的頭文件,
int main(int argc,char *argv[])
?//主函數作為應用程序的入口,所有Qt應用程序都必須有一個主函數名,以argc和argv作為入口參數。
{
//定義一雙花括符,這是程序的書寫格式。???????
?QApplication app(argc,argv);
?//創建一個QApplication對象,用來管理整個應用程序所用到的資源。每個Qt應用程序有且只有一個QApplication對象。argc和argv是QApplication構造函數的兩個參數。支持Qt的程序處理命令行參數。 ??????
QLabel *label = new QLabel(“Hello Qt!~”);
//創建一個顯示”Hello Qt!”的QLabel標簽窗口部件(window gadget簡稱widget)作為應用程序的窗口。應用程序窗口通常是一個包含了一個QMenuBar(Qt菜單欄)、一些QToolBar(Qt工具欄)、一個QStatusBar(Qt狀態欄)以及一些其他窗口部件的窗口部件。大多數應用程序都會用QMainWindow或者一個QDialog作為它的窗口,但Qt可以用任何窗口部件作為它的應用程序窗口,這就是為什么很多人說Qt很靈活的原因。其實可以省略這樣定義QLabel對象的:QLabel label(“Hello Qt!”);將QLabel標簽窗口部件顯示修改為lable.show(); ??????
Label->show();
//QLable的標簽窗口部件在創建的時候是被隱藏的,因此我們要調用show()函數來顯示標簽窗口部件 ??????
?app.exec();
?//調用QApplication的exec()方法,將應用程序的控制權限傳遞給Qt,此時程序會進入事件循環狀態模式,程序等待用戶對其發生的動作相應。Qt將完成事件處理及顯示的工作在應用程序退出時返回exec()的值。
}
2.在Linux下的命令行編輯程序:
[root@localhost root]# mkdir hello
//mkdir命令創建一個hello目錄
[root@localhost root]# cd hello
//cd命令切換到剛才創建的hello目錄
[root@localhost hello]# vi main.cpp
//在hello目錄中用vi創建一個main.cpp文件? 將下面的代碼輸入到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();
}
3.然后在命令行編譯程序:
[root@localhost hello]# qmake –project
//執行qmake –project,因為目錄是hello,因此在hello目錄下生成一個與平臺無關的項目文件hello.pro,
[root@localhost hello]# qmake hello.pro
?//執行qmake hello.pro項目文件后,在hello目錄下生成一個與平臺有關的Makefile文件。
[root@localhost hello]# make
?//執行make進行編譯源代碼,并生成main.o目標文件及hello執行文件。
[root@localhost hello]# ./hello
//執行hello,就會彈出Hello Qt窗口,到此說明成功了?
對顯示信息進一步了解,將main.cpp程序中的QLabel *label = new QLabel(“Hello Qt!”);中的Hello Qt!用html格式進行修改,修改如下: QLabel *label = new QLabel(“<h2><i>Hello</i>””<font color=red>Qt!</font></h2>”); 意思是<h2>Hello Qt</h2>顯示與二號標題字體大小, html的<i></i>標簽將Hello加傾斜表示,<font color=red>Qt!</font>表示將Qt!顏色設置為紅色。點擊QLabel標簽窗口部件左上角的”X”關閉窗口,用vi命令打開main.cpp C++程序源文件,并修改文本顯示的內容,然后保存退出,重新執行make命令編譯源代碼
[root@localhost hello]# ./hello
?//再次執行hello可執行文件,彈出的QLabel標簽窗口與剛才的不同,現實了剛才的預想的效果
==============================================================================================參考上面的內容,我實際操作了一遍。環境:Fedora12 + QTCreator2.0.1
在執行“make"時出現了錯誤,提示ld找不到:-lqt-mt,于是打開Makefile仔細看了下,發現里面生成的內容有問題,搜索目錄中有qt3.3的目錄,于是想到可能是生成的Makefile有問題,而這個文件剛好是由qmake來生成的,因此推斷所調用的qmake版本不對。
仔細看看Fedora12就會發現,在系統裝好后,默認會安裝上QT3和QT4的,而且環境變量如QTDIR, QTINC的指向都不是QTCreator目錄下的。修改前的環境變量為:
QTDIR=/usr/lib/qt-3.3 QTINC=/usr/lib/qt-3.3/include QT_IM_MODULE=xim QTLIB=/usr/lib/qt-3.3/lib PATH=/opt/oracle/product/11.2.0/db_1/bin:/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/zcm/bin修改后的環境變量為(我電腦上qtcreator的安裝目錄為:/opt/qtsdk-2010.05): [zcm@qt #160]$cat qt.config QTDIR=/opt/qtsdk-2010.05 QTINC=/opt/qtsdk-2010.05/qt/include QT_IM_MODULE=xim QTLIB=/opt/qtsdk-2010.05/lib PATH=/usr/lib/qt4/bin:/opt/oracle/product/11.2.0/db_1/bin:/opt/qtsdk-2010.05/qt/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/zcm/bin
最后,執行make生成hello可執行文件,測試運行:./hello
仔細比較下下就會發現:不同版本qmake生成的Makefile內容是不同的,這就是利用makefile生成可執行文件時會失敗的原因了!
總結
以上是生活随笔為你收集整理的Hello Qt(在Linux下编写运行Qt程序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PC端和移动APP端CSS样式初始化
- 下一篇: [Linux C]递归遍历指定目录下的子