没有人感兴趣,所以让我尝试.

只是在同一页面上:

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吞噬信号事件相关推荐

  1. python主循环方法mainloop_Python:Tkinter:为什么是root.mainloop()而不是app.mainloop()...

    我像你看到的那样测试了两个: 一个是用"app"+".pack()"编写的,一个是调用"mainframe"+".grid()&q ...

  2. python主循环方法mainloop_海龟图形Python,.mainloop()

    ^{bq}$ 海龟的mainloop()称为tkinter的mainloop(),而Tk的{}非常简单:void Tk_MainLoop(void) { while (Tk_GetNumMainWin ...

  3. python时间间隔循环_python循环间隔

    广告关闭 回望2020,你在技术之路上,有什么收获和成长么?对于未来,你有什么期待么?云+社区年度征文,各种定制好礼等你! 序言如图1.1中关于如何用python去计算两个时间(年月日)相隔多少天,简 ...

  4. python退出循环快捷_python退出循环的方法

    break 语句 Python break语句,就像在C语言中,打破了最小封闭for或while循环. break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执 ...

  5. python最快的循环方法_【转】【Python效率】五种Pandas循环方法效率对比

    [Python效率]五种Pandas循环方法效率对比 - 文兄的文章 - 知乎 https://zhuanlan.zhihu.com/p/80880493 正文: 如果你使用过Python及Panda ...

  6. python的for语句写新的字符串_python写for循环python字符串排序方法

    一般情况下,python中对一个字符串排序相当麻烦: 一.python中的字符串类型是不允许直接改变元素的.必须先把要排序的字符串放在容器里,如list. 二.python中的list容器的sort( ...

  7. 循环下标_【转】【Python效率】五种Pandas循环方法效率对比

    [Python效率]五种Pandas循环方法效率对比 - 文兄的文章 - 知乎 https://zhuanlan.zhihu.com/p/80880493 正文: 如果你使用过Python及Panda ...

  8. python怎么打开h5文件_python中利用h5py模块读取h5文件中的主键方法

    如下所示: import h5py import numpy as np #HDF5的写入: imgData = np.zeros((2,4)) f = h5py.File('HDF5_FILE.h5 ...

  9. python:open()方法+循环语句 练习

    python:open()方法+循环语句 练习 1.以二进制的方式去读1.jpg 2.以二进制的方式去写2.jpg 以二进制的方式去读1.jpg ,代码如下 file_obj1 = open(&quo ...

最新文章

  1. 完美解决mysql下utf-8的乱码问题
  2. 成功解决attrs = config.__dict__['__flags'] KeyError: '__flags
  3. android标题栏添加按钮_[办公小技巧]Excel 添加页码,自定义和指定单元格页码添加...
  4. redis 零散知识
  5. stm32cubeide外部中断_【STM32】HAL库 STM32CubeMX教程三----外部中断(HAL库GPIO讲解)
  6. 第二节JVM JRE 和JDK介绍
  7. 关于insert语句的插入问题
  8. matlab邻域平均,数字图像处理邻域平均法滤波实验报告matlab实现
  9. C#_自动化测试3_controll IE
  10. C# 最简单的全局键盘鼠标钩子
  11. 看完这20部电影,你可以去全球任何一家公司做董事长或总经理
  12. 计算机组装系统安装系统,刚组装电脑怎么装系统?
  13. 宽带速率单位《Mbps-MBps/换算》
  14. 直流电机笔记1-串并励电机特性
  15. 3配置的笔记本能不能运行博图v15_运维便携口袋笔记本:壹号本工程师PC评测
  16. Java忽略返回字段
  17. 2010年8月9日 流水账
  18. javaweb校园订餐系统
  19. two-stage算法一点思考
  20. 图像去雾算法的原理、实现、效果

热门文章

  1. Swing应用程序中的JavaFX 8 DatePicker
  2. 使用Java 8在地图上流式传输
  3. 快速检查REST API是否有效的方法-从清单文件中获取详细信息
  4. 自动装箱,拆箱和NoSuchMethodError
  5. Elasticsearch-kopf导览
  6. Spring集成–使用RMI通道适配器
  7. 休眠事实:了解刷新操作顺序很重要
  8. TeamCity构建依赖项
  9. python训练营朋友圈留言_用Python发一个高逼格的朋友圈【附代码】
  10. mysql设计一个简单的系统_一个简单数据库设计例子