日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Hello Qt(在Linux下编写运行Qt程序)

發布時間:2023/12/9 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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


配置好上面的環境變量后,需要重新生成Makefile,即執行:qmake hello.pro

最后,執行make生成hello可執行文件,測試運行:./hello


仔細比較下下就會發現:不同版本qmake生成的Makefile內容是不同的,這就是利用makefile生成可執行文件時會失敗的原因了!

總結

以上是生活随笔為你收集整理的Hello Qt(在Linux下编写运行Qt程序)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。