要实现的功能:
当选中顶层的树形节点时,子节点全部被选中;当取消选择顶层树形节点时,子节点的选中状态将全部被取消,当选中部分子节点时,父节点显示部分选中的状态。
1、工程目录
2、界面实现
3、form.h
#ifndef FORM_H
#define FORM_H
#include <QWidget>
#include <QTreeWidgetItem>
namespace Ui {
class Form;
}
class Form : public QWidget
{
Q_OBJECT
public:
explicit Form(QWidget *parent = nullptr);
~Form();
private:
Ui::Form *ui;
void InitUI();// 初始化界面
void ItemClicked(QTreeWidgetItem* item,int column);// 点击复选框
void ShowContextMenu(const QPoint &pos);// 右键菜单栏
};
#endif // FORM_H
4、form.cpp
#include "form.h"
#include "ui_form.h"
#include <QAction>
#include <QMenu>
#include <QDebug>
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
InitUI();// 初始化界面
connect(ui->treeWidget,&QTreeWidget::itemClicked,