python - Python 脚本不能在 Ubuntu 上运行
问题描述
我在我的 Windows PC 上编写了一个 Python 3 脚本,并希望在我的 Ubuntu PC 上也有它。此脚本创建一个启用了 Clickthrough 的 PyQt5 无边框窗口。除了包含单个图像的标签(标记为 GreenRGB.png)之外,该窗口应该是透明的。但是,PyQt5 窗口没有出现。为什么,如果你愿意,我该如何解决这个问题?
我的代码
import sys
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap, QIcon
from PyQt5.QtWidgets import *
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.acceptDrops()
# set the title
self.setWindowTitle("RGB Corners")
# creating label
self.label = QLabel(self)
# loading image
self.pixmap = QPixmap('greenRGB.png')
# adding image to label
self.label.setPixmap(self.pixmap)
# Optional, resize label to image size
self.label.resize(self.pixmap.width(), self.pixmap.height())
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.setWindowFlags(QtCore.Qt.Tool)
self.setAttribute(Qt.WA_TranslucentBackground)
self.setAttribute(Qt.WA_TransparentForMouseEvents, True)
self.setAttribute(Qt.WA_NoChildEventsForParent, True)
self.setWindowFlags(Qt.Window|Qt.X11BypassWindowManagerHint|Qt.WindowStaysOnTopHint|Qt.FramelessWindowHint|QtCore.Qt.Tool)
# show all the widgets
self.show()
self.showMaximized()
App = QApplication(sys.argv)
window = Window()
windows = QtWidgets.QWidget()
trayIcon = QSystemTrayIcon(QIcon('test.png'), parent=App)
trayIcon.setToolTip('RGB Corners')
trayIcon.show()
trayMenu = QMenu()
exitAction = trayMenu.addAction('Exit')
exitAction.triggered.connect(App.quit)
trayIcon.setContextMenu(trayMenu)
sys.exit(App.exec())
PyQt5.12.8 是我安装的版本。经过进一步检查,窗口被创建,并且明显地显示出来。PyCharm 中没有错误,程序不会崩溃。我想 Ubuntu 无法正确绘制这些。我安装的主题没有问题,因为默认Yaru
主题有同样的问题。经过进一步检查,导致它不显示的行是这样的:self.setWindowFlags(QtCore.Qt.Tool)
。
解决方案
我为你所有的麻烦感到抱歉。错误就在self.setWindowFlags(QtCore.Qt.Tool)
我不知道为什么会破坏它的行中,但我评论了它(将删除它)并且它得到了修复。但是,这样做后,标签将无法正确调整大小,并且总是太小。我想这是另一个问题。
推荐阅读
- .htaccess - 使用正则表达式调整 htaccess 重定向匹配中的查询字符串时出现问题
- java - 无法使用“TextToSpeech.speak()”方法
- twilio - 将呼叫从 SIP 中继转移到 Twiml 应用程序
- javascript - 如何根据下拉列表选择的值创建图像?
- ruby-on-rails - 对 Ruby on Rails 应用程序进行地理围栏
- heroku - 在 Heroku 上托管 VPN
- neo4j - 匹配前取消大写字符串
- python - 在python tkinter中更改不同字母的颜色
- nginx - nginx process = 404 如何在try_files中回退
- ios - 如何验证自定义 Eureka 行中的文本字段等对象?