在GTK +中创建关闭对话框的取消按钮的正确方法是什么?

时间:2017-10-04 19:21:48

标签: c++ gtk gtk3

问题在于使用C ++进行GTK +编程。 我有一个主窗口,带有一个激活对话窗口的按钮。对话窗口有OK和CANCEL按钮。我是这样做的,所以当我点击取消按钮时,对话框关闭。但是一旦它关闭,我就不能再用主窗口中的按钮再次调用它。

我试图在按钮点击上调用对话框delete-event。单击按钮时,我还尝试调用对话框destroy event。但是在这两种情况下,对话框都会被销毁,当我单击调用对话框的按钮时它就不会显示。

1 个答案:

答案 0 :(得分:2)

我想这是关于这个主题的另一个问题的后续跟进: How to properly close a dialog made in Glade?

如果它是使用GtkBuilder创建的,如果你破坏了窗口,它就会被破坏:get_object在解析时创建了小部件,而不是在你调用gtk_widget_hide_on_delete时创建了小部件,并赢了再创造它们。因此,我认为您应该使用 public void doIt<T>() { services.AddScoped<IRepository<T>>(x => new DocumentDbRepository<T>( new DatabaseSettings(Configuration.GetSection("DocumentDb").GetSection("DatabaseName").Value, Configuration.GetSection("DocumentDb").GetSection("CollectionName").Value, Configuration.GetSection("DocumentDb").GetSection("EndpointUri").Value, Configuration.GetSection("DocumentDb").GetSection("Key").Value))); } 之类的内容隐藏对话框,并在单击主对话框中的按钮时再次显示该对话框。