Tôi cần thực hiện việc này để định cấu hình ứng dụng của mình. Tôi có trường QLineEdit với phương thức keyPressEvent được thực hiện lại.Làm thế nào tôi có thể chụp QKeySequence từ QKeyEvent tùy thuộc vào bố cục bàn phím hiện tại?
QKeyEvent *ke = ...
QString txt;
if(ke->modifiers() & Qt::ControlModifier)
txt += "Ctrl+";
if(ke->modifiers() & Qt::AltModifier)
txt += "Alt+";
if(ke->modifiers() & Qt::ShiftModifier)
txt += "Shift+";
if(ke->key() >= Qt::Key_0 && ke->key() <= Qt::Key_9)
txt += ('0' + ke->key() - Qt::Key_0);
else if(ke->key() >= Qt::Key_A && ke->key() <= Qt::Key_Z)
txt += ('A' + ke->key() - Qt::Key_A);
ui->hotkeyEdit->setText(txt);
Nhưng giải pháp này chỉ có thể tạo lối tắt bằng ký tự tiếng Anh. Ví dụ khi tôi sử dụng bố trí bàn phím tiếng Nga, mã này sẽ hiển thị cùng một trình tự nhưng với char tiếng anh, được đặt trên cùng một phím trên bàn phím.
tôi muốn người dùng có thể thiết lập phím tắt riêng của mình cho hành động. –