中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Qt常用控件+事件+基礎繪圖(四)

發布時間:2020-05-10 14:51:46 來源:網絡 閱讀:937 作者:WZM3558862 欄目:編程語言
  1. 第一個Qt程序
    新建一個空的項目
    Qt常用控件+事件+基礎繪圖(四)
    .pro文件內容
    Qt常用控件+事件+基礎繪圖(四)
    示例代碼:

    Qt常用控件+事件+基礎繪圖(四)

    Qt常用控件+事件+基礎繪圖(四)

     1 /* 應用程序抽象類 */ 2 #include <QApplication> 3 #include <QWidget> 4 #include <QPushButton> 5 #include <QDebug> 6  7 int main(int argc, char *argv[]) 8 { 9     QApplication app(argc, argv);10 11     QWidget w;12     w.show();13     w.setWindowTitle("你好,世界!"); // Qt 5不存在亂碼的問題了14 15     QPushButton btn("button");16     btn.setParent(&w); // 不設置父對象,那么按鈕也就是一個獨立的窗口17     btn.show();18 19     QObject::connect(&btn, QPushButton::clicked, [](){20         qDebug() << "button is clicked..." << endl;21     });22 23     return app.exec();24 }

    Qt常用控件+事件+基礎繪圖(四)

  2. QLineEdit常用功能
    設置輸入密碼
    設置提示文字
    設置自動匹配
    示例代碼:

    Qt常用控件+事件+基礎繪圖(四)

    Qt常用控件+事件+基礎繪圖(四)

     1 #include <QApplication> 2 #include <QLineEdit> 3 #include <QDebug> 4 #include <QCompleter> 5 #include <QWidget> 6  7 int main(int argc, char *argv[]) 8 { 9     QApplication app(argc, argv);10 11     QLineEdit lineEdit;12     /* 顯示模式 enum EchoMode { Normal, NoEcho, Password, PasswordEchoOnEdit }; */13     //lineEdit.setEchoMode(QLineEdit::PasswordEchoOnEdit); // 失去焦點時候變為密文14 15     /* 淘汰傳統的輸入之后還要點擊按鈕 */16     QObject::connect(&lineEdit, QLineEdit::returnPressed, [](){17         qDebug() << "You have entered the return key...";18     });19 20     /* 自動補全 只有echomode設置為Normal時completer才有效 */21     QCompleter completer(QStringList() << "aa" << "abc" << "123");22     completer.setFilterMode(Qt::MatchContains); // 包含匹配 比如:輸入b也會匹配abc23     lineEdit.setCompleter(&completer);24 25     /* lineEdit設置提示文字 */26     lineEdit.setPlaceholderText("Please input text:");27 28     lineEdit.show();29 30     return app.exec();31 }

    Qt常用控件+事件+基礎繪圖(四)

  3. 坐標系統
    設置坐標

    Qt常用控件+事件+基礎繪圖(四)

    Qt常用控件+事件+基礎繪圖(四)

     1 #include <QApplication> 2 #include <QWidget> 3 #include <QPushButton> 4  5 int main(int argc, char* argv[]) 6 { 7     QApplication app(argc, argv); 8  9     /* 構造一個窗口*/10     QWidget w;11 12     /*顯示窗口*/13     w.show();14 15     /* 按鈕也是個窗口 */16     QPushButton button;17     button.setText("Button");18     /* 窗口對象的父子關系,影響顯示位置 */19     /* 沒有父窗口的窗口,我們稱之為主窗口 */20     button.setParent(&w);21     button.show();22 23     button.setGeometry(30, 30, 100, 30);24 25     return app.exec();26 }

    Qt常用控件+事件+基礎繪圖(四)

  4. 布局Layout
    QHBoxLayout簡單實現控件居中:

    Qt常用控件+事件+基礎繪圖(四) main.cpp

    效果圖:
    Qt常用控件+事件+基礎繪圖(四)

    QHBoxLayout實現居中并且設置控件比重:

    Qt常用控件+事件+基礎繪圖(四) main.cpp

    效果圖:
    Qt常用控件+事件+基礎繪圖(四)

    QGridLayout實現控件居中:

    Qt常用控件+事件+基礎繪圖(四) main.cpp

    效果圖:
    Qt常用控件+事件+基礎繪圖(四)

    QGridLayout實現簡單的登錄界面:

    Qt常用控件+事件+基礎繪圖(四) main.cpp

    效果圖:
    Qt常用控件+事件+基礎繪圖(四)

  5. 常用控件的基本使用
    QLabel

    Qt常用控件+事件+基礎繪圖(四) QLabel.cpp

    Button組(QPushButton,QRadioButton, QCombobox,QCheckBox)

    Qt常用控件+事件+基礎繪圖(四) Button.cpp

    效果圖:
    Qt常用控件+事件+基礎繪圖(四)
    QTextEdit基本使用:

    Qt常用控件+事件+基礎繪圖(四) QTextEdit.cpp

    效果圖:
    Qt常用控件+事件+基礎繪圖(四)

    QGroupBox基本使用:

    Qt常用控件+事件+基礎繪圖(四) QGroupBox.cpp

    效果圖:
    Qt常用控件+事件+基礎繪圖(四)

    QSlider、QSpinBox基本使用:

    Qt常用控件+事件+基礎繪圖(四) QSpinBoxAndQSlider.cpp

    效果圖:
    Qt常用控件+事件+基礎繪圖(四)

    QLCDNumber基本使用:

    Qt常用控件+事件+基礎繪圖(四) QLCDNumber.cpp

    效果圖:
    Qt常用控件+事件+基礎繪圖(四)

  6. QEvent

    Qt常用控件+事件+基礎繪圖(四) MyEvent.h

    Qt常用控件+事件+基礎繪圖(四) MyEvent.cpp

  7. EventFilter

    Qt常用控件+事件+基礎繪圖(四) MyApplication.h

    Qt常用控件+事件+基礎繪圖(四) MyApplication.cpp

    Qt常用控件+事件+基礎繪圖(四) MyWidget.h

    Qt常用控件+事件+基礎繪圖(四) MyWidget.cpp

  8. QPainter
    覆蓋基類的painterEvent虛函數,函數原型為:
    Qt常用控件+事件+基礎繪圖(四)
    簡單的圖形繪制:

    Qt常用控件+事件+基礎繪圖(四)

    Qt常用控件+事件+基礎繪圖(四)

     1 void MyWidget::paintEvent(QPaintEvent *) 2 { 3     // 簡單的繪制 4     QPainter p(this); 5     //p.drawArc(100, 100, 20, 20, 10, 10); 6     p.drawLine(QPointF(100, 100), QPointF(200, 200)); 7     p.setPen(QPen(QColor("red"))); 8     p.setBrush(Qt::yellow); // 畫刷是代表封閉圖形的內部填充 9     p.drawRect(QRect(200, 200, 220, 220));10     p.setRenderHint(QPainter::Antialiasing); // 變得圓潤一些11     p.drawEllipse(QPointF(150, 150), 40, 40);12     p.drawText(QPointF(250, 250), "Hello Qt");13 }

    Qt常用控件+事件+基礎繪圖(四)

     通過變換集來存儲所有的變換:

    Qt常用控件+事件+基礎繪圖(四)

    Qt常用控件+事件+基礎繪圖(四)

     1 { 2   // 通過變換集來存放所有的變換 3     QPainter p(this); 4     QTransform trans; 5     //trans.rotate(88.0, Qt::YAxis); 6     //trans.translate(100, 300); 7     trans.scale(3, 3); 8     p.setTransform(trans); 9     p.drawLine(100, 100, 200, 100);      
    10 }

    Qt常用控件+事件+基礎繪圖(四)

    先畫一張圖,然后將該圖繪制到窗口上:

    Qt常用控件+事件+基礎繪圖(四)

    Qt常用控件+事件+基礎繪圖(四)

     1 {    
     2     // 先畫一張圖,然后將圖繪制到窗口 3     QPixmap pixmap(size()); // pixmap默認的是黑色背景 4     QPainter p(&pixmap); 5  6     // 想著設置pixmap背景為白色,并不能實現,需要通過以下方法 7     //p.setBackground(QBrush(Qt::white));  8     p.setBrush(Qt::white); 9     p.drawRect(0, 0, size().width(), size().height());10     p.drawLine(QPointF(100, 100), QPointF(200, 200));11     p.setPen(QPen(QColor("red")));12     p.setBrush(Qt::yellow); // 畫刷是代表封閉圖形的內部填充13     p.drawRect(QRect(200, 200, 220, 220));14 15     p.end();16     p.begin(this); // 開始繪制窗口17     p.drawPixmap(0, 0, pixmap);18 }

    Qt常用控件+事件+基礎繪圖(四)


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长顺县| 安岳县| 磐石市| 额济纳旗| 和龙市| 延津县| 霍林郭勒市| 深州市| 井研县| 岳普湖县| 西平县| 余庆县| 改则县| 麻城市| 淳安县| 大洼县| 湖南省| 牟定县| 姜堰市| 安远县| 阿拉善盟| 神池县| 彭阳县| 蓬安县| 寻乌县| 通道| 汝南县| 敖汉旗| 正安县| 探索| 平邑县| 新巴尔虎左旗| 武陟县| 普兰店市| 崇义县| 外汇| 邵阳县| 昭苏县| 广平县| 光泽县| 六安市|