问题标签 [gtkmm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gtkmm - 调用 gdk_get_pixmap 需要什么?
我创建了一个小绘图区域类,现在需要在暴露事件回调期间绘制一个像素图。但我无法获得我尝试编译的任何参数。以下是代码的相关部分...
类定义...
和暴露回调......
c++ - c++ gtk 打开多个窗口
我仍在处理此链接上的示例:gtkmm statusicon 在创建后退出 我以这种方式更改了功能以打开托盘栏不同的窗口,但没有显示任何内容。
我试图用“Gtk::Main::run(w);”运行每个窗口 它可以工作,但我不想为每个窗口运行一个主循环。
c++ - 绘图区域和暴露事件
我有一个包含绘图区域的对话。如果对话被放大或缩小或掩埋和暴露,我希望重新绘制绘图区域的内容,这在绘图区域是正常和自然的。为此,我创建了一个方法
在课堂里。但是这个事件的存在会阻止对话中的所有其他小部件被正确绘制;据推测,当它们被暴露时,它也会被调用。如何创建一个仅刷新绘图区域的功能,而让所有其他小部件自行处理?
c++ - 在绘图区域上绘制一个临时的“选择”矩形
我在 Gtk DrawingArea 小部件上有一个复杂的绘图,我希望为用户提供一种方法来选择其上的矩形以展开以获得更近的视图。我已经设法整理出必要的鼠标按钮事件,以便可以选择矩形,但最好在显示器上绘制实际的矩形,并与鼠标一起移动。我需要知道如何在不干扰底层绘图的情况下做到这一点(即,我可以在临时矩形改变大小和形状时擦除它,而无需重新绘制底层图片)。
有人能告诉我这个效果的正确名称(以便我可以用谷歌搜索它)或者有人知道一个例子,或者一个关键字来搜索 Gtk 文档吗?
谢谢你。
gtkmm - 如何在不锁定应用程序的情况下使用大型数据集填充 Gtk::TreeModelColumn
我需要向 Gtk::TreeModelColumn 填写一个大的(可能不是那么多 - 几千个条目)数据集。如何在不锁定应用程序的情况下做到这一点。将处理放入单独的线程中是否安全?那么我必须用锁保护应用程序的哪些部分?它只是 Gtk::TreemodelColumn 类,还是它所在的 Gtk::TreeView 小部件,甚至可能是围绕框架或窗口?
gtk - 如何设置 Gtk Box 有两个孩子
我有一个 Gtk::HBox 应该只包含两个元素。然而,构造函数 new Gtk::HBox() 创建了一个包含三个元素的盒子,所以当我显示我的窗口时,Gtk 希望我在其中放置第三个元素的地方很丑陋。
我认为 Gtk api 会提供一种简单的方法来设置孩子的数量,但事实并非如此。由于 Glade 允许我创建一个包含两个元素的 HBox,我想它可以完成,但现在我需要使用 c++ 代码来完成。
很奇怪,我在谷歌上找不到这么简单的问题的答案,我一定错过了什么……有什么想法吗?
gtk - 继承gtkmm窗口类
我如何继承 gtk 窗口类。应该包含什么头文件。
在此先感谢, iSight
gtk - 当我在 glade 中指定函数名称时,是否必须手动附加 gtk 信号处理程序?
我正在编写我的第一个 gtk 程序,使用 gtkmm 和 glade。我制作了一个文件选择器按钮,它有一个名为 file-set 的信号,所以我将其设置为我假设的函数名称,我希望它在选择文件时调用它。但后来我在这里看到:http: //library.gnome.org/devel/gtkmm-tutorial/unstable/sec-builder-accessing-widgets.html.en
他们手动获取对话框小部件并在代码中设置按钮信号处理程序。哪种方法是正确的?
虽然我在这里,任何指向好例子的链接都会很方便,但它们似乎很少而且相差甚远。谢谢。
gtk - 我在 glade gtkbuilder 和连接信号方面遗漏了一些明显的东西。帮助?
我用 glade 制作我的界面。效果很好。我编写了一个很小的 main 函数,它调用 gtkbuilder 并渲染 glade 文件中的所有内容。
效果更好。然后我得到我的小部件
怎么办?我发现的每个连接信号处理程序的示例都不是由 gtkbuilder 构建的。如果你实例化你自己的类来表示/处理/渲染一个按钮,很容易将信号处理程序连接到它,但是我使用的是 gtkbuilder,我不知道如何编写一个函数,然后我可以附加到我的小部件,因为我不是创建按钮对象的人,所以 gtkbuilder 是。
我是否让 gtkbutton 的子类编写我的函数然后指向它?但是我的类没有被 gtkbuilder 实例化。
我只是不明白。帮助?
c++ - 使用非常简单的 gtk+cairo 程序在 windows XP 中崩溃
我正在使用 Visual Studio 2005 在 Windows Vista 上使用 gtkmm 开发 Gtk 应用程序。该应用程序在开发机器上运行良好,但在 Windows XP 机器(Service Pack 2 和 3)上运行后我收到了崩溃报告。我使用http://live.gnome.org/gtkmm/MSWindows中描述的目录结构分发应用程序,到目前为止它没有给我带来任何问题。
除了 Windows 询问我是否要报告错误外,崩溃没有给出错误消息。
为了解决这个问题,我尝试针对不同版本的 gtkmm 编译程序(最近的稳定版本 gtkmm-win32-devel-2.16.0-4 和旧版本 gtkmm-win32-devel-2.10.11-1)但问题仍然存在。
我找到了在 Gtk::DrawingArea 的 on_expose_event 中调用 window->create_cairo_context() 的问题。当我注释掉这个电话时,问题就会消失。所以我写了以下最小的程序,它仍然崩溃:
这个最小的应用程序可以毫无问题地运行并显示窗口,但是如果我将窗口移出屏幕限制,或者如果我最小化/最大化它的次数足够多(从而触发对 on_expose_event 的调用),它最终会崩溃。也有可能是第一次不会crash,但是重启app,触发多次on_expose_event调用后就会crash。我注意到的一件事是应用程序在打印“Get cairo done”后崩溃。当我注释掉对 create_cairo_context 的调用时,问题就消失了,所以我很确定这条线有问题。
该错误发生在全新安装的 Windows XP 机器上。我已经在同事的笔记本上测试了这两个应用程序(原始的和最小的),它也有 Windows XP,但它不会在那里崩溃。我想在我们的计算机中存在一些可用/最新的依赖关系,但在应用程序崩溃的计算机中没有。我已更新 DirectX 并在其中一台有问题的机器上安装了 Visual Studio C++ 2005 Redistributable,但问题仍然存在。
在 DrawingArea 上绘制图形的原始应用程序也不一定第一次崩溃。重新启动后第一次可能工作正常,但第二次更容易失败。
我正在考虑使用 MinGW 进行编译和测试,看看是否能解决问题。我还将尝试编译调试版本并尝试使用调试器。我怀疑 gdi32.dll 的版本可能有问题,根据 Dependency Walker 看到 libcairo-2.dll 依赖于这个 dll,但直到现在这只是一个猜测。除此之外,我没有想法。
我会暂时尝试这些想法。希望有人有更多建议或知道上面的代码发生了什么。