Cómo determinar cómo activar el evento de clic izquierdo del mouse en QTreeWidget
#define TREEWIDGET_H
#ifndef TREEWIDGET_H
#define TREEWIDGET_H
#include QWidgetgt; >#include lt;QWidgetgt; #include lt;QWidgetgt; p>protegido:
void mouseReleaseEvent (QMouseEvent *evento); // TREEWIDGET_H
2. Implementación
#include "treeWidget.
QTreeWidget2:: QTreeWidget2(QWidget *padre)
: QTreeWidget (padre)
{ p>
}
void QTreeWidget2::mouseReleaseEvent (QMouseEvent *evento)
{
if (event-gt; botón () & Qt ::RightButton )
{
emite customContextMenuRequested( event-gt; pos ()); }si no (evento-gt; botón () amp; Qt: .LeftButton){
emite elementoClicked(itemFromIndex (indexAt (evento-gt;pos ())), indexAt (evento-gt;pos ()).columna ());
}
}
}
3. #ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include lt;QMainWindowgt;
#include lt;QTreeWidgetItemgt;
clase QTreeWidget2;
static const int itemtype1 = QTreeWidgetItem ::Type;
clase MainWindow: public QMainWindow
{
Q_OBJECT
público:
MainWindow explícito (QWidget *parent = 0);
ranuras públicas:
void setTest2(const QPoint amp; pos); >
void setTest(QTreeWidgetItem*elemento, columna int)
privado:
QTreeWidget2 *treeWidget
QTreeWidgetItem * currentItem
}; // MAINWINDOW_H
#include "mainwindow.h"
#include "treeWidget.h"
#include QMessageBoxgt;
#include lt;QtDebuggt;
MainWindow::MainWindow(QWidget *padre):
QMainWindow(padre)
{
treeWidget = nuevo QTreeWidget2 ;
treeWidget-gt; setContextMenuPolicy(Qt::CustomContextMenu);
treeWidget-gt; setHeaderLabel (tr("ResourceList"));
QTreeWidgetItem * raíz = nuevo QTreeWidgetItem( árbolWidget );
root-gt; setText (0, tr("raíz"));
QTreeWidgetItem *item = nuevo QTreeWidgetItem( raíz ); p>
p>
elemento-gt; setText (0, tr("a"));
QTreeWidgetItem *item1 = nuevo QTreeWidgetItem( elemento ); item1-gt; setText (0, tr("b"));
QTreeWidgetItem *item2 = nuevo QTreeWidgetItem( item1 ); "c" )) ;
connect(treeWidget, SIGNAL(customContextMenuRequested(const QPoint amp;)),
this, SLOT(setTest2(const QPoint amp;))); /p>
connect( treeWidget, SIGNAL(itemClicked(QTreeWidgetItem*, int)),
this, SLOT(setTest(QTreeWidgetItem*, int)));
setCentralWidget); ( treeWidget );
cambiar tamaño (500, 400
}
void MainWindow::setTest2(const QPoint amp; pos)
{ p>
currentItem = treeWidget-gt; itemAt(pos);
if ( currentItem == NULL )
return; > QMessageBox::guerra
ning (this, tr("test"), tr("hello"));
}
void MainWindow::setTest(QTreeWidgetItem*item, int column)
{
QMessageBox:: advertencia (this, tr("asd"), tr( tr("sd"));