在gtkmm3中使用Gtk::Assistant



我有一个gtkmm3应用程序,我计划使用从Gtk::Assistant派生的类来执行一些用户配置。由于Gtk::Assistant是从Gtk::Window(而不是Gtk::Dialog(派生而来的,因此我无法调用run()来显示助手。

正如好书所说,我使用Gtk::Application::run(window)打开主应用程序窗口,但我不知道如何在gtkmm3应用程序中显示主窗口的第二个窗口。在gtkmm2.4中,我非常确信Gtk::Main::run(assistant)会完成这项工作。我感到非常愚蠢,即使在阅读了gtk演示源代码之后,我也无法理解这一点。如有帮助,不胜感激。

您可以像调用任何其他窗口一样简单地调用show()。例如:

#include <gtkmm.h>
class MainWindow : public Gtk::Window
{
public:
MainWindow()
{
m_button.set_label("Click to show assistant...");
m_button.signal_clicked().connect([this](){ShowAssistant();});
add(m_button);
}
private:
void ShowAssistant()
{
m_assistant.show();
}
Gtk::Button m_button;
Gtk::Assistant m_assistant;
};
int main(int argc, char *argv[])
{
auto app = Gtk::Application::create(argc, argv, "gtkmm.example");

MainWindow window;
window.set_default_size(200, 200);
window.show_all();

return app->run(window);
}

相关内容

  • 没有找到相关文章

最新更新