Tag: gtk

在ubuntu 12.04中链接gtk2应用程序中的错误

我有一个C GUI应用程序(在GTK + 2.0中 ),我用来链接如下: gcc -O2 -std=gnu99 -pipe -Wall -lm `pkg-congig gtk+-2.0 `pkg-config –libs gtk+-2.0` -o exec ao bo co 最终转换成: gcc -O2 -std=gnu99 -pipe -Wall -lm -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64 linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0 […]

不能在Mac OSX上使用gtk3 FileChooser?

我将使用gtk + 3.0构建的程序从linux迁移到Mac OS X(10.6.8)。 我编译程序没有错误。 但是,在我启动程序并选择打开文件后,终端显示以下消息。 GLib-GIO-CRITICAL **: Settings schema ‘org.gtk.Settings.FileChooser’ is not installed 然后,程序以Segmentation fault结束。 怎么解决? 谢谢你的帮助。

在glib的“g_print()”中强制UTF-8编码

简短的问题:有没有办法强制glib的g_print()使用UTF-8编码? 我遇到的问题是g_print() 似乎根据g_get_charset()的返回值进行字符集转换 。 不幸的是,文档提到了 在Windows上,此函数返回的字符集是所谓的系统默认ANSI代码页。 但是现在可以使用现代控制台:默认情况下,MSYS控制台通常支持(和使用)UTF-8,甚至可以将默认的Windows控制台设置为使用UTF-8编码。 现在看来Windows终于赶上了,glib将我限制在一个255个字符的代码页之后??? 我只是将我的代码切换到普通的printf但不幸的是g_print在glib和gtk库中的许多位置调用,以及他们的C ++绑定glibmm和gtkmm,我显然没有简单的可能性来改变那些缺少修补和自己编译glib,所以我真的希望有一个解决方案。 注意:刚刚在g_print()的定义中看到了调用local_glib_print_func()的部分。 Aynbody知道这是什么,如果我可以为我的目的利用它?

在同一程序中组合SDL窗口和GTK +窗口

我正在创建和SDL程序,其中一些function打开GTK +窗口。 主窗口是SDL窗口,GTK +窗口主要是对话框。 main()函数正常打开SDL窗口,并且具有SDL事件的while循环,通常在SDL中。 一些SDL事件调用打开GTK +窗口的函数,如GTK +窗口通常是打开的,并且具有与main()在GTK +程序中相同的结构。 所有窗口都应该打开,问题在于关闭GTK +窗口。 当我关闭GTK +窗口时,它会一直打开,直到我关闭主SDL窗口。 当我关闭GTK +窗口时,唯一发生的事情是它在关闭后不再做任何事情,所以例如如果我最小化它然后再次最大化它,它就会变空。 当我关闭它时,SDL窗口也会响应事件,就像GTK +窗口不存在一样。 所以一切都像GTK +窗口关闭一样,只是它仍然可见。 我有一个g_signal_connect(G_OBJECT(window),”delete-event”,G_CALLBACK(gtk_main_quit),NULL); 打开GTK +窗口的每个函数中的行,这不是问题所在。 当我点击GTK +窗口中的关闭按钮时,如何关闭GTK +窗口但不关闭SDL窗口? 这是代码的结构(GTK窗口是这里的About对话框): #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef WINDOWS #include #endif void openGtkWindow(){ GtkWidget *aboutWindow = gtk_about_dialog_new(); //Write things in the […]

在gtk c中的对话框中打印输入框的值

我最近用c语言的gtk +工作了。 我试图在对话框中的两个回调之间进行通信,而不是在主窗口中进行通信 ( 就像这里一样 )。 但是,与链接中的解决方案不同,程序会崩溃(当我尝试使用从参数中获取的小部件时,在第二次回调中)。 这是我的代码: #include #include #include static void print_text (GtkWidget *widget, gpointer data) { GtkEntry* entry = data; printf(“%s”, gtk_entry_get_text(entry)); } static void open_dialog (GtkWidget *widget, gpointer data) { GtkWidget *window = data; GtkWidget *dialog; GtkWidget *content_area; GtkWidget *grid; GtkWidget *label; GtkWidget *button; static GtkEntry *textbox; dialog = gtk_dialog_new_with_buttons (“Get […]

GTK中的免费对象/小部件?

我的GTK应用程序中有一个打包盒,我每隔一段时间就用一个全新的条目取代它(至少现在因为我很着急)。 由于我用新实例替换它,我是否需要明确地从内存中释放旧的包装盒内容或者是否在GTK中有一些垃圾收集? 如果我确实需要明确需要释放该对象,是否有一个命令将递归地转到该树中的所有对象(就像它会清除我的主包装盒内的盒子容器中的按钮)? 那么,连接到对象的信号和处理程序呢? 我正在使用C / GTK-2.0(gcc v4.4.3和GTK 2.20.0)。

如何隐藏我的Windows Gtk应用程序的命令提示符?

我正在使用MinGW工具链在Windows中编译Gtk应用程序,但是当我运行我的应用程序时,会出现一个命令提示符窗口。 如何让这个提示消失?

c – 将多个参数传递给GTK中的回调函数

所以,我正在努力实现以下目标:用户应该能够填写多个gtk_entry并在此之后单击Apply ,在单击时我希望Apply按钮发出信号,如下所示: g_signal_connect(G_OBJECT(Apply),“clicked”,G_CALLBACK(apply_clicked),#a argument#); 之后,在apply_clicked() ,我希望保存输入的文本。 我的问题是:如何将那些gtk_entry传递给我的回调函数apply_clicked ? 如果它只是一个我只是将其设置为# an argument # ,但我应该怎么做多个条目?

创建并发出gtk信号

我正在尝试创建并发出GTK信号: g_signal_new(“child-finished”, G_TYPE_OBJECT, G_SIGNAL_RUN_FIRST, 0, NULL, NULL, NULL, // *** I think this is where I need to change it G_TYPE_NONE, 0); g_signal_connect(G_OBJECT(myWindow), “child-finished”, G_CALLBACK(MyCallback), NULL); 这是我发出信号的代码: gtk_signal_emit_by_name(referenceToMyWindow, “child-finished”); 这是我处理信号的代码: void MyCallback(GtkWidget *w, GdkEvent *e) { // handler code here } 当我运行代码时,我收到以下错误: GLib-GObject-CRITICAL **:g _closure_ invoke:断言`closure-> marshal || closure-> meta_marshal’失败了 我知道它与将marshaller传递给g_signal_new函数有关,但我不知道编组器是什么,我无法理解文档 ,而且在线的例子很少。 如何声明和连接我自己的信号?

将换行符插入GtkTextView小部件(GTK +编程)

我有一个按钮,当点击时复制并将GtkEntry小部件中的文本附加到GtkTextView小部件中。 (此代码是在GTK +开发基础的“文本视图小部件”一章中找到的示例的修改版本。) 我想在复制和追加文本之前插入一个换行符,这样每行文本都会在GtkTextView小部件中自行排列。 我该怎么办? 我是GTK +的新手。 这是代码示例: #include typedef struct { GtkWidget *entry, *textview; } Widgets; static void insert_text (GtkButton*, Widgets*); int main (int argc, char *argv[]) { GtkWidget *window, *scrolled_win, *hbox, *vbox, *insert; Widgets *w = g_slice_new (Widgets); gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), “Text Iterators”); gtk_container_set_border_width (GTK_CONTAINER (window), […]