Tag: gtk3

如何获取有关OpenGL上下文的尽可能多的信息

您好世界,感谢您抽出宝贵时间阅读本文! 我正在用GTK2 / 3 + OpenGL编写一个程序,我运行了两个版本的程序: (a)GTK + 2 + GtkGlext扩展 – >效果很好! (b)GTK + 3 + LibX11 – >工作正常! 一切看起来都很好,除了(a)中的渲染明显快于(b)中的渲染……而且我不知道为什么。 以下是用于创建OpenGL上下文的代码部分的一些示例: (一个) // To create the context, and the associated GtkWidget GdkGLConfig * glconfig = gdk_gl_config_new_by_mode (GDK_GL_MODE_RGBA | GDK_GL_MODE_DEPTH | GDK_GL_MODE_DOUBLE); GtkWidget * drawing_area = gtk_drawing_area_new (); gtk_widget_set_gl_capability (drawing_area, glconfig, NULL, TRUE, GDK_GL_RGBA_TYPE); g_signal_connect […]

如何在GtkTreeView中交替亮/暗行?

我已阅读,并尝试了现有的解决方案,我无法让他们工作。 我希望有人可以指出我做错了什么,或者告诉我为什么这些解决方案不再有效。 https://thegnomejournal.wordpress.com/2011/03/15/styling-gtk-with-css/(5岁) 使用gtk (2年) 列出文件的小部件 如何更改pygtk中gtk.TreeView的交替背景行颜色? (4岁) https://askubuntu.com/questions/285559/how-to-reenable-alternating-grey-lines-in-nautilus-files-3-6-list-view(3岁) 我想确定这些解决方案不起作用,所以我制作了这样的样式表: GtkTreeView row { color: #FFFFFF; background-color: #FF0000; } GtkTreeView row:nth-child(even) { background-color: #FF00FF; } GtkTreeView row:nth-child(odd) { background-color: #00FFFF; } 用鲜艳的颜色,只是为了使行颜色的差异真的很明显。 然后,我做了一个小应用程序来加载树视图: #include int main(int argc, char *argv[]) { int i; gtk_init(&argc,&argv); //GtkBuilder* b = gtk_builder_new_from_file(“derp.glade.xml”); GtkWidget* top = gtk_window_new(GTK_WINDOW_TOPLEVEL); GtkListStore* items = gtk_list_store_new(2, G_TYPE_STRING, […]

如何用CSS设置GtkLabel样式?

我正在尝试使用CSS来设置GtkLabel的样式。 我想更改标签的颜色和字体大小。 这是我的C代码: #include int main(int argc, char *argv[]) { gtk_init(&argc, &argv); GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); GtkWidget *label = gtk_label_new(“Label”); GtkCssProvider *cssProvider = gtk_css_provider_new(); gtk_css_provider_load_from_path(cssProvider, “theme.css”, NULL); gtk_style_context_add_provider(gtk_widget_get_style_context(window), GTK_STYLE_PROVIDER(cssProvider), GTK_STYLE_PROVIDER_PRIORITY_USER); g_signal_connect(window, “destroy”, G_CALLBACK(gtk_main_quit), NULL); gtk_container_add(GTK_CONTAINER(window), label); gtk_widget_show_all(window); gtk_main(); } 这是我在theme.css CSS,目前这应该只改变字体颜色: GtkLabel { color: green; } 我编译: gcc `pkg-config gtk+-3.0 –cflags` test.c -o test `pkg-config […]

在Visual Studio 2012中编译GTK3程序

随着Windows的Gtk 3发布,我想到升级我的Gtk 2 C应用程序以利用新的GtkGrid小部件。 该程序在linux下编译或在Windows下使用MinGW(带代码块),但是当我在Visual Studio 2012下尝试相同的文件集时,给我50个左右的编译错误,说gutils.h,gtrashstack.h和gstring.h有一堆语法错误(假设我只使用一个基本程序,只有一个gtk_init和gtk_main)。 Visual Studio非常好地处理了gtk2。 为什么拒绝使用gtk3进行编译? 有什么办法让它与它一起工作? 尽管我喜欢Code :: Blocks,外部powershell迫使我保持​​我的代码VS2012兼容…… 编辑:我创建了一个存储库,其中包含一个简单的gtk3程序和VS2012和Codeblocks的预配置项目文件。 https://github.com/The-J-Person/Example-gtk3-vs2012-project 编辑2:这是VS2012给出的编译错误列表: http ://pastebin.com/ThZpwVmg

glDrawArrays不工作。 在GTK3中使用GtkGLArea

我正在尝试使用GtkGLArea小部件。 似乎没有类似问题的答案与这种情况有关。 glClear()可以设置背景颜色很好但实际上绘制三角形数组不是。 根据本教程,下面的代码应该可行。 编辑: 21/5/2015:添加着色器,仍然得到相同的结果。 下面的新代码 这是main.c和SConstruct因此您可以使用scons构建: 已解决:标题SOLUTION:main.c下的工作代码可以使用相同的SConstruct文件构建示例 main.c中 #include #include #include #include #include #include #include #include #include #define IGNORE_VAR(type, identifier) \ { \ type IGNORED_VARIABLE_abcd = identifier; \ identifier = IGNORED_VARIABLE_abcd; \ } const GLchar *vert_src =”\n” \ “#version 330 \n” \ ” \n” \ “layout(location = 0) in vec2 in_position; \n” \ […]

GTK3和multithreading,取代已弃用的function

我想在我的使用线程的应用程序中替换已弃用的函数gdk_threads_enter()/leave() 。 现在的应用程序,工作完美( 虽然我不确定这是否是正确的方法 )。 我的主循环,运行gtk_main和信号处理程序。 当我收到一个开始按钮时,我启动一个在主要背景中运行的线程。 如何从该线程更新GUI。 我知道根据GTK3和GDK3的文档,他们说通过使用避免它 gdk_threads_add_idle() 要么 gdk_threads_add_timeout() 但是,如果我希望仅在单击开始时才进行更新,我该怎么做呢? 有什么例子吗? 我不是问如何使用gdk_threads_add_idle() ,我问的是如何在单击start后没有线程的情况下在main中运行worker函数。 单击按钮 – >在先前的线程中启动工作器function – >在GUI窗口中更新大量的GUI元素。

为什么我的GTK +信号回调会出现分段错误?

我正在尝试测量GTK标签的大小: #include static void map_event(GtkWidget *window, gpointer lab) { g_print( “In the callback..\n” ); GtkWidget *label = GTK_WIDGET(lab); g_print( “Everything is ok..\n” ); } static void activate (GtkApplication* app, gpointer user_data) { GtkWidget *window = gtk_application_window_new (app); gtk_window_set_title (GTK_WINDOW (window), “Window1”); gtk_window_set_default_size (GTK_WINDOW (window), 200, 280); GtkWidget *grid = gtk_grid_new (); gtk_container_add (GTK_CONTAINER (window), grid); […]

GLib-GIO-ERROR **:系统上没有安装GSettings模式

不幸的是,我使用的是Windows(Windows7 x64)。 使用Code :: Blocks和GTK + 3.6.4中的MinGW编译器。 我从glib手动编译了所有模式。 当我使用文件选择器对话框/颜色选择器 – 没关系时,我收到以下错误: GLib-GIO-ERROR**: No GSettings schemas are installed on the system ,程序终止。 我该怎么做才能解决这个问题?