【问题标题】:How do you check whether a Window is Maximised in Gtk?如何检查 Gtk 中的窗口是否最大化?
【发布时间】:2011-09-28 18:39:27
【问题描述】:

我想给一个窗口一个特定的属性只有当它被最大化时并在最大化状态结束时把它改回来。我正在使用 Gtk# ,但欢迎所有 GTK 绑定答案。我正在寻找的是这样的(伪代码):

 OnMaximise += new Mhandler();
 Mhandler(){ property = true;}

或:

Resize += delegate() {
     if (isMaximised()) property=true; else property = false;};

或C方式:

gtk_window_on_maximise(GTK_WINDOW(mwin),onmax);
void onmax() 
{ 
     if (gtk_window_is_max(GTK_WINDOW(mwin))        
          gtk_window_set_property(GTK_WINDOW(mwin),true); 
     else gtk_window_set_property(GTK_WINDOW(mwin),false);
}

有什么建议吗?谢谢

【问题讨论】:

  • @Pedro77 可能是因为我使用的是 GTK#???我什么时候要求使用 C++?

标签: c# c gtk gtk#


【解决方案1】:

在创建窗口并监视它时设置“窗口状态事件”信号。见http://developer.gnome.org/gtk/2.24/GtkWindow.html#gtk-window-maximize 并且 http://developer.gnome.org/gtk/2.24/GtkWidget.html#GtkWidget-window-state-event

您的 onmax() 将是当 GDK_WINDOW_STATE_MAXIMIZED 变为 TRUE 时将调用的处理程序。 见http://developer.gnome.org/gdk/stable/gdk-Events.html#GDK-STRUCTURE-MASK:CAPShttp://developer.gnome.org/gdk/stable/gdk-Event-Structures.html#GdkEventWindowStatehttp://developer.gnome.org/gdk/stable/gdk-Event-Structures.html#GdkWindowState

抱歉,如果不实际编写代码,就无能为力了。谷歌可能有一些很好的例子,但也可能没有。实际上有哪些文档是为已经可以使用 GTK+ 信号的人准备的。

编辑:我在 C 中做 GTK+,我引用的页面是针对 C 的。

编辑#2:只要发送信号并且信号数据是重要的,就会执行处理程序(回调)。我可能会对我感兴趣的每个信号数据值做一个 switch:case,并可能为其他函数设置一个标志以便稍后读取。

【讨论】:

  • 谢谢。正如我之前所说,如果它是 C 则没有问题。我只是想知道怎么做。
  • 所有五个链接都未找到
猜你喜欢
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
  • 2020-03-31
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多