创建视图:

QHBoxLayout* pHLay = new QHBoxLayout(this);

m_pLeftTree = new QTreeView(this);

m_pLeftTree->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置不可编辑

m_pLeftTree->setFixedWidth(300);

创建模型和模型项:

m_pLeftTree->setFrameShape(QFrame::NoFrame);

QStandardItemModel* model = new QStandardItemModel(m_pLeftTree);

model->setHorizontalHeaderLabels(QStringList() << "draw all");

QStandardItem* pParentItem = NULL;

QStandardItem* pChildItem = NULL;

// 点

pParentItem = new QStandardItem(QIcon(":/resources/point.png"), "draw ponit");

model->appendRow(pParentItem);//将父项加入Model

pChildItem = new QStandardItem(QIcon(":/resources/point.png"), "point");

pParentItem->appendRow(pChildItem);//将子项加入父节点

pChildItem = new QStandardItem(QIcon(":/resources/multipoints.png"), "multipoints");

pParentItem->appendRow(pChildItem);

// 线

pParentItem = new QStandardItem(QIcon(":/resources/line.png"), "draw line");

model->appendRow(pParentItem);

pChildItem = new QStandardItem(QIcon(":/resources/line.png"), "line");

pParentItem->appendRow(pChildItem);

pChildItem = new QStandardItem(QIcon(":/resources/arc.png"), "arc");

pParentItem->appendRow(pChildItem);

// 封闭的图形

pParentItem = new QStandardItem(QIcon(":/resources/rect.png"), "draw rect");

model->appendRow(pParentItem);

pChildItem = new QStandardItem(QIcon(":/resources/rect.png"), "rect");

pParentItem->appendRow(pChildItem);

pChildItem = new QStandardItem(QIcon(":/resources/roundrect.png"), "roundrect");

pParentItem->appendRow(pChildItem);

pChildItem = new QStandardItem(QIcon(":/resources/chord.png"), "chord");

pParentItem->appendRow(pChildItem);

pChildItem = new QStandardItem(QIcon(":/resources/ellipse.png"), "ellipse");

pParentItem->appendRow(pChildItem);

// 任意路径绘制

pParentItem = new QStandardItem(QIcon(":/resources/polygon.png"), "draw polygon");

model->appendRow(pParentItem);

pChildItem = new QStandardItem(QIcon(":/resources/polygon.png"), "polygon");

pParentItem->appendRow(pChildItem);

pChildItem = new QStandardItem(QIcon(":/resources/polyline.png"), "polyline");

pParentItem->appendRow(pChildItem);

pChildItem = new QStandardItem(QIcon(":/resources/ConvexPloygon.png"), "ConvexPloygon");

pParentItem->appendRow(pChildItem);

pChildItem = new QStandardItem(QIcon(":/resources/lines.png"), "lines");

pParentItem->appendRow(pChildItem);

pChildItem = new QStandardItem(QIcon(":/resources/path.png"), "path");

pParentItem->appendRow(pChildItem);

pChildItem = new QStandardItem(QIcon(":/resources/pie.png"), "pie");

pParentItem->appendRow(pChildItem);

// 图片绘制

pParentItem = new QStandardItem(QIcon(":/resources/image.png"), "draw image");

model->appendRow(pParentItem);

pChildItem = new QStandardItem(QIcon(":/resources/image.png"), "image");

pParentItem->appendRow(pChildItem);

pChildItem = new QStandardItem(QIcon(":/resources/pixmap.png"), "pixmap");

pParentItem->appendRow(pChildItem);

// 文本绘制

pParentItem = new QStandardItem(QIcon(":/resources/text.png"), "draw text");

model->appendRow(pParentItem);

// 擦除

pParentItem = new QStandardItem(QIcon(":/resources/erase.png"), "draw erase");

model->appendRow(pParentItem);

// 路径填充

pParentItem = new QStandardItem(QIcon(":/resources/fillpath.png"), "draw fillpath");

model->appendRow(pParentItem);

// 矩形填充

pParentItem = new QStandardItem(QIcon(":/resources/fillrect.png"), "draw fillrect");

model->appendRow(pParentItem);

效果如下:

相关链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。