Articles of pygtk

Linux / Python:Monitor / proc / acpi文件没有轮询?

有没有办法监视/proc文件,如 /proc/acpi/battery/BAT0/state /proc/acpi/ac_adapter/ADP0/state 在非轮询的方式,类似于在正常的文件系统上的inotify? 我想在PyGTK应用程序中这样做,所以我尝试使用PyGObject的gio.FileMonitor,但没有骰子。 与gtk.main()一起使用的Python解决scheme将是理想的。

在linux任务栏中创build一个小python applet

我想为我的linux任务栏创build一个python中的小程序,它只是显示一个可以改变颜色的图标,当我们点击它时,会显示一个简单的信息菜单。 但我不知道我可以用来执行它的资源。 我从gtk开始,特别是我发现gtk.status_icon_new_from_file显示一个svg图标。 但是我不能通过svgdynamic地改变图标的​​颜色。 我必须修改我的文件中的颜色,然后重新加载它。 有没有办法直接给图标的数据,而不是它的名字? 另外,我不知道在哪里继续编码我的菜单。 任何想法 ? 最后,图标上面是否有文字? 编辑:我想有一个通用的任务栏的解决scheme,因为我在archlinux下使用tint2(与openbox)。 所以我需要与Freedesktopbuild议兼容的解决scheme,而不是特定于Gnome或Ubuntu。 也许解决scheme与xfce4桌面。

在线程中显示对话框

我有一个pygtk添加其中有一个gtk.Button(),当按下必须做5秒的工作。 所以, 在信号处理程序中实现时间密集型函数的思想是一个线程。 首先,我在开头添加了gtk.gdk.threads_init()。 我的信号处理程序是def send_sms() ,我有另一个函数def send_sms_mycantos() ,我称之为线程。 threading.Thread(target = self.send_sms_mycantos, args=(phone_no, message_text, username, password)).start() 我也有一个显示对话框的function。 def dialog_notification(self, message, dialog_type): dlg = gtk.MessageDialog(self.window, gtk.DIALOG_DESTROY_WITH_PARENT, dialog_type, gtk.BUTTONS_CLOSE, message) dlg.run() dlg.destroy() 现在,如果我在我的线程中调用上述函数 self.dialog_notification("Message sent successfully", gtk.MESSAGE_INFO) 我得到这个错误。 SMSSender.py: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0. 这是实施线程的正确方法吗? 我究竟做错了什么。 错误就像线程不知道Xserver正在运行。

在Linux上使用pygtk(gtk.gdk)在桌面/根窗口上键盘/鼠标事件

正如标题所述,我试图用Python-gtk捕获鼠标和键盘事件。 我可以用python-xlib轻松地做到这一点: self.display = display.Display() self.screen = self.display.screen() self.root_window = self.screen.root self.root_window.grab_pointer(1, X.ButtonPressMask | X.ButtonReleaseMask | X.Button1MotionMask, X.GrabModeAsync, X.GrabModeAsync, X.NONE, X.NONE, X.CurrentTime) self.root_window.grab_keyboard(1, X.GrabModeAsync, X.GrabModeAsync, X.CurrentTime) 我看到模拟使用gtk.gdk。*函数,但我似乎无法捕获主桌面窗口上的事件。 可以这样做吗? 这就是我试图完成这个任务的原因……(ALL_EVENTS_MASK是绝望的行为) self.root_window = gtk.gdk.get_default_root_window() self.root_window.set_events(gtk.gdk.ALL_EVENTS_MASK) gtk.gdk.event_handler_set(self.filter_callback) gtk.main() def filter_callback (self, *args): print args

Gtk / python和可移植性

程序员如何编写适用于多个发行版的可移植UI代码? 我正在考虑桌面分布,而不是专业/embedded式分布。 为了编写用户界面应用程序,您必须假定某些事情可以在标准平台上或通过添加的依赖关系在平台上使用。 有没有Linux发行版本拥有的“最小”UI / widget标准? 当你编写代码时,Gnome和KDE发行版是如何形成的? 我有一个使用Gtk和Webkit的Python脚本。 以下是我的脚本使用的导入。 import os import threading from gi.repository import WebKit from gi.repository import Gtk from gi.repository import GLib, GObject 什么将是最好的来源,找出我的代码将在哪些分布的工作?

在Linux中使用Python创buildGUI

快速的问题。 我正在使用Linux,我想尝试使用Python制作GUI。 我听说过像Qt,GTK +和PyGTK,但我不知道它们究竟是什么,它们之间的区别是什么。 对于像GNOME,KDE,XFCE等不同的DE来说,它们是如何工作的? 有没有任何IDE可以让你像Microsoft Visual Studio一样创buildGUI(对于C#,C,Visual Basic等)? 还是应该使用Python以外的其他语言来创buildGUI应用程序?

用Windows右键单击VLC和PyGTK

我将一个video应用程序从Linux移植到Windows,并将VLC用作媒体后端。 我遇到了一个小问题,我找不到一个解决scheme:在电影播放期间,当我右键点击video图像时,应用程序没有反应。 就像GTK由于VLC而没有收到右键单击。 这似乎是一个vout驱动程序的问题,因为我用MPlayertesting和右键单击正在工作,直到我用direct3d或gl作为video驱动程序。 这里有什么解决办法? 我正在Windows 7上使用VLC与Python绑定的VLC。

如何在Windows上的浏览器中打开PyGTK LinkBut​​ton中的uri?

我在Windows上创build了一个PyGTK LinkBut​​ton。 它包含一个我想在用户浏览器中打开的URI。 gtk.LinkButton("http://www.mysite.com") 这里的文档build议我需要为gtk.link_button_set_uri_hook提供一个钩子函数。 是否有一个内置的PyGTK函数,我可以使用跨平台,还是我需要编写自己的Windows特定function?

pygtk控制台输出进行debugging

我有这个问题。 我创build一个编辑器,我需要控制台输出(sys.stderr和sys.stdout)输出到一个textview。 问题是,当我启动控制台,它等待它退出,但我希望它捕捉任何东西,并将其输出到textview,所以我认为你可能需要不同的线程,但不这样做,然后使它不可能从其他线程捕捉任何东西? 如果编辑器没有从terminal启动,我想要这个。 如果你想知道它将被用作模块。 这是迄今为止的代码: import sys import gtk import pygtk pygtk.require('2.0') class Console: def __init__(self): tv = gtk.TextView() tv.set_editable(False) tv.set_wrap_mode(gtk.WRAP_WORD) self.buffer = tv.get_buffer() table = gtk.Table(3, 6, gtk.FALSE) table.attach(tv, 0, 6, 0, 1) #### Main window self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.connect('destroy_event', lambda w, e: gtk.mainquit()) self.window.connect('delete_event', lambda w, e: gtk.mainquit()) self.window.set_border_width(10) self.window.add(table) self.window.set_title('Search') self.window.set_default_size(300, […]

如何获得MS Windows桌面高度在pygtk?

我在pygtk中编写应用程序,显示一个popup窗口(如从Chrome)窗口,无需resize和移动选项。 除了一件事情,一切都很好。 我必须把这个窗口移动到屏幕底部,稍微高于任务栏。 MS Windows上的任务栏上,在Windows XP 30px,但在Windows 7上更高我有显示器/屏幕分辨率得到的代码: w = self.get_screen() print w.get_height() 但我仍然没有任务栏的高度。 任何想法如何得到这个高度?