重新實現壹下QLineEdit的keypressevent事件,然後捕獲輸入的按鍵,進行設置,具體可看此處。
void?HotkeyLineEdit::keyPressEvent(QKeyEvent?*event)
{
//捕獲輸入的鍵,?除了A-Z以及Ctrl/Shift,其它都無視
if?(event->key()?>=?Qt::Key_A?&&?event->key()?<=?Qt::Key_Z)
{
QChar?strKey?=?(QChar)event->key();
if?(event->modifiers()?==?Qt::ControlModifier)
{
this->setText(QString("CTRL+%0").arg(strKey));
}
else?if?(event->modifiers()?==?Qt::ShiftModifier)
{
this->setText(QString("SHIFT+%0").arg(strKey));
}
else?if?(event->modifiers()?==?(Qt::ShiftModifier?|?Qt::ControlModifier))
{
this->setText(QString("CTRL+SHIFT+%0").arg(strKey));
}
}
}
原文鏈接:/qq_36131739/article/details/100178232