Python 脚本没有 运行 Ubuntu
Python script doesn't run on Ubuntu
我已经在我的 Windows PC 上编写了一个 Python 3 脚本,我也想在我的 Ubuntu PC 上安装它。此脚本创建一个启用了点击率的 PyQt5 Borderless window。除了包含单个图像的标签 GreenRGB.png 之外,window 应该是透明的。但是,PyQt5 Window 没有出现。为什么,如果你愿意,我该如何解决这个问题?
我的代码
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是我安装的版本。进一步检查后, window 被创建,并且显然显示出来。 PyCharm 中没有错误,程序也没有崩溃。我想 Ubuntu 无法正确绘制这些。我安装的主题没有问题,因为默认的 Yaru
主题有同样的问题。进一步查看,导致不显示的行是这样的:self.setWindowFlags(QtCore.Qt.Tool)
.
对于给您带来的所有麻烦,我深表歉意。该错误在行 self.setWindowFlags(QtCore.Qt.Tool)
我不知道为什么会破坏它,但我评论了它(将删除它)并且它得到了修复。但是,这样做后,标签将无法正确调整大小,而且总是太小。我想那是另一个问题。
我已经在我的 Windows PC 上编写了一个 Python 3 脚本,我也想在我的 Ubuntu PC 上安装它。此脚本创建一个启用了点击率的 PyQt5 Borderless window。除了包含单个图像的标签 GreenRGB.png 之外,window 应该是透明的。但是,PyQt5 Window 没有出现。为什么,如果你愿意,我该如何解决这个问题?
我的代码
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是我安装的版本。进一步检查后, window 被创建,并且显然显示出来。 PyCharm 中没有错误,程序也没有崩溃。我想 Ubuntu 无法正确绘制这些。我安装的主题没有问题,因为默认的 Yaru
主题有同样的问题。进一步查看,导致不显示的行是这样的:self.setWindowFlags(QtCore.Qt.Tool)
.
对于给您带来的所有麻烦,我深表歉意。该错误在行 self.setWindowFlags(QtCore.Qt.Tool)
我不知道为什么会破坏它,但我评论了它(将删除它)并且它得到了修复。但是,这样做后,标签将无法正确调整大小,而且总是太小。我想那是另一个问题。