Tôi có QTableWidget
và muốn nhấn CTRL trong khi nhấp vào tiêu đề cột sẽ đánh dấu toàn bộ cột. Để có được chỉ mục cột không phải là vấn đề vì có một phần Báo cáo cung cấp cho tôi chỉ mục hiện tại của cột được nhấp. Làm cách nào để tôi có thể nhận trạng thái của bất kỳ công cụ sửa đổi bàn phím nào khi cột được nhấp?Cách phát hiện phím bổ trợ khi nhấp chuột vào Qt
Trả lời
Hãy thử QApplication::keyboardModifiers() luôn có sẵn
Trên Qt 5, hãy thử QGuiApplication::keyboardModifiers().
Trạng thái của các phím bổ trợ bàn phím có thể được tìm thấy bằng cách gọi hàm modifiers(), được kế thừa từ QInputEvent.
Tôi biết nhưng tôi không có đối tượng bên trong khe liên quan đến sectionPressed khác sau đó chỉ số cột. Không có sự kiện, không có người gửi, không có gì. – tfl
Có thể bạn có thể lưu trạng thái của trình sửa đổi trong mouseReleaseEvent sẽ xảy ra trước tín hiệu. –
này thực sự gây phiền nhiễu, tôi phải cài đặt một eventFilter và loại bỏ các sectionPressed handler
ui->tableWidget->horizontalHeader()->viewport()->installEventFilter(this);
Trong eventFilter tôi có thể kiểm tra thời tiết một phím được nhấn như vậy
bool MainWindow::eventFilter(QObject *object, QEvent *event)
{
if(event->type() == QEvent::MouseButtonPress)
{
if(Qt::ControlModifier == QApplication::keyboardModifiers())
{
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
if(mouseEvent)
{
if(mouseEvent->button()== Qt::LeftButton)
{
ui->tableWidget->selectColumn(ui->tableWidget->itemAt(mouseEvent->pos())->column());
return true;
}
}
}
}
return QWidget::eventFilter(object,event);
}
Điều này phù hợp với tôi.
if (QApplication::keyboardModifiers().testFlag(Qt::ControlModifier) == true) {
Bạn có thể sử dụng QGuiApplication::queryKeyboardModifiers()
đó là đơn giản để sử dụng:
if(QGuiApplication::queryKeyboardModifiers().testFlag(Qt::ShiftModifier))
{
// Do a few things
}
- 1. cách phát hiện nhấp chuột vào nút tab đã chọn
- 2. phát hiện nhấp chuột vào một hình ảnh
- 3. Phát hiện nhấp chuột của Pygame
- 4. Qt mouseMoveEvent chỉ khi nhấn phím trái chuột
- 5. qt QWidget nhấp vào
- 6. QT trên OS X, cách phát hiện cách nhấp vào ứng dụng Biểu tượng Dock
- 7. Làm thế nào để cung cấp một nhấp chuột với các phím bổ trợ thông qua WebDriver của Selenium?
- 8. ẩn bàn phím mặc định khi nhấp chuột trong android
- 9. Khi nhấp chuột vào mục xóa dài
- 10. Làm cách nào để bổ trợ phát hiện khi một giải pháp được tải?
- 11. Phát hiện sự kiện nhấp chuột giữa jQuery
- 12. Phát hiện nhấp chuột trong tập lệnh bash
- 13. Cách xóa JTextField khi nhấp chuột vào JTextField
- 14. jQuery: Cách sử dụng các phím bổ trợ khi gửi biểu mẫu?
- 15. iOS Safari phát hiện khi người dùng nhấp vào "Xong" trong trình phát bản địa
- 16. Phát hiện nhấp vào phần tử bên ngoài?
- 17. Phát hiện gian lận nhấp chuột như thế nào?
- 18. Mô phỏng nhấp chuột vào DIV
- 19. Làm cách nào để phát hiện xem nhấp chuột() là nhấp chuột hay được kích hoạt bởi một số mã?
- 20. Phát hiện nhấn phím trong Google Maps
- 21. Phát hiện khi chuột không di chuyển
- 22. Nhấp chuột phải vào JButton
- 23. Autohotkey Cách giữ nút chuột khi nhấn một phím?
- 24. Textarea mất tập trung vào nhấp chuột?
- 25. Làm thế nào để bạn phát hiện một con chuột nhấp đúp chuột trái trong WPF?
- 26. Vẽ hình chữ nhật bằng cách nhấp chuột, di chuyển chuột và nhấp vào
- 27. Nhấp chuột phải vào hoạt động khác với nhấp chuột trái
- 28. jQuery: Phát hiện Chuột Nhấp và Mở Mục tiêu trong Tab Mới
- 29. Làm thế nào để kết nối nhấp chuột vào menu với Qt Creator?
- 30. Phát triển bổ trợ MS Word
tôi tìm thấy nó allready – tfl
NOW Tôi vấp ngã khi câu trả lời này! Sau khi tôi viết lại mọi thứ như một lớp phụ lộn xộn để tôi có thể nhận được đối tượng 'event' :-) D'oh! –
Tương tự như @Freedom_Ben Tôi cũng đang xem xét tất cả các ví dụ cho thấy phân lớp phụ hoặc bộ lọc sự kiện ... nhưng nhờ sự kiên trì của tôi (có thể là sự lười biếng: P) mà tôi đã tìm thấy câu trả lời này. Làm việc như một sự quyến rũ ... Chính xác như tôi muốn! Cảm ơn Roku vì sự giúp đỡ của anh ấy! – zeFree