Gtk在单击按钮时显示和隐藏容器

时间:2018-08-02 15:41:37

标签: c widget gtk3 glade

我正在开发一个简单的应用程序。我基本上有用Glade制作的GUI。我正在使用C。

我在顶部有一个大约10个按钮的栏。例如,我想按按钮1,并且我想显示我的下半屏幕(一个有固定按钮和一些按钮的盒子)。

但是,如果按顶部栏上的按钮2,我希望我的下半部分屏幕隐藏该内容,并用一些新内容替换它。我知道我可以使用widget_hide手动进行操作,并一个接一个地显示,但是有什么方法可以使用林间空地容器吗?

GtkWidget *btn = ptr[2];
GtkWidget *fx = ptr[1];
GtkWidget *holder = ptr[3];
    if(gtk_toggle_button_get_active(btn)){
        gtk_fixed_put(holder,fx,0,0);
        gtk_widget_show(fx);
    }else{
        gtk_widget_hide(fx);
    }

这是一个非常基本的想法,btn是我按下的按钮,holder是框内的固定容器,fx是我要显示的小部件的固定容器/ hide,并用其他具有不同小部件的固定替换。

金田很难解释自己。基本上y按下一个按钮,例如每个按钮都有一个不同的窗口,例如更改div及其在HTML上的内容。

1 个答案:

答案 0 :(得分:0)

不确定您到底想要什么设计。只是从我的角度思考:我正在使用一个python示例应用程序,该应用程序在init加载了多个窗口。

    ...
    self.controlwindow = builder.get_object("scoreboard_control_window")
    self.viewwindow = builder.get_object("scoreboard_view_window")
    self.logdialog = builder.get_object("scoreboard_log_dialog")
    self.logoffdialog = builder.get_object("scoreboard_logoff_confirm")
    self.logcanceldialog = builder.get_object("scoreboard_logcancel_confirm")
    self.resetdialog = builder.get_object("scoreboard_resetconfirm")
    self.exitdialog = builder.get_object("scoreboard_exitconfirm")

通过使用诸如GUI.controlwindow.show()或self.logoffdialog.show()或self.logoffdialog.hide()之类的show / hide,我可以控制对话框和条目窗口的弹出/隐藏。