檢視原始碼 wxMenuItem (wx v2.4.3)

選單項目代表選單中的一個項目。

請注意,您通常不必直接處理它,因為 wxMenu 的方法通常會為您建構此類別的物件。

另請注意,與字型和點陣圖相關的方法目前僅在 Windows、Mac 和 GTK+ 中實作。

請參閱

wxWidgets 文件: wxMenuItem

事件

此類別發出的事件類型

摘要

函式

勾選或取消勾選選單項目。

銷毀物件

啟用或停用選單項目。

傳回已勾選或未勾選的點陣圖。

傳回與選單項目相關聯的說明字串。

傳回選單項目識別碼。

傳回與選單項目相關聯的文字,包括任何傳遞給建構函式或 setItemLabel/2 的快速鍵字元。

傳回與選單項目相關聯的文字,不含任何快速鍵字元。

傳回項目種類,為 wxITEM_SEPARATORwxITEM_NORMALwxITEM_CHECKwxITEM_RADIO 其中之一。

從給定的 text 中移除所有快速鍵字元和助憶鍵。

傳回此選單項目所在的選單,如果此選單項目未附加,則傳回 NULL。

傳回與選單項目相關聯的子選單,如果沒有子選單,則傳回 NULL。

如果項目可勾選,則傳回 true。

如果項目已勾選,則傳回 true。

如果項目已啟用,則傳回 true。

如果項目是分隔符號,則傳回 true。

如果項目是子選單,則傳回 true。

等同於 new([])

建構 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 的快速鍵字元。

請參閱

此函式的連結

getItemLabelText(This)

檢視原始碼
-spec getItemLabelText(This) -> unicode:charlist() when This :: wxMenuItem().

傳回與選單項目相關聯的文字,不含任何快速鍵字元。

請參閱

-spec getKind(This) -> wx:wx_enum() when This :: wxMenuItem().

傳回項目種類,為 wxITEM_SEPARATORwxITEM_NORMALwxITEM_CHECKwxITEM_RADIO 其中之一。

-spec getLabel(This) -> unicode:charlist() when This :: wxMenuItem().

等同於: getItemLabelText/1

此函式的連結

getLabelFromText(Text)

檢視原始碼
-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 並將 texthelp 字串留空即可。某些平台(目前僅限 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

此函式的連結

setHelp(This, HelpString)

檢視原始碼
-spec setHelp(This, HelpString) -> ok when This :: wxMenuItem(), HelpString :: unicode:chardata().

設定說明字串。

此函式的連結

setItemLabel(This, Label)

檢視原始碼
-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 相同。

快速鍵可以是任何字母數字字元、任何功能鍵(從 F1F12)、使用 KP_ 字首的任何數字鍵盤數字鍵(即從 KP_0KP_9)或下列列出的特殊字串之一(同樣,大小寫不拘),這些字串對應於指定的按鍵代碼

  • DelDelete: WXK_DELETE

  • Back: WXK_BACK

  • InsInsert: WXK_INSERT

  • EnterReturn: WXK_RETURN

  • PgUpPageUp: WXK_PAGEUP

  • PgDnPageDown: WXK_PAGEDOWN

  • Left: WXK_LEFT

  • Right: WXK_RIGHT

  • Up: WXK_UP

  • Down: WXK_DOWN

  • Home: WXK_HOME

  • End: WXK_END

  • Space: WXK_SPACE

  • Tab: WXK_TAB

  • EscEscape: WXK_ESCAPE

  • Cancel: WXK_CANCEL

  • Clear: WXK_CLEAR

  • Menu: WXK_MENU

  • Pause: WXK_PAUSE

  • Capital: WXK_CAPITAL

  • Select: WXK_SELECT

  • Print: WXK_PRINT

  • Execute: WXK_EXECUTE

  • Snapshot: WXK_SNAPSHOT

  • Help: WXK_HELP

  • Add: WXK_ADD

  • Separator: WXK_SEPARATOR

  • Subtract: WXK_SUBTRACT

  • Decimal: WXK_DECIMAL

  • Divide: WXK_DIVIDE

  • Num_lock: WXK_NUMLOCK

  • Scroll_lock: WXK_SCROLL

  • KP_Space: WXK_NUMPAD_SPACE

  • KP_Tab: WXK_NUMPAD_TAB

  • KP_Enter: WXK_NUMPAD_ENTER

  • KP_Home: WXK_NUMPAD_HOME

  • KP_Left: WXK_NUMPAD_LEFT

  • KP_Up: WXK_NUMPAD_UP

  • KP_Right: WXK_NUMPAD_RIGHT

  • KP_Down: WXK_NUMPAD_DOWN

  • KP_PageUp: WXK_NUMPAD_PAGEUP

  • KP_PageDown: WXK_NUMPAD_PAGEDOWN

  • KP_Prior: WXK_NUMPAD_PAGEUP

  • KP_Next: WXK_NUMPAD_PAGEDOWN

  • KP_End: WXK_NUMPAD_END

  • KP_Begin: WXK_NUMPAD_BEGIN

  • KP_Insert: WXK_NUMPAD_INSERT

  • KP_Delete: WXK_NUMPAD_DELETE

  • KP_Equal: WXK_NUMPAD_EQUAL

  • KP_Multiply: WXK_NUMPAD_MULTIPLY

  • KP_Add: WXK_NUMPAD_ADD

  • KP_Separator: WXK_NUMPAD_SEPARATOR

  • KP_Subtract: WXK_NUMPAD_SUBTRACT

  • KP_Decimal: WXK_NUMPAD_DECIMAL

  • KP_Divide: WXK_NUMPAD_DIVIDE

  • Windows_Left: WXK_WINDOWS_LEFT

  • Windows_Right: WXK_WINDOWS_RIGHT

  • Windows_Menu: WXK_WINDOWS_MENU

  • Command: WXK_COMMAND

範例

注意:在 wxGTK 中,由於 GTK+ 的限制,目前無法將 "SHIFT" 與非字母字元一起使用,即使與其他修飾符組合也是如此。例如,Shift+Ctrl+A 有效,但 Shift+Ctrl+1Shift+/ 無效,因此請避免在可攜式程式碼中使用這種形式的快速鍵。

注意:在 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().

設定將包含此選單項目的父選單。

此函式的連結

setSubMenu(This, Menu)

檢視原始碼
-spec setSubMenu(This, Menu) -> ok when This :: wxMenuItem(), Menu :: wxMenu:wxMenu().

設定此選單項目的子選單。

-spec setText(This, Label) -> ok when This :: wxMenuItem(), Label :: unicode:chardata().

等同於: setItemLabel/2