我试图创建一个简单的treeView出现在Qt 5.5中,问题是树的项目中的文本没有显示,尽管模型已满。
有我的代码:
TreeViewPM.qml
Qt代码: 切换视图
import QtQuick 2.2
import QtQuick.Controls 1.4
import QtQml.Models 2.2
import KMTreeModelPM 1.0
Item {
KMTreeModelPM {
id: treeModel
}
ItemSelectionModel {
id: sel
model: treeModel
}
Text {
id:txt
text: " "
}
TreeView {
id: view
anchors.fill: parent
anchors.margins: 12
selection: sel
headerVisible : false
itemDelegate: Rectangle {
color: ( styleData.row % 2 == 0 ) ? "white" : "lightblue"
height: 20
Text {
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left // by default x is set to 0 so this had no effect
text: styleData.value
}
}
TableViewColumn {
id : title
title: "Title"
role: "title"
resizable: true
horizontalAlignment : Text.AlignLeft
}
model: treeModel
onDoubleClicked: txt.text = treeModel.data(index,0)
}
}
要复制到剪贴板,请将视图切换为纯文本模式
main.qml
Qt代码: 切换视图
import QtQuick 2.2
import QtQuick.Controls 1.4
import QtQml.Models 2.2
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.4
Rectangle {
width: 785
TabView {
x: 17
y: 8
width: 970
height: 800
currentIndex: 2
visible: true
Tab {
id: tabAddProfile
title: qsTr("Add Profile")
AddProfilePage{}
}
Tab {
id: tabAddTypeSubType
title: qsTr("Add Type/SubType")
AddTypeSubTypePage{}
}
Tab {
id: tabAddDetail
height: 413
visible: true
title: qsTr("Add Detail")
TreeViewPM {}
}
}
}
答案 0 :(得分:0)
这可能是你的模特。我们很难知道什么时候无法访问它。
以下作品:
#include <QGuiApplication>
#include <QtQml>
#include <QDebug>
#include <QtGui>
static void initStandardTreeModel(QStandardItemModel *model)
{
QStandardItem *item;
item = new QStandardItem(QLatin1String("Row 1 Item"));
model->insertRow(0, item);
item = new QStandardItem(QLatin1String("Row 2 Item"));
item->setCheckable(true);
model->insertRow(1, item);
QStandardItem *childItem = new QStandardItem(QLatin1String("Row 2 Child Item"));
item->setChild(0, childItem);
item = new QStandardItem(QLatin1String("Row 3 Item"));
item->setIcon(QIcon());
model->insertRow(2, item);
}
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QStandardItemModel* model = new QStandardItemModel();
initStandardTreeModel(model);
QQmlApplicationEngine engine;
engine.rootContext()->setContextProperty("theModel", model);
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
main.qml:
import QtQuick 2.3
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
Window {
width: 800
height: 400
visible: true
TreeView {
id: view
anchors.fill: parent
anchors.margins: 12
TableViewColumn {
id : title
title: "Title"
role: "display"
}
model: theModel
}
}