qclipboard将图像发送到系统剪贴板

时间:2013-01-16 14:03:57

标签: qt clipboard

当我尝试将图像复制到系统剪贴板(然后我可以将其粘贴到ms-word文档中)时,下面的代码失败了,不知道为什么,即使我尝试使用settext,它也失败了。我知道为什么。

QApplication::clipboard()->setPixmap(
        QPixmap("d://20121001154504.png"),
        QClipboard::Clipboard);

2 个答案:

答案 0 :(得分:2)

首先read documentation(使用QImage而不是QPixmap)。然后验证图像是否已正确加载。

QImage image("d://20121001154504.png");
Q_ASSERT(!image.isNull());
QApplication::clipboard()->setImage(image, QClipboard::Clipboard);

答案 1 :(得分:0)

我尝试了你的代码(当然是我的图片路径)并且有下一个结果:

当我通过调试器传递此行时(在MSVC中跳过或F10),切换到ms-word并尝试粘贴图像 - 我什么也没得到。

当我在没有调试器的情况下运行程序时 - 我得到了一个合适的结果 - 图像被粘贴在文档中。

#include <QtGui/QApplication>
#include <QClipboard>
#include <QPixmap>

int main( int argc, char * argv[] )
{   
    QApplication a( argc, argv );

    QApplication::clipboard()->setPixmap( QPixmap( "path to my png" ) );
    // if you'll stop here in debugger, you'll have no result

    return a.exec();
}