QT-PyQt-PySide-自定义控件错误:找不到名为cairo的库
我一直在尝试给用户界面的某些部分(比如头部和底部)添加一些阴影效果。有人告诉我需要导入或安装PySide(或者PyQt)和QT-PyQt-PySide-Custom-Widgets(我已经安装了PyQt5/6和PySide6)。但是,setGraphicsEffects这个功能似乎不起作用。换句话说,它就像根本没有这个功能一样。不仅如此,当我运行它的时候,还出现了一个操作系统错误:
Traceback (most recent call last):
File "C:\Users\UserPC\OneDrive\Documentos\ProjectSICI\propiedadesmain.py", line 11, in <module>
from Custom_Widgets.Widgets import *
File "C:\Users\UserPC\AppData\Local\Programs\Python\Python311\Lib\site-packages\Custom_Widgets\__init__.py", line 12, in <module>
from Custom_Widgets.Qss.SvgToPngIcons import NewIconsGenerator
File "C:\Users\UserPC\AppData\Local\Programs\Python\Python311\Lib\site-packages\Custom_Widgets\Qss\SvgToPngIcons.py", line 22, in <module>
import cairosvg
File "C:\Users\UserPC\AppData\Local\Programs\Python\Python311\Lib\site-packages\cairosvg\__init__.py", line 26, in <module>
from . import surface # noqa isort:skip
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\UserPC\AppData\Local\Programs\Python\Python311\Lib\site-packages\cairosvg\surface.py", line 9, in <module>
import cairocffi as cairo
File "C:\Users\UserPC\AppData\Local\Programs\Python\Python311\Lib\site-packages\cairocffi\__init__.py", line 47, in <module>
cairo = dlopen(
^^^^^^^
File "C:\Users\UserPC\AppData\Local\Programs\Python\Python311\Lib\site-packages\cairocffi\__init__.py", line 44, in dlopen
raise OSError(error_message) # pragma: no cover
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: no library called "cairo-2" was found
no library called "cairo" was found
no library called "libcairo-2" was found
cannot load library 'libcairo.so.2': error 0x7e. Additionally, ctypes.util.find_library() did not manage to locate a library called 'libcairo.so.2'
cannot load library 'libcairo.2.dylib': error 0x7e. Additionally, ctypes.util.find_library() did not manage to locate a library called 'libcairo.2.dylib'
cannot load library 'libcairo-2.dll': error 0x7e. Additionally, ctypes.util.find_library() did not manage to locate a library called 'libcairo-2.dll'
这是整个文件的脚本,供参考:
import os
import sys
import csv
from propiedades import *
# from PyQt5 import QtCore, QtGui, QtWidgets
# from PyQt5.QtWidgets import QApplication, QMainWindow
# from PyQt5.QtGui import *
# from PyQt5.QtCore import *
from Custom_Widgets.Widgets import *
from PySide6.QtGui import *
from PySide6.QtCore import *
from PySide6.QtWidgets import *
from functools import partial
shadow_elements = { "left_menu","frame_3", "frame_5", "header", "frame_8"}
class MainWindow(QMainWindow):
def __init__(self,parent=None):
QMainWindow.__init__(self)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.setMinimumSize(850,600)
loadJsonStyle(self, self.ui)
for x in shadow_elements:
effect = QtWidgets.QGraphicsDropShadowEffect(self)
effect.setBlurRadius(18)
effect.setXOffset(0)
effect.setYOffset(0)
effect.setColor(QColor(0,0,0,255))
getattr(self.ui,x).setGraphicsEffect(effect)
self.show()
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
window = QMainWindow()
window.show()
sys.exit(app.exec_())
我是不是漏掉了什么?这和QT-PyQt-PySide-Custom-Widgets有关吗?请注意,我使用的是Python 3.11。我尝试过使用Python 3.12,但PyQt6的工具不支持这个版本。
0 个回答
暂无回答