问题标签 [gtk3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2379 浏览

ubuntu - Vala 找不到 gtk+-3.0 Ubuntu 12.04

我刚刚开始学习 Vala(在 Ubuntu 12.04 下),我正在尝试学习教程;但是,在第一个编译步骤 ( valac --pkg gtk+-3.0 gtktut.vala) 中,我收到此错误:

error: gtk+-3.0 not found in specified Vala API directories or GObject-Introspection GIR directories

除了这可能意味着我没有 GTK3 .vapi 文件(我的/usr/share/vala/vapi目录中没有)外,我似乎无法在 Internet 上找到任何有关此的信息;但是,如果它甚至是我的问题的原因,我什至不知道应该在哪里下载这个神话文件。据说它应该包含在我安装的 vala 编译器中。

同样,在编译语言方面,我是一个完全的新手,我已经尽力找到答案。

如何将 valac 指向必要的 gtk3 包?

更新:

我发现gtk+-3.0.vapi确实存在于/usr/share/vala-0.16/vapi;但是,它仍然没有被发现。有任何想法吗?

0 投票
2 回答
971 浏览

python - 迁移到 pygobject、glade 和 gtk3 时使用条目组合框

自 3 个月以来,我使用 glade 和 pygtk 在 python 中进行开发,但即使在我有时间习惯它之前,它已经过时了。

使用 Archlinux,我的系统不断更新,所以我不得不使用 gtk3,即使我发现它与 gtk2 相比有点缺乏功能。

所以我决定改用pygobject。不幸的是,文档并不完整。

我成功地将我的 glade 文件和我的 python 代码升级到了新系统,但仍然存在一个错误。

在我的一个程序中,我有一个带有条目的组合框。我使用调用 get_active_text() 方法来获取条目的内容,无论它是从组合框中选择的还是由用户输入的。

这种方法不再存在(我想,因为它给了我一个错误)所以我改用它:

如您所见,旧代码已被注释。

此代码有效,但我有一个奇怪的问题:我无法使用该条目!

我可以从组合框中选择文本,但该条目不可用。我可以选择,但我不能输入它。

这是我需要在某处激活的新行为吗?使用gtk2版本的程序,我没有任何问题。

这是我的林间空地文件中描述组合框条目的部分:

我创建了一个列表存储,其中包含一列 gchararray 类型的文本。单元格由 GtkCellRenderer 渲染(但未定义 cellrenderer 的属性“文本”,因为如果我将其定义为 0(gchararray),我会得到两次文本!)

我认为添加入口缓冲区会有所帮助,但它不会改变任何东西。

编辑:我找到了解决方案:can_focus 对于嵌入式条目是错误的。现在它可以工作了,不需要入口缓冲区。

我在发布之前找到了解决方案,但我发布它以防其他用户也有这个问题。

0 投票
0 回答
1099 浏览

python - 如何在 GTK3 和 python 中将 SVG src 绘制为图像?

我的代码如下所示:

如何在 gtk3 窗口中将其显示为图像以便我可以使用它?

请原谅我的英语不好:)

0 投票
1 回答
454 浏览

python-3.x - 在 PyGobject 中动态调整 GtkLayout 的大小

我正在寻找一种方法来自动“缩放以适应” GtkLayout 的内容,具体取决于它允许占用的空间量。

这是我的解决方案:

不幸的是,这会导致每次调整窗口大小时都会调用 draw() 两次,这很慢,一旦我实际上需要在布局中绘制一些东西。

这个问题的正确解决方案是什么?

最好的问候,
Fabian Henze

解决方案:我前段时间找到了解决方案。它在我项目中。我没有时间从中提取一个最小的例子。如果有人愿意这样做,我很乐意接受它作为答案。

0 投票
1 回答
1221 浏览

python - 如何在 Python 中使用 Gtk3 GtkTreeRowReference

我试图调用 Gtk3 的GtkTreeRowReference()函数但没有成功。我正在尝试ListStore使用关联的 TreeView 选择设置为 MULTIPLE 模式从 a 中删除多条记录。我想为选择中指向TreeRowReference的每个项目保存一个并使用它们来删除项目,因为这些路径应该随着选择中较早到达的 ListStore 项目被删除而更新。我在 PyGtk 2 中找到了很多关于 using 的参考,PyGObject 的教程提到了它们的使用,但没有给出实际示例。我尝试了很多方法来调用但没有成功。例如:ListStoreListStoreTreeRowReferencesGtkTreeRowReference()

产生此致命错误消息:"TypeError: function takes at most 0 arguments (2 given)"当我的程序运行时Gtk.TreeRowReference。选择中的行已经包含对 的引用ListStore,因此仅使用选择行作为参数再次尝试,但这只是抱怨该函数仍然坚持使用 0 个参数,而我曾尝试向其传递 1 个参数。

我也尝试过这样的事情:

这些努力激怒了 Python 抱怨对"AttributeError: 'ListStore' object has no attribute 'GtkTreeRowReference'."的调用变体TreeRowReferenceGtk_TreeRowReference并且其他几个变体产生了相同的错误消息。

谁能给我一个关于如何Gtk.TreeRowReference在 PyGObject/Gtk3 中使用的线索?作为一个相对较新且经验不足的 Python 程序员,也是 Gtk 的新手,毫无疑问,我忽略了一些非常明显的东西,但即使经过大量互联网搜索,我也感到难过。

0 投票
2 回答
291 浏览

python - 移除小部件的尺寸请求(Python、Gtk3)

我想在标签中放置一些文本。我几乎设法做到了:当我放大窗口时,我在<big>标签上添加了一些标签,文本随着窗口放大。但是,如果我尝试缩小窗口,标签的尺寸请求不允许我这样做。

标签每秒更新很多次,所以如果我每次应用新标签时都尝试设置自定义尺寸请求,如果我尝试缩小窗口,窗口将会缩小和放大。

我想要做的是删除大小请求,没有自动换行和其他类似的东西:我只想让标签离开窗口。

0 投票
2 回答
838 浏览

python - python Gtk.Clipboard.get() gtk3 返回值不同

我想将 Gtk.Clipboard.get() 返回值转换为 utf-8。

gtk3

它仅在所选文本仅保留 ascii 字符时才有效,但如果有一些国家字符(法语/德语等),我会从 text.encode(..) 函数中收到错误:UnicodeDecodeError: 'ascii' codec can't decode byte位置 1 中的 0xc3:序数不在范围内(128)

您知道问题出在哪里以及如何使 gtk3 版本正常工作吗?

当我使用 gtk2 的 gtk.clipboard_get() 函数时,这是正确的:

此致

0 投票
1 回答
263 浏览

gtk - 如何在 Vala 获得 gtk3 边界?

我在 Vala 中有一个 GTK3 Window 对象,我需要获取它的 Border 结构:

http://www.valadoc.org/#!api=gtk+-3.0/Gtk.Border

怎么做?这在 Gtk3 中发生了很大变化。谢谢

0 投票
1 回答
231 浏览

gtk3 - Gtk3 地址栏小部件

Gtk3 中的地址栏有已知的实现吗?我正在寻找类似 iPhone 和 Android 电子邮件客户端的东西,其中已经给定的地址被转换为按钮。

编辑:我目前正在为 gtk-3.4 开发。下面 mike 建议的 GtkLinkBut​​ton 似乎很有希望,但是有没有办法将它添加到 GtkEditable 以便可以使用退格按钮删除它,或者在它之前/之后插入文本?

0 投票
3 回答
861 浏览

c - GtkFileChooserDialog gtk_file_chooser_get_filename() 返回 null,即使输入了文件名?

我正在使用 C 语言开发 Glade3 界面。

到目前为止,我有两个地方可供用户选择保存文件的位置。我有一个 GtkFileChooserDialog,当您单击浏览按钮时会打开。当您单击该对话框上的保存时,它会填充“浏览”按钮旁边的 GtkEntry。

它在您第一次选择文件时起作用,但第二次gtk_file_chooser_get_filename(),即使您在对话框中输入了某些内容,它也不返回任何内容。

这是源代码的简化版本,仍然存在问题:http ://paste.ubuntu.com/1032567/和与之配套的 Glade3 接口文件:http: //paste.ubuntu.com/1032572/

我的 UI 中有两个地方有这样的设置。发生在他们俩身上。我有两个不同的回调函数——一个是旧的尝试,另一个是我最近的尝试。两者都不起作用,尽管较新的版本避免了段错误,因为它会检查返回的内容是否为空。

较新的回调是on_button5_clicked()和较旧的on_button3_clicked.

我查看了参考资料,但我没有看到任何关于为什么它会返回空指针,即使您选择了文件名。

任何帮助将不胜感激。(我觉得我正处于头撞阶段)。

编辑:所以,我有更多的想法可以尝试。首先,我尝试使用 FileChooser 小部件制作自己的窗口,而不是使用对话框。我这样做是为了确保对话框在没有通过 gtk_Dialog_Run 调用运行时没有问题。我还尝试重复获取并检查指向文件名字符串的指针是否不为空的代码。当它在同一个回调调用中第二次运行时,它返回一个非空字符串指针。我也这样做是为了确保它与启动对话框的窗口(实际上是 gtk_widget_show()ED)本身就是一个对话框这一事实无关。

我尝试了我的理论,即我必须将对话框中的按钮设置为具有 gtk.RESPONSE_OK 或 gtk_RESPONSE_CANCEL 响应。那似乎没有任何效果。