[Qt-interest] Fwd: how to judge which button click the QTreeWidgetItem?

John McClurkin jwm at nei.nih.gov
Fri Nov 5 13:11:51 CET 2010


lvbing lvbing wrote:
> 
> 
> ---------- Forwarded message ----------
> From: *lvbing lvbing* <lvbing1981 at gmail.com <mailto:lvbing1981 at gmail.com>>
> Date: Thu, Nov 4, 2010 at 7:01 PM
> Subject: Re: [Qt-interest] how to judge which button click the 
> QTreeWidgetItem?
> To: Keith Rusler <xzekecomax at gmail.com <mailto:xzekecomax at gmail.com>>
> 
> 
> I know,
> but  when I click the right button,it will emit the signal: 
> itemClick(QTreeWidgetItem*,int).
> 
> so I don't know who emit the signal itemClick,left button or right 
> button.and the result is:when I clicked 
> the left button,the itemClick will be done
> and when I clicked the right button,the itemClick also will be done,but 
> I don't want to call the itemClick when 
> I clicked the right button!
> 
> so how can I distinguish which button has been clicked when the signal 
> itemClicked be emited?
> 
> thank all
> 
> 
> On Thu, Nov 4, 2010 at 5:46 PM, Keith Rusler <xzekecomax at gmail.com 
> <mailto:xzekecomax at gmail.com>> wrote:
> 
>     I think it should be quite normal if you really think about it.
>     Because if you right click on any item, it should show a context
>     menu for that item it was clicked on right?
> 
>     On 4 November 2010 04:08, lvbing lvbing <lvbing1981 at gmail.com
>     <mailto:lvbing1981 at gmail.com>> wrote:
> 
>         hello all
>             I have a QTreeWidget in my QMainWidows,and I have two
>         functions,the one is left button click 
>         and the another is the right button to popup some Menu.
> 
>         The code like this:
> 
>         MainWindow::MainWindow() : QMainWindow()
>         {
>             setCentralWidget(view);
>             view = new QTreeWidget(this);
>             connect(view,SIGNAL(itemClicked ( QTreeWidgetItem *, int
>         )),this,SLOT(on_MyTree_itemClicked( QTreeWidgetItem *, int )));
>             init();
>         }
> 
>         void MainWindow::on_MyTree_itemClicked ( QTreeWidgetItem * item,
>         int column )
>         {
>             qDebug() << "on_MyTree_itemClicked"
>                 << item->text(column);
>             //to do somthing
>         }
> 
> 
>         void MainWindow::contextMenuEvent(QContextMenuEvent * event)
>         {
>             qDebug() << "contextMenuEvent"
>                 << event->pos().x()
>                 << " and "
>                 << event->pos().y();
>             //To popup the menu when I click the right mouse button!
>         }
> 
>         But now I find when I clicked the right button,it will call
>         the on_MyTree_itemClicked  slot first!!
>         and how can I distinguish the left or right button?
> 
>         thanks all
> 
>         _______________________________________________
>         Qt-interest mailing list
>         Qt-interest at trolltech.com <mailto:Qt-interest at trolltech.com>
>         http://lists.trolltech.com/mailman/listinfo/qt-interest
> 
> 
> 
> 

You might try installing an eventFilter on the QTreeWidget.



More information about the Qt-interest-old mailing list