C++ 尝试设置按钮时出现分段错误';lambda函数中的s标签
我一直在尝试学习gtkmm4,但遇到了一个奇怪的运行时错误 我的代码:C++ 尝试设置按钮时出现分段错误';lambda函数中的s标签,c++,gtkmm,gtk4,C++,Gtkmm,Gtk4,我一直在尝试学习gtkmm4,但遇到了一个奇怪的运行时错误 我的代码: #包括 #包括 类MyWindow:公共Gtk::Window { 公众: MyWindow(); }; MyWindow::MyWindow() { 设置标题(“基本应用”); 设置默认大小(200200); Gtk::按钮按钮(“你好世界”); 按钮。设置标签(“测试”); 按钮。单击信号()。连接([&按钮]()->无效{ 按钮。设置标签(“测试!”); }); 设置子对象(按钮); } int main(int ar
#包括
#包括
类MyWindow:公共Gtk::Window
{
公众:
MyWindow();
};
MyWindow::MyWindow()
{
设置标题(“基本应用”);
设置默认大小(200200);
Gtk::按钮按钮(“你好世界”);
按钮。设置标签(“测试”);
按钮。单击信号()。连接([&按钮]()->无效{
按钮。设置标签(“测试!”);
});
设置子对象(按钮);
}
int main(int argc,char*argv[])
{
auto-app=Gtk::Application::create(“org.gtkmm.examples.base”);
返回应用程序->创建窗口并运行(argc、argv);
}
错误:
[1] 183029 segmentation fault (core dumped)
单击按钮时会发生此错误。您有一个对本地
Gtk::button
变量的悬空引用,该变量在MyWindow
的构造函数完成时被解构。尝试将button
作为MyWindow
类的成员变量。您有一个对本地Gtk::button
变量的悬空引用,该变量在MyWindow
的构造函数完成时被解构。尝试将按钮
设置为MyWindow
类的成员变量。lambda捕获对局部变量的引用。我不知道gtk,但我猜通过值捕获可以解决它?您的lambda捕获对局部变量的引用。我不知道gtk,但我想通过价值捕获可以解决它?好的捕获,经典!好球,经典!