Qt/PyQt5等QFileDialog打开文件错误提示log4cplus:ERROR

博客主要讨论了在使用PyQt5的QFileDialog时遇到的log4cplus错误提示,该错误不影响功能但会显示大量错误日志。错误源于Autodesk360的AdSyncNamespace.dll动态链接库。解决方案是重命名或移除该文件。此外,博客还提到在源码中未找到相关关键字,并在AdSyncNamespace.dll中发现了log4cplus的相关引用。
摘要由CSDN通过智能技术生成

QFileDialog打开文件错误提示log4cplus:ERROR

PyQt5示例代码

from PyQt5.QtWidgets import QFileDialog, QApplication,QPushButton,QMainWindow
import sys

class QMWXXXX(QMainWindow):
    def __init__(self):
        super(self.__class__, self).__init__()
        bt = QPushButton('getfile')
        self.setCentralWidget(bt)
        bt.clicked.connect(self.getfile)
    def getfile(self, clicked=False):
        name, ok = QFileDialog.getOpenFileName(self, 'open xxxxx')
        if ok:
            print(name)

app = QApplication(sys.argv)
mw = QMWXXXX()
mw.show()
sys.exit(app.exec_())

错误日志信息

错误日志如下,不影响功能,但是影响心情!

log4cplus:ERROR No appenders could be found for logger (AdSyncNamespace).
log4cplus:ERROR Please initialize the log4cplus system properly.
log4cplus:ERROR No appenders could be found for logger (AdSyncNamespace).
log4cplus:ERROR Please initialize the log4cplus system properly.
log4cplus:ERROR No appenders could be found for logger (AdSyncNamespace).
log4cplus:ERROR Please initialize the log4cplus system properly.
log4cplus:ERROR No appenders could be found for logger (AdSyncNamespace).
log4cplus:ERROR Please initialize the log4cplus system properly.
log4cplus:ERROR No appenders could be found for logger (AdSyncNamespace).
log4cplus:ERROR Please initialize the log4cplus system properly.
log4cplus:ERROR No appenders could be found for logger (AdSyncNamespace).
log4cplus:ERROR Please initialize the log4cplus system properly.
log4cplus:ERROR No appenders could be found for logger (AdSyncNamespace).
log4cplus:ERROR Please initialize the log4cplus system properly.
log4cplus:ERROR No appenders could be found for logger (AdSyncNamespace).
log4cplus:ERROR Please initialize the log4cplus system properly.

可能原因

参考链接1
参考链接2

  • Autodesk 360问题: 在Autodesk安装目录下的Autodesk Sync目录下,有 AdSyncNamespace.dll,还有 QtGui_Ad_4.dll, QJson.dll,QtXml_Ad_4.dll 等以Qt开头的dll,可能QT会寻找这些动态链接库。

解决途径

  • 如果安装了Autodesk360,修改 AdSyncNamespace.dll 名称为 AdSyncNamespace.dll.bak等,可抑制上述错误提示
  • 如果未安装Autodesk360,建议安装everything查找本机所有 AdSyncNamespace.* ,并重命名

其他

下载了Qt源码:qt-everywhere-src-5.14.2.zip源码 ,用Xsearch检索源码未发现一下关键字:

  • AdSync
  • log4cplus

用 Notepad++ 打开 Autodesk360 的 AdSyncNamespace.dll ,检索发现8处log4cplus:

  1. isEnabledFor@Logger@log4cplus@@QEBA_NH@Z
  2. forcedLog@Logger@log4cplus@@QEBAXHAEBV
  3. 1Logger@log4cplus@@UEAA@XZ
  4. getInstance@Logger@log4cplus@@SA
  5. Log4CPlusU_Ad_SyncNs_1.dll
  6. 4Logger@log4cplus@@QEAAAEAV01@AEBV01@@Z
  7. 0Logger@log4cplus@@QEAA@XZ
  8. 0LogFinally@SyncFolderManagerLib@Autodesk@@QEAA@PEAVLogger@log4cplus@@VQString@@H@Z
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值