python - QPainter.drawText 输出模糊
问题描述
我正在尝试使用QPainter
's创建一个系统托盘图标来显示一个字符串(“Hello world!”在下面的代码片段中) drawText
。问题是文本不清晰,而且相当模糊(如果相关的话,我有一个 HiDPI 监视器)。这是我的系统托盘的屏幕截图(将日期/时间与“Hello world”进行比较)。
这是生成系统托盘图标的代码。
AR = 2
height = 256
pixmap = QtGui.QPixmap(height*AR, height)
pixmap.fill(QtCore.Qt.transparent)
font = QtGui.QFont()
font.setPixelSize(height/2)
font.setStretch(int(100/AR)) # %, otherwise label will be stretched
painter = QtGui.QPainter(pixmap)
painter.setFont(font)
painter.setPen(QtGui.QColor("white"))
painter.drawText(pixmap.rect(), QtCore.Qt.AlignVCenter, "Hello world!")
painter.end()
icon = QtGui.QIcon()
icon.addPixmap(pixmap)
编辑 1:创建后,图标将在以下上下文中使用:
QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps)
app = QApplication(sys.argv)
trayIcon = QSystemTrayIcon(icon)
trayIcon.show()
sys.exit(app.exec_())
编辑2:这里有一些附加信息:
- 操作系统:Ubuntu 20.04
- PyQt5 来源:https ://anaconda.org/conda-forge/pyqt/
- PyQt5 版本:5.12.3
如何使文本看起来更清晰?非常感谢!
解决方案
推荐阅读
- html - 第n个孩子食谱
- python - tensorflow TFRecord k-hot 编码
- keras - Python - RNN LSTM 模型准确率低
- oracle - 如何使用不带参数的oracle存储过程在表中插入多行
- linux - Symfony 文件权限问题
- mysql - 慢 sql 查询 - 超过 15000 毫秒 - 简单的 SELECT 查询,CPU 超过 100%
- ruby-on-rails - ruby on rails 中的搜索框不显示分页结果
- c++ - 使用函数模板参数作为类模板参数?
- regex - 用重定向替换链接
- pentaho - 使用 Pentaho Spoon 插入带有条件的行