我想创建一个文件,其中包含我需要在程序中使用的所有KeyPairs.但是,我认为将它嵌入代码中会更好,所以相反,我想把它放在一个结构中.例如,如何将这些项显式放在结构中?
{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"}
Run Code Online (Sandbox Code Playgroud)
我该如何访问这些项目?
只需声明结构,并初始化它:
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"}
};
Run Code Online (Sandbox Code Playgroud)
在这里,我假设Qt::Key_0
等值是Key枚举类型的值,根据您的使用情况,这似乎是合理的.如果你需要在某处引用struct类型本身,你需要给它一个struct标签(= 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);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
551 次 |
最近记录: |