У меня есть приложение Qt, и я хотел бы определить, удерживалась ли клавиша Shift (или Ctrl) при запуске приложения.Моя цель - реализовать «безопасный режим» для приложения.
Я пытался использовать QApplication::keyboardModifiers()
, но эта функция всегда возвращает 0 (без модификаторов), независимо от того, какие клавиши удерживались при запуске приложения,либо дважды щелкнув по нему, либо из командной строки.
int main(int argc, char *argv[]) {
QString homeDocs = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)+"/";
QCoreApplication::setApplicationName(getAppName());
QCoreApplication::setOrganizationName(getDeveloperName());
QCoreApplication::setOrganizationDomain(getDeveloperDomain());
QSettings settings;
QApplication a(argc, argv);
QStringList args = a.arguments();
Qt::KeyboardModifiers test = QApplication::keyboardModifiers();
Получил код 0, но ожидал битовые флаги, указывающие, какие клавиши были удержаны.