Qt QTreeWidget的行间距设置
QT,QTreeWidget,setItemWidget方法 [bq]
ui.setupUi(this);
connect(ui.deleteItems, SIGNAL(clicked()), this, SLOT(OnBtnClicked())); // signal->slot
ui.treeWidget->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection); // 设置多选,单选
ui.treeWidget->setColumnCount(1); // 设置列的数目
//ui.treeWidget->setStyleSheet("QTreeWidget::item{height:75px}"); // 设置QSS——行的高度(行间距),可以在designer里面设置!
// root 1
myWidget* aRoot_widget_1 = new myWidget;
QTreeWidgetItem* arootItem_1 = new QTreeWidgetItem(ui.treeWidget);
ui.treeWidget->setItemWidget(arootItem_1, 0, aRoot_widget_1);
// root1->child1
QTreeWidgetItem* childItem_1 = new QTreeWidgetItem(arootItem_1);
childWidget* child_widget_1 = new childWidget;
child_widget_1->SetInfo(QString("child_1"));
ui.treeWidget->setItemWidget(childItem_1, 0, child_widget_1);
// root1->child2
QTreeWidgetItem* childItem_2 = new QTreeWidgetItem(arootItem_1);
childWidget* child_widget_2 = new childWidget;
child_widget_2->SetInfo(QString("child_2"));
ui.treeWidget->setItemWidget(childItem_2, 0, child_widget_2);
// root2
myWidget* aRoot_widget_2 = new myWidget;
QTreeWidgetItem* aRootItem_2 = new QTreeWidgetItem(ui.treeWidget);
ui.treeWidget->setItemWidget(aRootItem_2, 0, aRoot_widget_2);
// root2->child3
QTreeWidgetItem* childItem_3 = new QTreeWidgetItem(aRootItem_2);
childWidget* child_widget_3 = new childWidget;
child_widget_3->SetInfo(QString("child_3"));
ui.treeWidget->setItemWidget(childItem_3, 0, child_widget_3);
// root2->child4
QTreeWidgetItem* childItem_4 = new QTreeWidgetItem(aRootItem_2);
childWidget* child_widget_4 = new childWidget;
child_widget_4->SetInfo(QString("child_4"));
ui.treeWidget->setItemWidget(childItem_4, 0, child_widget_4);
ui.treeWidget->removeItemWidget(childItem_4, 0);
// 说明:
1.myWidget和childWidget为自定义widget(继承于QWidget)widget控件,添加方法为在vs2008/2010/2012里面右键选择“添加类”->"Qt4/5GuiClass";
2.在添加自定义widget控件后在QTreeWidget里面可能会出现看不到自定义widget控件的问题,出现问题的原因是QTreeWidget控件的行间距没有设置正确,但是很奇怪的是通过QTreeWidget的setLineWidth方法却不能起作用,正确的做法是设置QTreeWidgetd的CSS属性,具体方法为右键选择“改变样式表...”(在designer里面进行操作),然后在里面添加
#treeWidget::item
{
height:75px;
width:300px;
}
其中#的意思为treeWidget为该样式表的名字,也可以选择直接输入height:75px;width:300px;表示不给该样式表起名字;
此外,还可以通过在代码中设置QTreeWidget的样式表,ui.treeWidget->setStyleSheet("QTreeWidget::item{height:75px}");
// one more(下划线)
text-decoration:underline; // 下划线
text-decoration:overline; // 上划线
(QSS < CSS)
3.关于setItemWidget方法介绍:
void setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget);
第一个参数为一个QTreeWidgetItem对象,需要明确的是我们的自定义的widget控件是依托于/存在于/放在QTreeWidgetItem对象上面的,这样以后就把QTreeWidgetItem对象与我们自定义的widget对象联系起来了;
第二个参数为列,指第几列;
第三个参数为我们自定义的widget控件。
需要理解QTreeWidget里面的父与子的关系!
4.关于QTreeWidgetItem的构造函数,这里用到了它的两种构造函数,一种是
explicit QTreeWidgetItem(QTreeWidget *view, int type = Type); (在本例中为构造root节点)
一种是:
explicit QTreeWidgetItem(QTreeWidgetItem *parent, int type = Type);(在本例中为构造子节点,即root节点的字节点,所以parent即为通过上面构造函数创建的QTreeWidgetItem)。
5.本例效果图如下:
6.补注:
自定义widget被遮挡问题的解决办法除了上述解决办法外(上述解决办法有一个缺陷,即只能设置单一行高度,所有的行都用同一个行高度,不自由),最好的解决办法是设定自定义widget的最大宽度、高度和最小宽度、最小高度为自定义的宽度和高度即可解决该问题。
Qt QTreeWidget的行间距设置相关推荐
- QT QTreeWidget 行切换时改变背景色
文章目录 QT QTreeWidget 行切换时改变背景色 1.关联信号槽. 2.写信号槽函数: QT QTreeWidget 行切换时改变背景色 1.关联信号槽. 当QtreeWidget 的选中状 ...
- 带复选框和简单描述的Qt QTreeWidget树形控件的简单使用
Qt QTreeWidget树形控件的简单使用 具有选择框的树形控件 具有选择框的树形控件 效果:当选中顶层的树形节点时,子节点全部被选中:当取消选中顶层树形节点时,子节点全部被取消:当选中子节点时, ...
- Qt QTreeWidget树形控件用法详解
文章目录 QTreeWidget控件的创建 QTreeWidget\QTreeView的关系和区别 QTreeWidgetItem类 QTreeWidget的实际应用 1) 添加结点 2) 给结点添加 ...
- 【Qt】Qt Creator中文输入设置
#[Qt]Qt Creator中文输入设置 一.ubuntu中文输入法的设置 1.在终端中输入: $ ibus-setup 弹出界面如图: 2.选择中文输入法 3.点击右上角设置–>选择系统设置 ...
- 为利用 QT 制作的项目设置图标
为利用 QT 制作的项目设置图标 在 .pro 文件末尾添加语句 RC_ICONS = logo.ico logo.ico 即为图标文件的名称
- Qt Creator共享项目设置
Qt Creator共享项目设置 共享项目设置 更新共享设置 共享项目设置 t Creator将用户特定的项目设置存储在.user文件中.您可以在多个项目之间以.shared文件的形式共享这些设置.它 ...
- Qt Creator指定环境设置
Qt Creator指定环境设置 指定环境设置 批量编辑 清除系统环境 使用环境变量 使用Qt Creator变量 指定环境设置 您可以在"构建设置"的"构建环境&quo ...
- Qt Creator指定编辑器设置
Qt Creator指定编辑器设置 指定编辑器设置 指定编辑器设置 Qt Creator使用文件的MIME类型来确定用于打开文件的模式和编辑器.例如,Qt Creator在文本编辑器中以"编 ...
- Qt Creator指定运行设置
Qt Creator指定运行设置 指定运行设置 为子项目创建运行配置 指定桌面设备类型的运行设置 指定Valgrind设置 启用调试 指定Android设备的运行设置 指定基于Linux的设备的运行设 ...
最新文章
- 文科生学python系列_文科生学 Python 系列 3:函数
- xmlUtil 解析 创建
- BAT大厂工程师必会Ansible,你还不来学?
- 计算任意两个数之间1出现的次数的思维过程
- 图片做背景撑开div
- bzoj 1083 繁忙的都市
- 教你如何防止电脑插入u盘后自动运行
- javascript中BOM介绍、屏幕尺寸、历史记录、URL解析、计算机信息获取、定时器、三大系列及兼容代码、封装动画函数、同步和异步
- Java入门系列-20-异常
- 高收益债券与杠杆收购:中国机会
- Java编程:弗洛伊德算法(无向图所有顶点最小路径)
- Ng第五课:Octave 教程(Octave Tutorial)
- BZOJ 2286 SDOI2011 消耗战 倍增LCA+单调栈
- 为您奉上Dicom文件格式属性清单,不谢!
- Excel VBA编程实现自动分页
- 大漠穷秋:全面解读Angular 4.0核心特性
- 基金男孩女孩的「养基」心碎史
- MySQL主从状态检查
- JavaWeb学习笔记(HTML语言)
- su组件在什么窗口_草图大师Sketchup全窗口显示快捷键是什么呢?
热门文章
- 分析师称iPhone 5S或提供多种显示屏尺寸
- 大数据必学Java基础(三十九):面向对象三大特性之一封装(Encapsulation)
- Android 项目必备(二十七)-->加密和解密
- 基于tp框架的自定义常用函数,包括图片操作、阿里云OSS、文件下载、短信验证码等...
- 【FLOOR函数的标量实现】
- 休闲零食新零售,满足更多消费者需求
- tap领取礼包显示服务器繁忙,王者争雄必读公告-王者争雄常见问题答疑-昆多手游...
- 2.6 基于ARDUINO UNO+MC20的路径显示功能
- 表情小作坊2.0上线啦
- Windows注册表背后的秘密