# Qt > [doc](https://doc.qt.io/) ## 第一篇 > [source](https://ithelp.ithome.com.tw/articles/10233486) Qt 專案用 `.pro` 這篇文章主要圍繞在教 Qt Widgets hello 範例: ```cpp #include <QApplication> #include <QWidget> int main(int argc, char *argv[]) { QApplication a(argc, argv); // app 的開始 QWidget w; w.show(); return a.exec(); // app 的結束 } ``` `QWidget` 是 Qt 內的基本單位,其為物件,在這裡我們使用 `QWidget::show()` 來彈出視窗。 `QWidget::setLayout()` 用於設定排版元件,設定後會決定子元件的排版方式 - `QHBoxLayout` horizontal - `QVBoxLayout` vertical ```cpp QObject::connect(監聽的物件, 監聽的事件, 事件接收者, handler function); ``` > 版主怎麼才連載到 Day 5 而已 QQ ## 在 vscode 執行 > https://www.twblogs.net/a/5ef8237df389f90e9904434d 1. `qmake xxx.pro` 3. `make` 4. `./xxx` ## 第二篇 > http://c.biancheng.net/qt/ Qt creator - Qt Widgets Application : desktop GUI - Qt Console Application : 沒有 GUI 的操作界面 Qt 引入了 `signals` 和 `slots` 關鍵字 ```cpp QObject::connect(const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type = Qt::AutoConnection) ``` ### QWidget ### QLabel class 繼承關係: ```graphviz digraph { rankdir = LR; QLabel -> QFrame -> QWidget; } ``` 成員變數 - alignment - text - pixmap 圖片相關 - selectedText - indent - margin - wordWrap 控制換行 成員函式 - hide - clear - setToolTip 滑鼠移上去會浮出說明 - setStyleSheet - setGeometry signals - linkActivated 超連結 slots - clear - setMovie - setText ### QPushButton class 繼承關係: ```graphviz digraph { rankdir = LR; QPushButton -> QAbstractButton -> QWidget; } ``` 成員變數 - size - text - font - flat 決定有沒有邊框 - enabled 決定按鈕能不能按 成員函式 - move() - setGeometry() - adjustSize() 調整按鈕大小到適中 - setDisabled() signals - clicked 按下或使用鍵盤快捷鍵 - pressed - released slots - click - setIconSize - hide - setMenu ### QLineEdit 成員變數 - text - maxLength - placeholderText - clearBottonEnabled 清除按鍵 - echoMode - Normal - NoEcho - Password - PasswordEchoOnEdit 成員函式 - move - setValidator - setReadOnly - setAlignment signals - textEdited - textChanged - returnPressed :enter 鍵被按 - editingFinished :enter 鍵被按或是滑鼠點外面 slots - clear - setText ### QListWidget ```graphviz digraph { QListWidget -> QListView -> QAbstractItemView -> QAbstractScrollArea -> QFrame -> QWidget; } ``` `QListWidget` 較為簡易好上手,`QListView` 較為複雜功能全面 http://c.biancheng.net/view/9418.html ### QLayout