檢視原始碼 wxMenuItem (wx v2.4.3)
選單項目代表選單中的一個項目。
請注意,您通常不必直接處理它,因為 wxMenu
的方法通常會為您建構此類別的物件。
另請注意,與字型和點陣圖相關的方法目前僅在 Windows、Mac 和 GTK+ 中實作。
請參閱
wxWidgets 文件: wxMenuItem
事件
此類別發出的事件類型
摘要
函式
勾選或取消勾選選單項目。
銷毀物件
啟用或停用選單項目。
傳回已勾選或未勾選的點陣圖。
傳回與選單項目相關聯的說明字串。
傳回選單項目識別碼。
傳回與選單項目相關聯的文字,包括任何傳遞給建構函式或 setItemLabel/2
的快速鍵字元。
傳回與選單項目相關聯的文字,不含任何快速鍵字元。
傳回項目種類,為 wxITEM_SEPARATOR
、wxITEM_NORMAL
、wxITEM_CHECK
或 wxITEM_RADIO
其中之一。
從給定的 text
中移除所有快速鍵字元和助憶鍵。
傳回此選單項目所在的選單,如果此選單項目未附加,則傳回 NULL。
傳回與選單項目相關聯的子選單,如果沒有子選單,則傳回 NULL。
如果項目可勾選,則傳回 true。
如果項目已勾選,則傳回 true。
如果項目已啟用,則傳回 true。
如果項目是分隔符號,則傳回 true。
如果項目是子選單,則傳回 true。
建構 wxMenuItem
物件。
設定選單項目的點陣圖。
設定說明字串。
設定與選單項目相關聯的標籤。
設定將包含此選單項目的父選單。
設定此選單項目的子選單。
類型
-type wxMenuItem() :: wx:wx_object().
函式
-spec check(This) -> ok when This :: wxMenuItem().
等同於 check(This, [])
。
-spec check(This, [Option]) -> ok when This :: wxMenuItem(), Option :: {check, boolean()}.
勾選或取消勾選選單項目。
請注意,這僅在項目已附加到選單時才有效。
-spec destroy(This :: wxMenuItem()) -> ok.
銷毀物件
-spec enable(This) -> ok when This :: wxMenuItem().
等同於 enable(This, [])
。
-spec enable(This, [Option]) -> ok when This :: wxMenuItem(), Option :: {enable, boolean()}.
啟用或停用選單項目。
-spec getBitmap(This) -> wxBitmap:wxBitmap() when This :: wxMenuItem().
傳回已勾選或未勾選的點陣圖。
僅適用於:wxmsw
-spec getHelp(This) -> unicode:charlist() when This :: wxMenuItem().
傳回與選單項目相關聯的說明字串。
-spec getId(This) -> integer() when This :: wxMenuItem().
傳回選單項目識別碼。
-spec getItemLabel(This) -> unicode:charlist() when This :: wxMenuItem().
傳回與選單項目相關聯的文字,包括任何傳遞給建構函式或 setItemLabel/2
的快速鍵字元。
請參閱
-spec getItemLabelText(This) -> unicode:charlist() when This :: wxMenuItem().
傳回與選單項目相關聯的文字,不含任何快速鍵字元。
請參閱
-spec getKind(This) -> wx:wx_enum() when This :: wxMenuItem().
傳回項目種類,為 wxITEM_SEPARATOR
、wxITEM_NORMAL
、wxITEM_CHECK
或 wxITEM_RADIO
其中之一。
-spec getLabel(This) -> unicode:charlist() when This :: wxMenuItem().
等同於: getItemLabelText/1
-spec getLabelFromText(Text) -> unicode:charlist() when Text :: unicode:chardata().
等同於: getLabelText/1
-spec getLabelText(Text) -> unicode:charlist() when Text :: unicode:chardata().
從給定的 text
中移除所有快速鍵字元和助憶鍵。
例如
將僅傳回 "Hello"
。
請參閱
-spec getMenu(This) -> wxMenu:wxMenu() when This :: wxMenuItem().
傳回此選單項目所在的選單,如果此選單項目未附加,則傳回 NULL。
-spec getSubMenu(This) -> wxMenu:wxMenu() when This :: wxMenuItem().
傳回與選單項目相關聯的子選單,如果沒有子選單,則傳回 NULL。
-spec getText(This) -> unicode:charlist() when This :: wxMenuItem().
等同於: getItemLabel/1
-spec isCheckable(This) -> boolean() when This :: wxMenuItem().
如果項目可勾選,則傳回 true。
請注意,單選按鈕也被視為可勾選,因此此方法也會對它們傳回 true。如果您只想測試勾選項目,請使用 IsCheck()
(未在 wx 中實作)。
-spec isChecked(This) -> boolean() when This :: wxMenuItem().
如果項目已勾選,則傳回 true。
-spec isEnabled(This) -> boolean() when This :: wxMenuItem().
如果項目已啟用,則傳回 true。
-spec isSeparator(This) -> boolean() when This :: wxMenuItem().
如果項目是分隔符號,則傳回 true。
-spec isSubMenu(This) -> boolean() when This :: wxMenuItem().
如果項目是子選單,則傳回 true。
-spec new() -> wxMenuItem().
等同於 new([])
。
-spec new([Option]) -> wxMenuItem() when Option :: {parentMenu, wxMenu:wxMenu()} | {id, integer()} | {text, unicode:chardata()} | {help, unicode:chardata()} | {kind, wx:wx_enum()} | {subMenu, wxMenu:wxMenu()}.
建構 wxMenuItem
物件。
選單項目可以是標準、或「預設選單項目」或自訂。對於標準選單項目(例如開啟檔案、結束程式等命令,請參閱 page_stockitems 以取得完整清單),只需指定預設 ID 並將 text
和 help
字串留空即可。某些平台(目前僅限 wxGTK,請參閱 setBitmap/2
文件中的註解)也會顯示預設選單項目的標準點陣圖。
實際上強烈建議為預設選單項目至少將 text
留空,因為它們將具有使用者熟悉的介面和鍵盤介面(包括標準快速鍵)。
對於自訂(非預設)選單項目,必須指定 text
,雖然 help
字串可以留空,但建議在此參數中傳遞項目描述(當選取選單項目時,該描述會自動顯示在狀態列中)。
最後請注意,您可以例如使用預設選單標籤,而不使用其預設說明字串
也就是說,預設屬性是彼此獨立設定的。
-spec setBitmap(This, Bmp) -> ok when This :: wxMenuItem(), Bmp :: wxBitmap:wxBitmap().
設定選單項目的點陣圖。
如果 checked
為 true(預設值),則等同於 wxMenuItem::SetBitmaps(bmp, wxNullBitmap) ,否則等同於 SetBitmaps(wxNullBitmap, bmp)。
setBitmap/2
必須在項目附加到選單之前呼叫,也就是說,附加沒有點陣圖的項目,然後稍後設定一個點陣圖並不能保證有效。但是,如果最初設定了點陣圖,則可以稍後變更或重設它。
請注意,GTK+ 使用稱為 gtk-menu-images
的全域設定來決定是否應在選單中顯示影像。如果它關閉(例如,Gnome 2.28 中預設情況下會關閉),則不會顯示任何影像,這與原生行為一致。
僅適用於:wxmsw,wxosx,wxgtk
-spec setHelp(This, HelpString) -> ok when This :: wxMenuItem(), HelpString :: unicode:chardata().
設定說明字串。
-spec setItemLabel(This, Label) -> ok when This :: wxMenuItem(), Label :: unicode:chardata().
設定與選單項目相關聯的標籤。
請注意,如果此選單項目的 ID 對應於預設 ID,則不必指定標籤:wxWidgets 將自動使用與該 ID 相關聯的預設項目標籤。請參閱 new/1
以取得更多資訊。
一般選單項目(非分隔符號)的標籤字串可以包含可用於從鍵盤啟動選單項目的快速鍵。可以使用連字號 &
字元指定快速鍵。為了在選單項目文字中嵌入連字號,必須將連字號加倍。
您可以選擇性地指定一個快速鍵字串,方法是附加一個 Tab 字元 \t
,後接有效的按鍵組合(例如 CTRL+V
)。其一般語法是 "CTRL"
、"RAWCTRL"
、"ALT"
和 "SHIFT"
字串(大小寫不拘)的任意組合,以 '-'
或 '+'
字元分隔,後接快速鍵本身。請注意,CTRL
對應於大多數平台上的「Ctrl」鍵,但在 macOS 下,它會對應到 Mac 鍵盤上的「Cmd」鍵。通常,這正是您在可攜式程式碼中所需要的,但如果您真的需要即使在 Mac 下也使用(很少用於此目的)「Ctrl」鍵,您可以使用 RAWCTRL
來防止此對應。在其他平台上,RAWCTRL
與普通的 CTRL
相同。
快速鍵可以是任何字母數字字元、任何功能鍵(從 F1
到 F12
)、使用 KP_
字首的任何數字鍵盤數字鍵(即從 KP_0
到 KP_9
)或下列列出的特殊字串之一(同樣,大小寫不拘),這些字串對應於指定的按鍵代碼
Del
或Delete:
WXK_DELETEBack:
WXK_BACKIns
或Insert:
WXK_INSERTEnter
或Return:
WXK_RETURNPgUp
或PageUp:
WXK_PAGEUPPgDn
或PageDown:
WXK_PAGEDOWNLeft:
WXK_LEFTRight:
WXK_RIGHTUp:
WXK_UPDown:
WXK_DOWNHome:
WXK_HOMEEnd:
WXK_ENDSpace:
WXK_SPACETab:
WXK_TABEsc
或Escape:
WXK_ESCAPECancel:
WXK_CANCELClear:
WXK_CLEARMenu:
WXK_MENUPause:
WXK_PAUSECapital:
WXK_CAPITALSelect:
WXK_SELECTPrint:
WXK_PRINTExecute:
WXK_EXECUTESnapshot:
WXK_SNAPSHOTHelp:
WXK_HELPAdd:
WXK_ADDSeparator:
WXK_SEPARATORSubtract:
WXK_SUBTRACTDecimal:
WXK_DECIMALDivide:
WXK_DIVIDENum_lock:
WXK_NUMLOCKScroll_lock:
WXK_SCROLLKP_Space:
WXK_NUMPAD_SPACEKP_Tab:
WXK_NUMPAD_TABKP_Enter:
WXK_NUMPAD_ENTERKP_Home:
WXK_NUMPAD_HOMEKP_Left:
WXK_NUMPAD_LEFTKP_Up:
WXK_NUMPAD_UPKP_Right:
WXK_NUMPAD_RIGHTKP_Down:
WXK_NUMPAD_DOWNKP_PageUp:
WXK_NUMPAD_PAGEUPKP_PageDown:
WXK_NUMPAD_PAGEDOWNKP_Prior:
WXK_NUMPAD_PAGEUPKP_Next:
WXK_NUMPAD_PAGEDOWNKP_End:
WXK_NUMPAD_ENDKP_Begin:
WXK_NUMPAD_BEGINKP_Insert:
WXK_NUMPAD_INSERTKP_Delete:
WXK_NUMPAD_DELETEKP_Equal:
WXK_NUMPAD_EQUALKP_Multiply:
WXK_NUMPAD_MULTIPLYKP_Add:
WXK_NUMPAD_ADDKP_Separator:
WXK_NUMPAD_SEPARATORKP_Subtract:
WXK_NUMPAD_SUBTRACTKP_Decimal:
WXK_NUMPAD_DECIMALKP_Divide:
WXK_NUMPAD_DIVIDEWindows_Left:
WXK_WINDOWS_LEFTWindows_Right:
WXK_WINDOWS_RIGHTWindows_Menu:
WXK_WINDOWS_MENUCommand:
WXK_COMMAND
範例
注意:在 wxGTK 中,由於 GTK+ 的限制,目前無法將 "SHIFT"
與非字母字元一起使用,即使與其他修飾符組合也是如此。例如,Shift+Ctrl+A
有效,但 Shift+Ctrl+1
或 Shift+/
無效,因此請避免在可攜式程式碼中使用這種形式的快速鍵。
注意:在 wxGTk 中,除非使用修飾鍵,否則左/右/上/下方向鍵不能作為選單項目的快速鍵。此外,以下鍵碼不支援作為選單快速鍵:
WXK_COMMAND/WXK_CONTROL
WXK_SHIFT
WXK_ALT
WXK_SCROLL
WXK_CAPITAL
WXK_NUMLOCK
WXK_NUMPAD_TAB
WXK_TAB
WXK_WINDOWS_LEFT
WXK_WINDOWS_RIGHT
WXK_ADD
WXK_SEPARATOR
WXK_SUBTRACT
WXK_DECIMAL
WXK_DIVIDE
WXK_SNAPSHOT
請參閱
-spec setMenu(This, Menu) -> ok when This :: wxMenuItem(), Menu :: wxMenu:wxMenu().
設定將包含此選單項目的父選單。
-spec setSubMenu(This, Menu) -> ok when This :: wxMenuItem(), Menu :: wxMenu:wxMenu().
設定此選單項目的子選單。
-spec setText(This, Label) -> ok when This :: wxMenuItem(), Label :: unicode:chardata().
等同於: setItemLabel/2