gpt4 book ai didi

python - QtUiTools.QUiLoader() 是否由于某种原因需要 QFile 作为输入?

转载 作者:行者123 更新时间:2023-12-01 03:55:26 26 4
gpt4 key购买 nike

我有:

from PySide import QtGui, QtUiTools
<小时/>

有什么区别:

ui_file = QtCore.QFile('my_ui.ui')
ui_file.open(QtCore.QFile.ReadOnly)
my_ui = QtUiTools.QUiLoader().load(ui_file)
ui_file.close()

和:

self.ui = QtUiTools.QUiLoader().load('my_ui.ui')

我这么问是因为后者看起来简单得多,而且它的工作效果似乎与第一段代码一样好。我用谷歌搜索了第一 block 代码,错误地没有正确实现它,但 .ui 文件加载得很好。这让我有点困惑。

最佳答案

查看QUILoader::load的文档,它采用 QIODevice作为第一个参数。 它基本上是一个接口(interface)类,可以处理任何数据 block ,例如 QFile、QBuffer。

quiloader.cpp您可以看到它尝试打开设备并读取其内容。基本上你的第一个解决方案不需要打开文件。

QWidget *QUiLoader::load(QIODevice *device, QWidget *parentWidget)
{
Q_D(QUiLoader);
if (!device->isOpen())
device->open(QIODevice::ReadOnly|QIODevice::Text);
return d->builder.load(device, parentWidget);
}

sourcecode

关于python - QtUiTools.QUiLoader() 是否由于某种原因需要 QFile 作为输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37538612/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com