<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Qt5 中的第一個程序 > 原文: [http://zetcode.com/gui/qt5/firstprograms/](http://zetcode.com/gui/qt5/firstprograms/) 在 Qt5 C++ 編程教程的這一部分中,我們創建了第一個程序。 我們顯示一個應用圖標,一個工具提示和各種鼠標光標。 我們在屏幕上居中放置一個窗口,并介紹信號和槽機制。 ## 簡單的例子 我們從一個非常簡單的例子開始。 `simple.cpp` ```cpp #include <QApplication> #include <QWidget> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; window.resize(250, 150); window.setWindowTitle("Simple example"); window.show(); return app.exec(); } ``` 該示例在屏幕上顯示一個基本窗口。 ```cpp #include <QApplication> #include <QWidget> ``` 我們包括必要的頭文件。 ```cpp QApplication app(argc, argv); ``` 這是應用對象。 每個 Qt5 應用都必須創建此對象。 (控制臺應用除外。) ```cpp QWidget window; ``` 這是我們的主要小部件。 ```cpp window.resize(250, 150); window.setWindowTitle("Simple example"); window.show(); ``` 在這里,我們調整窗口小部件的大小并為我們的主窗口設置標題。 在這種情況下,`QWidget`是我們的主窗口。 最后,我們在屏幕上顯示小部件。 ```cpp return app.exec(); ``` `exec()`方法啟動應用的主循環。 ![Simple example](https://img.kancloud.cn/24/aa/24aadd0240e978e0f93a92e1c265c6cb_252x176.jpg) 圖:簡單 example ## 工具提示 工具提示是有關應用中項目的特定提示。 以下示例將演示如何在 Qt5 編程庫中創建工具提示。 `tooltip.cpp` ```cpp #include <QApplication> #include <QWidget> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; window.resize(250, 150); window.move(300, 300); window.setWindowTitle("ToolTip"); window.setToolTip("QWidget"); window.show(); return app.exec(); } ``` 該示例顯示了主`QWidget`的工具提示。 ```cpp window.setWindowTitle("ToolTip"); ``` 我們使用`setToolTip()`方法為`QWidget`小部件設置了工具提示。 ![A tooltip](https://img.kancloud.cn/9f/32/9f32121d0ceb2c7c41636992ac25ad3f_252x176.jpg) 圖:工具提示 ## 應用圖標 在下一個示例中,我們顯示應用圖標。 大多數窗口管理器在標題欄的左上角以及任務欄上都顯示圖標。 `icon.cpp` ```cpp #include <QApplication> #include <QWidget> #include <QIcon> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; window.resize(250, 150); window.setWindowTitle("Icon"); window.setWindowIcon(QIcon("web.png")); window.show(); return app.exec(); } ``` 窗口左上角顯示一個圖標。 ```cpp window.setWindowIcon(QIcon("web.png")); ``` 為了顯示圖標,我們使用`setWindowIcon()`方法和`QIcon`類。 該圖標是位于當前工作目錄中的一個小 PNG 文件。 ![Icon](https://img.kancloud.cn/59/3b/593bc938441d4558b251166d4e9e66dc_252x176.jpg) 圖:圖標 ## 光標 光標是一個小圖標,指示鼠標指針的位置。 在下一個示例中,將顯示我們可以在程序中使用的各種游標。 `cursors.cpp` ```cpp #include <QApplication> #include <QWidget> #include <QFrame> #include <QGridLayout> class Cursors : public QWidget { public: Cursors(QWidget *parent = 0); }; Cursors::Cursors(QWidget *parent) : QWidget(parent) { QFrame *frame1 = new QFrame(this); frame1->setFrameStyle(QFrame::Box); frame1->setCursor(Qt::SizeAllCursor); QFrame *frame2 = new QFrame(this); frame2->setFrameStyle(QFrame::Box); frame2->setCursor(Qt::WaitCursor); QFrame *frame3 = new QFrame(this); frame3->setFrameStyle(QFrame::Box); frame3->setCursor(Qt::PointingHandCursor); QGridLayout *grid = new QGridLayout(this); grid->addWidget(frame1, 0, 0); grid->addWidget(frame2, 0, 1); grid->addWidget(frame3, 0, 2); setLayout(grid); } int main(int argc, char *argv[]) { QApplication app(argc, argv); Cursors window; window.resize(350, 150); window.setWindowTitle("Cursors"); window.show(); return app.exec(); } ``` 在此示例中,我們使用三個框架。 每個幀都有一個不同的光標集。 ```cpp QFrame *frame1 = new QFrame(this); ``` `QFrame`小部件已創建。 ```cpp frame1->setFrameStyle(QFrame::Box); ``` 我們使用`setFrameStyle()`方法設置框架樣式。 這樣我們可以看到框架的邊界。 ```cpp frame1->setCursor(Qt::SizeAllCursor); ``` 使用`setCursor()`方法將光標設置到該幀。 ```cpp QGridLayout *grid = new QGridLayout(this); grid->addWidget(frame1, 0, 0); grid->addWidget(frame2, 0, 1); grid->addWidget(frame3, 0, 2); setLayout(grid); ``` 這會將所有幀分組為一行。 我們將在布局管理一章中詳細討論這一點。 ## `QButton` 在下一個代碼示例中,我們在窗口上顯示一個按鈕。 通過單擊按鈕,我們關閉應用。 `pushbutton.cpp` ```cpp #include <QApplication> #include <QWidget> #include <QPushButton> class MyButton : public QWidget { public: MyButton(QWidget *parent = 0); }; MyButton::MyButton(QWidget *parent) : QWidget(parent) { QPushButton *quitBtn = new QPushButton("Quit", this); quitBtn->setGeometry(50, 40, 75, 30); connect(quitBtn, &QPushButton::clicked, qApp, &QApplication::quit); } int main(int argc, char *argv[]) { QApplication app(argc, argv); MyButton window; window.resize(250, 150); window.setWindowTitle("QPushButton"); window.show(); return app.exec(); } ``` 在此代碼示例中,我們首次使用信號和槽的概念。 ```cpp QPushButton *quitBtn = new QPushButton("Quit", this); quitBtn->setGeometry(50, 40, 75, 30); ``` 我們創建一個新的`QPushButton`。 我們手動調整其大小,然后使用`setGeometry()`方法將其放置在窗口中。 ```cpp connect(quitBtn, &QPushButton::clicked, qApp, &QApplication::quit); ``` 當我們點擊按鈕時,會產生一個`clicked`信號。 時隙是對信號做出反應的方法。 在我們的情況下,它是主應用對象的`quit`槽。 `qApp`是指向應用對象的全局指針。 它在`QApplication`頭文件中定義。 ![A button](https://img.kancloud.cn/84/69/8469db6162fd1712bc8f9ebc81da8c9c_252x176.jpg) 圖:`QPushButton` ## `PlusMinus` 我們將在本節完成,展示小部件如何進行通信。 該代碼分為三個文件。 `plusminus.h` ```cpp #pragma once #include <QWidget> #include <QApplication> #include <QPushButton> #include <QLabel> class PlusMinus : public QWidget { Q_OBJECT public: PlusMinus(QWidget *parent = 0); private slots: void OnPlus(); void OnMinus(); private: QLabel *lbl; }; ``` 這是示例的頭文件。 在此文件中,我們定義了兩個槽和一個標簽小部件。 ```cpp class PlusMinus : public QWidget { Q_OBJECT ... ``` `Q_OBJECT`宏必須包含在聲明自己的信號和槽的類中。 `plusminus.cpp` ```cpp #include "plusminus.h" #include <QGridLayout> PlusMinus::PlusMinus(QWidget *parent) : QWidget(parent) { QPushButton *plsBtn = new QPushButton("+", this); QPushButton *minBtn = new QPushButton("-", this); lbl = new QLabel("0", this); QGridLayout *grid = new QGridLayout(this); grid->addWidget(plsBtn, 0, 0); grid->addWidget(minBtn, 0, 1); grid->addWidget(lbl, 1, 1); setLayout(grid); connect(plsBtn, &QPushButton::clicked, this, &PlusMinus::OnPlus); connect(minBtn, &QPushButton::clicked, this, &PlusMinus::OnMinus); } void PlusMinus::OnPlus() { int val = lbl->text().toInt(); val++; lbl->setText(QString::number(val)); } void PlusMinus::OnMinus() { int val = lbl->text().toInt(); val--; lbl->setText(QString::number(val)); } ``` 我們有兩個按鈕和一個標簽小部件。 我們使用按鈕增加或減少標簽上顯示的數字。 ```cpp connect(plsBtn, &QPushButton::clicked, this, &PlusMinus::OnPlus); connect(minBtn, &QPushButton::clicked, this, &PlusMinus::OnMinus); ``` 在這里,我們將`clicked`信號連接到它們的槽。 ```cpp void PlusMinus::OnPlus() { int val = lbl->text().toInt(); val++; lbl->setText(QString::number(val)); } ``` 在`OnPlus()`方法中,我們確定標簽的當前值。 標簽窗口小部件顯示一個字符串值,因此我們必須將其轉換為整數。 我們增加數量并為標簽設置新的文本。 我們將數字轉換為字符串值。 `main.cpp` ```cpp #include "plusminus.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); PlusMinus window; window.resize(300, 190); window.setWindowTitle("Plus minus"); window.show(); return app.exec(); } ``` 這是代碼示例的主文件。 ![Plus minus](https://img.kancloud.cn/48/e8/48e853ad0d3eeee6da474843233caacf_302x216.jpg) 圖:正負 在本章中,我們在 Qt5 中創建了第一個程序。
                  <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>

                              哎呀哎呀视频在线观看