日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt文档阅读笔记-Multiple Inheritance Example 实例解析及Automatic Connections解析

發(fā)布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt文档阅读笔记-Multiple Inheritance Example 实例解析及Automatic Connections解析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

?

Multiple Inheritance Example 實例解析

Automatic Connections解析


?

Multiple Inheritance Example 實例解析

這個實例很簡單,主要是為了引出uic的Automatic Connections

先把代碼帖上來,再來簡單的解析下:

源碼如下:

calculatorform.h

#ifndef CALCULATORFORM_H #define CALCULATORFORM_H//! [0] #include "ui_calculatorform.h" //! [0]//! [1] class CalculatorForm : public QWidget, private Ui::CalculatorForm {Q_OBJECTpublic:explicit CalculatorForm(QWidget *parent = nullptr);private slots:void on_inputSpinBox1_valueChanged(int value);void on_inputSpinBox2_valueChanged(int value); }; //! [1]#endif

calculatorform.cpp

#include "calculatorform.h" #include <QWidget>//! [0] CalculatorForm::CalculatorForm(QWidget *parent): QWidget(parent) {setupUi(this); } //! [0]//! [1] void CalculatorForm::on_inputSpinBox1_valueChanged(int value) {outputWidget->setText(QString::number(value + inputSpinBox2->value())); } //! [1]//! [2] void CalculatorForm::on_inputSpinBox2_valueChanged(int value) {outputWidget->setText(QString::number(value + inputSpinBox1->value())); } //! [2]

main.cpp

#include "calculatorform.h" #include <QApplication>//! [0] int main(int argc, char *argv[]) {QApplication app(argc, argv);CalculatorForm calculator;calculator.show();return app.exec(); } //! [0]

個人覺得這個應(yīng)該是為了提醒多繼承,才有一個繼承private Ui::CalculatorForm。

這里最關(guān)鍵的是下面這兩個槽函數(shù):

在ui界面里面并在界面中關(guān)聯(lián)信號與槽,也沒有在代碼中寫connect,關(guān)聯(lián)信號與槽,而是使用了Automatic Connections機(jī)制處理(uic與元對象共同作用)

private slots:void on_inputSpinBox1_valueChanged(int value);void on_inputSpinBox2_valueChanged(int value);

這里使用的技術(shù)是uic編譯成.h后,使用元對象自動連接,在下面的小結(jié)中將會說明。

來看看界面和各個變量名:

其中就是這個setupUi(this),這個函數(shù)是Ui::CalculatorForm里面的,通過參數(shù)this指針,使得CalculatorForm這個界面能夠顯示。

?

Automatic Connections解析

這個的主要原理是,把槽函數(shù)寫成指定的格式,uic生成.h文件的時候,調(diào)用元對象的connectSlotsByName函數(shù),從而達(dá)到自動連接的效果!

要求的槽函數(shù)格式如下:

void on_<object name>_<signal name>(<signal parameters>);

這里uic生成的.h文件中,調(diào)用了元對象系的connectSlotsByName(this)。

從而實現(xiàn)了自動連接!

這種方式,感覺和Spring Boot中的JPA映射數(shù)據(jù)庫表名和列名一樣。

下面來總結(jié)下目前3種連接信號與槽的方式:

? ? ? ? ? 1. 在代碼中使用connect進(jìn)行連接;

? ? ? ? ? 2. 在ui文件中,配置信號與槽;

? ? ? ? ? 3. 使用標(biāo)準(zhǔn)命名法利用uic與元對象連接信號與槽。

總結(jié)

以上是生活随笔為你收集整理的Qt文档阅读笔记-Multiple Inheritance Example 实例解析及Automatic Connections解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。