2009-04-12 44 views
7

Tôi có một QTableView trong giao diện người dùng chính của chương trình của tôi. Tôi muốn hiển thị menu bật lên khi người dùng nhấp chuột phải vào các ô của bảng và thực hiện hành động thích hợp khi một tùy chọn được chọn từ trình đơn.Tạo menu bật lên trong Qt cho QTableView

Tôi đang sử dụng Qt Creator 1 (Qt phiên bản 4.5). Làm thế nào tôi có thể làm điều đó?

Trả lời

22

Kiểm tra tín hiệu customContextMenuRequested để nhận sự kiện và sử dụng QMenu cho chính trình đơn. Sử dụng QTableView::indexAt để tìm hiểu xem, nếu có, ô được nhấp dựa trên các tọa độ cho tín hiệu và thực hiện hành động thích hợp khi nhấp vào mục menu.

+2

Bạn sẽ cần gọi menu.exec (const QPoint &) để hiển thị nó. Hãy chắc chắn rằng bạn dịch nó đến tọa độ thích hợp: menu.exec (mapToGlobal (điểm), 0) –

+5

Hoặc chỉ sử dụng menu.exec (QCursor :: pos()) http://doc.trolltech.com/latest/ qmenu.html # exec – amree

+0

Trình đơn ngữ cảnh có thể được gọi từ phím tắt, vì vậy vị trí con trỏ không phải lúc nào cũng là điểm gọi chính xác. –

Các vấn đề liên quan