问题标签 [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 回答
895 浏览

c++ - 在 gtkmm 中捕捉鼠标运动

当我按住鼠标中键时,我试图捕捉鼠标运动。目标是在 stl 查看器中实现旋转功能。

我找到了事件掩码BUTTON2_MOTION_MASK。但我很难弄清楚是哪个信号捕捉到了它。

这是我用来创建和挂钩事件的两行代码。这两行在 GtkApplicationWindow 构造函数中。

这是我要连接的功能。

我使用正确的方法吗?当我按住鼠标中键并移动鼠标时,代码没有反应。

我设法让 glArea 小部件以这种方式对滚动做出反应。

我连接的功能:

0 投票
1 回答
122 浏览

c++11 - c++ 使用 GTKMM gui 应用程序隐藏终端

我一直在 cplusplus 论坛和 stackoverflow 上四处寻找,但我一直无法找到答案。我发现的只是 Windows 的东西或使用 IDE 为他们工作的人。

我正在使用 c++ 和 GTKMM 创建一个应用程序,没有别的,我只有一个文本编辑器和一个编译器,我用我的终端控制(我解决这个问题是因为很多人总是谈论 IDE 和其他东西)在基于 UNIX 的计算机上。

当我运行我的应用程序(./application)时,我总是看到我的终端和我的 gui 应用程序,我想隐藏终端。我将如何实现这一目标?

在此先感谢:)

0 投票
1 回答
157 浏览

c++ - gtkmm scroll_to() 用途

我想知道这个成员函数的scroll_to(TextBuffer::iterator& iter, double inside_margin = 0)参数inside_margin。API 是这样说的:

用于此功能的有效屏幕减少了一个大小为 within_margin 的边距。
...
参数
inside_margin 边距作为屏幕尺寸的 [0.0,0.5] 分数。

我只是不明白。这个参数在什么时候以及什么时候修改行为?Gtk 的每个语言绑定都包含相同的描述。我编写了一个小应用程序,因此您可以自己将传递的参数更改为参数。

您可以使用g++ -o scroll scroll.cpp -Wall -pedantic-errors `pkg-config gtkmm-3.0 --cflags --libs` .

谢谢

0 投票
1 回答
2323 浏览

gtk - Gtk小部件最小和最大宽度/高度可调整为true

我是 gtk 的新手并使用 gtkmm-3.0,我正在努力为 gtk 小部件设置最小宽度和高度。我使用了 set_size_request 方法,但是当我调整父容器的大小时,小部件仍然超过其最小/最大大小。

我的代码看起来像

那么,有没有办法限制小部件的最小/最大尺寸,并将其调整为真。

0 投票
1 回答
47 浏览

c++ - 继承的共享指针未能 get_widget

我在 C++ 中使用基类来模仿 Java 中的接口,这样我就不必为我创建的每个不同的类重复一些代码或创建对象。

基本上它包含一个 GtkBuilder 的 RefPtr,我将在整个应用程序中使用它。

但是我发现每当我从继承的类访问它时程序就会终止。

所以这个变量builder保存了指向 gtkbuilder 的指针。

builder->get_widget(widgetname, somewidgetpointer)用来检查我的程序是否运行正常。

在Point BI可以builder2->使用本地创建的指针,程序继续运行。

然后程序进入 A 点,在这里我调用了超级构造函数,在 A 点,我可以同时执行builder2->this->builder->,它们分别是传递给构造函数的指针和受保护的变量,程序继续运行。

但是,当我到达 C 点时,它只能访问继承的受保护指针,当我这样做时this->builder->get_widget,程序停止,没有任何输出或错误抛出。

我为此挠头。是不是我做错了什么?

  • 继承的类不能访问继承的保护指针指向的地址?
  • Refpointer 清理了自己并且 gtk 构建器的生命周期结束了?
  • 地址更改为从一个班级到另一个班级?

任何帮助将不胜感激。或者,如果我一直在做错事,请指出。

更新 我做了一些进一步的检查,if(builder)在 C 点返回 false 而不是 A 点,这就是导致问题的原因。但是我不应该已经将构建器变量存储在超类构造函数中吗?

Glib 文档中,它声明它允许复制。

0 投票
1 回答
213 浏览

c++ - C++ 中带有 Gtkmm 的 ProgressBar

您好,我知道如何使用 Gtkmm 创建进度条。我还知道一个按钮,例如,当我单击按钮时,progressBar 如何增加 10%。但我不知道如何实现自动增加的progressBar 我的意思是这样的:

但是我看不到progressBar何时增加...我只看到progressBAr何时已满...

谢谢您的帮助 !

0 投票
0 回答
304 浏览

c++ - 将 SDL 窗口嵌入 GTKMM 窗口

原谅一些代码。恐怕这是必要的。我在 GTKMM 窗口中嵌入了一个 SDL 窗口,如下所示:

运行它会显示 GTKMM 窗口。按下按钮时,SDL 窗口出现在其下方,红色填充纹理。

现在:如果鼠标没有在红色区域内移动,一切似乎都很好。但是如果我将鼠标移动到红色区域内,即在 SDL 窗口中,那么几秒钟后 SDL 窗口就会消失。

我看不出发生这种情况的明显原因。有人知道我在哪里嵌入窗口可能是错误的,或者可能导致这种情况的原因是什么?

0 投票
1 回答
840 浏览

c++ - 使用 GTK+/gtkmm 网格分屏

我尝试使用 gtkmm 构建一个窗口,其中有两个文本视图。文本视图应排列为垂直分屏。像那样: 分屏

后来我希望能够一次又一次地垂直和水平分割屏幕并调整分割区域的大小,就像在 emacs 中一样。

我认为一个简单的分屏应该很容易,但我已经被困在那里了。我考虑过使用 Gtk::Grid 作为布局容器,每次用户想要拆分屏幕时,我都会考虑添加一行或一列,并在新创建的区域中添加一个新的文本视图。

这是我的代码:

主文件

例子window.h

例子window.cc

构建:

这会产生这样的结果: 文本视图太小

文本视图显然很小。如果我在两个文本视图上将 hexpand 和 vexpand 设置为 true,则 text_view1 会抑制 text_view2。

0 投票
1 回答
1095 浏览

c++ - Gtkmm 构建错误

操作系统:Debian 9.1

编译器:gcc(Debian 6.3.0-18)

GTK+ 版本:3.22.11-1

Gtkmm 版本:3.22.0-1

大家好,我一直在处理 Gtkmm 3.22.0-1 构建教程中给出的简单应用程序的一个讨厌的问题。我正在使用 CMake 构建项目,但出现以下错误:

此错误是由 Gtkmm 的标准“最简单程序”引起的。

根据研究,我可以说这个错误在 Gtkmm 3 发布时很常见,因为 Gtk::Application 直到 Gtkmm 3.4(大约 2012 年)才实现。上面给出的示例适用于 GNOME 文档站点(上面的链接)中的 Gtkmm 3。

我已经安装了 Gtkmm-3-dev,pkg-config 返回所有正确的标志和目录,并且 CMakeLists.txt 包括以下内容:

'proj' 是我的项目的名称。我正在运行 Debian GNU/Linux 9.1 (stretch)。pkg-config gtkmm-3 --cflags 的输出:

我找不到任何与此问题相关的最新帖子,我的下一个选择是筛选 Gtkmm API 文档以寻找答案。我发现有一个 Gio::Application 可能以类似的方式工作,但我还没有完全探索这一点。非常感谢任何帮助,谢谢。

山姆

0 投票
1 回答
351 浏览

c++ - 单击工具按钮后更改 gtkmm 工具栏中的工具按钮图标

单击工具按钮后,我想更改工具按钮的图标。

我的问题是,当我使用 Toolbutton 方法set_icon_widget()时,当前图标消失了,但新图标没有出现。Toolbutton 仍然存在,但它不再有 Icon。

这是我的代码:

我还尝试删除当前的 ToolButton 并添加一个具有不同图标的新按钮,但是当前的 Toolbutton 被删除并且没有绘制新的:-/

有人可以帮我吗?