首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gtkmm4: Gtk::按钮单击信号在Gtk::HeaderBar中不触发

gtkmm4: Gtk::按钮单击信号在Gtk::HeaderBar中不触发
EN

Stack Overflow用户
提问于 2021-12-27 19:52:56
回答 1查看 99关注 0票数 0

我在用gtkmm4。我有一个Gtk::Window、Gtk::按钮和Gtk::HeaderBar。我已经将按钮打包到headerbar的末尾,然后将窗口的标题栏设置为头栏。我的代码如下所示:

代码语言:javascript
复制
class Window: public Gtk::ApplicationWindow
{

public:
    
    Window(){
        Gtk::Box box;
        Gtk::HeaderBar bar;
        Gtk::Button button{"Test Button"};

        button.signal_clicked().connect(sigc::mem_fun(*this, &Window::on_button_pressed));

        set_titlebar(bar);
        set_child(button);
    };

private:
    void on_button_pressed()
    {
        std::cout << "Button clicked!" << std::endl;
    };
};

由于某种原因,当我点击按钮时,按钮的点击信号没有激活,而我希望它会激活。我在这里做错什么了吗?提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-27 20:26:23

根据你的例子,当你写:

代码语言:javascript
复制
Gtk::Button button{"Test Button"};

button变量是本地变量,并在Window构造函数结束时死亡。为了避免这种情况,您有两个选择:

  1. Make是Window类成员。
  2. 使用Gtk::make_managed允许Window自动处理其子按钮的生命周期。

我很惊讶你竟然看到这些小玩意..。我怀疑真正的密码是不同的..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70499845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档