Tag: gtk

使用GtkBuilder自动连接信号,但在GTKmm上

在C中 ,我可以使用以下代码自动连接信号: gtk_builder_connect_signals (builder, NULL) 如何使用GTKmm在C ++中执行此操作 ?

将主参数传递给gui库的init函数

当涉及Qt和GTK +等库中的库初始化时,必须将主参数传递给初始化库的函数。 为什么? 图书馆用它们做什么?

我的线程图像生成应用程序如何将其数据传递给gui?

Mandelbrot生成器的慢速多精度实现。 螺纹,使用POSIX线程。 Gtk GUI。 我有点失落。 这是我编写线程程序的第一次尝试。 我实际上并没有尝试转换它的单线程版本,只是试图实现基本框架。 到目前为止它的工作原理的简要说明: Main创建了watch_render_start线程,该线程等待pthread_cond_signal,当点击“render”按钮时,由GUI回调发出信号。 watch_render_start检查图像是否已经渲染,检查退出等,但如果一切顺利,则会创建render_create_threads线程。 然后render_create_threads线程创建渲染线程,然后使用pthread_join等待它们完成(并使用get_time_of_day进行一些计时 – 在线程中是不是很糟糕?)。 渲染线程的入口点(富有想象力)称为渲染,循环,而next_line计算函数返回TRUE,以便处理更多行。 在这个while循环中,有检查停止或退出。 next_line func在递增变量之前获取要计算的行,以指示下一个要计算的线程的下一行。 如果要处理的线超出图像高度,则返回。 如果没有,则计算该行的内容。 然后递增lines_done并根据图像的高度进行检查,如果> =则返回0,如果<,则返回1。 这里有470多行代码,我相信你会很开心。 #include #include #include #include #include #include #include /* build with: gcc threaded_app.c -o threaded_app -Wall -pedantic -std=gnu99 -lgmp -lmpfr -pthread -D_REENTRANT -ggdb `pkg-config –cflags gtk+-2.0` `pkg-config –libs gtk+-2.0` */ typedef struct { struct […]

从文本控件中检索字符位置的客户区坐标

我需要编写一个函数,它可以从文本编辑控件中的字符位置获取屏幕坐标。 我正在使用wxWidgets框架提供的文本编辑控件。 wxTextCtrl没有公开任何可以提供此信息的API函数。 在Windows上,我可以通过将EM_POSFROMCHAR发送到文本控件来获取信息。 我想知道如何在Linux等其他环境中做同样的事情。 目前,这只需要在运行在X Window系统之上的桌面环境(如GNOME , KDE和XFCE)上完成 。 有办法吗? 在这些DE上,谁像文本编辑那样绘制控件? 它是由X管理并由特定DE设计的吗? 任何帮助,将不胜感激。

Gtk Ckipboard:使用自定义URI方案粘贴源文件

我正在尝试编写一个将一些文件放在Gtk剪贴板上的GTK / C应用程序,因此Nautilus的用户可以粘贴它们。 在stackoverflow上有一个很好的Gtk剪贴板本地文件复制和粘贴示例 。 不幸的是,我需要粘贴的文件不在本地磁盘上,并且无法通过标准的GVFS URI方案访问,例如file://只有我的应用程序可以在设置TCP连接,validation和打开额外通道后访问这些源文件。 如何在Gtk剪贴板上使用这些应用程序管理的远程文件来粘贴Nautilus? 在未来,对于Dolphin / KDE呢? 在谷歌搜索后,我得出了以下想法:我需要开发一个新的gvfs URI方案处理程序(即:my-app://)。 但是很难找到示例或文档。 这是唯一的方法吗? 并且,我的应用程序可以将自己注册为临时GVFS URI方案处理程序而无需更改任何外部系统配置文件吗? 怎么样 ?

在GtkScrolledWindow或GtkEventBox上绘画

使用GTK,我试图在GtkScrolledWindow包含的GtkTextView的角落覆盖一个“更多”提示(但它也可以是任何绘图对象)。 我在处理程序中绘制文本视图的expose信号的提示。 它可以工作,但是当我滚动窗口时,我得到了工件:提示随文本视图的内容一起移动而不会被删除。 为了消除伪影,我在每次滚动后触发重绘。 这大部分都有效,但是当你快速滚动时,你仍然可以看到提示上下跳动。 有什么办法可以防止这种情况吗? 如果提示只是“浮动”在文本视图的顶部,那将是很好的。 我尝试将滚动窗口封闭在GtkEventBox并在其上绘制提示,但这也不起作用; 滚动条和文本视图总是在提示上绘制,即使您将事件框的窗口设置为在其子窗口前面也是如此。 UPDATE 如果我使用g_signal_connect_after()连接GtkEventBox的公开回调,那么在GtkScrolledWindow和GtkTextView的公开回调之后调用它。 尽管文本视图仍然覆盖了事件框。 我认为这是因为滚动是异步发生的。 有人知道如何防止我的图画被覆盖吗? 另一个更新 所以我想我真正需要的是在异步滚动完成时连接的信号。 如果我能找到它的时间,那么我可以在GtkEventBox上触发另一个公开事件。 滚动完成后如何收到通知?

GTK + gcc:链接时对所有gtk函数的未定义引用

我正在用GTK +编写一个接口,用于使用XMPP协议进行聊天。 当我编译它时,我的代码运行正常: gcc login_gtk.c `pkg-config –cflags –libs gtk+-3.0` 但是因为我将我的文件添加到我的项目中,并且我正在使用Makefile,所以它不再编译。 我想问题来自我的Makefile。 编译器错误: gcc -o -W -Wall -Wextra -Werror -g -I./Includes/. -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -c -o Sources/login_gtk.o Sources/login_gtk.c gcc -o -W -Wall -Wextra -Werror -g […]

GTK C – 如何编辑关闭窗口按钮的function(右上角的X按钮)?

我想知道如何编辑使用GTK库创建的窗口右上角的“关闭”按钮(或最小化/最大化按钮)。 我试图删除用户破坏此窗口的能力,只允许顶级窗口销毁它,所以我想让右上角的X按钮(关闭窗口)只隐藏窗口而不是关闭窗口 – 仍允许它在后台运行。 我对gtk有点新,我在创建窗口和添加按钮方面经历了一些初学者教程,但没有什么非常先进的。 我假设这可以通过在窗口上使用gtk_window_hide调用来代替X按钮的当前function来完成,但我不知道在哪里使用它,因为默认按钮的function似乎不容易访问。

我如何一起使用GTK和过剩?

我知道为了编写GTK应用程序,我编写了一堆代码来描述主窗口中的内容,然后我调用: gtk_main(); 此后的任何代码语句都不会被执行。 现在让我们假设我喜欢我的GTK应用程序显示我用glut编写的内容,它本身包含一堆关于需要设置图形的语句等等,然后以语句结束: glutMainLoop(); 之后的任何事情都没有执行。 所以我的问题是这两个语句中的任何一个都阻止我调用另一个。 有没有办法在GTK小部件中执行过剩主循环? 有没有办法编写一个代码,可以某种方式同时调用GTK主循环和glut主循环(但从主程序调用并在单独的X窗​​口中呈现,而不是在小部件内)? 我有一种感觉,这可以通过“线程”来完成……

无法连接Glade GTK + 3中的信号和信号处理程序

嗨我正在使用Ubuntu 14.04 LTS上的GTK + 3项目。 我正在尝试使用Glade,但当我尝试将切换按钮的“切换”信号连接到一个名为kaczka的函数时,编译后我在我的控制台中得到了这个: (Gra_w_Statki:11072): Gtk-Warning**:Could not find signal handler ‘kaczka. Did you compile with -rdynamic? (Gra_w_Statki:11072): Gtk-Warning**:Could not find signal handler ‘kaczka. Did you compile with -rdynamic? 窗口和按钮呈现自己并正常工作,除了切换按钮不会改变任何东西。 我究竟做错了什么 ? 这就是我试图连接切换按钮和function的方法点击! 我的链接器设置是: pkg-config –libs gtk+-3.0 我的编译器设置是: pkg-config –cflags gtk+-3.0 我正在使用Code :: Blocks 13.12和GCC编译器。 这是我的代码: #include #include void kaczka (GtkToggleButton *tbutton, gpointer data) […]