我想要做的是連接鼠標點擊「點擊」信號與按鍵「key_press_event」信號相同的回調函數。代碼從這樣開始:如何將「clicked」信號和「key_press_event」連接到同一個回調函數?
static void s_up(GtkWidget *btn,
gpointer data)
{
code ...
}
...
int main(int argc, char **argv)
{
...
g_signal_connect(button, "clicked", G_CALLBACK(s_up), NULL);
}
它處理鼠標點擊就好了。然後,我想添加鍵盤按它。所以我將代碼更改爲
static void s_up(GtkWidget *btn,
GdkEventKey *event
gpointer data)
{
if(event->keyval == 's')
more code ...
}
...
int main(int argc, char **argv)
{
...
g_signal_connect(button, "key_press_event", G_CALLBACK(s_up), NULL);
}
當我按下鍵盤上的「s」時它就起作用了。
我的問題是如何將兩個信號連接到同一個s_up
回調函數?除了其它if(event->keyval == 's')
明顯的問題,我打過電話都gtk_signal_connect
,當我點擊了按鈕,我得到段錯誤指向s_up
。按「s」沒有做任何事情。任何幫助表示讚賞。
我會補充說''gtk_signal_connect'已經過時多年了,他應該使用'g_signal_connect'來代替。 – liberforce
對不起,我確實使用'g_signal_connect',輸入錯了。 – lllluuukke