gpt4 book ai didi

c++ - 将自定义 GTK+ 小部件编译为 C++

转载 作者:行者123 更新时间:2023-11-28 08:10:40 25 4
gpt4 key购买 nike

我有一个自定义的 GTK+ 小部件,我正在用 C++ 文件(而不是 C)编译它。大多数代码是 C++ 的 C 子集。该应用程序似乎运行良好。 (现在它只显示一个包含小部件的顶级窗口。)但是,我在小部件结构中包含了一个析构函数,并注意到从未调用过析构函数。

  • 我应该怎么做(不使用 gtkmm)以确保调用析构函数?
  • 在使用 C++ 实现 GTK+ 小部件时,我还应该注意哪些其他后果?

最佳答案

GTK 使用面向对象的 C,其中面向对象的部分使用函数指针可视化。所以如果你可以用 gtk 小部件的 C 端代码缓存你的 this 指针,那么 here is more info ...

如果时间不多了,请查看this example ... 在这个例子中寻找gtk_cpu_destroy,下面的代码设置了widget中的函数指针。

object_class->destroy = gtk_cpu_destroy;

除了gtkmm,还有gfc project ,我认为它更干净,更容易理解......

What are the other consequences I should be aware of when implementing a GTK+ widget in C++?

我的问题是,如果您的自定义小部件真的是 gtk 小部件或 gdk 小部件...并非所有 gdk 事件都在 gtkmm 中处理(或者至少它们不是在 2009 年),因此请注意您的应用程序可能会经常崩溃,如果您的小部件广泛使用 gdk,并且没有捕获 gdk 事件。像 systemtap 这样的工具可能会帮助您捕获导致问题的事件。

关于c++ - 将自定义 GTK+ 小部件编译为 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9170887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com