如何在不释放鼠标按钮的情况下更改所选文本

How to change selected text without mouse button release

本文关键字:情况下 文本 按钮 释放 鼠标      更新时间:2023-10-16

我正在使用QT创建者编写小型c++应用程序,我有一个问题,我想从任何应用程序中选择文本,我使用这个QClipboard库(SIGNAL(selectionChanged())),但它不能正常工作,我正在获得选定的文本,但只有在我释放鼠标按钮之后。我想在没有鼠标按钮的情况下获得"实时"选定文本。有什么简单的方法吗?

首先你需要添加这个头文件:QClipboard

然后……

connect(qApp->clipboard, SIGNAL(selectionChanged), this, SLOT(your_slot()));
void your_slot() {
    QClipboard *clipboard = QApplication::clipboard();
    clipboard->setText(qApp->clipboard->text());
}

http://doc.qt.io/qt-5/qclipboard.html#selectionChanged

看起来只支持X11,比如Linux。

如果你对实时跟踪程序中的鼠标选择感兴趣,你可以直接查看鼠标事件或键盘事件,或者富文本处理框架(QTextCursor)。

你也可以发送一个copy呼叫,而鼠标是在一个定时器,然后看看dataChanged信号。

希望对你有帮助。

相关文章: