Tôi đang cố thêm menu ngữ cảnh (nhấp chuột phải) vào QtView Qt. Tôi thấy trong Qt 3.3 có "contextMenuRequested" (mà tôi có thể sử dụng) - http://doc.qt.digia.com/3.3/qlistview.html#contextMenuRequested. Tuy nhiên, tôi không thể thấy một phương thức như vậy trong Qt4. Có ai biết làm thế nào để thêm một menu ngữ cảnh vào một QListView?Qt QListView - menu ngữ cảnh?
Trả lời
Tôi không biết lý do tại sao các tín hiệu đã được gỡ bỏ, nhưng nó vẫn là một QWidget
vì vậy bạn luôn có thể ghi đè
void QWidget::contextMenuEvent (QContextMenuEvent*);
hoặc
void QWidget::customContextMenuRequested(const QPoint& pos);
tùy thuộc vào thiết lập chính sách menu ngữ cảnh của bạn cho widget .
Tôi không biết những gì bạn đang cố gắng để thực hiện nhưng bạn có thể dễ dàng thêm một menu ngữ cảnh để bất kỳ phụ tùng bằng cách gọi QWidget::AddAction(QAction*)
với các hành động mà bạn muốn thêm vào menu ngữ cảnh của bạn và thiết lập các chính sách menu ngữ cảnh
widget->setContextMenuPolicy(Qt::ActionsContextMenu);
widget sẽ chuẩn bị và hiển thị các menu ngữ cảnh, tất cả các bạn cần làm là treo lên những hành động triggered()
tín hiệu đến các trình xử lý thích hợp
Tùy thuộc vào cách bạn đã thiết lập các ContextMenuPolicy trong QWidget
bạn có một vài tùy chọn.
Nếu bạn đã đặt thành Qt::DefaultContextMenu
thì chỉ cần ghi đè chức năng được bảo vệ contextMenuEvent(QContextMenuEvent*)
trong QWidget
. Tôi tin rằng đây là mặc định.
Nếu bạn đã đặt nó thành Qt::ActionsContextMenu
thì chỉ cần thêm tất cả các hành động của bạn vào tiện ích con và để hệ thống xử lý Qt hiển thị menu ngữ cảnh.
Hoặc nếu bạn đã đặt thành Qt::CustomContextMenu
, bạn cần kết nối với tín hiệu customContextMenuRequested()
và triển khai trình xử lý menu ngữ cảnh của riêng bạn.
Đây là tất cả tài liệu trong tài liệu ContextMenuPolicy có sẵn trực tuyến.
liên kết Cập nhật mô tả ContextMenuPolicy: [qt5] (http://doc.qt.io/qt-5/qwidget.html#contextMenuPolicy-prop) và [qt4] (http://doc.qt.io/qt-4.8/qwidget.html#contextMenuPolicy-prop) – avtomaton
- 1. Tạo menu ngữ cảnh với Qt Designer (Qt Creator IDE)
- 2. PyQt và menu ngữ cảnh
- 3. TabControl Menu ngữ cảnh
- 4. Menu ngữ cảnh tab QTabWidget
- 5. menu ngữ cảnh jquery vô hiệu hóa các mục menu
- 6. thêm mục menu vào menu ngữ cảnh mặc định
- 7. Tham gia các menu ngữ cảnh
- 8. Listener Android miễn nhiệm menu ngữ cảnh
- 9. Tạo menu ngữ cảnh cho win32 API
- 10. Chỉnh sửa menu ngữ cảnh gốc Nautilus
- 11. Tùy chỉnh Menu ngữ cảnh trong WPF
- 12. Cách lấy QString từ mục QListView được chọn trong Qt?
- 13. addon firefox: thêm biểu tượng vào menu ngữ cảnh
- 14. làm thế nào để gọi menu ngữ cảnh
- 15. Tôi có thể tùy chỉnh menu ngữ cảnh AvalonDock không?
- 16. Tạo nhiều menu ngữ cảnh trong một hoạt động
- 17. Thêm menu ngữ cảnh tùy chỉnh vào thư mục \
- 18. Làm cách nào để thêm menu ngữ cảnh vào ListBoxItem?
- 19. Tùy chọn menu ngữ cảnh DFM có ý nghĩa gì?
- 20. Tìm nút được nhấp trong menu ngữ cảnh
- 21. Sao chép Menu ngữ cảnh để kiểm soát ListView
- 22. Override menu ngữ cảnh màu sắc trong Android
- 23. Phát hiện menu ngữ cảnh trong trình duyệt bằng jquery
- 24. menu ngữ cảnh để xóa các mục trong listview
- 25. Thêm vào menu ngữ cảnh của trình duyệt?
- 26. Đặt hàng trong menu ngữ cảnh của Windows Explorer
- 27. Thêm biểu tượng vào menu ngữ cảnh con
- 28. TortoiseSVN không hiển thị menu ngữ cảnh trên các tệp
- 29. Sử dụng menu ngữ cảnh TEdit cho TRichEdit
- 30. Cách đóng ứng dụng WPF từ menu ngữ cảnh?
customContextMenuRequested() là một tín hiệu, không phải là một chức năng overridable –