gpt4 book ai didi

c++ - QClipboard 和 selectedText() 在 QTextEdit 中不相等

转载 作者:行者123 更新时间:2023-11-28 05:21:32 26 4
gpt4 key购买 nike

我正在 QTextEdit 中做一些事情。我为 QClipboard::changed() 信号写了一个插槽。在插槽中,我如何判断剪贴板中的文本是否来 self 的应用程序(而不是来自外部其他应用程序)?

我的解决方案是比较剪贴板中的文本和选中的文本:

mimeData->text() == textCursor()->selectedText()

但是,我发现,当我选择多行并复制时。 selectedText()\n 处理为 0mimeData 将其处理为 \n(即 10)。所以 mimeData->text() != textCursor()->selectedText()

顺便问一下,QClipboard::ownsClipboard() 是什么意思?是我要找的吗?

有什么帮助吗?谢谢!

最佳答案

根据文档:

bool QClipboard::ownsClipboard() const

Returns true if this clipboard object owns the clipboard data; otherwise returns false.

这就是您要找的。

clipboard = QApplication::clipboard();
connect(clipboard, SIGNAL(changed(QClipboard::Mode)), this, SLOT(your_slot()));

插槽:

void {your class}::your_slot()
{
if(clipboard->ownsClipboard())
qDebug()<< "own";
else
qDebug()<< "not his own";
}

documentation 转录的 selectedText()

Returns the current selection's text (which may be empty). This only returns the text, with no rich text formatting information. If you want a document fragment (i.e. formatted rich text) use selection() instead.

Note: If the selection obtained from an editor spans a line break, the text will contain a Unicode U+2029 paragraph separator character instead of a newline \n character. Use QString::replace() to replace these characters with newlines.

关于c++ - QClipboard 和 selectedText() 在 QTextEdit 中不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41406248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com