问题标签 [gtkmm3]

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 投票
1 回答
559 浏览

gtkmm - GTKmm 应用程序:Gdk 按键信号未触发

我已经(某种程度上)复制了(但做了一些修改)GTKmm 键盘事件教程中的示例。(链接

https://developer.gnome.org/gtkmm-tutorial/stable/sec-keyboardevents-overview.html.en#keyboardevents-simple-example

这是我的代码:

但是它不起作用 - 当我按下按键序列 CTRL-C、CTRL-V、CTRL-H 时,似乎没有触发任何信号事件。

我想我已经从代码中删除了所有不相关的东西,所以这应该是一个有效的 MWE。

0 投票
1 回答
288 浏览

c++ - signal_key_press_event 上的 gtkmm 条目缺少键

所以我一直在试验 Gtkmm,因为我想将我的一些代码迁移到 C++,我认为它会更容易。

我曾经能够在 C 中使用看起来像这样的东西:

但似乎当我尝试在 Gtkmm 中使用类似的系统时:

它完全错过了所有键盘按键,除了 shift 键和 tab 等。

谁能解释一下为什么?

0 投票
0 回答
174 浏览

c++ - gtkmm 兼容 GTK+3.0 的 c++ 包装器版本

我必须将在 GTK 2.4 版本中开发的非常大的应用程序迁移到 GTK 3.0。当前应用程序在 Ubuntu 中使用 Gtkmm 2.4 版。

由于 GTKMM 是 GTK+ 的 c++ 包装器,有人可以告诉我,Gtkmm 是否以及哪个版本将支持 GTK+3.0

我应该在我的应用程序中安装和引用 Gtkmm 3.0 还是 gtkmm 3.91 而不是 gtkmm2.4?我找不到任何有关 gtk+3.0 应用程序应使用哪个版本的 gtkmm 的文档。

0 投票
2 回答
449 浏览

c++ - 在绘图信号上保留 DrawingArea 'image'

我正在尝试制作简单的正方形,您可以在其中用鼠标绘画。问题是,每当绘制信号发生时,cairo 表面似乎完全被清除了。我理解这一点,因为在第一个queue_draw()白色背景消失后,我看到了我的 GTK 主题颜色(灰色)。

我以为我可以保存表面或上下文,但你不能只在 cairo 创建空表面,而且我不能使用this->get_window()->create_cairo_surface()this继承自的类对象在哪里)创建它,Gtk::DrawingArea因为当调用构造函数时,小部件未附加到任何窗口,所以它是一个空指针。我的意思是,我可以创建一些名为的公共函数,you_are_added_to_window_create_cairo_surface()但我真的不想这样做。

所以我真的不知道该怎么做,我不了解开罗。

如何保留或保存“画布”当前状态,以便实际绘制的内容仅应用于现有绘图?

这是我班级的回调函数:

0 投票
1 回答
155 浏览

c++ - gtkmm:将容器小部件(Box)中的元素堆叠在一起

我想创建某种工具栏,由按钮组成。我使用了 ButtonBox,并在其中放入了一些切换按钮、颜色按钮和一个常规按钮。

我想完成两件事:

  1. 尽管窗口宽度,使按钮粘在一起,它们之间没有边距。
  2. 窗口右侧有最右边的按钮,左侧有其他按钮。

如果我不想要第二件事,我可以使用set_valign工具栏向右缩小。

pack_start我尝试在颜色按钮后添加空 Gtk::Box 并允许它展开,这将最右边的按钮保留在右侧,但它仍然在按钮之间留下边距,无论pack_end我尝试什么参数 - 有两个可选的布尔参数,但他们似乎都没有做任何事情。

以下是它的正常外观:

问题

这是空盒子的样子:

问题

那么我应该怎么做才能删除按钮之间的边距,有没有更好的方法来让一些按钮在右边,一些在左边?

0 投票
0 回答
225 浏览

c++17 - 使用 gcc 7 从源代码构建 Gktmm 3.91

操作系统:Ubuntu 16.04 LTS
编译器:Gcc7.2

我想将 Gtkmm3.9 添加为我的一个项目的第三方依赖项,并尝试从源代码编译。我不熟悉 autoconf 或 automake 工具集。

浏览文档https://developer.gnome.org/anjuta-build-tutorial/stable/create-autotools.html.en我发现您可以使用 autogen.sh 生成配置文件。但是该项目无法配置,因此也无法生成任何 make 文件。

我想使用 C++17,似乎在 Gtkmm 3.81 之后支持现代 C++ 作为现有 Gtk3 的并行构建。我找不到 Gtkmm3.81 的任何 ubuntu 预构建包。

  • Gtkmm3.9 存储库是否包含其存储库中的所有依赖项。
  • 可以与 C++17 一起使用吗(我使用 gcc7.2 编译器)我无法使用 C++17 编译带有旧 Gtkmm3 的任何程序,因为标头中有一些已删除的函数。

我打算将该库与 C++17 一起使用。对自己构建库更感兴趣。任何构建说明也会非常有帮助。

谢谢强尼

0 投票
1 回答
78 浏览

c++ - ScrollWindow 内的 TreeView 打印警告

花了 2 天时间解决了这个问题,所以我觉得这非常有用。

我后面跟着这个 GTKmm 教程,在 Gtk::ScrolledWindow 中添加了 Gtk::TreeView 但是当我添加更多行时,它会显示如下消息:

(GUI:25948): Gtk-WARNING **: 在不调用 gtk_widget_get_preferred_width/height() 的情况下将大小分配给 gtkmm__GtkWindow 0x55ad53e44500。代码如何知道要分配的大小?

如何删除警告?它太烦人了。

0 投票
0 回答
265 浏览

gtk - How to disable animation/delay for Gtk::RadioButton,Gtk::CheckButton

I'am learning gtkmm3(3.22.2) and i try to get rid of animation/delay on Gtk::RadioButton, Gtk::CheckButton if that's possible.

There is no such slow state change for those widgets in applications on my desktop (Libreoffice etc.) nor in Qt5 for QCheckBox etc.

I am using Debian/xfce if that matters

0 投票
2 回答
453 浏览

c++ - 在 GTK+3 应用程序中显示 Magick++ 图像的首选方法是什么?

我正在开发一个适用于 Linux 的 C++ 图像查看器,它是使用 GTK+3 (gtkmm) 创建的用于 GUI 和 Magick++ 用于图像处理。我的目标是支持尽可能多的图像文件格式,包括动画 GIF。

获取 Magick++ 图像并将其绘制在 GTK+3 小部件中的最佳方法是什么,以便它适用于(几乎)任何图像文件格式?

0 投票
1 回答
240 浏览

c++ - 是否可以使用 Gtk::DrawingArea (GTKmm) 作为组合而不是继承?

在 GTKmm 第一个文档示例更复杂的时钟示例中,他们继承了public Gtk::DrawingArea构建他们的应用程序。

是否可以使用DrawingAreaby 组合,而不是继承它并覆盖on_draw虚拟方法?

我想这样做,不要将我的方法/属性与DrawingArea从基类继承的方法混合Gtk::DrawingArea。因此,当我访问某些东西时,我明确地知道我在我的创作中使用了某些东西,因为我的类定义中只有我的东西。虽然从. Gtk::DrawingArea_Gtk::DrawingAreaGtk::DrawingArea