首页 > 解决方案 > GTKmm:从另一个打开窗口

问题描述

单击按钮时,我想显示一个新窗口:

void PackBox3::on_button_clicked()
{
    NewCard newcard;
    newcard.show();
}

当我单击按钮时,什么也没有发生(我确定调用了该方法),没有显示错误消息。我的第二个窗口如下所示:

class NewCard : public Gtk::Window
{
    public:
        NewCard();
        virtual ~NewCard();
   ...

我怎样才能让窗口显示自己?

标签: gtkglibgnomegtkmm

解决方案


编码:

void PackBox3::on_button_clicked()
{
    NewCard newcard;
    newcard.show();

} // newcard destroyed at end of scope here.

将不起作用,因为窗口newcard在函数作用域的末尾被销毁。我建议创建newcard一个成员,PackBox3以便在函数结束后保持活动状态。


推荐阅读