我构建了一个 QUrl 实例,如下所示。
以下是 PyQt4 的输出,实际上我使用的是 Qt5 ,但它并未安装在此机器上,所以它只是一个样本代码来证明我的问题。
在 Qt5 中,我想获取来源字符串" test.pro:// account ="从 QUrl 实例中,我该如何实现呢?
我做了什么?
QUrl 类有一个名为 QUrlPrivate 的私有类,其中包含名为错误的结构。 错误结构包含 QString 源,这实际上就是我想要的。但我不知道如何使用 QUrl 的公共API访问它。
感谢您的帮助。
另外:
我在 Mac Os 上使用 PyQt5 。
我想处理Url Scheme。
事实上,在这种情况下, PyQt5 等于 Qt5 。您可以使用 Qt5 进行测试。
Qt 下面有源代码,这意味着它会将 NSString 转换为 QString 并将 QString 转换为< strong> QUrl 并使用此 QUrl 实例构建 QFileOpenEvent ,并向 QFileOpenEvent 实例发送 QApplication 实例
- (void)getUrl:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent
{
[event paramDescriptorForKeyword:keyDirectObject] ;
NSString *urlStr = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
QWindowSystemInterface::handleFileOpenEvent(QUrl(QCFString::toQString(urlString)));
}
在我的 PyQt5 应用中,我重新实现了 QApplication 实例的事件方法。
def event(self, e):
if e.type() == QEvent.FileOpen:
print e.url().toString()
但是我无法获得源字符串&#34; test.pro:// account =&#34;来自 QUrl 。
这是所有背景。
事实上,我想做的工作是在事件处理程序中,所以我想从 QUrl 实例中获取源字符串。