0
我試着檢查控制鍵是否被按下,但我不能。 根據文檔我試試這個:Gtk按鍵修飾符
G_MODULE_EXPORT gboolean
KEYPRESS_window1(GtkWidget *window1, GdkEventKey* pKey, gpointer user_data)
{
guint modifiers;
modifiers = gtk_accelerator_get_default_mod_mask();
g_print("modifiers %d\n", modifiers);
g_print("pKey->state %d\n", pKey->state);
if ((pKey->state & modifiers) == GDK_CONTROL_MASK)
{
ctrlpressed = 1;
return TRUE;
}
return FALSE;
}
信號被提出,並通過正確的邏輯,但不要通過「if」條件。 我想知道爲什麼,所以請幫助。
'g_print()'語句打印什麼? – ptomato
修飾符469762061 pKey-> state 16 pKey-> state取決於capslock,numlock等,修飾符看起來根本沒有改變。 –
'modifiers'不應該改變,除非你自己改變默認的mod掩碼。這段代碼適用於我 - 如果我用'g_print(「Ctrl按下\ n」)替換'ctrlpressed = 1'行,每次按Ctrl + G組合鍵時都會看到'Ctrl'按鈕。 – ptomato