QtreeWidget的样式设置:
QtreeWidegt的样式中包含item,branch,勾选框和整个页面的样式设置
在Qt的帮助文档中可以查找SetStyleSheet的范例进行参数
在使用QTreeWidget时,默认是带有虚线的: qtreewidget节点显示 现在需要将这些节点之间的虚线去掉,可采用两种方式,一种是在代码中添加控件的样式,另外一种是在qtcreator中直接设置样式。 第一种:qtcreator中设置样式: 右键该控件,选择change styleSheet…菜单,然后进入到样式编辑界面,添加如下代码: QTreeView::branch {image:none;} 样式界面 点击OK之后,就可以看到效果,此前的虚线已经没有了。
1基本用法:
初始化用基本用到的:
//this->setMouseTracking(true);
this->setRootIsDecorated(false);
this->setSelectionMode(QAbstractItemView::ExtendedSelection);
this->setStyleSheet("QTreeWidget::item{height:25px}"); //设置行宽, 我也找不到提供的接口 setStyleSheet很强大建议看
this->setColumnWidth(0, 100); //设置列宽
this->setColumnCount(2);
QStringList lists;
lists << "NO" << "name";
this->setHeaderLabels(lists);
for (int i=0;i<10;i++)
{
QStringList contentList;
contentList << QString("00%1")arg(i) << "boy";
QTreeWidgetItem pNewItem = new QTreeWidgetItem(this, contentList); //增加
pNewItem->setBackgroundColor(0, QColor(150,0,0));
pNewItem->setFont(0, QFont());
}
//pNewItemRoot->setExpanded(true); //展开子项
增加删除顶层用:
addTopLevelItem(QTreeWidgetItem);
takeTopLeveltem(int);
topLevelItem(int); //返回
topLevelItemCount();
增加删除子层:
addChild(QTreeWidgetItem);
addChildren(const QList<QTreeWidgetItem>&);
takeChild(int);
takeChildren();
child(int) //返回
childCount();
2进价:
//加checkbox, icon
pNewItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);
pNewItem->setCheckState(0, Qt::Unchecked);
//pNewItem->setIcon(int , QIcon);
//向ITEM里放一些QT的控件,如QSpinBox,QComboBox,QPushButton等
this->setItemWidget(pNewItem, 0, new QSpinBox());
//获取某项的QRect, 有时候会很有用,如显缩略图:
QRect rect = this->visualItemRect(QTreeWidgetItem);
//右键菜单重写
contextMenuEvent( QContextMenuEvent event );或者使用信号itemPressed(QTreeWidgetItem, int);
//对头的 *** 作,可以用QLabel或者QTreeWidgetItem对头进行初始化,
//隐藏头
header()->hide();
m_pHeaderView->setClickable(true); //能够发射sectionClicked(int)信号,可做菜单,显示隐藏列:setSectionHidden(int, bool);isSectionHidden(int);
m_pHeaderView->setMovable(true);
m_pHeaderView->setResizeMode(0, QHeaderView::Fixed); //固定列宽
m_pHeaderView->setDefaultSectionSize(100); //默认
//排序
treeWidget->setSortingEnabled(true);
treeWidget->header()->setSortIndicatorShown(true);
treeWidget->header()->setSortIndicator(0, Qt::AscendingOrder);
//要自定义就用信号
connect( treeWidget->header(), SIGNAL( sectionClicked(int) ), this, SLOT( sectionClickedSlot(int) ) );
在小项目里,使用qtreewidget完全足够,
如果想更多灵活用法请使用QTreeView等 MODEL/VIEW控件
在隐藏点。
我们知道在数据结构上来说,任何树都是有根节点的,但我们在QTreeWidget对象中并没有看到界面上展示一个根节点,在QTreeWidget对象和数据项构建时也没有指定这样的根节点,但实际上这个根节点还是存在的,只是不可见,且该节点是树型部件创建之后就自动创建,无论是否存在顶层项。
主要是可以用于递归访问树的所有节点,递归不是从topLevelItem开始,而是从根节点开始,所有节点的类型都是QTreeWidgetItem,可以用QTreeWidgetItem的child方法逐层递归访问。
ui->treeWidget->setColumnCount(1); //设置列数ui->treeWidget->setHeaderLabel(tr("图像选择")); //设置头的标题QTreeWidgetItem imageItem1 = new QTreeWidgetItem(ui->treeWidget,QStringList(QString("图像1")));imageItem1->setIcon(0,QIcon("xxxpng"));QTreeWidgetItem imageItem1_1 = new QTreeWidgetItem(imageItem1,QStringList(QString("Band1"))); //子节点1imageItem1->addChild(imageItem1_1); //添加子节点QTreeWidgetItem imageItem2 = new QTreeWidgetItem(ui->treeWidget,QStringList(QString("图像2")));QTreeWidgetItem imageItem2_1 = new QTreeWidgetItem(imageItem2,QStringList(QString("Band1"))); //子节点1QTreeWidgetItem imageItem2_2 = new QTreeWidgetItem(imageItem2,QStringList(QString("Band2"))); //子节点2imageItem2->addChild(imageItem2_1); //添加子节点imageItem2->addChild(imageItem2_2);ui->treeWidget->expandAll(); //结点全部
QTreeWidgetItem在被编辑时,在编辑器的文本框失去焦点时,才能看到更新的内容,没有实时更新的反馈。但是可以通过实现itemChanged()函数来自定义编辑后的反馈,从而达到实时更新的反馈效果。
修改tree节点的图标的步骤如下:
首先,在src下建立一个assets文件夹,放几张;
其次,编写代码如下:
<xml version="10" encoding="utf-8">
<mx:Application xmlns:mx=">
以上就是关于qtreewidget设置正则表达式全部的内容,包括:qtreewidget设置正则表达式、用什么方法取得 QTreeWidget 中焦点所在行、treewidget的根节点初始位置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)