QClipboard 类的性能问题

问题描述

我有一个 QClipboard 实例,我想在用户单击应用程序中的某处时将数据转移到它。似乎 QClipboard 有时会出现性能问题,这会导致应用程序冻结,因为数据被放在 linux 的操作系统剪贴板上。

QClipboard* clipboard = QApplication::clipboard();
clipboard->setText(QString("GlorIoUs Text"),QClipboard::Clipboard);

它不会每次都发生,但每五或六次点击它就会冻结几秒钟。所以我真的无法正常复制。

解决方法

https://www.medo64.com/2019/12/copy-to-clipboard-in-qt/ 帮我解决了。

QClipboard* clipboard = QApplication::clipboard();

clipboard->setText(text,QClipboard::Clipboard);

if (clipboard->supportsSelection()) {
    clipboard->setText(text,QClipboard::Selection);
}

#if defined(Q_OS_LINUX)
    QThread::msleep(1); //workaround for copied text not being available...
#endif