在Qt Gui中嵌入QML

2021-07-13 17:52:24 字數 996 閱讀 5800

測試環境: qt 5.5.1 msvc2010

新建vs工程, qt gui專案(專案名字這裡是qtfirst)

設計ui介面, 如圖

因為是雙向測試, 所以先來個按鈕, 把pushbutton的clicked訊號連線到qtfirst的槽

qtfirst.h

class qtfirst : public qmainwindow

;

qtfirst.cpp

qtfirst::qtfirst(qwidget *parent) : qmainwindow(parent)

qtfirst::~qtfirst()

void qtfirst::ontest1(qstring str)

void qtfirst::slot1()

main.qml

import qtquick 2.5

rectangle

mousearea }}

}

qml中的訊號用signal宣告, 槽用function宣告

特別的, 槽函式的宣告沒有變數型別, 因為qml類似js, 只有值有型別, 變數沒有型別

使用qquickview動態建立qml檢視, 之所以不用qquickwidget控制項, 是因為中文輸入有問題(有知道如何解決的朋友可以說一下)

通過rootobject方法取得最頂層物件, 即id為frame的那個rectangle, 測試時發現通過findchild拿不到(即使設定了objectname)

使用connect連線訊號/槽

qml的訊號, 變數有型別

qml的槽, 變數沒有型別, c++的訊號在宣告時引數統一用qvariant型別

本人也是剛接觸這一塊, 如果**不對, 請及時指出

qml中嵌入c 物件

main.cpp 設定qml屬性和視窗屬性 include include include include int main int argc,char argv include include include class qobject 可以使用q invokable的public函式或者publ...

關於QWidget嵌入到qml中顯示

此控制項 過於簡單 本人也是初入it行業不久 希望大家指正錯誤 此控制項可以確保所有基於qwidget為基類的各種類可以使用此控制項 使用前 請注意一定要是qt5 以上版本 或 支援qquickwidget類的建立 qt版本。正常使用方法如下,c 示例 include include qmlwidg...

QML嵌入到QWidget中方法

嵌入方法有兩種一種是直接拖控制項,另一種是cpp 動態生成,qquickwidget m quickwidget new qquickwidget qurl source qrc ui dynamic.qml m quickwidget setresizemode qquickwidget size...