【问题标题】:copy qt scene to clipboard as a PowerPoint object将 qt 场景作为 PowerPoint 对象复制到剪贴板
【发布时间】:2013-09-11 07:57:26
【问题描述】:

我想知道是否有人知道将 qt 场景复制到剪贴板然后能够将其作为分组对象粘贴到 word 中的第一件事。我的场景中只有图形文本项、椭圆和线条。它似乎可以制成形状、线条和文本,可以作为一个组粘贴到 PowerPoint 中。我不知道从哪里开始!有任何想法吗?谢谢!

【问题讨论】:

    标签: qt powerpoint


    【解决方案1】:

    我会通过两种方式来解决这个问题:

    从系统角度和 office sdk 角度。

    从系统的角度来看,您正在谈论剪贴板、mime 类型以及剪贴板中存储的确切内容。

    从 office sdk 的角度来看,您是在谈论它如何存储预渲染的元素。

    快速浏览一下,我在 MS Office SDK 中找到了以下信息:

    http://msdn.microsoft.com/en-US/library/office/gg278315

    http://msdn.microsoft.com/en-US/library/office/cc850847

    这在剪贴板管理器上:

    http://en.wikipedia.org/wiki/Clipboard_manager

    这是与剪贴板的 Qt 连接:

    http://qt-project.org/doc/qt-4.8/qclipboard.html#details

    现在……从那开始,我写了一小段代码:

    我在 MainWindow UI 表单中添加了 QPushButtonQTextEdit。然后我走到按钮的插槽并输入以下内容:

    void MainWindow::on_pushButton_clicked()
    {
        ui->textEdit->clear();
        QClipboard *c = QApplication::clipboard();
        foreach(QString format, c->mimeData()->formats())
        {
            ui->textEdit->append(format);
            ui->textEdit->append(c->mimeData()->data(format));
        }
        ui->textEdit->append("done");
    }
    

    我从 Office 2010 的 PowerPoint 中复制了一个椭圆和一个矩形,

    然后在我的程序中使用了按钮。这是它给我的输出:

    application/x-qt-windows-mime;value="Preferred DropEffect"
    
    application/x-qt-windows-mime;value="InShellDragLoop"
    
    application/x-qt-windows-mime;value="PowerPoint 12.0 Internal Shapes"
    ÀN
    application/x-qt-windows-mime;value="Object Descriptor"
    j
    application/x-qt-windows-mime;value="Art::GVML ClipFormat"
    PK
    application/x-qt-windows-mime;value="PNG"
    PNG
    
    
    application/x-qt-image
    
    application/x-qt-windows-mime;value="JFIF"
    ÿØÿà
    application/x-qt-windows-mime;value="GIF"
    GIF89aã
    application/x-qt-windows-mime;value="PowerPoint 12.0 Internal Theme"
    Hý©
    application/x-qt-windows-mime;value="PowerPoint 12.0 Internal Color Scheme"
    Pý©
    done
    

    所以它应该是可行的,但你需要弄清楚它们在可读明文之间编码的一些东西是什么。

    希望对您有所帮助。

    PS 尝试将 Qt 元素保存为 SVG 对象或剪贴板上的其他图像可能会更好。

    【讨论】:

    • 这太棒了!我一直在搜索,但找不到任何关于正在编码的内容。我可能会接受你对不同对象的建议。我想我想在剪贴板上放一个元文件。有这种可能吗?
    • QClipboard 类应该能让你做很多不同的事情。阅读文档并尝试一下。看看你能用它做什么。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 2017-12-02
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    相关资源
    最近更新 更多