为什么在PyQt字符串中为GUI元素使用&符号(&)?

Zel*_*ahl 3 python string label pyqt button

我已经阅读了几篇PyQt教程,他们在Strings中使用了一个&符号(&)来标记按钮.例如:

self.submitButton = QPushButton("&Submit")
Run Code Online (Sandbox Code Playgroud)

我搜索了一些解释,但有一个问题是,常见的搜索引擎认为它们非常聪明并且忽略了&字符,这很烦人.当我在它周围添加引号时,它只会让我找到更少的结果而没有,这解释了有关奇怪的'&'字符的任何内容.

  • 它是非常基本的东西,这就是没有人解释它的原因吗?
  • 或者PyQt具体吗?
  • 为什么我会添加一个不必要的角色呢?
  • 它不会不必要地弄乱String吗?
  • 它对String的处理有什么影响?

我也试过在python控制台:

a = "&abc"
b = "abc"
a == b
Run Code Online (Sandbox Code Playgroud)

返回false.然后我尝试将它作为print函数的参数:

print(a)
print(b)
Run Code Online (Sandbox Code Playgroud)

哪个简单的打印:

&abc
abc
Run Code Online (Sandbox Code Playgroud)

所以我仍然不知道该怎么做.

Eri*_*ric 5

来自msdn.microsoft.com :(与python本身无关,但概念是相同的)

获取或设置一个值,该值指示控件是否将控件的Text属性中的&符号(&)解释为访问键前缀字符.

如果UseMnemonic属性设置为true,并且在Label的Text属性中定义了助记符(前面带有&符号的字符),则按ALT +助记符将焦点设置为Tab键顺序中Label后面的控件.您可以使用此属性为表单上的控件提供正确的键盘导航.

pyqt.sourceforge.net:

QLabel通常用作交互式窗口小部件的标签.为此,QLabel提供了一种有用的机制来添加助记符(请参阅QKeySequence),该助记符将键盘焦点设置为其他窗口小部件.

例如:

QLineEdit* phoneEdit = new QLineEdit(this);
QLabel* phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit);
Run Code Online (Sandbox Code Playgroud)