1. 程式人生 > >Qt中文手冊 之 QApplication

Qt中文手冊 之 QApplication

QApplication管理GUI程式的控制流和主要設定。

QApplication包含由視窗系統和其他來源處理過和傳送過的主事件迴圈。它也處理應用程式的初始化和收尾工作,並提供對話管理。QApplication可以對系統和應用的大部分設定項進行設定。

對於用Qt寫的任何一個GUI應用,不管這個應用有沒有視窗或多少個視窗,有且只有一個QApplication物件。

而對於用Qt寫的非GUI應用,則有且只有一個QCoreApplication物件,並且這個應用不依賴QtGui庫。

這個QApplication物件的指標可以通過instance()函式獲取,它和一個全域性指標--qApp等價。

QApplication的主要功能是:

1、使用所在桌面的引數例如調色盤(palette())、字型(font())、雙擊間隔(doubleClickInterval())等資訊初始化應用程式。當我們改變桌面的一些設定時,可以讓應用程式的這些設定保持一致。

2、QApplication從底層視窗系統接收事件,並通過sendEvent()或postEvent()傳送給需要的視窗。

3、通過解析命令列引數,來設定程式內部狀態。

4、在執行時,可以通過setStyle()函式來改變QApplication包含的一個QStyle物件,從而改變應用程式的外觀。

5、制定程式的顏色策略,詳見setColorSpec()函式說明。

6、通過translate()函式可以設定本地化的字串。

7、QApplication還包含一些非常方便的類,例如螢幕資訊類(desktop())和剪下板類(clipboard())。

8、QApplication包含所有視窗的資訊,可以知道程式在螢幕上的位置(widgetAt()),頂層視窗列表(topLevelWidgets()),關閉所有視窗(closeAllWindows())等等。

9、QApplication能夠管理滑鼠游標樣式。參照setOverrideCursor();

10、在Linux系統的中,它提供重新整理和同步通訊流的函式,參看flushX()和syncX()。

11、QApplication提供全面的與使用者互動介面。當用戶登出時,可以正常關閉;如果不能終止程式,它能取消關機程序;甚至可以儲存程式全部狀態。參看 

isSessionRestored(),sessionId() and commitData() and saveState()

 既然QApplication做了這麼多初始化工作,因此它必須在建立其他與使用者介面相關的類之前建立。QApplication能夠處理命令列引數,所以在想要處理命令列引數之前就要建立它。

標頭檔案:#include<QApplication>

繼承自:QCoreApplication

一、公共函式

1、QApplication::QApplication(int & argc,char ** argv)

1.1、 使用在argv中包含的argc個命令列引數,初始化視窗系統及應用物件。

1.2、有一個全域性的指標app指向應用物件(QApplication)。並且只能建立一個QApplication物件。

1.3、QApplication物件必須在繪製裝置(裝置包括視窗、畫素對映、點陣圖等)之前建立。

1.4、Qt只將能夠識別的命令列引數,賦值給argv及argc。可識別的命令列引數如下:

1.5、Qt 命令列除錯引數(如果Qt編譯時沒有加QT_DEBUG標記,則認為除錯引數是無效的)

    -nograb:告訴Qt一定不會獲取滑鼠和鍵盤事件;

    -dograb:忽略-nograb選項功能,不管-nograb選項是否存在命令列引數中;

    -sync:只有在X11系統下有效,除錯時和除錯伺服器保持同步;

1.6、所有的Qt程式都支援如下的命令列引數:

    -style=風格:設定程式GUI風格。該值可以是關於主題、視窗等。如果你想在編譯Qt時使用風格或者額外的關於風格外掛,這個引數可以幫你實現。

    -style 樣式:同上;

    -stylesheet = 樣式表:設定程式樣式表。這個引數必須是一個包含樣式表的檔案;

         注意:該檔案中樣式表的相對路徑是相對該檔案的。

    -stylesheet 樣式表:同上;

    -session= 會話:從最近的會話中恢復程式。

    -session 會話:同上;

    -widgetcount:在程式崩潰時,列印崩潰前的幾個視窗資訊和最後同時存在的視窗數量。

    -reverse:設定程式自動佈局方向從右到左,對文字的處理方向從右到左;

    -graphicssystem:設定場景視窗和QPixmaps可用的後臺支援,有效的引數是raster和opengl

    -gmljsdebugger=,通過設定特殊的埠號,啟用QML/JS偵錯程式,埠號格式為:1234[,塊],塊是可選的引數。同時使程式等待一個偵錯程式來連線。

1.7、用於X11版本Qt的引數

     -display 顯示:設定X顯示,預設值是$DISPLAY

     -geometry 位置大小:設定第一個視窗顯示的位置。

    -fn 或者-font 字型:設定程式字型。該引數必須是系統能夠識別的。如果Qt程式配置了字型,該引數會被忽略;

    -bg或者-background 顏色:設定程式預設的背景色;

    -fg或者-foreground 顏色:設定程式預設的前景色;

    -btn或者-button 顏色:設定預設的按鈕顏色;

    -name 名字:設定程式的名字;

    -title標題:設定程式的標題;

    -visual TrueColor:在8位顯示屏上強制使用真彩色;

    -ncols 數字:在8位顯示屏上,如果使用QApplication::ManyColor,則限制顏色的數量。如果引數為216,則使用6X6X6顏色體,其他值按2X3X1的比例使用;

    -cmap:讓程式在8位顯示屏上安裝定製色圖;

    -im:設置於伺服器相關的輸入方法(相當於設定X偵錯程式XMODIFIERS的環境變數)

    -inputstyle:

2、QApplication::QApplication(int & argc,char ** argv, bool GUIenabled)

 如果GUIenabled為true,將建立一個GUI程式,否則建立一個控制檯程式(沒有使用者介面的程式);

在X11系統上,如果為false,程式將不會連線X伺服器;

3、QApplication::QApplication(int & argc,char ** argv, Type type)

 enum QApplication::Type

Constant Value Description
QApplication::Tty 0 a console application控制檯程式
QApplication::GuiClient 1 a GUI client application GUI客戶端程式
QApplication::GuiServer 2

a GUI server application (for Qt for Embedded Linux)

GUI伺服器程式(用在嵌入式linux Qt) 和-qws作用相同

 4、QApplication::QApplication(Display * display,Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0)

     建立一個能夠在一個已經開始工作的顯示器上顯示的程式,只在X11系統上有效,並且真彩色位深大於8位元每畫素。

5、QApplication::QApplication(Display * display,int & argc, char ** argv,Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0)

    同上;

6、QApplication::QApplication(QApplication::QS60MainApplicationFactory factory,int & argc, char ** argv)

 用於塞班系統

7、QApplication::~QApplication()

清理程式所有視窗分配的資源;設定全域性指標qApp為0;

8、void QApplication::aboutQt()[static slot]  靜態槽函式

 顯示一個關於Qt版本等資訊的訊息對話方塊。

9、void QApplication::aboutToReleaseGpuResources() [signal]訊號

 只用在塞班系統中,當程式釋放GPU資源時,觸發該訊號。

10、void QApplication::aboutToUseGpuResources()  [signal]訊號

只用在塞班系統中,當程式使用GPU資源時,觸發該訊號。

11、QWidget * QApplication::activePopupWidget()     [static]靜態函式

      返回一個彈出視窗;彈出視窗是一個特殊的頂層視窗的(將視窗標誌設定為Qt::WType_Popup)。當程式開啟一個彈出視窗時,所有的事件都將傳送給彈出視窗,其他視窗不能操作。

      如果已經有彈出視窗,再次彈出視窗時,這個視窗將被放入一個棧中,並返回棧頂的視窗。

12、QWidget * QApplication::activeModalWidget()  [static]靜態函式

     返回一個活動的模態視窗;模態視窗是一個特殊的頂層視窗,事件迴圈在模態視窗中,模態模式下不能操作其他視窗部件。

     所有的模態視窗被放入一個棧中,這個函式返回棧定的視窗。

13、QWidget * QApplication::activeWindow() [static]靜態函式

      返回一個有焦點的視窗頂層視窗,如果返回0,則代表應用程式沒有焦點。

14、void QApplication::alert(QWidget * widget,int msec = 0)

     向視窗發出警告,就像windows下工作列中上的圖示閃現狀態。

15、QWidgetList QApplication::allWidgets()[static]靜態函式

       返回應用程式的所有視窗列表。

16、void QApplication::beep()    [static]靜態函式

      使用預設的音量和鈴聲,發出鈴聲。

17、void QApplication::changeOverrideCursor(constQCursor & cursor[static]靜態函式

     改變游標;使用該函式前必須先設定游標(setOverrideCursor)。

18、QClipboard * QApplication::clipboard()    [static]靜態函式

     返回一個只向全域性貼上板的指標。

19、void QApplication::closeAllWindows()   [static slot]靜態槽函式

     關閉所有頂層視窗;例如,檔案選單中的關閉按鈕就與該槽連結。視窗的關閉順序是隨機的。預設情況下程式會在所有視窗關閉後退出,除非設定quitOnLastWindowClosed為false;

20、int QApplication::colorSpec()    [static]靜態函式

      返回最多可用的顏色總數。參見QApplication::setColorSpec().

21、void QApplication::commitData(QSessionManager & manager)    [virtual]虛擬函式

     相關的QSessionManager希望應用儲存所有資料。也就是,儲存所有開啟著的並且具有操作許可權的檔案。

22、void QApplication::commitDataRequest(QSessionManager & manager)  [signal]訊號

      當QSessionManager向讓程式儲存資料時,發射該訊號,當連線該訊號時,應該使用 Qt::DirectConnection做為connect的第五個引數

 23、QDesktopWidget * QApplication::desktop()[static]靜態函式

      返回桌面資訊QDesktopWidget

24、bool QApplication::desktopSettingsAware()[static]靜態函式

      如果Qt使用系統標準顏色、字型則返回真,否則返回假

25、bool QApplication::event(QEvent * e)  [virtual protected]虛受保護函式

       QObject::event()的重新實現

26、int QApplication::exec()

      進入主迴圈,知道exit()被呼叫。

27、void QApplication::focusChanged(QWidget * old,QWidget * now[signal]訊號

       焦點改變時,該訊號出發。

28、QWidget * QApplication::focusWidget()  [static]靜態函式

       返回獲得焦點的視窗。

29、QFont QApplication::font()[static]靜態函式

       返回程式預設的字型

30、void QApplication::fontDatabaseChanged() [signal]訊號

      當程式載入或刪除字型時,傳送該訊號

31、QFontMetrics QApplication::fontMetrics()[static]靜態函式

      返回應用程式字型規格(長寬間距等引數)。

32、QInputContext * QApplication::inputContext() const           [static]靜態函式

     返回應用程式的輸入法(軟體盤)QInputContext:通過模擬傳送按鍵事件,實現與鍵盤輸入相同的效果。

33、bool QApplication::isEffectEnabled(Qt::UIEffect effect)  [static]靜態函式

        如果使用系統的設定(顏色字型等)則返回真,否則返回假。Qt::UIEffect :一個列舉,描述可用的UI效果。

34、bool QApplication::isLeftToRight()[static]靜態函式

       是否從左到右佈局。

35、bool QApplication::isRightToLeft()[static]靜態函式

      是否從右到左佈局。

36、bool QApplication::isSessionRestored() const

      應用程式是否從最近一個會話中恢復。

37、Qt::KeyboardModifiers QApplication::keyboardModifiers()

      返回當前修飾鍵的狀態。

38、void QApplication::lastWindowClosed()[signal]訊號

       當最後一個視窗關閉時,傳送該訊號。

39、Qt::MouseButtons QApplication::mouseButtons()

     返回當前滑鼠按鍵

41、QCursor * QApplication::overrideCursor()[static]靜態函式

       返回游標

42、QPalette QApplication::palette()[static]靜態函式

       返回調色盤

43、QPalette QApplication::palette(constQWidget * widget)[static]靜態函式

      返回視窗部件widget的調色盤

44、Qt::KeyboardModifiers QApplication::queryKeyboardModifiers()

       返回當前修飾鍵的狀態。注意這是按鍵的實際狀態,與keyboardModifiers不同

45、void QApplication::restoreOverrideCursor()

     撤銷上一次setOverrideCursor()操作

46、void QApplication::setActiveWindow(QWidget * active)

      設定指定的視窗active為活動視窗,當不能使該視窗獲得鍵盤焦點,若想獲取鍵盤焦點可以使用QWidget::activateWindow()函式

47、void QApplication::setColorSpec(int spec)

    設定顏色規格。

48、void QApplication::setDesktopSettingsAware(bool on)

     是否使用系統標準設定引數,顏色字型等

49、void QApplication::setFont(constQFont & font, const char * className = 0)

    設定字型,如果className給出,將設定指定類className的字型

50、void QApplication::setGraphicsSystem(constQString & system)

     設定用於支援視窗部件和QPixmaps等影象的後端處理,有效的引數:native(本地)、raster(柵格)、opengl(OpenGL)

     以下方法設定影象後端,優先順序從高到低:

     命令列:graphicssystem

     函式:QApplication::setGraphicsSystem

     環境變數:QT_GRAPHICSSYSTEM

     編譯配置configure:graphicssystem

51、void QApplication::setInputContext(QInputContext * inputContext)

    設定QInputContext

52、void QApplication::setOverrideCursor(constQCursor & cursor)

    設定游標

53、void QApplication::setPalette(constQPalette & palette, const char * className = 0)

    設定調色盤

54、void QApplication::setStyle(QStyle * style)

    設定程式風格

55、void QApplication::syncX()

    在X11桌面系統中,同步X伺服器

56、QWidget * QApplication::topLevelAt(constQPoint & point)

     返回指定位置的頂層視窗

57、QWidget * QApplication::topLevelAt(int x,int y)

    返回指定位置的頂層視窗

58、QWidgetList QApplication::topLevelWidgets()

    返回視窗列表

59、Type QApplication::type()

    返回程式型別:

QApplication::Tty 0 a console application控制檯程式
QApplication::GuiClient 1 a GUI client application
QApplication::GuiServer 2 a GUI server application (for Qt for Embedded Linux)

60、QWidget * QApplication::widgetAt(constQPoint & point)

   返回指定位置的視窗部件

61、QWidget * QApplication::widgetAt(int x,int y)

   返回指定位置的視窗部件

相關推薦

Qt中文手冊 QApplication

QApplication管理GUI程式的控制流和主要設定。 QApplication包含由視窗系統和其他來源處理過和傳送過的主事件迴圈。它也處理應用程式的初始化和收尾工作,並提供對話管理。QApplication可以對系統和應用的大部分設定項進行設定。 對於用Qt寫的任何一

Qt中文手冊 QTreeWidgetItem

標頭檔案:#include <QTreeWidgetItem> 成員函式 1、QTreeWidgetItem::QTreeWidgetItem(int type = Type)     使用型別type構造項,預設型別視窗型別 2、QTreeWidgetI

Qt中文手冊 QTableWidgetItem

標頭檔案 #include<QTableWidgetItem> 成員函式 1、QTableWidgetItem::QTableWidgetItem(int type = Type)   使用指定item型別type構造。      item的type QTabl

Qt中文手冊 QHeaderView

一、 標頭檔案:#include<QHeaderView> 繼承自:QAbstractItemView 二、屬性 1、cascadingSectionResizes : bool      如果下一區域已經達到最小,是否繼續改變下下一個區域的大小。      前

Qt中文手冊 QTableWidget

簡介:     QTableWidget是基於QTableView的一個預設的檢視模型;它用於顯示一個標準的表格。表格中每一個項通過QTableWidgetItem來實現。 標頭檔案:#include <QTableWidget> 繼承自:QTableView

qt延時QApplication::processEvents詳解

應用場景一:處理密集耗時的事情 有時候需要處理一些跟介面無關的但非常耗時的事情,這些事情跟介面在同一個執行緒中,由於時間太長,導致介面無法響應,處於“假死”狀態。例如:在應用程式中儲存檔案到硬碟上,從開始儲存直到檔案儲存完畢,程式不響應使用者的任何操作,視窗也不會重新繪製,從而處於“無法響應”狀

Qt 類簡介---QApplication

一、詳細描述 QApplication 類管理圖形使用者介面應用程式的控制流和主要設定。 可以說 QApplication是Qt的整個後臺管理的命脈 它包含主事件迴圈,在其中來自視窗系統和其它資源的所有事件被處理和排程。它也處理應用程式的初始化和結束,並且提

QT---QApplication的解釋

1、QApplication QApplication類管理GUI程式的控制流和主要設定,是基於QWidget的,為此特化了QGuiApplication的一些功能,處理QWidget特有的初始化和結束收尾工作。  對於使用了Qt的任何GUI程式來說,不管何時何地有多少個W

也談Qt經典出錯資訊QApplication: No such file or directory

這個問題似乎是老生常談了,好多朋友也都就這個問題做了探究,這裡我說說我的看法,以及對於初學者而言,如何快速定位問題,快速解決問題, 下面是網友zhu的完整闡述: 這個出錯資訊一般是新手在編譯Qt4第一個應用”Hello,World”的時候,翻開Qt程式設計的第一個例子。都

MySQL中文參考手冊my.conf

mysql.server指令碼可以被用來啟動或停止伺服器,通過用start或stop引數呼叫它: shell> mysql.server start shell> mysql.server stop mysql.server可在MySQL安裝目錄下的“share/mysql”目錄裡找到,或在

Qt 類簡介 Qt QApplication

一、詳細描述 QApplication 類管理圖形使用者介面應用程式的控制流和主要設定。 可以說 QApplication是Qt的整個後臺管理的命脈 它包含主事件迴圈,在其中來自視窗系統和其它資源的所有事件被處理和排程。它也處理應用程式的初始化和結束,並且提供對話管理

Qt淺談二十一log調試日誌

gms 生成文件 _file__ ica 沒有 rest delet mar 排除 一、簡單介紹 近期因調試code時,想了解程序的流程,但苦於沒有一個簡易的日誌記錄,不停使用qDebug打印輸出,而終於提交代碼時得去多次刪除信息打印,有時還會出現新改動

QT學習探索

qt windows界面編程 近期由於工作需要在學習QT做界面開發,再次將我最近一個月的學習心得記錄,同時歡迎各位大牛給我提出學習建議。 1:我的學習方法: 第一階段: 主要是參考 C++ GUI Qt4 編程這本書 主要學習QT中的一些基本概念 比如: 信號和槽的機制 QT的事件

13.5.SolrCloud集群使用手冊數據導入

delete text -- bin 數據導入 charset strong cloud clean 轉載請出自出處:http://www.cnblogs.com/hd3013779515/ 1.使用curl命令方式 SolrCloud時會根據路由規則路由到各個shard。

Moodle 中文 API 文件管理API

reverse string bit /dev/ empty cte extra 回調函數 安全 File API 文件管理 文件夾 1. 概述 2. 文件域 2.1 命名文件域 3. 提供文件給用戶 4. 從用戶那獲取文件 5. 樣例

JAVA中文亂碼解決方案

can tco con enc 字符 pos 好的 type nco 1.解決HTML頁面的中文問題:為了使HTML頁面很好的支持中文,在每個HTML頁面的<head>標簽內部增加(創建HTML頁面自帶) <head> <m

Ubuntu下安裝man中文手冊

配置環境 mkdir prefix too 依賴包 ext page git clone conf 安裝步驟 1、先安裝所需要的依賴包: automake 工具 sudo apt-get install autoconf automake libtool git 工具

bash參考手冊五(shell變量)續三

行號 gnu 可能 cpu border 位置 其它 post 換行 LINENO 當前在運行的腳本或者shell函數的行號。 LINES 命令select用來確定打印選擇列表的列寬。收到SIG

grep命令中文手冊(info grep翻譯)

右下角 mode string 此外 output column 3.3 字母 ipp body { font: 13.34px helvetica, arial, freesans, clean, sans-serif; color: black; line-height

Opengl4.5 中文手冊—C

only double flag nal pipeline out adb 存儲 bin 索引 A B C D E F G H I J K L M N O