可以呀......
QTreeTest::QTreeTest(QWidget *parent, Qt::WFlags flags)
    : QWidget(parent, flags)
{
    ui.setupUi(this);
    ui.treeWidget->setColumnCount(1);
    QList<QTreeWidgetItem *> items;
    for (int i = 0; i < 10; ++i)
        items.append(new QCustomTreeWidgetItem((QTreeWidget*)0, QStringList(QString("item: %1").arg(i))));
    ui.treeWidget->insertTopLevelItems(0, items);
    connect(ui.treeWidget , SIGNAL(itemClicked ( QTreeWidgetItem * , int  )) , this , SLOT(doSomething(QTreeWidgetItem * , int)));
    connect(ui.treeWidget , SIGNAL(itemChanged ( QTreeWidgetItem * , int  )) , this , SLOT(hasChangde(QTreeWidgetItem * , int)));
}
QTreeTest::~QTreeTest()
{
}
void QTreeTest::doSomething(QTreeWidgetItem * item, int column)
{
    QString str("changed");
    item->setData ( column, 0, str);
}
void QTreeTest::hasChangde(QTreeWidgetItem * item, int column)
{
    ((QCustomTreeWidgetItem *)item) ->useMe();
}
QCustomTreeWidgetItem::QCustomTreeWidgetItem ( QTreeWidget * parent, const QStringList & strings)
: QTreeWidgetItem(parent , strings)
{
    
}
QCustomTreeWidgetItem::~QCustomTreeWidgetItem()
{
    
}
void QCustomTreeWidgetItem::useMe()
{
    QString str;
    str.sprintf("%5d" , 4);
}
---------------------------------------------
useMe是能进入的并执行的