将代码转换为Gtk3时遇到问题

0 投票
2 回答
706 浏览
提问于 2025-04-17 07:30

我想把一个gtk的python库重写成Gtk3(gi.repository)。我想问一下,这里面都包含了什么?

比如说,库里有这样的结构:

gtk.gdk.Cursor(gtk.gdk.TOP_LEFT_CORNER),
gtk.gdk.Cursor(gtk.gdk.TOP_RIGHT_CORNER),
gtk.gdk.Cursor(gtk.gdk.BOTTOM_RIGHT_CORNER),
gtk.gdk.Cursor(gtk.gdk.BOTTOM_LEFT_CORNER) )

所以我把它重写成了这样:

Gdk.Cursor(Gdk.CursorType.TOP_LEFT_CORNER),
Gdk.Cursor(Gdk.CursorType.TOP_RIGHT_CORNER),
Gdk.Cursor(Gdk.CursorType.BOTTOM_RIGHT_CORNER),
Gdk.Cursor(Gdk.CursorType.BOTTOM_LEFT_CORNER) )

基本上,我做的就是打开ipython和谷歌,然后开始猜 :/

我有几个问题:

  1. 有没有什么地方有个列表?说说哪些东西被替换了,在哪里可以找到特定的类或常量在gi.repository里?比如说,我想重写gtk.CAN_FOCUS,但我不知道在gi.repository里哪里能找到这个常量。
  2. 我这样做对吗?
  3. 如果对,那我是不是还有什么忘了做的?

能不能有人解释一下,为什么要做这个改变?从gtk2升级到gtk3,为什么不直接升级旧的库呢?如果我想把应用重写成gtk3,这里面都包括了什么?

2 个回答

0

试试在交互式Python中运行这个:

from gi.repository import Gtk
dir(Gtk)
1

如果将来有人看到这个,可以通过这个属性来设置这个标志。

drawing_area.set_property('can-focus', True)

撰写回答