<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 9.2 QStyle 類的使用 說到樣式表,就不可避免的要談到 Qt 的樣式(Qt Style)。 在 Qt 樣式表出現之前,我們主要是通過子類化 QStyle 類或者預定義一個樣式,例如 QWindowStyle,來定制應用程序的觀感,而 Qt 本身也是使用這種方法來為它所支持的不同平 臺提供特定的觀感的。 QStyle 類的應用比較廣泛。它封裝了 GUI 應用程序所使用的觀感樣式,是一個抽象基類。 Qt 包含了一系列的 QStyle 的子類,它們模擬了在各種不同平臺上的 GUI 界面的觀感,這些 觀感可以通過設置 QWindowStyle、QMacStyle、QMotifStyle 等樣式來實現,而且在我們調用 QtGui 這個模塊時,如果事先沒有顯式的指定,那么 Qt 會自動判斷環境并選擇最為適合的樣 式。此外,樣式也可作為插件來被應用程序使用。 下面我們使用 Qt Creator 結合代碼,創建一個實例,大家從中可以學習到使用 QStyle 類配置應用程序的觀感的方法。 ### 9.2.1 實例-使用 QStyle 本實例的代碼見 styleCreator 實例。 第 1 步,創建項目。 啟動 Qt Creator,在彈出的【New...】對話框中選擇 Empty Qt4 Project 類型,如圖所 示,點擊【OK】按鈕進入到下一步的設置界面。 ![](https://box.kancloud.cn/2016-01-22_56a1a14e4aab4.png) 圖 9-2 選擇項目類型 然后,在彈出的【Empty Qt4 Project】對話框里為項目設置名稱和保存位置,這里項 目名稱為 styleCreator。注意,名稱和保存的位置中都不要含有空格、特殊字符和中文字符。 圖 9-3 和圖 9-4 顯示了這個設置的過程。 ![](https://box.kancloud.cn/2016-01-22_56a1a155d2dde.png) 圖 9-3 設置項目名稱和要保存的位置 ![](https://box.kancloud.cn/2016-01-22_56a1a155ef1a1.png) 圖 9-4 設置項目保存的位置 這之后,一路選擇默認設置即可完成項目的創建。如果讀者朋友對使用 Qt Creator 的 使用有不熟悉的地方,可以參見第 6 章和第 12 章。 第 2 步,設計界面。 我們在 Qt Designer 中設計出來的界面布局如圖 9-5 所示,具體的布局結構可以從對象 查看器中得到,不再贅述。 界面設置完成后,將其保存在第 1 步創建的項目目錄下面,名為 styleCreator.ui。 ![](https://box.kancloud.cn/2016-01-22_56a1a1560b638.png) 圖 9-5 界面布局 第 3 步,書寫并向項目中添加文件。 本項目中共有 styleCreator.pro、main.cpp、myWidget.h、myWidget.cpp、和 styleCreator.h 這幾個原生源文件。首先要向項目中加入這幾個文件,一般有兩種方法 。一種是直接在 Qt Creator 中定義、書寫并加入;一種是在 Qt Creator 之外書寫好,然后再加入進來。我們以 main.cpp 為例,簡要介紹這兩種方法。 第一種方法介紹如下,如圖 9-6 所示,首先依次點擊【File】→【New】,在彈出的【New...】 對話框中選擇要新建的類型,這里是 C++ Source File。然后,點擊【OK】按鈕,進入到下 一步設置。 ![](https://box.kancloud.cn/2016-01-22_56a1a14eefb3d.png) 圖 9-6 新增 C++源文件 在接下來彈出的【Chose the location】對話框中設置新建文件的名稱和要保存的位置 , 這里要選中第 1 步創建好的項目的位置。如圖 9-7 所示。點擊【Next】按鈕進入下一步。 ![](https://box.kancloud.cn/2016-01-22_56a1a1561f144.png) 圖 9-7 選擇文件的位置 接下來,在彈出的【Project management】對話框中選中那個 Add to Project 復選框, 并選擇第 1 步創建好的項目 Project 名稱。如圖 9-8 所示,點擊【Finish】按鈕完成新文件 的添加。 ![](https://box.kancloud.cn/2016-01-22_56a1a1563be0e.png) 圖 9-8 選擇項目名稱 第 2 種方法介紹如下,如圖 9-9 所示,在 Qt Creator 中的項目欄上點擊鼠標右鍵,選 擇 Add Existing Files...菜單項,將你在項目外面書寫好的文件加入到項目中。對于前面 使用 Qt Designer 做好的 styleCreator.ui 文件,我們使用這種方法把它加入到項目中。 ![](https://box.kancloud.cn/2016-01-22_56a1a15656078.png) 圖 9-9 使用右鍵菜單添加文件 第 3 步,書寫代碼。 我們選擇使用多繼承的方法,從原生界面文件實體類中派生出一個自定義類 myWidget,首先看一下頭文件。 ``` #ifndef MYWIDGET_H #define MYWIDGET_H #include &lt;QDialog&gt; #include "ui_styleCreator.h" class myWidget:public QDialog,public Ui::Dialog { Q_OBJECT public: myWidget( QDialog *parent = 0 ); public slots: void slotChangeStyle(QString); }; #endif // MYWIDGET_H ``` 首先要包含 QDialog 類的聲明,接下來再加入對 ui_styleCreator.h 的包含。 注意聲明 myWidget 類的方法,是多繼承自 QDialog 類和定義在 ui_styleCreator.h 中定義的 Ui::Dialog 這個實體類。 由于程序中要用到 Qt 的核心機制-信號/槽,所以必須加上 Q_OBJECT 這個宏。然后聲明 構造函數和一個公有槽。 再來看一下類的定義文件。 ``` #include "myWidget.h" #include &lt;QtGui&gt; myWidget::myWidget(QDialog *parent) :QDialog(parent) { setupUi(this); setWindowTitle(tr("Change Window Look And Feel")); comboBox-&gt;addItems(QStyleFactory::keys()); this-&gt;spinBox-&gt;setRange(0,9); this-&gt;lineEdit-&gt;setText(tr("Hello Qt Style,We Can Change It!")); this-&gt;lineEdit-&gt;setReadOnly(true); this-&gt;textEdit-&gt;setText("Hello Qt!\n Qt by Nokia is the standard framework for developing high-performance cross-platform applications.Qt provides single-source portability across Microsoft Windows, Mac OS X, Linux, all major commercial Unix variants, and embedded Linux. On embedded Linux, the Qt API is available as Qtopia Core."); this-&gt;tableWidget-&gt;setRowCount(3); tableWidget-&gt;setColumnCount(3); connect(comboBox,SIGNAL(activated(QString)),this,SLOT(slotChangeStyle(QString))); slotChangeStyle(QStyleFactory::keys()[5]); } void myWidget::slotChangeStyle(QString style) { QApplication::setStyle(QStyleFactory::create(style)); QApplication::setPalette(QApplication::style()-&gt;standardPalette()); } ``` 下面我們講解一下這些代碼的作用。 第 1、2 兩行引入頭文件。 第 5 行初始化界面布局,該句一般放在構造函數的開頭。 第 6 行設置程序標題,注意在字符串前面要用到 tr()函數,使程序滿足國際化的要求。 第 7 行向組合框中加入具體的項值。 QStyleFactory 類用來創建 QStyle 對象。使用 QStyleFactory 的靜態方法 QStyleFactory::keys()可以獲得與具體平臺無關的內置的樣式,以及與平臺有關的部分樣式。與平臺無關的樣式主要包括"windows", "motif", "cde", "plastique" 和"cleanlooks"等風格,與平臺有關的主要包括"windowsxp", "windowsvista" 和"macintosh"等幾種樣式。 此外,書寫樣式時,注意它們的名稱是大小寫敏感的。 第 8 行為滑塊部件設定滑動的范圍。 第 9 行設置編輯框要顯示的文本內容。 第 10 行設置編輯框內容為只讀。 第 11 行設置文本框顯示的文本內容。 第 12 行設置表格部件的行數為 3 行。 第 13 行設置表格部件的列數為 3 列。 第 14 行連接組合框的觸發信號和窗體的 slotChangeStyle 槽。 第 15 行像調用普通函數一樣,調用 slotChangeStyle 槽函數。 第 17-21 行是 slotChangeStyle 槽的定義。 其中第 19 行通過調用 QApplication::setStyle()方法來設置應用程序的樣式,該方法 是 QApplication 類的靜態函數,其原型如下: ``` void QApplication::setStyle ( QStyle * style ) [static] ``` 該方法的形參是 QStyle 類的對象,在本程序中,它的實參是通過 QStyleFactory::create()方法來獲得的。該方法原型如下: ``` QStyle * QStyleFactory::create ( const QString & key ) [static] ``` 其形參是 QString 的對象,返回值是 QStyle 的對象,該方法是 QStyleFactory 類的靜態方法。 第 20 行調用 QApplication::setPalette()方法設置應用程序的顏色組合。該方法是 QApplication 類的靜態方法,其原型如下: ``` void QApplication::setPalette ( const QPalette & palette, const char * className = 0 ) [static] ``` 它的作用是將應用程序原有的顏色組合用 palette 來替換。如果 className 被指定不為空,那么該方法將僅對該參數對應的窗口部件起作用;如果 className 取默認值 0,則 該方法將影響整個兒應用程序中的窗體部件的顏色組合,并且將之前在應用程序中設定的顏色組合替換掉。 最后像下面這樣書寫 main.cpp 文件內容,主要是將自定義的窗口部件顯示出來。 ``` #include &lt;QApplication&gt; #include &lt;QWidget&gt; #include"ui_styleCreator.h" #include"myWidget.h" int main(int argc, char * argv[]) { QApplication app(argc,argv); myWidget widget; widget.show(); return app.exec(); } ``` 通過這個實例,我們可以看到使用 QStyle 類來設置應用程序或窗口部件的樣式是比較簡便的。 在 Qt 應用程序中,QStyle 類的使用非常廣泛。本章只是向大家介紹了經常會用到的基 本功能,其它的如如何創建一個自定義的樣式、如何使用這個自定義的樣式、怎樣使自定義 的窗口部件感知這個樣式等內容都是比較深入的話題,讀者朋友可以在掌握本 節內容的基礎 上,有選擇的學習。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看