qml获取剪贴板内容

一、解决办法 

        最近在做一个小项目,其中有一项功能是需要获取当前剪贴板上的内容,从而帮助用户快速处理这个内容。

        这个功能的方便之处在于,用户不需要在别的地方 Ctrl + C 了之后,又要点击程序里的输入框,然后再按一次 Ctrl + V。这样比较麻烦,而且用户有时候可能都点击到输入框里了,一不小心又按了一次 Ctrl + C,完蛋!又要去原来的界面去 Ctrl + C了。。。。

        所以,我的想法是,在输入框的旁边放一个名为 “快速粘贴内容到此” 的按钮,只需要用户在别的地方 Ctrl + C 了之后,打开程序,然后点击这个按钮,内容就直接进输入框啦!

        这个功能在Qt里实现很简单,只需要导入<QClipboard>类就可以了,但是qml里它没有。。。。然后我去网上查阅了很多资料,要不就是扯淡,要不极其复杂。

        实际上qml自身就有实现办法,那就是 TextEdit 控件中自带的方法 paste() !

        点进去看下具体介绍:

 

        这句英文的意思是:用系统剪贴板的内容替换当前选定的文本。这不正是我们想要实现的嘛!

       在Qt助手的文档中,通过索引我们可以看到有2个控件支持 paste() 方法。一个是 TextEdit,一个是 TextInput。

  

二、代码演示 

        下面用一段简单的代码演示一下使用方式:

import QtQuick
import QtQuick.Controls

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    TextEdit {
        id: te
        width: 100
        height: 50
        wrapMode: TextEdit.Wrap
    }

    Button {
        x: 200
        width: 100
        height: 40
        text: "paste"
        onClicked: {
            te.paste()
        }
    }

    Button {
        x: 200
        y: 50
        width: 100
        height: 40
        text: "clear"
        onClicked: {
            te.clear()
        }
    }
}

         运行效果:

        这里我们在左上角放了一个 TextEdit,然后右侧放了2个按钮,一个粘贴,一个清空。然后我随便复制了一些文本,接着点击右侧的 paste 按钮,文本内容就直接进 TextEdit里啦!

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵呜角角

如果对你有所帮助,哪怕1毛钱~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值