Это действительно комментарий к ответу Бибера, но мне не хватает репутации, чтобы опубликовать их: P. Это просто идея того, что я читал, я никогда не пробовал: S.
Речь идет о том, как узнать, нажата ли нажата клавиша, вы видели Qt::KeyboardModifiers, который может быть обнаружен в Qt::KeyEvent? Есть модификатор сдвига, это может быть полезно. Btw Я также видел, что есть ключ Qt :: Key_CapsLock, который также можно обнаружить в ключевом событии.
И, читая ссылку на сообщение об ошибке в ссылке в комментарии Нарека о вашем вопросе, кажется, что функция просто недоступна, поэтому я думаю, что способ сделать это - сделать что-то похожее на то, что Бибер предлагает. Но чтобы не дождаться, когда пользователь нажмет клавишу, возможно, вы можете запустить/имитировать событие Keyboard, которое помещает письмо в ваш QLineEdit. Затем проверьте, что сказал Бибер: Если письмо является верхним регистром, а сдвиг нажат, то ... и т. Д. И, наконец, удалите содержимое QLineEdit. Надеемся, что это произойдет достаточно быстро, чтобы избежать этого: P.
Это несколько уродливая работа, но это может сработать. Дайте мне знать, если это произойдет!
Там нет никакого способа проверить состояние CapsLock с Qt (есть открытые вопросы, касающиеся этого в Bug Tracker Qt (http://bugreports.qt.nokia.com/browse/QTBUG-8388) Является ли ваше приложение кросс-платформенным? –