在qt6中qml连接数据库
时间: 2024-02-20 21:02:28 浏览: 272

qml与Qt数据交互

在Qt 6中,连接数据库可以使用QtSql模块和QML中的QtQuick.Controls 2.5模块中的SqlTableModel。以下是一个简单的示例,展示如何在QML中使用SqlTableModel连接到SQLite数据库:
1. 在Qt Creator中,创建一个新的Qt Quick应用程序项目。
2. 在项目文件夹中添加一个SQLite数据库文件,例如“test.db”。
3. 在项目文件夹中创建一个新的QML文件,例如“Database.qml”。
4. 在“Database.qml”文件中添加以下内容:
```
import QtQuick.Controls 2.5
import QtQuick.Controls.Material 2.5
import QtSql 1.0
ApplicationWindow {
id: window
width: 640
height: 480
visible: true
title: "SQLite Database"
SqlTableModel {
id: model
tableName: "test"
database: QSqlDatabase.addDatabase("QSQLITE")
source: "test.db"
selectStatement: "SELECT * FROM test"
onDatabaseChanged: {
if (database.open()) {
console.log("Database opened successfully")
} else {
console.log("Error opening database: " + database.lastError().text())
}
}
}
TableView {
id: tableView
width: parent.width
height: parent.height - 50
model: model
delegate: Rectangle {
width: tableView.columnWidthProvider(index)
height: tableView.rowHeightProvider(index)
Text {
text: styleData.value
font.pixelSize: 16
wrapMode: Text.WordWrap
anchors.fill: parent
anchors.margins: 10
}
}
}
Button {
text: "Add Row"
anchors.bottom: parent.bottom
onClicked: {
model.insertRow(model.rowCount)
}
}
}
```
5. 运行应用程序并查看结果。
此示例创建了一个名为“test”的表,并在其中添加了一些数据。然后,使用SqlTableModel在QML中连接到SQLite数据库,将表格数据显示在一个TableView中,并提供了一个按钮来添加新行。在实际应用程序中,您需要根据您的特定情况进行适当的更改。
阅读全文