如何从无效的QUrl实例获取源QString实例?

时间:2017-06-21 07:15:56

标签: qt pyqt qt4 qt5

我构建了一个 QUrl 实例,如下所示。

enter image description here

以下是 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 实例中获取源字符串。

0 个答案:

没有答案