Tag: gtk

GTK中的启动画面

我是GTK的新手,我正在使用它在C中创建UI。我创建了一个启动画面,我可以在指定的秒后使用函数g_timeout_add(100, function_to_call, NULL);关闭它g_timeout_add(100, function_to_call, NULL); 。 Splash屏幕效果很好。 但问题是当我进一步扩展我的程序时(即)关闭启动画面后我想要另一个窗口自动显示,它不会发生。 两个窗户一起打开。 这是我的计划。 gboolean function_to_call(gpointer data){ gtk_quit_main(); return(FALSE); } int main (int argc, char *argv[]){ GtkWidget *window, *image, *another_window; gtk_init(&argc, &argv); . . . . . . . g_timeout_add (100, function_to_call, NULL); gtk_main (); /*if my program is till this, splash screen closes after 1 sec . But […]

不知道如何获取数据库?

我是sqlite和gtk的初学者。 我正在使用code :: blocks创建我的第一个项目。 我在获取数据库时遇到问题,我的代码是: #include #include #include #include “sqlite3.c” #include static int callback(void *data, int argc, char **argv, char **azColName){ int i; fprintf(stderr, “%s: “, (const char*)data); for(i=0; i1) fprintf(stdout, “Dulitcate user\n”); if(count<1) fprintf(stdout, "username and password is not correct\n"); } /* Execute SQL statement */ rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg); if( […]

默认情况下Gdk-Pixbuf(Gtk-Image?)支持哪些图像格式?

我知道Gdk-Pixbuf支持png和jpg,但我无法在互联网上的任何地方找到所有完全(或部分)支持的图像格式的确切列表 。 这是我当前项目所必需的,因为我需要检查目录中每个文件的扩展名,并确定gdk-pixbuf是否支持它。 有帮助吗?

如何获取有关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 […]

Webkit GTK:确定文档何时完成加载

StackOverflow还有其他问题,这些问题与我想知道的一样,比如Webkit GTK ::如何检测下载何时完成? ,但我想我会问一些不同的东西: 通常,在事件驱动的C Webkit-GTK API中,有许多事件可能与某些文档何时完成“加载”的想法有关。 问题是文档很稀疏,“完成加载”的想法不一定清楚,因为它可以引用很多东西。 “完成加载”是否意味着文档已完成下载 ? 它已经完成了创建DOM树? 它已经完成下载,包括所有其他资源(如CSS,JS和图像文件?) 相关信号是signal::notify::load-status , document-load-finished和resource-load-finished 。 每次加载状态更改时都会触发load-status信号,因此您需要手动调用webkit_web_view_get_load_status并每次检查状态。 即便如此,当状态最终是WEBKIT_LOAD_FINISHED ,我不确定这意味着什么 – 它是指WebKit是完成下载资源,还是已经完成了创建DOM树,或者是什么? 题: 各种“已完成”信号之间有什么区别,是否有任何信号等同于标准的Javascript DOM事件window.onload ?

gtk_events_pending()返回FALSE且事件仍处于未决状态

我正在开发一个具有开始和停止按钮的应用程序。 这些按钮会阻止UI,由于各种原因,我无法生成线程。 按下这些按钮时,我一直在显示工作屏幕,使用: while (gtk_events_pending()) gtk_main_iteration(); 这确保在开始/停止操作开始之前加载工作屏幕。 我最近升级到GTK + 3.8.6,似乎gtk_events_pending()现在已经破了。 现在,有时窗口显示,但窗口中的图像不存在。 有时候窗户甚至都没有显示出来。 有问题的function如下: gtk_widget_show(working_screen); while (gtk_events_pending()) gtk_main_iteration(); long_running_blocking_function(); 如果我这样做: int busy_wait = 0; gtk_widget_show(working_screen); while (gtk_events_pending() || busy_wait < 5) { gtk_main_iteration(); if (!gtk_events_pending()) ++busy_wait; } long_running_blocking_function(); ……工作正常 但是,我知道busy_wait需要更长时间只是时间问题,所以我想找到一个更好的答案。 有没有人遇到过这个问题? 有没有人对我如何解决它有任何想法?

如何在Gtk 2窗口上创建cairo_t

我有一个旧应用程序,现在正在编译Gtk 2,但我需要介绍使用Cairo。 我无法弄清楚如何从我的Widgets创建必要的cairo上下文(cairo_t)。 这是我到目前为止要学习的代码,从Gtk 3教程修改(* ahem * cribbed)。 问题的关键是从窗口小部件创建一个cairo表面。 就目前而言,该调用是一个草图,它不会编译,更不用说运行了。 记住,我的目标是Gtk2,而不是3,至少在这一点上。 /* Snitched from http://zetcode.com/gfx/cairo/cairobackends/ on 13 Jan 2014 */ #include #include #include int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget *darea; cairo_surface_t *surface; cairo_t *cr; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); darea = gtk_drawing_area_new(); gtk_container_add(GTK_CONTAINER(window), darea); g_signal_connect(window, “destroy”, G_CALLBACK(gtk_main_quit), NULL); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(window), 400, […]

如何在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, […]

导致Gtk中断断言

我必须调试一个严重依赖于Gtk的程序。 问题在于,由于某些原因,在使用GtkWindow对象时已经开始出现许多运行时警告。 问题是,即使Gtk抱怨严重错误,它也不会中止这些错误。 我没有代码库的更改历史记录,所以我唯一的选择似乎是涉及所有似乎可疑的gtk调用并查看问题所在。 但是,如果我可以以某种方式导致Gtk中止此错误,我可以使用gdb运行它并尝试获取回溯并找到错误的确切位置。 知道如何做到这一点? GLib-GObject-WARNING **: invalid uninstantiatable type `’ in cast to `GObject’ GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT (object)’ failed GLib-GObject-WARNING **: invalid uninstantiatable type `’ in cast to `GObject’ GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT (object)’ failed GLib-GObject-WARNING **: invalid uninstantiatable type `’ in cast to `GObject’ GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT […]

托管Flash不会加载swf资源(xml,图像等)

我试图在我的unix机器上首先使用gtk2实现一个swf阅读器。 工作,我可以渲染简单的swf文件。 现在,我正在尝试使用xml配置添加配置到我的flash文件,添加图像等。失败,将无法通过geturlnotify()。 这是我的代码: #include #include #include #include #include #include #include #include #include “npupp.h” #define FLASH_PLUGIN_SO “./libflashplayer.so” void *flash_plugin_handle; NPNetscapeFuncs browserFuncs; NPPluginFuncs pluginFuncs; GtkWidget *main_window; char* fileName = NULL; NPStream * stream; const char * uagent = “Axt/1.0”; //Default window size int WINDOW_XSIZE = 800; int WINDOW_YSIZE = 600; //Default child window position (flash player) […]