成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解QT Widget應用學習教程

移動開發
Qt Widget中QWidget不是一個抽象類;它可用作其他widget的容器,并很容易作為子類使用來創建定制widget,它經常用來創建放置其他 widget 的窗口。

QT Widget學習筆記是本文要介紹的內容,Widget 是使用 Qt 編寫的圖形用戶界面 (GUI) 應用程序的基本生成塊。每個 GUI 組件,如按鈕、標簽或文本編輯器,都是一個 widget ,并可以放置在現有的用戶界面中或作為單獨的窗口顯示。每種類型的組件都是由 QWidget 的特殊子類提供的,而 QWidget 自身又是 QObject 的子類。

QWidget 不是一個抽象類;它可用作其他 widget 的容器,并很容易作為子類使用來創建定制 widget。它經常用來創建放置其他 widget 的窗口。

至于 QObject,可使用父對象創建 widget 以表明其所屬關系,這可確保刪除不再使用的對象。使用 widget,這些父子關系就有了更多的意義:每個子類都顯示在其父級所擁有的屏幕區域內。也就是說,當刪除窗口時,其包含的所有 widget 也都自動刪除。
創建窗口

如果 widget 未使用父級進行創建,則在顯示時視為窗口或頂層 widget。由于頂層 widget 沒有父級對象類來確保在其不再使用時就刪除,因此需要開發人員在應用程序中對其進行跟蹤。

在下例中,我們使用 QWidget 創建和顯示具有默認大小的窗口:

  1. QWidget *window = new QWidget();  
  2. window->resize(320, 240);  
  3. window->show(); 

我們可以通過將 window 作為父級傳遞給其構造器來向窗口添加子 widget。在這種情況下,我們向窗口添加按鈕并將其放置在特定位置:

  1. QPushButton *button = new QPushButton(tr("Press me"), window);  
  2. button->move(100, 100);  
  3. button->show(); 

該按鈕現在為窗口的子項,并在刪除窗口時一同刪除。請注意,隱藏或關閉窗口不會自動刪除該按鈕。

使用布局

通常,子 widget 是通過使用布局對象在窗口中進行排列,而不是通過指定位置和大小進行排列。在此處,我們構造要并排排列的標簽和行編輯框 widget。

  1. QLabel *label = new QLabel(tr("Name:"));  
  2. QLineEdit *lineEdit = new QLineEdit();  
  3.  
  4. QHBoxLayout *layout = new QHBoxLayout();  
  5. layout->addWidget(label);  
  6. layout->addWidget(lineEdit);  
  7. window->setLayout(layout); 

我們構造的布局對象管理通過 addWidget() 函數提供的 widget 的位置和大小。布局本身是通過調用 setLayout() 提供給窗口的。布局僅可通過其對所管理的 widget(和其他布局)的效果才可顯示。

在上文示例中,每個 widget 的所屬關系并不明顯。由于我們未使用父級對象構造 widget 和布局,我們會看到一個空窗口和兩個包含了標簽與行編輯框的窗口。不過,如果我們告知布局來管理標簽和行編輯框,并在窗口中設置布局,兩個 widget 與布局本身就都會成為窗口的子項。

由于 widget 可包含其他 widget,布局可用來提供按不同層次分組的 widget。這里,我們要在顯示查詢結果的表視圖上方、窗口頂部的行編輯框旁,顯示一個標簽。

  1. QLabel *queryLabel = new QLabel(tr("Query:"));  
  2. QLineEdit *queryEdit = new QLineEdit();  
  3. QTableView *resultView = new QTableView();  
  4.  
  5. QHBoxLayout *queryLayout = new QHBoxLayout();  
  6. queryLayout->addWidget(queryLabel);  
  7. queryLayout->addWidget(queryEdit);  
  8.  
  9. QVBoxLayout *mainLayout = new QVBoxLayout();  
  10. mainLayout->addLayout(queryLayout);  
  11. mainLayout->addWidget(resultView);  
  12. window->setLayout(mainLayout); 

除了 QHBoxLayout 和 QVBoxLayout,Qt 還提供了 QGridLayout 和 QFormLayout 類來協助實現更復雜的用戶界面。 

小結:詳解QT Widget應用學習教程的內容介紹完了,希望通過QT Widget應用內容的學習能對你有所幫助。

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-09-07 16:36:00

Qt Widget

2011-09-07 10:34:48

Android Wid

2011-09-09 17:59:26

QT Widget

2011-09-07 16:43:38

Qt Widget

2011-09-09 11:05:56

Widget

2011-09-01 16:01:25

Qt插件

2011-09-09 17:24:39

Qt Webkit模塊

2011-09-08 13:11:07

Android Wid實例

2011-09-07 13:42:36

Android Wid實例

2011-09-07 13:00:36

2011-09-08 15:40:45

Android Wid組件

2011-07-04 11:21:59

QT Designer

2011-06-24 10:54:34

Qt Mysql

2011-09-07 16:24:10

Qt Widget

2011-09-09 16:38:51

Android Wid源碼

2011-06-17 10:19:11

Qt QWidge QSetting

2011-06-17 09:58:26

Qt Chapter QObject

2011-06-24 09:13:30

QT SDL

2011-09-06 11:08:21

QT播放器Mplayer

2011-08-30 15:32:08

QtQuickQML
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜免费福利电影 | 一区二区成人在线 | 97国产精品 | 99久视频| 中文亚洲字幕 | 网页av| 精品国产乱码久久久久久图片 | 久久综合婷婷 | 欧美精品一区二区在线观看 | 欧美福利视频 | av免费网站在线观看 | 亚洲视频中文字幕 | 欧美午夜一区二区三区免费大片 | 国产精品一区二区电影 | 中文字幕在线观看一区 | 伊人久久国产 | 综合久久久 | 国产成人小视频 | 欧美精品一区三区 | 一级a性色生活片久久毛片 午夜精品在线观看 | 亚洲永久免费 | 天天操人人干 | 国产一区二区av | 久久久久黄 | www亚洲一区 | 亚洲欧美日韩精品久久亚洲区 | 夜夜爽99久久国产综合精品女不卡 | 久久亚洲春色中文字幕久久久 | 日本三级黄视频 | 日本一区二区三区四区 | 国产午夜精品理论片a大结局 | 在线观看免费高清av | 99久久精品免费看国产四区 | 黑人巨大精品 | 国产精品欧美一区二区三区 | 亚洲欧美中文日韩在线v日本 | 精品免费视频 | 免费观看a级毛片在线播放 黄网站免费入口 | 一本综合久久 | 中文字幕第一页在线 | 国产国拍亚洲精品av |