【问题标题】:Qt, use of "&" in trQt,在 tr 中使用“&”
【发布时间】:2014-11-06 23:04:53
【问题描述】:

我正在浏览 Qt5 应用程序tutorial。在创建动作时,我不断看到“&”的用法如下:

newAct = new QAction(QIcon(":/images/new.png"), tr("&New"), this)
...
openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);
...
enter code exitAct = new QAction(tr("E&xit"), this);
...

我似乎无法找到为什么使用这些“&”,关于 tr 的 Qt 文档使用这些符号而没有解释它们的用途。此外,当我删除“&”符号时,生成的应用程序似乎根本没有改变。

【问题讨论】:

  • 如果我没记错的话,它会为字符串描述的操作设置键盘快捷键。 (例如,在这种情况下,在 Windows 上将是 ctrl-x)
  • 谢谢大家!你们能指出我记录在哪里吗?我什至不知道要搜索什么关键字。

标签: qt tr


【解决方案1】:

tr而言,&只是字符串中的另一个字符,没有特殊含义。

但是它对QAction 确实有特殊含义:它将以下字符设置为菜单中条目的快捷方式,因此当您打开“文件”菜单时,按 n 键将激活“新建”条目, x 将激活“退出”等等。根据操作系统,& 后面的字符也可能带有下划线(在 Windows 上,它仅在您按 Alt 键时才带有下划线)。

【讨论】:

  • 至少在 Windows 上,这些快捷键不仅仅适用于菜单。它们可以用于任何小部件。例如如果您按“O”并且有一个用“&Ok”定义的按钮,您将激活该按钮(只要您不在像文本小部件那样捕获按键的小部件中)
【解决方案2】:

& 用于指示应用于给定菜单项的 Alt 键快捷方式的字符。假设这些操作被放入名为 &File 的菜单中,按 Alt-F,然后按 N 将激活 New 操作。

【讨论】:

    【解决方案3】:

    它用于快捷方式(在许多情况下它是 Alt 和字符)。

    如果您的代码没有&,它将是这样的:

    现在,如果您在要用作快捷键的键之前有&,它将如下所示:

    在这里,我假设您已经将这些操作添加到菜单中,如上图所示,并且您还使用 & 作为菜单名称,如下所示:

    fileMenu = menuBar()->addMenu("&File");
    

    【讨论】:

      猜你喜欢
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 2020-10-09
      • 2015-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多