问题标签 [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.

0 投票
4 回答
1388 浏览

gtk - 信号从 gtkmm 弹出列表中触发两次

自从我使用 GTK+ 以来已经有一段时间了,最​​后一次是在 C 中,而不是像现在这样使用 gtkmm 和 C++。无论如何,我有一个我认为应该很容易解决的问题:

我有一个由单选按钮列表组成的弹出菜单,当我单击其中一个时,我希望执行一些操作。代码如下:

我看到的唯一问题是,MyClass::on_item_activated当从菜单中选择以前未选择的单选按钮时,它会被调用两次。单击已选择的单选按钮时仅调用一次。

我猜第一次触发是说“不再激活某些东西”,第二次触发是为了激活新的单选按钮。不管我是对是错,问题都是一样的:我怎样才能让我的处理程序每​​次点击只采取一次行动?要么我需要只调用一次处理程序,要么我需要从它内部检查一些东西以了解回调是否是“重复的”。

0 投票
2 回答
1163 浏览

windows - 在 Windows 下打包具有依赖关系的应用程序

我在 Linux 下使用 gtkmm 和 libpcap 编写了一个应用程序。当然,gtkmm 依赖于 GTK+。

将其移植到 Windows 并尝试分发后,我收到的反馈是要安装的依赖项太多。

用户必须先运行 GTK+、gtkmm 和 winpcap 运行时的安装程序,然后才能运行我的小应用程序,这无疑是一种痛苦。

GIMP for Windows 似乎使用了一个安装程序,如果需要,它会启动一个 GTK+ 安装程序,但是对三个不同的库这样做似乎有点过分,尤其是在安装程序大小方面。

有没有更好的方法来分发这个?我相信 winpcap 实际上必须安装一个服务,所以它可能必须运行安装程序,但也许我可以将 GTK+/gtkmm 库捆绑在运行时文件夹中?

我对 Linux 开发比较熟悉,所以我不确定最好的做法是什么。

0 投票
7 回答
13355 浏览

c++ - 我应该学习 GTK+ 还是 GTKMM?

我是一名 C# 程序员,大约 2 年前开始使用 ubuntu。我想学习 C 或 C++ 中的 GUI 编程。我真的不喜欢单声道,它往往会在我的系统上崩溃。我对 C++ 有基本的了解。我从未在 C 中工作过,但它看起来很酷。我应该学习/使用哪个工具包?给出每个的优点/缺点。谢谢!

0 投票
1 回答
1912 浏览

glib - gtkmm:从其他线程更新 gui?

我正在使用 gtkmm(和 glibmm),我想从另一个线程更新 GUI。我已经按照上的例子

http://www.gtkmm.org/docs/glibmm-2.4/docs/reference/html/thread_2dispatcher_8cc-example.html#_a1

但我有两个问题:

  • 不是 Glib::MainLoop 接收事件,而是 Gtk::Main (运行我的窗口)是否可以接受信号?

  • 我可以以某种方式使用带参数的 .connect() 函数吗?我知道使用 SigCX 是可能的,但我认为那里的语法有点讨厌。

谢谢!

0 投票
1 回答
980 浏览

gtk - 如何获取 gtktreeview 标头的高度?

我查看了 gtk 源代码,标题高度是私有的。我已经尝试了一些东西,但它没有按预期工作(heightWithHeader 是 1?!)

你能帮我解决我的代码或修复我的代码吗?

更新:我必须调整树视图的高度以显示固定数量的行。我通过将容器(滚动窗口)的大小调整为 headerHeight + numberRowsToDisplay * heightOfRow 来做到这一点。

0 投票
3 回答
496 浏览

c++ - 如何删除 GtkTreeView 排序箭头?

我需要从列标题中删除排序箭头。这可以通过调用set_sort_indicator(false)列来完成。

箭头没有显示,但它的空间似乎仍然被保留。如果列的标题大到足以填满所有标题,则最后一部分将被剪裁(箭头应位于的位置)。

有没有办法让标题填满整个标题?

0 投票
1 回答
547 浏览

gtk - 如果我有两个 Glib::IOChannel 实例,它们会阻塞直到都被写入。这样做的正确方法是什么?

我已修改此处找到的示例以使用两个 io 通道。在我写入两个通道之前,似乎没有调用任何回调。之后,在写入 fifos 时会单独调用它们。我是不是忘记了什么?

  • 在一个 shell 窗口中启动测试程序。
  • 在第二个 shell 窗口中写入 echo "abc" > testfifo1。-> 什么也没有发生。
  • 在第三个 shell 窗口中写入 echo "def" > testfifo2。-> 现在我得到“abc”和“def”
  • 写信给其中一个fifo。这立即送达。

编辑:正如下面的 Gormley 所暗示的,解决方案是缺少非阻塞。

对下面代码的这种更改使其立即响应。

编码:

0 投票
1 回答
838 浏览

user-interface - 为什么 Gtk 的 button_press_event 不会收到单击左键?

我正在尝试在 Gtk::Notebook (gtkmm) 中设置一个添加选项卡按钮。我通过将像素图绘制到计算位置来做到这一点——效果很好。但是,当尝试为其接收事件时,我无法单击左键。单中间和单右提供新闻和发布事件,双左只提供新闻事件,但单左不注册任何东西。如何正确接收事件?

0 投票
3 回答
4139 浏览

user-interface - 在 Gtk+ 中堆叠小部件

Gtk+ 中有没有办法将一个小部件堆叠在另一个之上——不包括 GtkFixed?GtkFixed 不能很好地工作有两个原因:1)我需要 Z 顺序,2)我需要一个小部件来拉伸和填充提供的空间。

0 投票
2 回答
1424 浏览

user-interface - Gtk+鼠标指针离开区域事件

我需要检测鼠标指针何时离开 GtkNotebook 中的区域。通常,这可以通过motion_notify 事件实现,但如果指针移动得足够快,则不会触发该事件。因为这是 GtkNotebook 中的某个像素区域,所以不能使用 GtkEventBox。这样做的正确方法是什么?