python主循环方法mainloop_python gobject.mainloop吞噬信号事件
没有人感兴趣,所以让我尝试.
只是在同一页面上:
import signal
from gi.repository import GObject
GObject.threads_init()
mainloop = GObject.MainLoop()
signal.signal(signal.SIGINT, lambda n, f: mainloop.quit())
mainloop.run()
此代码有效:
import signal
from gi.repository import GObject
signal.signal(signal.SIGINT, lambda n, f: print("kill"))
GObject.threads_init()
mainloop = GObject.MainLoop()
mainloop.run()
我先注册了信号处理程序,然后启动了循环.奇怪的是它没有被调用.但是结果是-符合预期…
附带说明-根据他们的文档,不赞成使用mainloop.那是第一件事.
编辑
这是从MainLoop内部的stdin读取的示例:
import signal
import sys
from gi.repository import GObject, GLib
GObject.threads_init()
def readInput():
print('readInput
')
while True:
input = sys.stdin.readline()
print(input)
if input.strip() == 'exit':
print('closing main loop')
mainloop.quit()
print('terminating thread')
return
if __name__ == '__main__':
signal.signal(signal.SIGINT, signal.SIG_DFL)
mainloop = GObject.MainLoop.new(None, False)
GObject.timeout_add(1000, readInput)
# inputThread = threading.Thread(name='input', target=readInput)
# inputThread.start()
# print('started input')
print('running mainloop
')
try:
mainloop.run()
except KeyboardInterrupt:
mainloop.quit()
添加.new(None,False)可使CTRL-C正常工作.从here开始使用,还有here是另一个关于将脉冲音频控制器与GLib / GObject循环集成的线程.有一些关于将dbus与循环集成的示例,但我不确定您希望采用哪种方式…
python主循环方法mainloop_python gobject.mainloop吞噬信号事件相关推荐
- python主循环方法mainloop_Python:Tkinter:为什么是root.mainloop()而不是app.mainloop()...
我像你看到的那样测试了两个: 一个是用"app"+".pack()"编写的,一个是调用"mainframe"+".grid()&q ...
- python主循环方法mainloop_海龟图形Python,.mainloop()
^{bq}$ 海龟的mainloop()称为tkinter的mainloop(),而Tk的{}非常简单:void Tk_MainLoop(void) { while (Tk_GetNumMainWin ...
- python时间间隔循环_python循环间隔
广告关闭 回望2020,你在技术之路上,有什么收获和成长么?对于未来,你有什么期待么?云+社区年度征文,各种定制好礼等你! 序言如图1.1中关于如何用python去计算两个时间(年月日)相隔多少天,简 ...
- python退出循环快捷_python退出循环的方法
break 语句 Python break语句,就像在C语言中,打破了最小封闭for或while循环. break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执 ...
- python最快的循环方法_【转】【Python效率】五种Pandas循环方法效率对比
[Python效率]五种Pandas循环方法效率对比 - 文兄的文章 - 知乎 https://zhuanlan.zhihu.com/p/80880493 正文: 如果你使用过Python及Panda ...
- python的for语句写新的字符串_python写for循环python字符串排序方法
一般情况下,python中对一个字符串排序相当麻烦: 一.python中的字符串类型是不允许直接改变元素的.必须先把要排序的字符串放在容器里,如list. 二.python中的list容器的sort( ...
- 循环下标_【转】【Python效率】五种Pandas循环方法效率对比
[Python效率]五种Pandas循环方法效率对比 - 文兄的文章 - 知乎 https://zhuanlan.zhihu.com/p/80880493 正文: 如果你使用过Python及Panda ...
- python怎么打开h5文件_python中利用h5py模块读取h5文件中的主键方法
如下所示: import h5py import numpy as np #HDF5的写入: imgData = np.zeros((2,4)) f = h5py.File('HDF5_FILE.h5 ...
- python:open()方法+循环语句 练习
python:open()方法+循环语句 练习 1.以二进制的方式去读1.jpg 2.以二进制的方式去写2.jpg 以二进制的方式去读1.jpg ,代码如下 file_obj1 = open(&quo ...
最新文章
- 完美解决mysql下utf-8的乱码问题
- 成功解决attrs = config.__dict__['__flags'] KeyError: '__flags
- android标题栏添加按钮_[办公小技巧]Excel 添加页码,自定义和指定单元格页码添加...
- redis 零散知识
- stm32cubeide外部中断_【STM32】HAL库 STM32CubeMX教程三----外部中断(HAL库GPIO讲解)
- 第二节JVM JRE 和JDK介绍
- 关于insert语句的插入问题
- matlab邻域平均,数字图像处理邻域平均法滤波实验报告matlab实现
- C#_自动化测试3_controll IE
- C# 最简单的全局键盘鼠标钩子
- 看完这20部电影,你可以去全球任何一家公司做董事长或总经理
- 计算机组装系统安装系统,刚组装电脑怎么装系统?
- 宽带速率单位《Mbps-MBps/换算》
- 直流电机笔记1-串并励电机特性
- 3配置的笔记本能不能运行博图v15_运维便携口袋笔记本:壹号本工程师PC评测
- Java忽略返回字段
- 2010年8月9日 流水账
- javaweb校园订餐系统
- two-stage算法一点思考
- 图像去雾算法的原理、实现、效果