gtk+ 在窗口级别使用按键信号,但在子小部件级别阻止特定的按键信号

  • 本文关键字:信号 小部 窗口 gtk+ gtk signals
  • 更新时间 :
  • 英文 :


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

谢谢。

Windows首先

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

最新更新