QT 控件等如何实现复制与粘贴的功能?(QClipboard)

这篇博客介绍了如何在Qt环境中使用QMenu创建复制和粘贴操作。通过创建QMenu,添加相应动作并连接槽函数,实现了菜单项的启用和禁用根据剪贴板内容变化的功能。此外,详细说明了复制和粘贴操作的实现,包括设置剪贴板内容以及监听剪贴板数据变化以更新粘贴按钮的状态。
摘要由CSDN通过智能技术生成

这里用QMenu菜单栏来展示示例一下:

 QMenu *m_ProgramBtnGroupMenu;
 QAction *m_CopyEffectAction;

添加操作:

    m_ProgramBtnGroupMenu = new QMenu(this);
    m_ProgramBtnGroupMenu->addAction(tr("复制"), this, SLOT(slotProgramGroupCopy()));
    m_CopyEffectAction = m_ProgramBtnGroupMenu->addAction(tr("粘贴"), this, SLOT(slotProgramGroupPost()));
    m_CopyEffectAction->setEnabled(false);//加这句了,没复制之前,粘贴是灰色的
    //在这里面恢复粘贴按钮的可操作
    connect(QApplication::clipboard(),SIGNAL(dataChanged()), this, SLOT(slotClipDataChange()));
void LightEditWidget::slotClipDataChange()
{
    QClipboard* clipboard = QApplication::clipboard();
    if(clipboard->text().isEmpty()){
        m_CopyEffectAction->setEnabled(false);
    }else{
        m_CopyEffectAction->setEnabled(true);
    }
}

复制:

    QClipboard* clipboard = QApplication::clipboard();
    int iSelectProgramIndex = m_iProgramBtnIndex;
    int iStep = m_iCurStep;
    QString sText = QString("%1%2").arg(iSelectProgramIndex).arg(iStep);
    clipboard->setText(sText);//这里写进去的内容就是后面粘贴的内容,自己按自己的需求来

获取粘贴板的内容:

 QClipboard* clipboard = QApplication::clipboard();
 QString sText = clipboard->text(QClipboard::Clipboard);

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

咸鱼2333号程序员

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值