Как я использую клавишу ввода на клавиатуре для своего приложения

В одном из ответов говорится: «Если вы знали, что значения перечисления были последовательными, например, перечисление Qt: Key».

Qt :: Значения ключа не являются последовательными . Некоторые сегменты перечислены.

Этот поток посвящен итерации по всем значениям в перечислении. Это действительно возможно в Qt из-за использования Meta Object System:

const QMetaObject *metaObject = qt_getQtMetaObject();
QMetaEnum keyEnum = metaObject->enumerator(metaObject->indexOfEnumerator("Key"));
for (int i = 0; i < keyEnum.keyCount(); ++i) {
    qDebug() << keyEnum.key(i);
}

См. Также QObject :: metaObject () и макрос Q_ENUM.

Я думаю, что подобные вещи станет проще с C ++ 20? Но я не заглядывал в нее.

0
задан Tarasov 8 August 2012 в 06:15
поделиться