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

c++ - Gtkmm 3/C++,用按钮而不是窗口“X”关闭程序

大家。

我正在开发一个 gtkmm 应用程序,需要一些帮助才能让“关闭”按钮工作。正如 gtkmm 文档所建议的,我为主窗口对象派生了一个类,创建了一些成员,并将 main() 函数主要用于读取 glade UI 文件、实例化表单和启动主循环。

有3个文件,命名方便解释:Declarations.h、Declarations.cpp、Program.cpp

在“Declarations.h”中,我有从 Gtk 窗口继承的类:

在“Declarations.cpp”中,我有实现:

Program.cpp 从文件中读取 UI 并启动主程序循环:

我省略了一些不相关的代码(其他对象和回调的),因为它们可以工作,这是导致我麻烦的关闭过程,尽管使用“X”关闭应用程序有效。我还考虑过尝试调用“app”的quit() 或destroy() 函数(如果它们存在),但是回调函数不知道“app”存在。你们有什么建议?

非常感谢。


** 编辑:使用继承自 GtkWindow 的 FormMain::hide() 修复此问题。我认为静态过程 Gtk::Main::hide() 会做到这一点,但编译器说 hide() 不是 Gtk::Main 的成员......好吧,一次向前迈出一步。

0 投票
2 回答
1357 浏览

c++ - Gtk::Main 和 Gtk::Application::create 有什么区别?

两者都创建 Gtk 窗口,但我无法真正理解幕后发生的事情。我尝试将信号绑定到按钮以退出窗口,但程序在使用Gtk::Application::create. 当我更改程序以遵循Gtk::Main约定时。一切正常。

Gtk::Application::create程序(无法工作):

Gtk::Main程序(作品):

0 投票
2 回答
1080 浏览

c++ - 在 Gtkmm 中打开多个不同的窗口

我才刚刚开始学习如何使用 gtkmm,我正在尝试创建一个可以同时打开多个窗口的应用程序(想想,主窗口和控制面板)。

我决定在 Glade 中创建布局,如果这与这个问题有任何关系的话。

我展示两个瓶子的方法或多或少是这样的:

而不是打开两个窗口,而是打开servsettings,然后在我关闭它时出现段错误。

现在忘记了段错误(我对此感到非常困惑,)我想我可以明白它为什么只打开servsettings- 我认为这是因为我正在运行应用程序,然后该调用仅在窗口消失时退出?

问题是,我想不出任何其他方法来做到这一点。我尝试了多线程,但决定最好先在这里询问。

在有人建议之前,这个答案对我没有帮助。这是因为他们有一个基于范围的问题。我不。

0 投票
1 回答
867 浏览

gtk3 - Distribute a glade file inside an application

Before I start, I know of the existence of GResource, however I'm using gtkmm (C++), and I'm not sure if GResource works with C++. I can't find anything along the lines Glib::GResource, and I've been looking for a while.

Anyway, I'm writing a GUI using Gtkmm, and I want to pack the .glade file which I load within the executable, so that the executable can be run without having to have a file next to it. I'm not sure that I completely understand how GResources work, and I can't find any clear instructions anywhere.

So, using Gtkmm, how would I pack a .glade file inside my executable?

update: I've found this. (Gio::Resource), which sounds hopeful, but no documentation.

0 投票
1 回答
228 浏览

c++ - Gtkmm:创建一个列出 Gtk::DrawingArea 的 Gtk::ComboBox

我正在尝试创建一个Gtk::ComboBox列表Gtk::DrawingArea小部件。我已按照本教程进行操作。到目前为止,这是一个使用 Gtkmm3 的最小工作示例(即可用于重现问题):

当我编译这个时,我得到以下错误:

这似乎表明组合框行模型中的类型必须是可复制的才能工作。我尝试在上面的代码Gtk::DrawingArea中用std::string(可复制的)替换类型,它构建良好并且运行良好。我可以看到带有文本行的组合框。

有没有解决的办法?我真的很想创建一个列出绘图区域的组合框。


编辑深入了解错误,我发现问题来自value_custom.hGlibmm 中的文件。以下两个函数似乎解决了这个问题,因为它们尝试访问模板类型的复制成员操作(在我的例子Gtk::DrawingArea中,它是不可复制的,如上所述)。

我开始觉得没有办法解决这个问题......文档甚至Glib::Value<T>提到该类型T必须实现复制分配/构造。

如果你有一个想法,我会全力以赴。

0 投票
1 回答
1938 浏览

c++ - Gtk - 如何设置盒子大小?

我的项目有以下窗口:

在此处输入图像描述

这基本上是配置主框的代码:

我想扩大viewport_boxocupe 的宽度大于窗口的一半。我怎样才能做到这一点?

0 投票
1 回答
32 浏览

gtktreeview - gtkmm 树就像 win32 中的一棵树

我尝试使用 gtkmm3 在 Windows 资源管理器中实现树。

我的问题是要添加图标,我为其添加了一列,所以它看起来很奇怪1:* 树三角形和点线在左侧 * 所有文本标签都在右侧的行上对齐。* 图标在我们之间漂浮在左侧对齐 => 更多详情请参见附图...

我的目标是让文本不在一行上对齐,而是跟随具有固定宽度的图标。

谢谢你的帮助,

0 投票
1 回答
473 浏览

c++ - How to set theme from css resource for multiple glade widgets in gtkmm3

I did all the includes and used name spaces

Loaded the glade file and tried to load a theme for widgets

Caught errors. Which it does. It gives an error when it cannnot load either of the resources.

Now I cant seem to apply the css for my widgets

I have the following css which i used to try, but not even a button changed colour

0 投票
1 回答
46 浏览

c++ - 通过基类自动化窗口编程

我为所有继承的应用程序编写了几个窗口Gtkmm::Window。在这一点上,我想自动化这个过程。现在,以下结构脱颖而出:

和构造函数:

所以问题是,每次必须对新窗口进行编程时,所有这些都必须手动完成(即复制/粘贴),因为registerLayouts()registerWidgets()在构造时被调用,因此不能virtual

理想情况下,我将有一个可以继承的基类,它可以让我选择覆盖这两个方法并处理其余部分:它将在适当的位置调用这两个方法。

问题是,我还没有找到这个合适的位置。我看过不同的信号处理程序,但似乎没有。

你知道我该怎么做吗?

MFC 具有CDialog::OnInitDialog()执行类似于我需要的功能的功能。

0 投票
0 回答
269 浏览

c++ - Gtk::TextBuffer 中的标签可以用 CSS 设置样式吗

使用 GTK-3 到 Gtkmm 3.22,我将构建一个自定义小部件,它使用 Gtk::TextView 来显示各种条目或消息。根据GTKmm-Tutorial,应使用 Gtk::TextBuffer::Tag 对文本的部分进行不同的样式设置。但是,在 API 文档中,我发现只有大量的函数可以直接设置样式属性,这似乎还不够。我只想添加一些 CSS 规则(应用程序有一个自定义 CSS 样式表)以使文本的这些特定部分具有统一的外观,例如将它们链接到某些 CSS 类或类似的。

实现这一目标的正确方法是什么?我是否忽略了一些明显的事情?

PS:我知道教程中处理自定义样式属性的部分,以及GTK 手册中的 CSS 概述——因此,作为后备,可能可以定义一些自定义属性,然后获取值以编程方式并将它们应用于标签以标记文本。只是这感觉不是正确的方法,因为它显式地执行局部调整而不是链接到规则。我在这里想念什么?