标签: gtk

GTK,GTK +和GTK2之间有什么关系?

我对GTK术语感到困惑.根据维基百科,似乎有GTK +的绑定称为GTK(GtkAda)和GTK2(gtk2hs,Gtk2-Perl).

有人可以为我清除这个吗?

gtk nomenclature

35
推荐指数
3
解决办法
9571
查看次数

是否有python的gi.repository文档?

我正在寻找gi.repository模块文档,我在互联网上找不到任何东西.我发现的只是C的新Gtk3库的文档,或旧的PyGtk 2.0参考手册

我正在寻找像PyGtk 2.0参考手册,但对于Gtk3.

Python有类似的东西吗?(我不是在寻找dir(Gtk)help(Gtk)在Python控制台中.)

python gtk pygtk gtk3

35
推荐指数
3
解决办法
2万
查看次数

如何在Ubuntu上安装gtk开发依赖项?

我从代码GTK教程base.c.

我正在使用Ubuntu,当我编译使用时

$ gcc base.c -o base `pkg-config --cflags --libs gtk+-2.0` 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc' to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
base.c:1:20: fatal error: gtk/gtk.h: No such file or directory compilation terminated.
Run Code Online (Sandbox Code Playgroud)

作为Linux的新手,有人可以帮助我设置环境,以便我可以成功编译/运行程序吗?

c gtk ubuntu

33
推荐指数
1
解决办法
5万
查看次数

GLib-CRITICAL**:尝试删除时未找到源ID XXX

我以树店为模型进行了树视图.窗口按预期显示,但当我单击"+"展开项目时,我收到以下消息:

GLib-CRITICAL **: Source ID 221 was not found when attempting to remove it
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

#include <gtk/gtk.h>

/* compile with: */
/* gcc main.c -o boxy `pkg-config --cflags --libs gtk+-2.0` */

typedef struct {
GtkWidget *toplevel;
GtkWidget *treeview;
} Widgets;

enum { ITEM_PARENT, ITEM_CHILD };

typedef struct {
gint tipo;
gint id;
gchar *nombre;
gint cantidad;
} Lista;

void addColumn (GtkTreeView *tv, const gchar* title, gint pos) {
GtkCellRenderer *tmp;
tmp = gtk_cell_renderer_text_new ();
g_object_set (tmp, "editable", TRUE, "editable-set", TRUE, …
Run Code Online (Sandbox Code Playgroud)

c gtk gtk2 gtktreeview

33
推荐指数
1
解决办法
7万
查看次数

MessageBox的GTK实现

我一直在尝试MessageBox使用GTK 实现Win32 .该应用程序使用SDL/OpenGL,因此这不是一个GTK应用程序.

gtk_initMessageBox函数内处理initialisation()类的东西,如下所示:

int MessageBox(HWND hwnd, const char* text, const char* caption, UINT type)
{
    GtkWidget *window = NULL;
    GtkWidget *dialog = NULL;

    gtk_init(&gtkArgc, &gtkArgv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(delete_event), NULL);
    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy), NULL);
    // gcallback calls gtk_main_quit()
    gtk_init_add((GtkFunction)gcallback, NULL);

    if (type & MB_YESNO) {
        dialog = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, text);
    } else {
        dialog = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, text);
    }

    gtk_window_set_title(GTK_WINDOW(dialog), caption);
    gint result = gtk_dialog_run(GTK_DIALOG(dialog));

    gtk_main();

    gtk_widget_destroy(dialog); …
Run Code Online (Sandbox Code Playgroud)

c linux x11 gtk

32
推荐指数
3
解决办法
8716
查看次数

在GTK/Linux中,获得DPI比例因子的正确方法是什么?

上下文:编写一个应该是跨平台的绘图程序.所以我有多个前端负责提供对Cairo上下文的后端类访问,基本事件处理和窗口小部件大小信息.我最近决定将当前的UI比例(用于高DPI显示)添加到最后一位,主要是因为我想将图形切换为渲染到图块缓存,所以我需要知道显示器可以支持的最高级别的细节.

在我的小跨平台世界中,我希望后端类的前端适配器我正在谈论正确配置Cairo上下文以便在将其交给我之前在虚拟化像素中工作.我只需要比例来限制我在瓷砖上使用的缩放比例.

在AppKit上,这很容易:要求NSView将1个虚拟像素的NSSize缩放为"后备存储坐标",并将其交给后端类.Apple也非常聪明,可以提供预先扩展的CoreGraphics上下文,因此我所要做的就是请求翻转坐标并将CGContext推送到Cairo.

在GTK上我有点困惑.似乎有太多方法可以做到这一点.GtkWidget有一个" get scale factor "调用,gint gtk_widget_get_scale_factor (GtkWidget *widget)它返回一个整数值.这似乎有点过于严格,因为你无法处理这种情况之间的屏幕.即我所关注的28"3840x2160显示器应该是1.5倍显示器,但在GTK下,一切都会太小或太大.

Ubuntu也投入了自己的扳手,因为它有自己的DPI比例因子,似乎与其他一切不同.只有少数应用程序似乎真正支持它.我把它调到了1.5; Firefox和Brackets没有扩展,Nautilus和终端确实扩展,Empathy做了这个奇怪的事情,除了会话文本之外的所有内容.所以它显然不是全系统的,甚至不是内置于GTK ...... blarrgh.

另外,X11有自己获取DPI信息的方式,我听说这是非常不准确的,无论如何都不值得考虑,因为Mir和Wayland无论如何都要替换它.

但是,我无法找到有关这个超级特殊的Unity API的任何信息,以获取用户指定的UI比例.所以我现在要抓住GTK自己的整数刻度,我认为这不足以满足要求.我真的很想知道如何获取Unity scale参数,或任何其他桌面环境自己的专有UI比例参数,但我有一种感觉,我可能还需要发送自定义首选项来为此特定前端手动配置UI缩放.

(对于那些好奇的人:我的代码在这里可用- 我正在讨论的后端类是在src/canvasview.cpp中,前端"视图适配器"的例子在frontends/gtk/src/CanvasWidget.cpp和frontends /中分别是appkit/src/ICAKCanvasView.m.请记住,当我忙于调试基于tile的渲染时,代码当前处于损坏状态.)

linux gtk ubuntu user-interface

32
推荐指数
1
解决办法
2905
查看次数

Glade还是没有林间空地:使用PyGtk的最佳方式是什么?

我已经学习了一段时间的python并取得了一些成功.我甚至设法使用PyGtk + Glade创建了一个或两个(简单)程序.

问题是:我不确定使用GTK和python的最佳方法是使用Glade构建接口.

我想知道我们中更有经验的人(记住,我只是一个初学者)可以指出使用Glade的好处和注意事项,而不是在代码本身中创建所有内容(假设学习正确的gtk绑定不会完全是个问题).

python gtk pygtk glade gtk2

31
推荐指数
4
解决办法
7004
查看次数

哪个(如果有的话)实现了Windows原生外观:GTK +,wxWidgets,Qt,FLTK?

我需要编写一个应用程序,它与Windows XP/Vista/7本机编写的内容在视觉上无法区分,使用最现代的Visual Studio默认设置.但我正在开发使用MinGW和Vim(用C++编写).

特别是,我希望以下控件在以上三个版本的Windows上是原生的:表单铬,按钮,复选框,菜单,组合框,进度条,滚动条,富文本框.这对我来说已经足够了.

我知道如果您加载GdiPlus和其他类似的东西riched32.dll,并使用Windows API来实例化控件,那么操作系统将替换其版本的GdiPlus或其他库,因此它看起来像XP上的XP风格控件,Vista上的Vista,等等

但我不想使用普通的Windows API,因为即使检索默认字体也需要半页代码,而且类似的故事无论我想做什么.所以我想使用工具包.

wxWidgets,Qt,GTK +,FLTK似乎是使用最广泛的.但它们都是跨平台的.我使用过跨平台应用程序,其中许多都有外部GUI控件(我称之为小部件).所以我的问题是:这些工具包中的哪一个可以生成上面列出的真正的原生外观UI控件,正确显示在上面列出的三个版本的MSWin上?

我在谷歌图片中输入了每个+"窗口",但很难说,除了FLTK可能无法做到.你们中的许多人必须从头脑中知道答案......

c++ windows gtk user-interface wxwidgets

30
推荐指数
3
解决办法
2万
查看次数

如何在Windows上安装GTK + 3.0?

试图在Codeblocks Win7上设置GTK + 3.0.找不到如何做到这一点有些麻烦.

GTK网站将您引导至msys2.似乎曾经在GTK网站上直接下载了一个不再存在的一体化Windows软件包.

按照说明,安装和更新msys2,我看到没有引用GTK +,在已安装的文件或GTK指示您的mysys网站上.

就不必要和愚蠢地做一些应该简单的事情而言,它看起来非常具有线索性.也许我错过了一些东西,但它不应该像下载压缩文件夹,提取和设置路径一样简单吗?

按照这个速度,id可以更快地学习C++并使用Qt.

问题出现在标题中,我很惊讶我不得不问这个问题,似乎谷歌应该已经完全覆盖,但我发现的一切都与GTK网站上不再提供的下载有关.我找不到有关msys2和GTK + 3.0的信息.

提前致谢.

c windows gtk codeblocks gtk3

30
推荐指数
3
解决办法
4万
查看次数

为什么要使用GLib功能?

虽然编程C和GTK +,为什么会"更好"来使用g_strdup_printf,g_free,g_strcmp0等...和同事glib函数?

c gtk glib

29
推荐指数
3
解决办法
2万
查看次数

标签 统计

gtk ×10

c ×5

gtk2 ×2

gtk3 ×2

linux ×2

pygtk ×2

python ×2

ubuntu ×2

user-interface ×2

windows ×2

c++ ×1

codeblocks ×1

glade ×1

glib ×1

gtktreeview ×1

nomenclature ×1

wxwidgets ×1

x11 ×1