#pragma once
#include "qwidget.h"
#include "qsignalmapper.h"
class FilterGroup;
class FilterGroupWidget;
{
Q_OBJECT
public:
private Q_SLOTS:
void addNewFilter();
void addChildFilter
(QWidget *pItem
);
private:
};
#pragma once
#include "qwidget.h"
#include "qsignalmapper.h"
class QTreeWidget;
class QTreeWidgetItem;
class FilterGroup;
class FilterGroupWidget;
class TestWidget: public QWidget
{
Q_OBJECT
public:
TestWidget(QWidget* pParent);
private Q_SLOTS:
void addNewFilter();
void addChildFilter(QWidget *pItem);
private:
void updateRow(QTreeWidgetItem *pRow);
QTreeWidget *m_pTree;
QSignalMapper m_Mapper;
};
To copy to clipboard, switch view to plain text mode
#include "stdafx.h"
#include "TestWidget.h"
#include "QtWidgets\qboxlayout.h"
#include "FilterColumns.h"
#include "qtreewidget.h"
#include "qheaderview.h"
#include "FilterTypeWidgets.h"
#include "FilterWidget.h"
{
m_pTree->setColumnCount(1);
m_pTree->insertTopLevelItem(0, pRow);
pAdd->setText("Add top level");
m_pTree->setItemWidget(pRow, 0, pAdd);
connect(pAdd, &QPushButton::clicked, this, &TestWidget::addNewFilter);
setLayout(pMainLayout);
pMainLayout->setMargin(0);
pMainLayout->addWidget(m_pTree);
}
void TestWidget::addNewFilter()
{
m_pTree->insertTopLevelItem(m_pTree->topLevelItemCount() - 1, pRow);
updateRow(pRow);
}
void TestWidget
::addChildFilter(QWidget *pItem
) {
pParent->addChild(pRow);
pParent->setExpanded(true);
updateRow(pRow);
}
{
auto test=connect(pWidget, SIGNAL(clicked()), &m_Mapper, SLOT(map()));
m_Mapper.
setMapping(pWidget,
(QWidget *)pRow
);
connect(&m_Mapper,
SIGNAL(mapped
(QWidget *)),
this,
SLOT(addChildFilter
(QWidget *)));
m_pTree->setItemWidget(pRow, 0, pWidget);
}
#include "stdafx.h"
#include "TestWidget.h"
#include "QtWidgets\qboxlayout.h"
#include "FilterColumns.h"
#include "qtreewidget.h"
#include "qheaderview.h"
#include "FilterTypeWidgets.h"
#include "FilterWidget.h"
TestWidget::TestWidget(QWidget* pParent):QWidget(pParent)
{
auto pMainLayout=new QVBoxLayout();
m_pTree=new QTreeWidget();
m_pTree->setColumnCount(1);
auto pRow=new QTreeWidgetItem();
m_pTree->insertTopLevelItem(0, pRow);
auto pAdd=new QPushButton();
pAdd->setText("Add top level");
m_pTree->setItemWidget(pRow, 0, pAdd);
connect(pAdd, &QPushButton::clicked, this, &TestWidget::addNewFilter);
setLayout(pMainLayout);
pMainLayout->setMargin(0);
pMainLayout->addWidget(m_pTree);
}
void TestWidget::addNewFilter()
{
auto pRow=new QTreeWidgetItem();
m_pTree->insertTopLevelItem(m_pTree->topLevelItemCount() - 1, pRow);
updateRow(pRow);
}
void TestWidget::addChildFilter(QWidget *pItem)
{
auto pParent=(QTreeWidgetItem *)pItem;
auto pRow=new QTreeWidgetItem();
pParent->addChild(pRow);
pParent->setExpanded(true);
updateRow(pRow);
}
void TestWidget::updateRow(QTreeWidgetItem *pRow)
{
auto pWidget=new QPushButton("add child");
auto test=connect(pWidget, SIGNAL(clicked()), &m_Mapper, SLOT(map()));
m_Mapper.setMapping(pWidget, (QWidget *)pRow);
connect(&m_Mapper, SIGNAL(mapped(QWidget *)), this, SLOT(addChildFilter(QWidget *)));
m_pTree->setItemWidget(pRow, 0, pWidget);
}
To copy to clipboard, switch view to plain text mode
Bookmarks