구리의 창고

QT Programming - QTreeWidget 에서 마우스 오른쪽 버튼 막기 본문

QT

QT Programming - QTreeWidget 에서 마우스 오른쪽 버튼 막기

구리z 2011. 7. 12. 11:43
트리에서 마우스로 선택을 감지하기 위해서 clicked 시그널을 사용하다보면

마우스 오른쪽버튼까지 클릭으로 감지하는 수가 있다. 

아래와 같이 QTreeWidget을 상속받아서 재정의하면된다.

1 #include <QtGui> 2 3 class TreeWidget : public QTreeWidget 4 { 5 public: 6 TreeWidget() 7 { 8 setColumnCount(1); 9 QList<QTreeWidgetItem *> items; 10 for (int i = 0; i < 10; ++i) 11 items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("item: %1").arg(i)))); 12 insertTopLevelItems(0, items); 13 } 14 void mousePressEvent(QMouseEvent *event) 15 { 16 if (event->button()== Qt::RightButton) 17 return; 18 else 19 QTreeWidget::mousePressEvent(event); 20 } 21 22 void contextMenuEvent(QContextMenuEvent *event) 23 { 24 QMenu *menu = new QMenu(this); 25 menu->addAction("first"); 26 menu->addAction("second"); 27 menu->addAction("third"); 28 menu->exec(QCursor::pos()); 29 } 30 }; 31 int main(int argc, char **argv) 32 { 33 QApplication app(argc, argv); 34 TreeWidget box; 35 box.show(); 36 return app.exec(); 37 }

 
Comments