QT-PyQt-PySide-自定义控件错误:找不到名为cairo的库

0 投票
0 回答
22 浏览
提问于 2025-04-12 04:52

我一直在尝试给用户界面的某些部分(比如头部和底部)添加一些阴影效果。有人告诉我需要导入或安装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 个回答

暂无回答

撰写回答