我正在使用vte在gtk +中创建终端应用程序。当我创建一个选项卡并使用ctrl + t组合键将其添加到笔记本时,它会在选项卡中按预期添加一个带有新终端的选项卡。然而,按键信号也通过终端并在命令提示符之前显示为“^ T”以及系统蜂鸣声。如何在窗口级使用按键信号,这样我就可以添加标签,但是在终端级阻止这个特定的按键信号?这是一段代码,显示了它是如何组装的:
window_main = gtk_window_new (GTK_WINDOW_TOPLEVEL);
vte = vte_terminal_new();
terminal = VTE_TERMINAL (vte);
notebook = gtk_notebook_new ();
vbox = gtk_vbox_new(FALSE,0);
gtk_container_add (GTK_CONTAINER (window_main), vbox);
gtk_box_pack_start (GTK_BOX (vbox), notebook, TRUE, TRUE, 0);
scrollwin[0] = gtk_scrolled_window_new (NULL, terminal->adjustment);
gtk_container_add(GTK_CONTAINER(scrollwin[0]),vte);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwin[0]), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
label = gtk_label_new ("term1");
gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrollwin[0], label);
感谢。
答案 0 :(得分:1)
Windows在keypress事件中获得第一次破解,然后他们进入焦点链。任何返回true
的信号处理程序都会停止此传播。因此,如果在处理true
(或任何其他不希望传播的按键)时从keypress信号处理程序返回ctrl-t
,则应使其不会转到术语小部件。