일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- opsworks
- driver
- VIM
- QT
- port
- docker registry
- ubuntu
- 우분투
- ssh
- 방화벽체크
- 루비
- RUBY
- Openswan
- ssh command
- 리눅스
- window size
- 도커
- docker container
- VMware
- 패키지
- sudo
- AWS
- Linux
- VPN
- Chef
- docker-compose
- 드라이버
- docker
- golang
- DevOps
- Today
- Total
구리의 창고
QT Programming - QTreeWidget 에서 마우스 오른쪽 버튼 막기 본문
트리에서 마우스로 선택을 감지하기 위해서 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 }
마우스 오른쪽버튼까지 클릭으로 감지하는 수가 있다.
아래와 같이 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 }
'QT' 카테고리의 다른 글
QT Programming - QWidget 타이틀바 없애기 (0) | 2011.07.13 |
---|---|
QT Programming - File Dialog 띄우기 (0) | 2011.07.12 |
QT Programming - QTreeWidget 구성하기 (0) | 2011.07.12 |
QT Programming - 트레이 아이콘 사용하기 (0) | 2011.07.12 |
QT Programming - 작업표시줄에서 깜빡거리게하기 (0) | 2011.07.12 |
Comments