QTreeWidget内嵌QTableWidget
QTreeWidget某个结点下跟一个控件
Qt的控件比较灵活,做项目时刚好用到一个主从表的问题,显示出来比较好看和方便操作。
主表用一个QList,从表用一个树控件,一级子节点表示一个记录,记录的明细信息可以展开结点看明细。如图写了一个demo
贴一下代码:
void MainWindow::initTree()
{
ui->treeAddWidget->clear();
ui->treeAddWidget->setHeaderHidden(true);
QTreeWidgetItem * topItem = new QTreeWidgetItem(QStringList() << "第一列");
ui->treeAddWidget->addTopLevelItem(topItem);
QTreeWidgetItem * item1 = new QTreeWidgetItem(QStringList() << "第一层子结点");
topItem->addChild(item1);
QTreeWidgetItem * item2 = new QTreeWidgetItem(QStringList() << "第二层子结点");
item1->addChild(item2);
QTableWidget * table = new QTableWidget();
ui->treeAddWidget->setItemWidget(item2, 0, table);
table->setColumnCount(2);
table->setHorizontalHeaderItem(0, new QTableWidgetItem("第一列"));
table->setHorizontalHeaderItem(1, new QTableWidgetItem("第二列"));
table->setRowCount(2);
table->setItem(0, 0, new QTableWidgetItem("0, 0"));
QLineEdit * e1 = new QLineEdit("0, 100000000000000000000000");
table->setCellWidget(0, 1, e1);
table->setItem(1, 0, new QTableWidgetItem("1, 0"));
table->setItem(1, 1, new QTableWidgetItem("1, 1"));
}