在 setMimeData 之后粘贴会导致 Macbook 挂起

问题描述 投票:0回答:1

我在 MacOS 上使用 Qt 6.5(尽管 Qt 5.15 也有同样的问题)。我使用

QClipboard::setMimeData
粘贴到剪贴板。然后我可以使用
QClipboard::mimeData
检索数据。但是,如果我尝试使用 Ctrl+V(在 Kitty 中)或 Cmd+V(在任何其他应用程序中)进行粘贴,则会出现“旋转沙滩球”,直到我杀死
./a.out

如果我只按“编辑”菜单,也会发生这种情况。

如果

a.out
正在运行,并且我复制其他内容,粘贴将按预期工作。

如果重要的话,我不会将 char 数据转换为 QString 和 QByteArray,而是直接将它们作为 char 数组传递。尽管如果我显式转换,这确实会发生:

mime->setData(QString::fromUtf8(sel.formats[i].name,-1),QByteArray::fromRawData(sel.formats[i].data,strlen(sel.formats[i].data)));

c++ macos qt clipboard
1个回答
0
投票

啊,找到问题了:我用的是

sleep
而不是
app.exec()

© www.soinside.com 2019 - 2024. All rights reserved.