0

我正在使用 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);

谢谢。

4

1 回答 1

1

Windows 在按键事件中首先得到破解,然后它们沿着焦点链上升。任何返回的信号处理程序都会true停止这种传播。因此,如果您true在处理ctrl-t(或您不想传播的任何其他按键)时从按键信号处理程序返回,它应该阻止它进入术语小部件。

于 2012-07-05T20:03:03.487 回答