gpt4 book ai didi

linux - 如何用PyQt4查看DISPLAY是否可以打开?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:39 30 4
gpt4 key购买 nike

我想测试在运行可选使用 PyQt4 的程序时图形界面是否可用。如果我这样做

$ DISPLAY= python
>>> import PyQt4.QtGui
>>> PyQt4.QtGui.QApplication()
: cannot connect to X server

python 崩溃($?=1)。

检查 DISPLAY 环境变量是不够的(值可能无效,XAuth 可能失败等)

使用 PyQt4 检测显示功能异常的正确方法是什么?


我目前的方法有点乱(我想避免使用 python-xlib ,因为它似乎没有被维护):

import XLib.display:
XLib.display._BaseDisplay()
# display was opened fine, PyQt4 won't crash
except:
# don't use PyQt4 since display had some error

最佳答案

既然 Qt 坚持要让进程崩溃,你可以在另一个进程中做一个测试:

import subprocess, time, sys
p = subprocess.Popen(sys.executable, stdin=subprocess.PIPE)
p.stdin.write('from PyQt4 import QtGui\napp = QtGui.QApplication([])\n')
p.stdin.close()
time.sleep(0.1)
if p.poll() != 0:
try:
p.terminate()
except OSError:
pass
print "No X server"
else:
print "X ok"

如果是网络 X 连接,超时时间可能太短。

关于linux - 如何用PyQt4查看DISPLAY是否可以打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11383538/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com