【问题标题】:Gtk::MessageDialog Run throws a segmentation faultGtk::MessageDialog Run 抛出分段错误
【发布时间】:2010-01-29 00:10:45
【问题描述】:

您好,我正在尝试使用对话框显示错误消息。但是,当我运行代码时,会出现分段错误。

函数如下:

void ShowErrorMessage(string message)
{
  Gtk::MessageDialog dialog(message,true,Gtk::MESSAGE_ERROR,Gtk::BUTTONS_CLOSE,true);
  dialog.run();
}

我尝试打开一个文件,如果文件无法打开我想显示这个错误框,但是我一直遇到分段错误。

【问题讨论】:

  • 这里真的没有足够的上下文来弄清楚。遇到段错误时的堆栈跟踪是什么?
  • 您是否使用message 中的ASCII 字符以外的字符?如果是这种情况,请确保以 UTF8 对其进行编码。
  • hmm..我想我可以试试...我如何将它们编码为 UTF8?
  • library.gnome.org/devel/gtkmm-tutorial/unstable/… 如果是这个问题,基本上应该使用Glib::locale_to_utf8()。
  • 谢谢,没有解决问题,我猜这是对话框没有父窗口的问题,因为我在主窗口显示之前调用它。你怎么看?

标签: linux gtk gtkmm


【解决方案1】:

您必须在对话框中调用new 还是那是一个静态类?请参阅here 获取有关此文件的文档,这让我认为这就是您的代码段错误的原因...

希望这会有所帮助, 最好的祝福, 汤姆。

【讨论】:

  • 嗨,汤姆 - 不,我不需要打电话给 new..我正在使用 gtkmm
【解决方案2】:

也许你一开始没有添加这一行?

Gtk::Main_kit(argc, argv);

【讨论】:

  • 在调用错误消息函数之前,我确实添加了这一行。
猜你喜欢
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
相关资源
最近更新 更多