首页 > 其他分享 >Qt之菜单栏中的剪切、拷贝、粘贴

Qt之菜单栏中的剪切、拷贝、粘贴

时间:2022-11-01 23:47:05浏览次数:59  
标签:addAction Qt pasteAct QAction 菜单栏 cutAct connect copyAct 粘贴

今天来实现一下记事本中的剪切、拷贝、粘贴等功能

一、添加菜单栏

   QMenu *editMenu = menuBar()->addMenu("Edit");
    QToolBar *editToolBar = addToolBar("Edit");

    QAction *cutAct = new QAction(QIcon(":/images/cut.png"), "Cut", this);

    cutAct->setShortcuts(QKeySequence::Cut);
    cutAct->setStatusTip(tr("Cut the current selection's contents to the "
                            "clipboard"));
    connect(cutAct, &QAction::triggered, textEdit, &QPlainTextEdit::cut);
    editMenu->addAction(cutAct);
    editToolBar->addAction(cutAct);

    QAction *copyAct = new QAction(QIcon(":/images/copy.png"), "Copy", this);
    copyAct->setShortcuts(QKeySequence::Copy);
    copyAct->setStatusTip("Copy the current selection's contents to the "
                            "clipboard");
    connect(copyAct, &QAction::triggered, textEdit, &QPlainTextEdit::copy);
    editMenu->addAction(copyAct);
    editToolBar->addAction(copyAct);

    QAction *pasteAct = new QAction(QIcon(":/images/paste.png"), "Paste", this);
    pasteAct->setShortcuts(QKeySequence::Paste);
    pasteAct->setStatusTip("Paste the clipboard's contents into the current "
                              "selection");
    connect(pasteAct, &QAction::triggered, textEdit, &QPlainTextEdit::paste);
    editMenu->addAction(pasteAct);
    editToolBar->addAction(pasteAct);

    menuBar()->addSeparator();

    QMenu *helpMenu = menuBar()->addMenu("Help");
    QAction *aboutAct = helpMenu->addAction("&About", this, &MainWindow::about);
    aboutAct->setStatusTip("Show the application's About box");

    QAction *aboutQtAct = helpMenu->addAction("About &Qt", qApp, &QApplication::aboutQt);
    aboutQtAct->setStatusTip("Show the Qt library's About box");

    cutAct->setEnabled(false);
    copyAct->setEnabled(false);
    connect(textEdit, &QPlainTextEdit::copyAvailable, cutAct, &QAction::setEnabled);
    connect(textEdit, &QPlainTextEdit::copyAvailable, copyAct, &QAction::setEnabled);
    
    //创建状态栏
    statusBar()->showMessage(tr("Ready"));

 

标签:addAction,Qt,pasteAct,QAction,菜单栏,cutAct,connect,copyAct,粘贴
From: https://www.cnblogs.com/QingYiShouJiuRen/p/16849584.html

相关文章

  • Qt之菜单栏中文件的写入、打开、保存
    在常见的记事本中,通常都有打开文件,写入文件、保存文件等功能,今天就用Qt来写一下记事本的打开、写入、保存等功能一、创建菜单栏QMenu*fileMenu=menuBar()->addMe......
  • Qt执行耗时操作导致界面卡顿的三种解决办法
    1.问题描述Qt界面程序开发中,会遇到执行耗时操作时,导致界面卡顿。原因是界面主线程是单线程,如果在UI主线程中执行耗时操作,例如点击按钮,响应函数去数据库查询数据,数据量比较......
  • Qt编写本地摄像头综合应用示例(qcamera/ffmpeg/v4l2等)
    一、功能特点同时支持qcamera、ffmpeg、v4l2三种内核解析本地摄像头。提供函数findCamera自动搜索环境中的所有本地摄像头设备,搜索结果信号发出。支持自动搜索和指......
  • 【QT】创建动态链接库及使用
    创建动态链接库创建一个项目选择library的C++库,下一步。选择共享库,输入动态库的名字,选择创建路径,下一步选择编译环境,下一步选择QTCore模块,该模块提供核心的非图......
  • Qt+VLC简单的使用显示视频Demo
    先看看效果: vlc播放视频,要比QMediaPlayer实用的多,并且同时运行20个视频时不会出现卡顿。 这个Demo功能实现非常简单,简单的说一下vlc流程:1、创建并初始化一个libvlc实例LI......
  • Qt检测U盘插入拔出Demo
    要做这个,要先知道Qt的QAbstractNativeEventFilter类,虚函数nativeEventFilter。这个类的主要作用是捕获全局windows消息。先看一下效果:基本注意以下两点:1、新建的类要继承QAb......
  • Qt5.6作浏览器Demo可查看地图
    这里用到了ui提升部件的小方法,记得设置控件为Microsoft webbrowser,先看看效果:用到ui里面的QAxWidget控件,用以下这个类来提升这个控件。#include<ActiveQt/QAxWidget>#inc......
  • Qt用Poppler库解析PDF成图片的简单示例
    解析PDF这里用的是Poppler库,与之相关的库还有MuPDF库,参考了这个链接:​​https://people.freedesktop.org/~aacid/docs/qt5/​​相关链接:​​qt显示pdf——poppler-qt问题​......
  • Qt对Json的生成与解析Demo
    QJsonObject类用于封装JSON对象。JSON对象是键值对,其中键是唯一的字符串,其值由QJsonValue代表。一个QJsonObject可以从QVariantMap转换/被转换。QJsonArray类用于封装JSON数......
  • Qt创建和删除文件小Demo(顺便讲了补全功能)
    背景:笔者需要创建和删除多个pdd和多个pff文件(这些是自己创建的类型),一个个手动创建和删除很麻烦,就做了一款小软件解决此问题。先看一下效果:代码如下:①、头文件:#ifndefMAINWI......