- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试学习 pygtk,并且正在为 axel 开发 GUI。
我的问题是我需要在主窗口中显示下载进度。
我使用了两个线程,一个用于下载,第二个用于进度计算。下载是由axel完成的但我的第二个线程直到第一个线程停止才运行。第二个线程没有更新 gui
我用了gobject.idel_add
下载开始时它卡在主窗口
尝试使用Gtk.gdk.thread_init()/thread_enter()/thread_leave()
它说没有模块gdk
在Gtk
。在页面顶部Gtk
是从 gi.repository
导入的
顺便说一句,我正在使用 quickly
开发应用程序有什么办法可以解决这个问题吗?或任何类似的例子。
最佳答案
检查此线程 separate threads in pygtk application可能对你有用。这里给大家留下了一个pygtk管理多线程的例子。
import threading
import random, time
import gtk
#Initializing the gtk's thread engine
gtk.threads_init()
class FractionSetter(threading.Thread):
"""This class sets the fraction of the progressbar"""
#Thread event, stops the thread if it is set.
stopthread = threading.Event()
def run(self):
"""Run method, this is the code that runs while thread is alive."""
#Importing the progressbar widget from the global scope
global progressbar
#While the stopthread event isn't setted, the thread keeps going on
while not self.stopthread.isSet() :
# Acquiring the gtk global mutex
gtk.threads_enter()
#Setting a random value for the fraction
progressbar.set_fraction(random.random())
# Releasing the gtk global mutex
gtk.threads_leave()
#Delaying 100ms until the next iteration
time.sleep(0.1)
def stop(self):
"""Stop method, sets the event to terminate the thread's main loop"""
self.stopthread.set()
def main_quit(obj):
"""main_quit function, it stops the thread and the gtk's main loop"""
#Importing the fs object from the global scope
global fs
#Stopping the thread and the gtk's main loop
fs.stop()
gtk.main_quit()
#Gui bootstrap: window and progressbar
window = gtk.Window()
progressbar = gtk.ProgressBar()
window.add(progressbar)
window.show_all()
#Connecting the 'destroy' event to the main_quit function
window.connect('destroy', main_quit)
#Creating and starting the thread
fs = FractionSetter()
fs.start()
gtk.main()
关于python - pygtk 中的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15718390/
我只想在给定 X 和 Y 的屏幕上放置一个图像。 最佳答案 使用 GtkFixed 容器到 GtkWindow 内的绝对位置 如果要绝对定位顶层窗口本身,请使用 gtk_window_move()。
如何将菜单栏粘贴在窗口顶部? 我正在使用 Gtk.VBox我添加了 Gtk.MenuBar里面。我正在使用 Gtk3 代码来源:http://pastebin.com/YHZQLzZg 谢谢 最佳答案
当有人建议我考虑使用 Twisted 时,我正在努力让一些异步事件在 PyGTK 下工作。 我知道 Twisted 最初是一个网络框架,但它可以用于其他事情。但是,我见过的每个示例都涉及大量基于网络的
操作系统:Ubuntu 15.10 我使用默认的 Python 解释器导入 pygtk 没有问题。但是我无法使用 Anaconda 解释器这样做。 Python 2.7.11 |Anaconda 2.
我正在设计一个 pygtk GUI 并想在其中嵌入一个外部应用程序。 有人知道如何做到这一点吗? 最佳答案 这取决于您要嵌入的应用程序,但如果另一个应用程序是 GTK 应用程序(或支持 XEMBED
我有一个 gtk.Notebook,我想从当前的 gtk.noteBook 选项卡中获取标签文本。我做到了: text = self.get_tab_label(self.get_nth_page(s
我正在使用自定义容器,我需要在其中重新排序小部件,但没有方法可以做到。所以我尝试删除所有小部件并按顺序再次添加它们。 问题是这不能很好地工作,再次添加它们后我看不到小部件,我想发生的事情是当我删除小部
我希望窗口透明,但标签的不透明度为 100%。我怎样才能做到这一点?顺便说一句:当我升级到 Ubuntu 12.04 的统一界面时,我注意到 window.set_opacity 不像在 GNOME
是否可以通过PyGTK取消选中组中的所有单选按钮?启动时没有选中任何单选按钮,因此我认为必须有一种方法可以将它们全部恢复为未选中状态。 最佳答案 应该没有。从本质上讲,单选按钮组是“选择多个”控件类型
我有一个 gtk.Entry() 对象,我想手动发出 focus-out-event。我需要传递给 emit 方法的第二个参数是什么? In [10]: d.emit('focus-out-event
我到处找,但似乎找不到改变边框颜色的方法。 例如我需要一个这样的按钮: gb = gtk.Button("Hi") gb.set_border_width(50) 现在我希望将边框着色为红色(这是一个
如果我在 pyGTK 中有一个组合框,并且想要设置一个字符串列表,然后单击其中一个激活命令,我该怎么做? 目前我有: self.combo_key = gtk.Combo() self
我想将一个窗口嵌入到另一个窗口中,有点像这样: 编辑:屏幕截图已删除,抱歉! 那是一个 wingdows 程序,不是用 GTK很难做的。 我尝试使用插头和 socket ,但显然我无法将 gtk.Wi
我正在尝试使用 PyGTK 创建一个窗口,该窗口已根据字符串数组动态创建单选按钮(一个看起来像 ["option 1", "option 2", "option 3"] 的数组将创建3 个单选按钮,带
如何创建将一个像素值设置为透明的 PyGTK 像素图?我知道它与创建深度为 1 的像素图并将其设置为 mask 有关,但我发现它要么不执行任何操作,要么在绘制时完全删除我的像素图。目前,我制作了一个像
我在更新自定义 GTK+ 小部件时遇到问题:VUWidget。Generator 类正在更新类Section 的level 属性,该类的子类具有VUWidget 属性。 Generator 类正确更新
我正在尝试学习 pygtk,并且正在为 axel 开发 GUI。 我的问题是我需要在主窗口中显示下载进度。 我使用了两个线程,一个用于下载,第二个用于进度计算。下载是由axel完成的但我的第二个线程直
我想设置窗口的大小,然后能够在程序运行时调整它的大小。我已经能够使窗口变大,但无法将其调整为小于原始设置大小。对于不同的项目,我还想知道如何制作它,使窗口根本无法调整大小。 最佳答案 对于第一个问题:
我正在做一个项目,我想从 MySQL 数据库加载数据并将其显示在 PyGTK 应用程序中以便于查看和配置。我的目标是让程序根据数据库内容自动添加新行,即。如果我向数据库添加一个新命令,我不需要对我的
我按照 this post. 中的说明进行操作一切都安装成功。但是,当我运行 python 时,我无法导入 pygtk。具体来说,它是这样说的: >>> 导入 pygtk\n “导入错误:没有名为 p
我是一名优秀的程序员,十分优秀!