草庐IT

c++ - gtkmm 的 g_signal_emit 或 g_signal_emit_by_name 版本是什么?

我在我的程序后台运行一个超时函数,我试图从Gtk::Button发出一个删除事件信号,这是我的构造函数中的代码片段://Glib::SignalProxy1m_deleteSlot;//m_deleteSlot=signal_delete_event().connect(sigc::mem_fun(*this,&AlarmUI::my_delete_event));m_timeout_connection=Glib::signal_timeout().connect_seconds(sigc::mem_fun(*this,&AlarmUI::cb_my_tick),1);`现在,方法:

c++ - GTK+ : failure after several steps 中的重复窗口失效

我有一个计时器,它每秒调用一个方法(perform_step)。perform_step进行一些计算并使我的窗口无效。这最初运行良好,但经过少量迭代后,不会触发窗口的on_expose_event。通过调试我发现调用了窗口失效方法,但是没有进入事件处理程序。有什么可能导致这种情况的想法吗?以下是我发现的一些可能有用的东西:perform_step中的计算时间越短,迭代次数越少,事情就会崩溃。每次经过相同次数的迭代后,事情就会崩溃。将鼠标移到窗口上可以防止事情崩溃。如果我不断地将鼠标移到窗口上,事情就会永远运行下去。它似乎“重置”了计数器。如果在10次迭代后出现故障,并且在第9次迭代时我

c++ - 通过代码触发回调时抑制 GTK 信号

要点:handler_block在个案基础上很有用,但我宁愿在程序开始时调用一些东西来抑制对gtk_entry_set_text的所有调用的信号>和gtk_toggle_button_set_active。有办法吗?背景信息:我的程序用于通过具有以下属性的角色创建器对话框制作实体:名称-通过GTKComboBoxes从预先确定的列表中选择动画-也是一个GTKComboBox组-对实体进行分类的六个单选按钮之一可以添加实体-从一个空白的添加对话框开始,填写所有字段,然后提交。实体可以通过编辑对话框进行编辑,上面列出的所有字段最初都用实体的当前属性填充。编辑是即时的(“编辑”对话框上没有“

c++ - GTK+ 对多个小部件使用一个处理程序

我有一个回调函数如下:voidhandle(GtkWidget*widget,gpointerdata){...}因为这个窗口有很多小部件,所以我想使用这个回调作为唯一的处理程序,以避免编写一堆小函数。最初我想使用一个存储在环绕窗口的UI类中的枚举,然后我将按如下方式对其进行测试:UIClass::Signalsignal=(UIClass::Signal)data;switch(signal){caseUIClass::main_button://handlecaseUIClass::check_box:...}但是编译器拒绝在该片段的第一行进行强制转换。有没有标准的方法来完成这个?

c++ - 在 gtk 文本字段中交换背景颜色 (gtkmm C++)

在我的GUI(C++、GTKMM3)中,我有一个提供一些状态信息的文本字段。我想根据状态更改此字段的背景颜色(以及我可以轻松完成的文本)。关于如何使用GTKMM3.X执行此操作的内容并不多。我知道我需要使用CssProvider类,并且找到了一些关于如何将其加载到程序中的示例。但示例显示了如何一次性设置属性。但我还没有弄清楚的是如何使用CSS属性根据状态(不是“悬停”或类似状态中的状态)更改背景颜色。我希望能够随时将背景从红色切换为绿色)。如果CSS是根据小部件的名称或小部件的类型编写的,您如何处理小部件的状态变化以更改其属性?如果有人有任何线索或知道任何示例,我真的可以提供一些帮助。

c++ - 开罗的 Alpha 透明度

我在使用GTK和Cairo显示alpha透明度时遇到问题。我尝试显示此图像1如果我对自己进行alpha混合,一切正常。如果我将alpha值直接传递给Cairo,阴影似乎渲染良好,但发光效果已损坏。这是Cairo1.14.2中的错误,还是我遗漏了什么?//NeeddeprecatedAPItogetbackgroundcolorGdkColorcolor=gtk_widget_get_style(widget)->bg[GTK_STATE_NORMAL];Pixelcolor_blend{uint8_t(255*color.red/65535.0f),uint8_t(255*color.

c++ - 如何让 GTK includes 为 C++ 工作?

我正在尝试开始学习在Ubuntu17.0464位上使用C++和EclipseCDTIDE开发GTK+应用程序,并且在尝试包含GTK库时遇到了问题。我想知道为什么包含不起作用。我安装了gtk2.0(DEV),并且最近安装了gtk3.0以查看是否有帮助但无济于事。以下是我的代码:#include#includeintmain(){return0;}我正在使用以下编译器标志:-I/usr/include/gtk-3.0-I/usr/include/glib-2.0-O0-g3-Wall-c-fmessage-length=0我的编译器出现以下错误:g++-I/usr/include/gtk-

c++ - 需要帮助使用 GTK2 为 wxWidgets (wxGTK) 编写 "backgroundless"小部件

我的问题与GTK2和wxWidgets(实际上是wxGTK)有关。在wxGTK中,所有控件默认都是灰色背景,并且无法移除。我有一个带有自定义子控件的纹理面板,我的每个控件都有一个我无法删除的难看的灰色边框。我只能设置一些背景颜色并使面板的颜色相同。所以我需要wxGTK中的一种“无背景”控件。在Linux之前,我有多年的MSWindows经验。据我所知,在MSWindows中,每个窗口控件(即小部件)都会收到一个WM_ERASEBKGND消息(事件),然后是WM_PAINT消息。背景是在WM_ERASEBKGND事件处理程序中绘制的,因此您可以轻松地保持父控件的背景不变,并通过简单地重写

javascript - 使用 GTK+ Webkit Webview(和 Qt WebKit 桥)从 JavaScript/HTML 调用 C++

我目前正在评估从HTML页面中嵌入的JavaScript代码调用C++函数的不同方法/解决方案。该应用程序必须在UbuntuServer12.04LTS上运行。我不是基于Linux的开发专家。这是我第一次尝试在JavaScript和C++代码之间进行交互。C++代码基本上驻留在.so文件(动态库)中,这些文件将提供访问特定硬件和文件系统的接口(interface)方法。GUI需要在HTML中,我正在寻找可以从HTML调用C++的不同解决方案。我搜索并最终决定尝试两种方法,都使用WebKit引擎。方法一:使用Qt5.0.2WebkitBridge——WebView控件GUI框架将基于Qt

c++ - 从 gtk treeview 的选定行获取数据 - gtkmm,c++

我有一个GTK应用程序,它有一个带有treeview和一个按钮的窗口。单击按钮时,我需要从treeview中所选行的第一列(也是唯一一列)获取数据。这是列的类:classModelColumns:publicGtk::TreeModel::ColumnRecord{public:ModelColumns(){add(m_port_name);}Gtk::TreeModelColumnm_port_name;};这就像这里的例子,但只有一列:http://www.lugod.org/presentations/gtkmm/treeview.html这是目前的按钮点击信号处理程序:tvPo