我在用gtkmm4。我有一个Gtk::Window、Gtk::按钮和Gtk::HeaderBar。我已经将按钮打包到headerbar的末尾,然后将窗口的标题栏设置为头栏。我的代码如下所示:
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;
};
};由于某种原因,当我点击按钮时,按钮的点击信号没有激活,而我希望它会激活。我在这里做错什么了吗?提前谢谢你!
发布于 2021-12-27 20:26:23
根据你的例子,当你写:
Gtk::Button button{"Test Button"};button变量是本地变量,并在Window构造函数结束时死亡。为了避免这种情况,您有两个选择:
Window类成员。Gtk::make_managed允许Window自动处理其子按钮的生命周期。我很惊讶你竟然看到这些小玩意..。我怀疑真正的密码是不同的..。
https://stackoverflow.com/questions/70499845
复制相似问题