Qt使用教程之使用Qt Quick UI表單(三)

<Qt Enterprise最新版下載>html

實現主視圖的應用邏輯

新項目嚮導將模板代碼添加到main.qml文件中來建立菜單項和按鈕。經過刪除舊的代碼和添加新的代碼修改模板代碼。您能夠從UI表單中刪除按鈕,同時還須要從main.qml中刪除相應的代碼(或應用程序不能被建立)。app

指定主視圖的大小

該向導將建立一個ApplicationWindow類型和一個MainForm類型來指定應用程序主視圖。輸入應用程序的名稱做爲標題屬性的值。當按鈕被點擊時,經過刪除舊的行所調用函數來清理MainForm代碼:函數

MainForm {
anchors.fill: parent
button1.onClicked: messageDialog.show(qsTr( "Button 1 pressed" ))
button2.onClicked: messageDialog.show(qsTr( "Button 2 pressed" ))
}

ApplicationWindow類型中刪除width和height屬性,並在MainForm類型中使用一個佈局類型來設置主視圖的最小值和首選大小。想要使用佈局,可導入QtQuick Layouts:佈局

import QtQuick.Layouts 1.1ui

而後指定MainForm的如下屬性:spa

MainForm {
anchors.fill: parent
Layout.minimumWidth: 800
Layout.minimumHeight: 480
Layout.preferredWidth: 768
Layout.preferredHeight: 480
建立表視圖模型

在表視圖中使用列表模式顯示客戶數據。由於列表模式是從幾個不一樣的.qml文件中讀取的,經過在CustomerModelSingleton.qml中定義一個singleton類型並在main.cpp註冊來訪問它。這樣,就沒必要依賴QML context做用域規則來訪問列表模型。code

1.在Projects視圖中,右鍵單擊qml.qrc並選擇Add New > Qt > QML File (Qt Quick 2)來建立CustomerModelSingleton.qml文件並將其添加到項目中。orm

2.從CustomerModelSingleton.qml中複製實現。htm

3.在main.qml中添加如下代碼到MainForm來訪問列表模型:ci

tableView1.model: CustomerModel
 
Component.onCompleted: CustomerModel.selection = tableView1.selection

4.在main.cpp文件中註冊singleton類型,包含Qt QML模塊並在初始化函數中調用qmlRegisterSingletonType()函數:

...
#include <qtqml>
 
int main( int argc,  char *argv[])
{
QApplication app(argc, argv);
 
QUrl resourceUrl(QStringLiteral( "qrc:/CustomerModelSingleton.qml" ));
qmlRegisterSingletonType(resourceUrl,  "my.customermodel.singleton" , 1, 0,  "CustomerModel" );</qtqml>

5.在main.qml中想要使用已經註冊的singleton類型,您必須導入singleton類型:

import my.customermodel.singleton 1.0

有興趣的朋友能夠點擊查看更多有關Qt的文章

相關文章
相關標籤/搜索