Tag: gtk

如何在C中为GTK +应用程序设置固定的窗口大小?

如何为GTK +应用程序设置固定的窗口大小? 我有: gtk_window_set_default_size(GTK_WINDOW(mainWindow), 400, 300); gtk_window_set_policy (GTK_WINDOW(mainWindow), FALSE, FALSE, FALSE); 但窗户变得非常小。 还没有小部件。

“Gtk-WARNING **:C库不支持区域设置。 使用回退’C’语言环境。“在OS X上

背景资料: 我使用的是Mac OSX Yosemite。 我使用brew install gtk+并使用export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig修复了错误。 我使用make构建我的程序但是当我尝试运行它时,我得到一个像这样的警告: (process:16182): Gtk-WARNING **: Locale not supported by C library. Using the fallback ‘C’ locale. 问题:我找不到针对此特定问题的OS X的任何解决方案。 到目前为止我学到了什么: 在这个线程中( Gtk-WARNING **:C库不支持Locale。虽然使用了几个Python模块(mayavi,spectrum) ),他们建议使用: ipython –pylab=wx而不是ipython –pylab=osx 但我不知道python如何与我的问题相关(我的程序是用C语言编写的 – 同样适用于gtk+我猜) 你可以在这个问题上找到很multithreading,如下所示:( Gtk-WARNING **:C库不支持Locale。从命令行启动应用程序时 )但它们主要是指Linux和/或Ubuntu。 大多数答案迟早会使用这样的命令: sudo dpkg-reconfigure locales 但OS X上没有dpkg 。

如何使用gtk信号将多个变量作为数据传递

我有一个小程序,其中gtk信号回调函数需要2或3个变量。 我不想制作这些全局变量(项目的整个目标是整洁而且)我不想制作一个完整的结构,所以我可以将一个小部件和一个编译的正则表达式发送给一个函数。 据我所见, g_signal_connect只允许单个数据变量。 这样做最有效的方法可能是一个指向这两个对象的void指针数组吗? 像这样的东西? void * data[2]; data[0] = widget; data[1] = compiledregex; g_signal_connect(save,”clicked”,G_CALLBACK(callbackfunction),data);

如何使用GStreamer和XOverlay在GTK +应用程序窗口中嵌入video?

我正在尝试使用GTK +和GStreamer编写一个小型媒体播放器,目前使用XOverlay接口将video嵌入主窗口的GtkDrawing区域。 该程序是使用以下命令编译的: g++ /home/phongcao/cacao.cc -o /home/phongcao/cacao `pkg-config –cflags –libs gtk+-2.0 gstreamer-0.10 gstreamer-plugins-base-0.10 gstreamer-interfaces-0.10` 问题是video显示在SEPARATED窗口中(而不是在主窗口的工具栏下): 这是该程序的源代码: #include #include #include #include GstElement *play; GtkAdjustment *progress; GtkWidget *mainwindow, *drawingarea; class TopWin { public: TopWin(); ~TopWin(); int Initialize(int argc, char *argv[]); int Execute(); static void FileChooser(GtkButton *button, GtkWindow *mainwindow); static int Play(gchar *addr); static gboolean print_position(GstElement *element); private: […]

什么是可用于gtk +开发的IDE

最近我开始学习C / gtk +编程。 并且想问一个问题:除命令行界面外,哪些IDE可用于C / gtk +开发? 谢谢。

如何创建nautilus C扩展

我正在尝试在C中创建Nautilus扩展,但只有Python示例和帮助。 几乎没有文档和字面上没有示例,但只是一些完整的扩展,这些扩展很长,很难为初学者理解。 我只需要一个简单的示例代码,在Nautilus的列表视图中创建一个新列。 如何编写和编译它。 我试过的代码是: #include typedef struct _FooExtension FooExtension; typedef struct _FooExtensionClass FooExtensionClass; struct _FooExtension { GObject parent_slot; }; struct _FooExtensionClass { GObjectClass parent_slot; }; static void foo_extension_class_init (FooExtensionClass *class); static void foo_extension_instance_init (FooExtension *img); static void foo_extension_class_init(FooExtensionClass *class) { } static void foo_extension_instance_init(FooExtension *img) { } static GType provider_types[1]; static GType foo_extension_type; static […]

在Ubuntu上编译和链接GTK 3和C项目

我相信这不是一个重复的问题,在发布此问题之前,我已经看到了所有问题/答案。 我想我在这里有不同的情况。 我使用Ubuntu 12.04并下载了GTK 2和3 。 我从GNOME的网站上复制了一个简单的GTK源代码。 但是当我在终端中使用此命令时: gcc `pkg-config –cflags –libs gtk+-3.0` hello.c -o hello 我明白了: hello.c:(.text+0x17): undefined reference to `gtk_init’ hello.c:(.text+0x23): undefined reference to `gtk_window_new’ hello.c:(.text+0x47): undefined reference to `gtk_main_quit’ hello.c:(.text+0x5b): undefined reference to `g_signal_connect_data’ hello.c:(.text+0x67): undefined reference to `gtk_widget_show’ hello.c:(.text+0x6c): undefined reference to `gtk_main’ 这是我的代码: #include int main (int argc, char *argv[]) […]

使用C中的GTK +单击按钮后,GUI变得无响应

#include #include #include #include #include void display(GtkButton * b, gpointer data) { while(1) { printf(“hurrah!”); } } void closeapp(GtkButton * b, gpointer data) { gtk_main_quit(); } int main(int argc,char *argv[]) { Widgets widg; printf(“hello”); GtkBuilder *gtkBuilder; GtkWidget *window; gtk_init(&argc,&argv); gtkBuilder = gtk_builder_new(); gtk_builder_add_from_file(gtkBuilder,”hello_world.glade”,NULL); window = GTK_WIDGET(gtk_builder_get_object(gtkBuilder,”mywindow”)); widg.e1 = GTK_ENTRY( gtk_builder_get_object(gtkBuilder, “entry1” ) ); gtk_builder_connect_signals(gtkBuilder, &widg); […]

如何在C中更新GTK + -3.0中的标签

我似乎无法使用该function gtk_label_set_text(); 这就是我写的: #include int main(int argc, char *argv[] ) { gtk_init(&argc, &argv); GtkWidget *label; //label label = gtk_label_new(“This is my label”); gtk_label_set_text(label, “I cannot use this func”); if(GTK_IS_LABEL(label)){ g_print(“IT IS A LABEL\n”); }else if (GTK_IS_WIDGET(label)){ g_print(“well at least its a Widget\n”); }else { g_print(“why is it not a label?! T_T\n”); } gtk_main(); return 0; […]

GTK +将字体更改为旋转按钮

我在GTK +中创建了一个旋转按钮,如下所示: flow_spin = gtk_spin_button_new_with_range (100,1500,25); 我想改变它的字体和大小。 我用Google搜索以找到解决方法,因为似乎旋转按钮小部件本身并没有改变它的格式,但没有任何效果。 这个: flow_spin.Child.ModifyFont(FontDescription.FromString(“Courier 16”)); 以及这个,没有用: flow_spin.Markup = “big text”; 至于此,加号和减号按钮变大,但文本区域保持相同的大小: gtk_widget_set_size_request ( flow_spin,50, 50); 我想看一个方法,类似于这个? gtk_label_set_markup (GTK_LABEL (label), “100”); 由于我是C和GTK +的初学者,任何建议都将受到赞赏。