三、添加行(添加三行一样的信息): for(int i = 0; i < 3; i++) { model->setItem(i,0,new QStandardItem("2009441676 *itemID = new QStandardItem("hello");//QString::number(j))); model.setItem(j,0,itemID); * item1 = new QStandardItem(tr("Yesterday Once More.mid")); QStandardItem* item2 = new QStandardItem (tr("C://Mid//")); QStandardItem* item3 = new QStandardItem(tr("0.001M")); QStandardItem* item4 = new QStandardItem(tr("3:48")); QList<QStandardItem*> item; item << item1 << item2 << item3 << item4;
#include "mainwindow.h"#include "ui_mainwindow.h"#include <iostream>#include <QLabel>#include <QStandardItem for(y=0; y < FixedColumnCount-1; y++) { Item = new QStandardItem(tmpList.at(y)); // void MainWindow::on_actionAppend_triggered(){ QList<QStandardItem *> ItemList; // 创建临时容器 QStandardItem *> ItemList; // QStandardItem的列表类 QStandardItem *Item; // 模拟插入前五列数据 for(int i=0;i<FixedColumnCount -1;i++) { Item= new QStandardItem("测试(插入行)"); // 新建一个QStandardItem ItemList << Item
*> items1; QStandardItem* item1 = new QStandardItem(QString::number(i)); QStandardItem * item2 = new QStandardItem(QStringLiteral("一级节点")); items1.append(item1); items1.append *> items2; QStandardItem* item3 = new QStandardItem(QString::number(j)); QStandardItem *> items3; QStandardItem* item5 = new QStandardItem(QString::number(k)); QStandardItem* item6 = new QStandardItem(QStringLiteral("三级节点")); items3.append(item5
1,new QStandardItem("No.2")); model.setVerticalHeaderItem(2,new QStandardItem("No.3")); /*设置列表条目数据*/ QPixmap pix(":user.png"); pix = pix.scaled(24,24,Qt::KeepAspectRatio); QStandardItem *itemA=new QStandardItem ("A")); model.setItem(0,1, new QStandardItem("B")); model.setItem(1,0, new QStandardItem("C") ); model.setItem(1,1, new QStandardItem("D")); model.setItem(2,0, new QStandardItem("E")); model.setItem(2,1, new QStandardItem("F")); model.setItem(3,0, new QStandardItem("G")); model.setItem
:public QTreeView { public: TreeView(); void iterateOverItems(); QList<QStandardItem *item1 = new QStandardItem(“first”); QStandardItem *item2 = new QStandardItem(“second”); QStandardItem *item3 = new QStandardItem(“third”); QStandardItem *item4 = new QStandardItem( *item5 = new QStandardItem(“fifth”); item4->appendRow(item5); setModel(model); } QList<QStandardItem *> list = returnTheItems(); foreach (QStandardItem* item, list) { qDebug
(QString("100%1").arg(i))); /* 加载第二列(User Name)数据 */ model->setItem(i, 1, new QStandardItem (QString("User%1").arg(i))); /* 加载第三列(City)数据 */ model->setItem(i, 2, new QStandardItem ("Shanghai")); /* 加载第四列(Classify)数据 */ model->setItem(i, 3, new QStandardItem("Engineer ")); /* 加载第五列(Score)数据 */ model->setItem(i, 4, new QStandardItem("80")); /* 加载第六列 (Sign)数据 */ model->setItem(i, 5, new QStandardItem("Hello world!"))
QStandardItem* itemProject = new QStandardItem(m_publicIconMap[QStringLiteral("treeItem_Project")],QStringLiteral QStandardItem的appendRow和setChild方法等价于 QStandardItemModel的 appendRow和 setItem QStandardItem* itemChild 其实道理一样, QStandardItemModel 的 setItem和 QStandardItem的 setChild函数都有关于列的重载,具体看下面的代码: QStandardItem* (QStringLiteral("项目信息说明"))); QStandardItem* itemChild = new QStandardItem(m_publicIconMap[QStringLiteral * getTopParent(QStandardItem* item){ QStandardItem* secondItem = item; while(item->parent()!
*> items; QStandardItem* item0 = new QStandardItem(s->name); QStandardItem* item1 = new QStandardItem(QString::number(score1)); QStandardItem* item2 = new QStandardItem(QString QStandardItem* item4 = new QStandardItem(QString::number(nTotal)); QStandardItem* item5 = new QStandardItem(QString::number(nAverage)); QStandardItem* item6 = new QStandardItem(bPass "合格" : "不合格"); QStandardItem* item7 = new QStandardItem(bGood ?
为了显示一棵树,QStandardItemModel需要使用QStandardItem来进行填充。 节点数据 QList<QStandardItem *> preparedRow =prepareRow("first", "second", "third"); // root 节点 QStandardItem *item = standardModel->invisibleRootItem(); //root 节点添加数据 item->appendRow(preparedRow); //又一个QStandardItem *> rowItems; rowItems << new QStandardItem(first); rowItems << new QStandardItem(second); rowItems << new QStandardItem(third); return rowItems; } 效果图如下: ?
(headers); //设置数据 for(int i=0;i<5;i++) { //一级节点:年级,只设第1列的数据,第2、3列将显示为空白 QStandardItem * itemGrade = new QStandardItem(QStringLiteral("%1年级").arg(i+1)); mModel->appendRow(itemGrade /一级节点挂在model上 for(int j=0;j<3;j++) { //二级节点:班级、姓名、分数 QList<QStandardItem *> items; QStandardItem* itemClass = new QStandardItem(QStringLiteral("%1班").arg(j+1)); QStandardItem* itemName = new QStandardItem("Tom"); QStandardItem* itemScore = new QStandardItem
QTableView示例代码from __future__ import annotationsimport sysfrom PySide6.QtGui import QStandardItem, QStandardItemModelfrom _headers) def add_item(self, row: int, col: int, text: str) -> None: item = QStandardItem(text , text: str) -> None: item = QStandardItem(text) parent.appendRow(item)class TreeModel(QStandardItemModel ") self.model = TreeModel() root_item = self.model.invisibleRootItem() item1 = QStandardItem ('Item 1') item2 = QStandardItem('Item 2') root_item.appendRow(item1) root_item.appendRow
Horizontal, tr("用户")); ui->treeView->setModel(tree); // 将表头设置到模型 // 设置表中元素 QList<QStandardItem *> ptr; QStandardItem *item_uid = new QStandardItem("1001"); item_uid->setIcon(QIcon(":/image/ 1.ico")); ptr.push_back(item_uid); QStandardItem *item_addr = new QStandardItem("192.168.1.1"); ptr.push_back(item_addr); QStandardItem *item_username = new QStandardItem("lyshark"); ptr.push_back
QTreeView *treeView; QTreeView TreeView; QStandardItemModel *standardModel; QList<QStandardItem *> prepareRow(const QString &first) const; QTimer *timer_; int count{0}; QStandardItem *root_; QStandardItem *first_; QStandardItem *second_; public: MainWindow(QWidget *parent = nullptr); }; #endif // MAINWINDOW_H cpp文件: root_ = new QStandardItem("root"); first_ = new QStandardItem("first"); second_ = new QStandardItem("second"); first_->appendRow(second_
self.model.setHorizontalHeaderLabels(['标题1','标题2','标题3','标题4']) # #Todo 优化2 添加数据 # self.model.appendRow([ # QStandardItem ('row %s,column %s' % (11,11)), # QStandardItem('row %s,column %s' % (11,11)), # QStandardItem ('row %s,column %s' % (11,11)), # QStandardItem('row %s,column %s' % (11,11)), # ]) for row in range(4): for column in range(4): item=QStandardItem('row %s,column %s
#include "mainwindow.h" #include "ui_mainwindow.h" #include <iostream> #include <QLabel> #include <QStandardItem for(y=0; y < FixedColumnCount-1; y++) { Item = new QStandardItem(tmpList.at(y)); void MainWindow::on_actionAppend_triggered() { QList<QStandardItem *> ItemList; // 创建临时容器 QStandardItem *> ItemList; // QStandardItem的列表类 QStandardItem *Item; // 模拟插入前五列数据 for(int i=0;i< FixedColumnCount-1;i++) { Item= new QStandardItem("测试(插入行)"); // 新建一个QStandardItem
(0, 1, item) item = QStandardItem("2") self.model.setItem(1, 0, item) item = QStandardItem("张四") self.model.setItem(1, 1, item) 删除指定行 self.model.removeRow(1) 修改某行某列 item = QStandardItem("3") self.model.setItem(0, 0, item) 统计有多少行 count = self.model.rowCount() print(count (0, 1, item) item = QStandardItem("2") self.model.setItem(1, 0, item) item = (1) #修改某一行 item = QStandardItem("3") self.model.setItem(0, 0, item)
Horizontal, tr("用户")); ui->treeView->setModel(tree); // 将表头设置到模型 // 设置表中元素 QList<QStandardItem *> ptr; QStandardItem *item_uid = new QStandardItem("1001"); item_uid->setIcon(QIcon(":/image /1.ico")); ptr.push_back(item_uid); QStandardItem *item_addr = new QStandardItem("192.168.1.1 "); ptr.push_back(item_addr); QStandardItem *item_username = new QStandardItem("lyshark");
枚举选中节点 TreeWidget 获取节点子节点 简单的节点遍历: 首先我们还是使用TreeView组件实现一个简单的多层嵌套树结构,代码运行后,首先循环设置3个外层节点,接着循环内层节点,并将内层中的QStandardItem >treeView->setModel(tree); for (int i = 0; i < 4; ++i) { // 设置3个外层节点 QList<QStandardItem *> items; for (int i = 0; i < 3; ++i) { QStandardItem *item = new QStandardItem *> childItems; for (int i = 0; i < 3; ++i) { QStandardItem *item = new QStandardItem(QString("lyshark")); if (0 == i) item->setCheckable
(QString("lyshark"))); model->setItem(i,2,new QStandardItem(QString("24"))); } } 运行后读者可观察 对于每一行,循环处理每一列(不包括最后一列),为模型的某个行列位置设置 QStandardItem。 对于每行的最后一列,该列是可检查的,需要创建 QStandardItem,并设置为可检查状态。 将 QStandardItem 设置到模型的相应行列位置。 这个函数主要完成了从字符串列表中获取数据并初始化到 TableView 模型的过程,包括表头的设置、数据的提取和状态的处理。 for(y=0; y < FixedColumnCount-1; y++) { Item = new QStandardItem(tmpList.at(y)); 如下所示的函数用于在 TableView 中追加一行数据,具体步骤如下: 创建一个 QList 容器 ItemList 用于存储一行数据的 QStandardItem。
#当前记录有效 itemList=[] studName=qryStudList.value("姓名") item=QStandardItem avgScore=0 studTongshuai=qryStudList.value("统帅") item=QStandardItem =avgScore+studTongshuai studWuli=qryStudList.value("武力") item=QStandardItem =avgScore+studZhili studZhengzhi=qryStudList.value("政治") item=QStandardItem =avgScore+studZhengzhi studMeili=qryStudList.value("魅力") item=QStandardItem