标签: gtk2

如何更改GTK中的字体大小?

有没有一种简单的方法来改变GTK中文本元素的字体大小?现在,我能做的最好的事情就是set_markup在标签上做,有些傻话:

lbl.set_markup("<span font_desc='Tahoma 5.4'>%s</span>" % text)
Run Code Online (Sandbox Code Playgroud)

这1)要求我设置字体,2)似乎需要很多开销(必须解析标记),3)会让改变按钮等字体大小变得烦人.有没有更好的办法?

python gtk fonts pygtk gtk2

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

使用GTK + 2或GTK + 3学习GUI编程?

我是GUI编程的新手,我还没有发现什么库最适合我的目的(我想制作桌面环境应用程序,例如码头,面板,桌面等)我已经开始学习GTK的基础知识,主要是使用PyGTK的.我在网上找到的大多数教程都是针对GTK + 2.0的.最近,GTK + 3已经发布.所以我有点不确定这对我的学习曲线意味着什么:

  • 我应该学习使用GTK + 3而忘记GTK + 2吗?
  • 从编码的角度来看,使用其中一个确实有所作为吗?
  • GTG + 3的PyGTK绑定是否已经存在?
  • 有没有可用的GTK + 3教程?

由于我是新手,我会盲目地投入其中,但是一些指导可能更明智.所以如果你有,欢迎你:)

user-interface pygtk gtk2 gtk3

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

自动调整GtkScrolledWindow中的GtkTextView大小

我在gschem上工作,这是一个用于编辑电子原理图的免费软件工具.最近我们使用包含GtkTextViewGtkScrolledWindow遇到了问题.

上下文

最新版本的Ubuntu使用覆盖滚动条,这意味着GtkScrolledWindows不再设置最小高度,为传统滚动条提供足够的空间(实际上,它们的最小高度为0).同样,没有显示文本的GtkTextView请求高度为0.这意味着gschem中的一个可滚动的GtkTextViews被显示为高度中的一个像素,这显然是不可用的.

截图显示已损坏

在上面显示的屏幕截图右侧的对话框中,记下"值:"标签和"添加"按钮之间的不可见小部件.

一些用户已经独立报告了这一点 - 另请参阅错误报告.

显然,我们可以通过以下方式解决这个问题:

g_object_set (textview, "height-request", 100, NULL);
Run Code Online (Sandbox Code Playgroud)

然而,这非常不优雅,并且对于以像素设置非常大的字体大小的用户(例如,具有视力问题的用户或使用高DPI屏幕的用户)将会中断.

因此,理想情况下,我们希望将GtkTextView的最小大小设置为相对于默认字体大小,例如告诉它"显示至少三行文本".

有人能建议一个明智/优雅的方法吗?

c gtk gtk2

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

如何修复libglade中的"未知属性`交换'"警告?

libglade已更新,我的旧Glade xml文件具有信号的这些"交换"属性.加载文件时,这些属性会生成以下警告:

libglade-WARNING **: unknown attribute `swapped' for <signal>.
Run Code Online (Sandbox Code Playgroud)

我该如何修复这些警告?我可以只删除swapped属性,还是会导致问题?

glade gtk2

6
推荐指数
1
解决办法
8109
查看次数

如何在GTK2中设置GTKListStore/GTKComboBox的背景?

我正在使用此代码创建一个带有彩色背景/文本的组合框:

GtkListStore *liststore;
GtkWidget *combo;
GtkCellRenderer *column;
liststore = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
for(int i=0; i<10; i++) {
    gtk_list_store_insert_with_values(liststore, NULL, -1, 0, "Default", 1, "white", 2, "black", -1);
}
combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(liststore));
g_object_unref(liststore);
column = gtk_cell_renderer_text_new();
gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), column, TRUE);
gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), column, "text", 0, "foreground", 1, "background", 2, NULL);
Run Code Online (Sandbox Code Playgroud)

它的工作原理.它看起来像这样: 在此输入图像描述

我的问题是,如何设置列表库或组合框的背景,以便图片中没有空格?谢谢!

c++ gtk combobox gtk2 background-color

6
推荐指数
1
解决办法
506
查看次数

为 GTK 2.24 和 GTK 3 和 GTK 4 创建菜单栏

GTK 4 将删除GtkMenu、GtkMenuBar 和 GtkMenuItem。为什么不呢,但是,有没有一种通用的方法可以用 C 语言为GTK 2.24GTK 3GTK 4创建经典菜单栏?

一个例子:

经典编辑菜单

c gtk2 gtk3 gtk4

6
推荐指数
0
解决办法
911
查看次数

GTK和滚动文本视图

这就是我到目前为止所拥有的

GtkWidget* createConsoleBox()
{
        GtkWidget* textArea = gtk_text_view_new();
        GtkWidget* scrollbar = gtk_vscrollbar_new(gtk_text_view_get_vadjustment(GTK_TEXT_VIEW(textArea)));
        GtkWidget* textEntry = gtk_entry_new();

        GtkWidget* console = gtk_table_new(3, 2, FALSE);

        gtk_table_attach_defaults(GTK_TABLE(console), textArea, 0, 1, 0, 1);
        gtk_table_attach_defaults(GTK_TABLE(console), scrollbar, 1, 2, 0, 1);

        gtk_table_attach_defaults(GTK_TABLE(console), textEntry, 0, 2, 1, 2);

        return console;

}
Run Code Online (Sandbox Code Playgroud)

我希望文本视图可以滚动,因为文本开始填充框,但框继续扩展以容纳更多文本.如何限制文本视图的大小并创建可滚动的文本视图.

提前致谢 :-)

c gtk2

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

滚动非常大的GtkDrawingArea

我有一个GtkDrawingArea用于可视化数据.根据数据库和用户输入,绘图可能会变得非常大(大于允许的最大GtkDrawingArea大小).因此,我想使用与当前窗口一样大的绘图区域,并在滚动时手动更新它.

如果我使用ScrolledWindow + Viewport方法将滚动条添加到绘图区域,它显然不起作用,因为绘图区域不够大,不需要滚动条.

有没有什么方法可以让视口欺骗认为底层小部件比实际大?如果不是什么是解决这个问题的最佳方法?

注意:我使用Gtk2并且不可能切换到Gtk3.

c c++ gtk gtk2

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

响应 GTK+ 3 中的主题更改

某些应用程序可以实时响应 GTK+ 主题更改。例如,Thunar、Geany、lxrandr、Hexchat 都会在主题更改时更新它们的 UI,例如在 lxappearance 中。这些都是 GTK+ 2 程序。

另一方面,到目前为止,我尝试过的所有 GTK+ 3 程序(包括 baobab、moserial gucharmap、ghex、pamac、evince、xreader)似乎无法重新加载主题,需要重新启动应用程序。

lxappearance(gtk2在我的系统上编译)正在发送一个 GTK+“信号”(不是 100% 在 GTK-land 中的术语)以导致应用程序重新加载:

// src/lxappearance.c line 198
static void reload_all_programs()
{
#if GTK_CHECK_VERSION(3, 0, 0)

/* TODO Port this to something else than gdk_event_send_clientmessage_toall */

#else
    GdkEventClient event;
    event.type = GDK_CLIENT_EVENT;
    event.send_event = TRUE;
    event.window = NULL;

    if( app.use_lxsession )
    {
        event.message_type = gdk_atom_intern_static_string("_LXSESSION");
        event.data.b[0] = 0;    /* LXS_RELOAD */
    }
    else
    {
        /* if( icon_only )
            event.message_type = …
Run Code Online (Sandbox Code Playgroud)

gtk themes gtk2 gtk3 gnome-3

5
推荐指数
0
解决办法
1844
查看次数

包装红宝石gtk应用程序

将用ruby构建的gtk2 / gtk3应用程序打包为Windows,Linux,MacOS的可执行文件,最令人头疼的技术是什么?

我找不到任何指南或助手来解决此问题,以解决ruby gtk的问题。红宝石-侏儒宝石也没有包装器。

我的理解是gtk是跨平台的,因此做到这一点并不容易。问题是我找不到可靠的例子作为例子并学习步骤。

ruby gtk gtk2 ruby-gnome2 gtk3

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

标签 统计

gtk2 ×10

gtk ×6

c ×4

gtk3 ×4

c++ ×2

pygtk ×2

background-color ×1

combobox ×1

fonts ×1

glade ×1

gnome-3 ×1

gtk4 ×1

python ×1

ruby ×1

ruby-gnome2 ×1

themes ×1

user-interface ×1