2014-12-20 30 views
3

我已經閱讀了PyQt的幾個教程,他們在用於標記按鈕的字符串中使用&符號(&)。例如:爲什麼在PyQt Strings中爲GUI元素使用&字符(&)?

self.submitButton = QPushButton("&Submit") 

我搜索了一些解釋,但一個問題是,通用搜索引擎認爲自己很聰明,而忽略了&性格,這是煩人。當我在它周圍添加引號時,它只會讓我找到更少的結果,並且沒有,這解釋了有關奇怪'&'字符的任何內容。

  • 這是非常基本的東西,這就是爲什麼沒有人解釋它?
  • 或者它是PyQt特有的?
  • 爲什麼我會添加一個不必要的字符?
  • 它不只是不必要地混亂字符串?
  • 它對該字符串的處理有什麼樣的影響?

我也試過在Python控制檯:

a = "&abc" 
b = "abc" 
a == b 

返回假。 然後我試圖給它作爲參數傳遞給打印功能:

print(a) 
print(b) 

這簡單的打印:

&abc 
abc 

所以我仍然不知道本作的是什麼。

+2

在wxPython中:&字符創建一個加速鍵。 &後面的字符加下劃線。這樣菜單可以通過Alt + F快捷鍵訪問。也許它在pyqt中是一樣的。 http://zetcode.com/wxpython/menustoolbars/ –

+0

是@ρss,在PyQT – abhishekgarg

+0

中我看到了。我很習慣加速器顯示,我甚至沒有注意到它們。謝謝! – Zelphir

回答

5

msdn.microsoft.com:(不涉及Python本身,但概念是相同的)

獲取或設置一個值指示控件是否解釋該控件的Text屬性的 號字符(&)至可以訪問 關鍵字前綴字符。

如果UseMnemonic屬性設置爲真和一個助記符字符( 字符由符號之前)在標籤的文本屬性 被定義,按ALT +助記符字符將焦點設置到 下面的控制標籤順序中的標籤。您可以使用此 屬性爲您的 表單上的控件提供正確的鍵盤導航。

而且從pyqt.sourceforge.net

一個QLabel經常被用來作爲一個互動的小部件的標籤。對於此 使用QLabel提供了一種有用的機制,用於添加助記符(請參閱 QKeySequence),該鍵盤焦點將設置爲其他小部件。

例如,:

QLineEdit* phoneEdit = new QLineEdit(this); 
QLabel* phoneLabel = new QLabel("&Phone:", this); 
phoneLabel->setBuddy(phoneEdit); 
相關問題