首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Qt中,如何将QString注册到系统的剪贴板,包括引用的和非引用的?

在Qt中,如何将QString注册到系统的剪贴板,包括引用的和非引用的?
EN

Stack Overflow用户
提问于 2016-11-05 08:01:54
回答 1查看 4.6K关注 0票数 0

如果我想在剪贴板中引用字符串:

代码语言:javascript
运行
复制
qDebug() << QString("Boat\nProgramming");

然后复制输出:

代码语言:javascript
运行
复制
"Boat\nProgramming"

如果我希望剪贴板中有一个没有引号的字符串:

代码语言:javascript
运行
复制
qDebug().noquote() << QString("Boat\nProgramming");

然后复制输出:

代码语言:javascript
运行
复制
Boat
Programming

在Qt中,将引用和非引用字符串注册到我的Ubuntu系统剪贴板的正确方式是什么?

背景/实用程序:

我已经构建了一个命令行应用程序,为调试目的,我偶尔需要将字符串转储到网站的字符串解释器(如果您关心的话,从文本到语音)。将其转储到剪贴板,而不是手动突出显示文本、复制和粘贴,确实改善了我的工作流程。

EN

回答 1

Stack Overflow用户

发布于 2016-11-05 10:44:36

下面是我实现的一个非常简单的解决方案:

代码语言:javascript
运行
复制
// #include <QCoreApplication>
// I had to swap to QGuiApplication to get the clipboard functionality.
#include <QGuiApplication>
#include <QClipboard>
#include "whatever.h"

int main(int argc, char *argv[])
{
    QGuiApplication a(argc, argv);
    a.clipboard()->setText(QString("Boat\nProgramming")); // Quoted
    a.clipboard()->setText(QString("Boat\nProgramming")   // Non-Quoted
                           .replace("\n","\\n")
                           .replace("\t","\\t"));

    return 0;
}

正如所建议的,这些不是严格保护的函数,而是用于小字符串的基本解决方案。在我的情况下是临时的,完全用于调试目的。请阅读他的文章,因为他提供了避免代码注入和其他安全风险的最佳实践。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40436045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档