Просто объявите структуру и инициализируйте ее:
const struct
{
Qt::Key mKey;
const char* mKeyName;
} key_names[] = {
{Qt::Key_0, "Win1"},
{Qt::Key_1, "Win2"},
{Qt::Key_2, "Win3"},
{Qt::Key_3, "Win4"},
{Qt::Key_4, "Win5"},
{Qt::Key_5, "Win6"},
{Qt::Key_6, "Win1"},
{Qt::Key_7, "Win7"},
{Qt::Key_8, "Win3"},
{Qt::Key_9, "Win5"}
};
Здесь я предположил, что значения Qt::Key_0
и т. Д. Являются значениями типа Перечисление ключей ,что кажется разумным, учитывая ваше использование.Если вам нужно где-то обратиться к самому типу структуры, вам также нужно присвоить ему тег структуры (= имя класса в C ++);Для краткости опущено.
Доступ аналогичен для любого другого массива:
for(size_t i = 0; i < sizeof key_names / sizeof *key_names; i++)
{
printf("the key value %u is mapped to the name '%s'\n",
(unsigned int) key_names[i].mKey,
key_names[i].mKeyName);
}