标签: pygtk

Ubuntu上的Virtualenv没有站点包

我最近在使用python进行开发时一直在使用virtualenv.我喜欢使用--no-site-packages选项的隔离开发环境的想法,但在开发PyGTK应用程序时这样做可能有点棘手.默认情况下,PyGTK模块安装在Ubuntu上,我想让virtualenv(使用--no-site-packages)知道位于系统其他位置的特定模块.

最好的方法是什么?或者我应该吮吸它并删除--no-site-packages选项?

python ubuntu pygtk virtualenv

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

GTK和PYGTK的区别

许多程序员以这种方式导入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的区别是什么?

python gtk pygtk gtk2

18
推荐指数
2
解决办法
4388
查看次数

如何自动滚动gtk.scrolledwindow?

我在a里面有一个treeview-widget ScrolledWindow,它在运行时填充.我希望ScrolledWindow自动滚动到列表的末尾.我"解决"问题,通过调整vadjustmentScrolledWindow,每次一个行插入到树视图.例如:

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

python gtk pygtk scrolledwindow gtktreeview

18
推荐指数
3
解决办法
8571
查看次数

在GTK中缩放图像

在GTK中,如何缩放图像?现在我用PIL加载图像并预先缩放它们,但有没有办法用GTK做到这一点?

python gtk user-interface pygtk image

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

如何用Python Popen做多个参数?

我正在尝试制作一个有按钮的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)

python subprocess pygtk popen gnome-terminal

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

如何将一个项目添加到GTK的"最近使用的"文件列表中?

我正在尝试在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 gtk pygtk gtk3

17
推荐指数
1
解决办法
546
查看次数

python脚本中的身份验证以root身份运行

我正在使用Python在系统级Linux上做一个项目.所以,我想知道,如果我作为普通用户运行我的代码,如果我正在访问系统文件,那么它应该具有root权限,那么我如何提示root密码并以超级用户身份运行更多代码.我想知道,如何以超级用户身份运行python脚本,并提供密码提示.

任何帮助将不胜感激.先感谢您..

python pygtk

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

Python AppIndicator绑定 - >如何检查菜单是否打开?

以下是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菜单是否由用户打开的方法(例如,点击了指示器图标).那么当菜单打开时会发出一个信号吗?

python pygtk appindicator ubuntu-unity

16
推荐指数
1
解决办法
2230
查看次数

Python 3.3中的现代GUI编程

我正在整理一些程序,现在是开始为其中一些程序制作GUI的时候了.该代码目前是用Python 3.3编写的.

我研究了一些Python的GUI,即Tkinter,wxPython和PyGTK.我发现的一切似乎只是创建看起来相当陈旧的GUI.我已经创建了几个示例GUI,它们都可以工作,它们看起来非常像Windows 95.

我发现/创建的一个例子: http://python.6.x6.nabble.com/file/n4545517/MLDataAnalyzer5.png

我想要的一个例子是: http://images.six.betanews.com/screenshots/1237236321-1.jpg

它只是一个关于GUI如何工作的高级知识,还是只有更适合"现代"外观GUI的GUI模块?

如果它是关于GUI如何工作的高级知识,是否有一些关于如何使GUI看起来更"现代"的教程.

提前致谢.

user-interface pygtk wxpython tkinter python-3.3

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

如何在Windows,Linux和MacOS中确定Python的显示空闲时间?

我想知道自用户上次按键或移动鼠标以来已经有多长时间 - 不仅在我的应用程序中,而且在整个"计算机"(即显示器)上,以便猜测它们是否仍在电脑,能够观察屏幕上弹出的通知.

我想纯粹从(Py)GTK +这样做,但我可以调用特定于平台的函数.理想情况下,我想调用已经包含在Python中的函数,但是如果不可能的话,我不会超过一点C或ctypes代码,只要我知道我实际上在寻找什么.

在Windows上我认为我想要的功能是GetLastInputInfo,但这似乎并没有被pywin32包装; 我希望我错过了一些东西.

python gtk winapi pygtk pywin32

15
推荐指数
2
解决办法
3595
查看次数