我最近在使用python进行开发时一直在使用virtualenv.我喜欢使用--no-site-packages选项的隔离开发环境的想法,但在开发PyGTK应用程序时这样做可能有点棘手.默认情况下,PyGTK模块安装在Ubuntu上,我想让virtualenv(使用--no-site-packages)知道位于系统其他位置的特定模块.
最好的方法是什么?或者我应该吮吸它并删除--no-site-packages选项?
许多程序员以这种方式导入gtk和pygtk:
import gtk
import pygtk
Run Code Online (Sandbox Code Playgroud)
我只使用gtk创建了一个简单的程序,它可以工作:
import gtk
window = gtk.Window()
window.set_size_request(800, 700)
window.set_position(gtk.WIN_POS_CENTER)
window.connect("destroy", gtk.main_quit)
button = gtk.Button("Vai")
button.set_size_request(30, 35)
button.connect("clicked", naviga)
testo = gtk.Entry()
h = gtk.HBox()
h.pack_start(testo)
h.pack_start(button)
window.add(h)
window.show_all()
gtk.main()
Run Code Online (Sandbox Code Playgroud)
所以...问题是:GTK和PYGTK的区别是什么?
我在a里面有一个treeview-widget ScrolledWindow,它在运行时填充.我希望ScrolledWindow自动滚动到列表的末尾.我"解决"问题,通过调整vadjustment的ScrolledWindow,每次一个行插入到树视图.例如:
if new_line_in_row:
adj = self.scrolled_window.get_vadjustment()
adj.set_value( adj.upper - adj.page_size )
Run Code Online (Sandbox Code Playgroud)
如果我在交互式ipython会话中运行代码并自己设置值,一切都按预期工作.
如果我使用默认的python解释器运行代码,则自动滚动不会一直有效.我调试了代码,问题似乎是,调整值有某种"滞后",只在一段时间后才会改变.
我的问题是:如何可靠地滚动到最大位置ScrolledWindow?是一个特殊的信号生成,我可以使用?还是有更好的方法来设置adjustment-value?
在GTK中,如何缩放图像?现在我用PIL加载图像并预先缩放它们,但有没有办法用GTK做到这一点?
我正在尝试制作一个有按钮的PyGtk Gui.当用户按下此按钮时,gnome-terminal提示用户输入密码.
然后它将为JQuery片段克隆这个Git存储库gedit.
然后,它将js.xml文件复制到/usr/share/gedit/plugins/snippets/js.xml
最后,它强制删除了Git存储库.
命令:
gnome-terminal -x sudo git clone git://github.com/pererinha/gedit-snippet-jquery.git && sudo cp -f gedit-snippet-jquery/js.xml /usr/share/gedit/plugins/snippets/js.xml && sudo rm -rf gedit-snippet-jquery
Run Code Online (Sandbox Code Playgroud)
它在我的终端工作正常.
但是,通过它刚打开的GUI,我添加了我的密码,按回车键,然后再次关闭.
我只想将命令运行到第一个命令 &&
这是我的Python函数(带命令):
def on_install_jquery_code_snippet_for_gedit_activate(self, widget):
""" Install Jquery code snippet for Gedit. """
cmd="gnome-terminal -x sudo git clone git://github.com/pererinha/gedit-snippet-jquery.git && sudo cp -f gedit-snippet-jquery/js.xml /usr/share/gedit/plugins/snippets/js.xml && sudo rm -rf gedit-snippet-jquery"
p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT,
close_fds=False)
self.status.set_text(p.stdout.read()) #show response in 'status
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Ubuntu上添加Python 3中的"最近使用的"文件列表.
我能够成功读取最近使用的文件列表,如下所示:
from gi.repository import Gtk
recent_mgr = Gtk.RecentManager.get_default()
for item in recent_mgr.get_items():
print(item.get_uri())
Run Code Online (Sandbox Code Playgroud)
这会打印出我在Nautilus中查看"Recent"时看到的相同文件列表,或者查看GIMP等应用程序文件对话框中的"最近使用"位置.
但是,当我尝试添加这样的项目时(/home/laurence/foo/bar.txt现在的文本文件在哪里)...
recent_mgr.add_item('file:///home/laurence/foo/bar.txt')
Run Code Online (Sandbox Code Playgroud)
...文件未显示在Nautilus的最近部分或文件对话框中.它甚至没有显示在返回的结果中get_items().
如何从Python中将文件添加到GTK最近使用的文件列表中?
我正在使用Python在系统级Linux上做一个项目.所以,我想知道,如果我作为普通用户运行我的代码,如果我正在访问系统文件,那么它应该具有root权限,那么我如何提示root密码并以超级用户身份运行更多代码.我想知道,如何以超级用户身份运行python脚本,并提供密码提示.
任何帮助将不胜感激.先感谢您..
以下是AppIndicator的最小示例:
#!/usr/bin/python
import gobject
import gtk
import appindicator
if __name__ == "__main__":
ind = appindicator.Indicator("example-simple-client", "gtk-execute", appindicator.CATEGORY_APPLICATION_STATUS)
ind.set_status (appindicator.STATUS_ACTIVE)
menu = gtk.Menu()
menu_items = gtk.MenuItem('Quit')
menu.append(menu_items)
menu_items.connect("activate", gtk.main_quit)
menu_items.show()
ind.set_menu(menu)
gtk.main()
Run Code Online (Sandbox Code Playgroud)
不幸的是,关于此的文档非常不完整.我正在寻找的是一种检查AppIndicator菜单是否由用户打开的方法(例如,点击了指示器图标).那么当菜单打开时会发出一个信号吗?
我正在整理一些程序,现在是开始为其中一些程序制作GUI的时候了.该代码目前是用Python 3.3编写的.
我研究了一些Python的GUI,即Tkinter,wxPython和PyGTK.我发现的一切似乎只是创建看起来相当陈旧的GUI.我已经创建了几个示例GUI,它们都可以工作,它们看起来非常像Windows 95.
我发现/创建的一个例子: 
我想要的一个例子是: 
它只是一个关于GUI如何工作的高级知识,还是只有更适合"现代"外观GUI的GUI模块?
如果它是关于GUI如何工作的高级知识,是否有一些关于如何使GUI看起来更"现代"的教程.
提前致谢.
我想知道自用户上次按键或移动鼠标以来已经有多长时间 - 不仅在我的应用程序中,而且在整个"计算机"(即显示器)上,以便猜测它们是否仍在电脑,能够观察屏幕上弹出的通知.
我想纯粹从(Py)GTK +这样做,但我可以调用特定于平台的函数.理想情况下,我想调用已经包含在Python中的函数,但是如果不可能的话,我不会超过一点C或ctypes代码,只要我知道我实际上在寻找什么.
在Windows上我认为我想要的功能是GetLastInputInfo,但这似乎并没有被pywin32包装; 我希望我错过了一些东西.
pygtk ×10
python ×9
gtk ×5
appindicator ×1
gtk2 ×1
gtk3 ×1
gtktreeview ×1
image ×1
popen ×1
python-3.3 ×1
pywin32 ×1
subprocess ×1
tkinter ×1
ubuntu ×1
ubuntu-unity ×1
virtualenv ×1
winapi ×1
wxpython ×1