我安装了Fedora 15来使用Python3和GObject来开发桌面应用程序,因为PyGTK看起来已经过时了:
2011年4月1日星期五由Rafael Villar Burke发布的PyGTK 2.24.0 PyGTK 2.24.0已经发布.这是一个支持GTK + 2.24 API的稳定版本. 希望使用GTK +开发Python应用程序的新用户建议使用PyGObject中提供的GObject-Introspection功能.[...]
PyGobject 2.26.0已经发布.这是2.26.x系列中的第一个稳定版本,并引入了对内省和Python 3的初始支持.[...]
资料来源:http://www.pygtk.org/
我以为是STRIKE!使用Python 3和PyGObject开发新的Gnome3应用程序!我访问了PyGObject页面,看到最新的稳定版本是2.28(自2.26以来支持Python3),它安装在Fedora上,但只有python2绑定.
有没有搞错?
我访问了网站上的PyGobject 演示和示例,并使用pygtk + pygtk.require('2.0')而不是pygobject查看了源代码和每个代码.
我错过了什么吗?如何使用Python3和PyGObject开发Gnome 3应用程序?
当我尝试从中导入Webkit时gi.repository,它给出了ImportError:
from gi.repository import Webkit
ERROR:root:Could not find any typelib for Webkit
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name Webkit
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我正在开发一个必须在Windows和Linux上100%兼容的应用程序.在linux上我没有问题,但在Windows上我想出了这个消息:来自gi.repository import Gtk ImportError:没有名为gi的模块
我安装了pygobject,pygtkallinone,gtk ..我错过了什么?
我做了一个新的例子,它显示了我想做的更好.新示例给出了以下输出.有没有办法将数据放入相应的商店密钥({}括号)?
{
"copy": [
[
[
5.0,
8.0,
9.0
]
],
[
[
4.0,
0.0,
1.0
]
]
],
"name": "dataset1",
"sets": [
{
"store": {},
"type": "vector"
},
{
"store": {},
"type": "vector"
}
]
}
Run Code Online (Sandbox Code Playgroud)
from gi.repository import Gtk
import json
import random
class Vector(object):
def __init__(self, data):
self.store = Gtk.ListStore(float, float, float)
self.store.append([data[0], data[1], data[2]])
self.type = "vector"
def return_data(self):
store_data = []
def iterate_over_data(model, path, itr):
row = model[path]
store_data.append([row[0], row[1], row[2]])
self.store.foreach(iterate_over_data)
return store_data …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,它依赖于我为Linux工作而构建的PyGTK,PyGobject和PyCairo.我想将它移植到Windows,但是当我执行时,import gobject我得到这个:
Traceback (most recent call last):
import gobject
File "C:\Python26\lib\site-packages\gtk-2.0\gobject\__init__.py", line 30, in <module>
from gobject.constants import *
File "C:\Python26\lib\site-packages\gtk-2.0\gobject\constants.py", line 22, in <module>
from _gobject import type_from_name
ImportError: DLL load failed: The specified procedure could not be found.
Run Code Online (Sandbox Code Playgroud)
这似乎是由使用MinGW构建到Microsoft Visual Studio的转换引起的,如Python Bug 3308(closed: wontfix)所示.
有没有办法以一种可以在Windows上使用Python 2.6的方式安装PyGTK/PyGObject,而无需从源代码重新编译其中一个?
我正在使用迁移指南(将GTK2移植到GTK3)将脚本转换为使用Gtk3 .我把我改成import pygtk了from gi.repository import Gtk等等......
我被困了,因为glade模块是从模块gtk加载的:
import gtk
import gtk.glade
Run Code Online (Sandbox Code Playgroud)
但是现在再也没办法了.
请注意,我只需要替换gtk.glade.XML()...
我目前正试图将我的应用程序窗口放在中心,但使用PyGObject(GTK + 3)似乎是不可能的.实际上,使用pyGTK,我这样做:
window.set_position(gtk.WIN_POS_CENTER)
Run Code Online (Sandbox Code Playgroud)
所以这次我正在尝试这个:
window.set_position(Gtk.WIN_POST_CENTER)
Run Code Online (Sandbox Code Playgroud)
set_position似乎仍然存在,但Gtk.WIN_POST_CENTER常量不起作用:
AttributeError:'gi.repository.Gtk'对象没有属性'WIN_POS_CENTER'
我尝试通过 pip 安装 PyGObject,但失败并出现给定错误:
Building wheels for collected packages: pygobject
Building wheel for pygobject (PEP 517) ... error
ERROR: Command errored out with exit status 1:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DPY_SSIZE_T_CLEAN -IC:\Users\James\AppData\Local\Temp\pip-install-deoh1xpv\pygobject_2e13db219b124bfd8bf7a88e47dc19a5 -IC:\Users\James\AppData\Local\Temp\pip-install-deoh1xpv\pygobject_2e13db219b124bfd8bf7a88e47dc19a5\gi -IC:\Program Files\Python39\include -IC:\Program Files\Python39\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\ATLMFC\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt /Tcgi\gimodule.c /Fobuild\temp.win-amd64-3.9\Release\gi\gimodule.obj -FImsvc_recommended_pragmas.h
gimodule.c
gi\gimodule.c: …Run Code Online (Sandbox Code Playgroud) 我试图将PyGTK中的一些小例子移植到新的PyGobject绑定中,但是我遇到了一个带有弹出菜单的障碍,尽管没有错误,右键单击没有显示菜单,这是代码,
from gi.repository import Gtk
class aStatusIcon:
def __init__(self):
self.statusicon = Gtk.StatusIcon()
self.statusicon.set_from_stock(Gtk.STOCK_HOME)
self.statusicon.connect("popup-menu", self.right_click_event)
window = Gtk.Window()
window.connect("destroy", lambda w: Gtk.main_quit())
window.show_all()
def right_click_event(self, icon, button, time):
menu = Gtk.Menu()
about = Gtk.MenuItem()
about.set_label("About")
quit = Gtk.MenuItem()
quit.set_label("Quit")
about.connect("activate", self.show_about_dialog)
quit.connect("activate", Gtk.main_quit)
menu.append(about)
menu.append(quit)
menu.show_all()
#menu.popup(None, None, gtk.status_icon_position_menu, button, time, self.statusicon) # previous working pygtk line
menu.popup(None, None, None, Gtk.StatusIcon.position_menu, button, time) #i assume this is problem line
def show_about_dialog(self, widget):
about_dialog = Gtk.AboutDialog()
about_dialog.set_destroy_with_parent(True)
about_dialog.set_name("StatusIcon Example")
about_dialog.set_version("1.0")
about_dialog.set_authors(["Andrew …Run Code Online (Sandbox Code Playgroud) 在哪里可以找到用户可以在GTK + 3的CSS文件中定义的可用键绑定的详尽列表?
我已经检查了这些资源:
例如,用户如何<Control>Space将光标移动到文本末尾GtkTextView?