QT学习:制作树形列表菜单

一、前言

使用QT制作树形的列表菜单,需要使用QTreeWidget和QTreeWidget两个类。最终效果如图所示:

二、代码方式实现

使用代码方式实现树形菜单,首先要包含两个类库。

#include <QTreeWidget>
#include <QTreeWidgetItem>

接着创建一个QTreeWidget对象,设置相关属性。

//创建QTreeWidget对象,指定父对象
QTreeWidget *tree = new QTreeWidget(this);
//设置位置以及大小
tree->setGeometry(0,20,100,420);
//可以设置背景颜色
tree->setStyleSheet("background-color:pink;");
//设置列标题
tree->setHeaderLabel("功能导航");
//如果不想显示标题,可以隐藏
tree->setHeaderHidden(true);
//设置不同层次菜单的缩进
tree->setIndentation(10);

随后,为tree插入第一级节点菜单。

QTreeWidgetItem *item1 = new QTreeWidgetItem(tree,QStringList("病人管理"));
QTreeWidgetItem *item2 = new QTreeWidgetItem(tree,QStringList("医生管理"));
QTreeWidgetItem *item3 = new QTreeWidgetItem(tree,QStringList("营收管理"));

让我们来看看这里使用到的QTreeWidgetItem构造函数。

/**
 * @param : parent 关联的窗口或父节点
 * @param : strings 列数据,这里只有一列,不用深究
 * @param : type 用不到,不用管
*/
QTreeWidgetItem::QTreeWidgetItem(QTreeWidget *parent, const QStringList &strings, int type = Type)

第一级节点上去就是tree了,自然就是挂在tree下,所以第一个参数为tree。

接下来插入第二级节点。

QTreeWidgetItem *item11 = new QTreeWidgetItem(item1,QStringList("病人信息"));
QTreeWidgetItem *item12 = new QTreeWidgetItem(item1,QStringList("病床调动"));
QTreeWidgetItem *item21 = new QTreeWidgetItem(item2,QStringList("医生信息"));
QTreeWidgetItem *item22 = new QTreeWidgetItem(item2,QStringList("员工调动"));
QTreeWidgetItem *item31 = new QTreeWidgetItem(item3,QStringList("药品"));
QTreeWidgetItem *item32 = new QTreeWidgetItem(item3,QStringList("设备"));

 谁是第二级节点的父节点,就挂在那一个父节点下,所以第一个参数即对应的父节点。如果想要设置更深层次的树形菜单,也是按照这个思路一步一步深入下去。

到这里节点已经设置完毕,接下来就要为节点设置图标了。

item1->setIcon(0,QIcon("M:\\pictures\\素材图\\学士帽.png"));

 如上所示,设置图标需要使用QTreeWidgetItem类的setIcon方法。我们这里设计的树形菜单只有一列,因此第一个参数为0。第二个参数是QIcon类型的对象,括号里面是本地图片的路径。注意在 \ 前加一个 \ ,前一个是转义字符,后一个才是真正的 \ 。

其余节点的图标设置也相同,不再赘述。

至此,就完成了一个简单的树形菜单。

三、UI设计师界面实现

使用UI设计师界面实现会更加直观,无需敲代码,就算不懂代码的朋友也能轻松搞定。

创建一个项目(不会可见另一篇博文:https://blog.csdn.net/weixin_45138590/article/details/109189652),双击UI文件。

选择Item Widgets(Items Based)里的Tree Widget控件,拖拽一个到中间的界面窗口。

双击Tree Widget控件即可编辑列标题和设置节点。

通过上述操作,即可完成节点的设置。接着为节点设置图标:选择一个节点,点击右侧的属性,会弹出属性框,点击icon属性的Normal Off右侧的值框,点击三角形选择文件。

选择你所需要的图片就能完成图标的设置!

至此,一个简单的树形菜单就完成了!

四、QTreeWidget控件常用设置总结

//设置位置以及大小
tree->setGeometry(0,20,100,420);
//可以设置背景颜色
tree->setStyleSheet("background-color:pink;");
//设置列标题
tree->setHeaderLabel("功能导航");
//如果不想显示标题,可以隐藏
tree->setHeaderHidden(true);
//设置不同层次菜单的缩进
tree->setIndentation(10);
//设置节点之间的行距
setStyleSheet(
                "QTreeWidget::item{"
                "height:25px;"
                "}"
                );
//设置边框不可见
ui->tree->setFrameStyle(QFrame::NoFrame);
//将菜单设置为禁用状态
ui->tree->setEnabled(false);

 

  • 22
    点赞
  • 129
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值