Witam.
Utworzyłem sobie oto taką prostą klasę, która dziedziczy po QTreeWidgetItem
CustomQTreeWidgetItem.h
#ifndef CUSTOMQTREEWIDGETITEM_H
#define CUSTOMQTREEWIDGETITEM_H
#include <QTreeWidgetItem>
#include <QKeySequence>
//
// This class create QTreeWidgetItem with a specific name,path,icon,etc.
//
class CustomQTreeWidgetItem : public QTreeWidgetItem
{
public:
CustomQTreeWidgetItem(QTreeWidgetItem *ItemTreetypeItem, QString ItemName=0, QString ItemPath=0, bool ItemIsCard=false, bool ItemRunAsAdmin=false, QString ItemIcon=0, QKeySequence ItemShortcut = 0);
virtual ~CustomQTreeWidgetItem();
void setCard(bool isACard);
void setName(QString ItemName);
void setIcon(QString ItemIcon);
void setPath(QString ItemPath);
void setRunAsAdmin(bool RunPathAsAdmin);
void setShortcut(QKeySequence ItemShortcut);
protected:
bool isCard;
QString Name;
QString Icon;
QString Path;
bool RunAsAdmin;
QKeySequence ShortCut;
QTreeWidgetItem *TreetypeItem;
};
#endif // CUSTOMQTREEWIDGETITEM_H
CustomQTreeWidgetItem.cpp
#include "customqtreewidgetitem.h"
CustomQTreeWidgetItem::CustomQTreeWidgetItem(QTreeWidgetItem *ItemTreetypeItem, QString ItemName, QString ItemPath, bool ItemIsCard, bool ItemRunAsAdmin, QString ItemIcon, QKeySequence ItemShortcut)
: TreetypeItem(ItemTreetypeItem),isCard(ItemIsCard),Name(ItemName),Icon(ItemIcon),Path(ItemPath),RunAsAdmin(ItemRunAsAdmin),ShortCut(ItemShortcut)
{
}
CustomQTreeWidgetItem::~CustomQTreeWidgetItem()
{
}
void CustomQTreeWidgetItem::setCard(bool isACard)
{
isCard=isACard;
}
void CustomQTreeWidgetItem::setName(QString ItemName)
{
Name=ItemName;
}
void CustomQTreeWidgetItem::setIcon(QString ItemIcon)
{
Icon=ItemIcon;
}
void CustomQTreeWidgetItem::setPath(QString ItemPath)
{
Path=ItemPath;
}
void CustomQTreeWidgetItem::setRunAsAdmin(bool RunPathAsAdmin)
{
RunAsAdmin=RunPathAsAdmin;
}
void CustomQTreeWidgetItem::setShortcut(QKeySequence ItemShortcut)
{
ShortCut=ItemShortcut;
}
Tworzę obiekt w taki sposób:
CustomQTreeWidgetItem *item = new CustomQTreeWidgetItem(dziecko,Nazwa,0,true);
item->setCard(true);//nowy utworzony atrybut dla itemku
item->setText(0,Nazwa);
Lecz mam problem, bo chcę sprawdzić właściwość z danego itemu z QTreeWidget.
QTreeWidgetItem *dziecko;
QTreeWidget TreeWidget;
CustomQTreeWidgetItem *item = new CustomQTreeWidgetItem(dziecko,Nazwa,0,true);
item->setCard(true);//nowy utworzony atrybut dla itemku
item->setText(0,Nazwa);
if(TreeWidget.currentItem()->isCard==true)//nie ma w currentitem() isCard #################Problem#############
{
//costam
}
Tak naprawdę to nie mam pojęcia co robić aby "bool isCard" był widoczny dla metody currentitem() z klasy QTreeWidget. Ktoś by mógł mnie nakierować jak to zrobić ? Muszę napisać nową klasę, która dziedzczy QTreeWidget i jakoś dopisać to do metody currentitem() ?