Tôi đang tạo một chương trình nhỏ bằng Qt với thanh menu (menuBar) bằng C++ và tôi muốn biết cách làm xám (ví dụ: vô hiệu hóa) một mục của menu khi một biến nhất định được kích hoạt. Có thể không?Cách tô xám mục menu trong Qt
Trả lời
Nếu bạn biết một chỉ số của QAction tương ứng:
QMenu::actions.at(i).setEnabled(false);
T.B. Vui lòng được nhắc bên dưới, setEnabled(bool)
và setDisabled(bool)
là các vị trí (như vậy là toggle()
), vì vậy chúng có thể được kết nối với tín hiệu cho thấy cần phải thay đổi tính sẵn có của hành động.
Tìm kiếm chỉ mục của hành động không nhất thiết phải thuận tiện. Nếu bạn đã xây dựng giao diện với trình soạn thảo biểu mẫu của QtCreator thì bạn sẽ có một hành động cho từng mục menu. Tên của họ dựa trên văn bản mà bạn đầu tiên đưa ra cho các hành động. Ví dụ: nếu bạn tương tác nhập một mục trình đơn có tiêu đề Foo Bar thì một hành động có tên actionFoo_Bar được tạo cho bạn. Chỉ cần gõ ui-> action trong trình soạn thảo mã và xem những gì "hoàn thành tên" QtCreator sẽ đề xuất.
Trong trường hợp này tôi sẽ xem xét một cuộc gọi như thế này:
ui->actionFoo_Bar.setEnabled(false);
Bạn thậm chí có thể làm cho mục trình đơn biến mất với
ui->actionFoo_Bar.setVisible(false);
- 1. Nút "Thiết kế" được tô xám trong Trình tạo Qt cho Dự án QML
- 2. Tắt màu tô sáng của mục menu trong android
- 3. QT và mục menu tùy chỉnh (QLineEdit)
- 4. Tìm ra mục menu nào được kích hoạt trong Qt
- 5. Làm cách nào để tô xám hộp kiểm html?
- 6. Tại sao một số mục được tô xám trong chế độ xem Windows của Spy ++?
- 7. Ẩn mục menu trong MFC
- 8. Cách thực hiện các nút radio trong Qt 4.4.3 menu
- 9. Qt QListView - menu ngữ cảnh?
- 10. Tạo menu ngữ cảnh với Qt Designer (Qt Creator IDE)
- 11. Cài đặt mục menu ứng dụng Mac OSX Menu thành khác với "Python" trong ứng dụng Qt trăn của tôi
- 12. Lập trình thêm mục vào dải menu?
- 13. Làm cách nào để tô xám trường nhập và nút gửi
- 14. Làm thế nào để thêm menu con trong Qt
- 15. Nhìn ra màu xám trong iphone, làm cách nào?
- 16. Thêm mục menu trong Eclipse
- 17. Tạo menu bật lên trong Qt cho QTableView
- 18. Cách thích hợp để tô màu hình ảnh thang độ xám với độ trong suốt trong Java là gì?
- 19. Làm cách nào để lặp lại hành động của menu trong Qt?
- 20. Tắt/bật mục menu ứng dụng
- 21. Cách đặt màu của mục menu NSPopupButton
- 22. Làm cách nào để đặt màu tô màu cho chỉ mục phần của UITableView?
- 23. OpenCV: Phương pháp tô màu cho hình ảnh thang độ xám
- 24. Cách lấy ID Android cho một mục menu trong Android?
- 25. Cách thêm các mục trong menu bật lên?
- 26. android studio "Sử dụng trình bao bọc gradle" được tô xám
- 27. XCode 4 Thêm giai đoạn tạo tập lệnh chạy được tô xám
- 28. Hộp thoại Giao diện người dùng Jquery, được tô xám quá
- 29. Qt trên Mac - cách truy cập "tìm kiếm" trong menu trợ giúp
- 30. Cách lấy chỉ mục listitem đã chọn trong Qt
Bạn có thể thêm vào câu trả lời của bạn rằng 'setEnabled (bool) 'và' setDisabled (bool) 'là các khe (như vậy là' toggle() '), do đó chúng có thể được kết nối với một tín hiệu cho thấy cần phải thay đổi tính khả dụng của hành động. –
Thanx @LucTouraille! –
Nếu biến thay đổi thường xuyên (thường xuyên hơn trình đơn được hiển thị), nó có thể là khôn ngoan để chuyển đổi nó chỉ để đáp ứng với 'tín hiệu: QMenu :: aboutToShow()'; không có điểm trong việc thay đổi một cái gì đó đó là vô hình anyway. – MSalters