QT-剪贴板操作

剪贴板操作

剪贴板的操作经常和前面所说的拖放技术在一起使用,因此我们现在先来说说剪贴板的相关操作。大家对剪贴板都很熟悉。我们可以简单的把它理解成一个数据的存储池,可以把外面的数据放置进去,也可以把里面的数据取出来。剪贴板是由操作系统维护的,所以这提供了跨应用程序数据交互的一种方式。Qt 已经为我们封装好很多关于剪贴板的操作,因此我们可以在自己的应用中很容易的实现。下面还是从代码开始:

clipboarddemo.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef CLIPBOARDDEMO_H  
#define CLIPBOARDDEMO_H

#include <QtGui/QWidget>

class ClipboardDemo : public QWidget
{
Q_OBJECT

public:
ClipboardDemo(QWidget *parent = 0);

private slots:
void setClipboard();
void getClipboard();
};

#endif // CLIPBOARDDEMO_H

clipboarddemo.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <QtGui>  
#include "clipboarddemo.h"

ClipboardDemo::ClipboardDemo(QWidget *parent)
: QWidget(parent)
{
QVBoxLayout *mainLayout = new QVBoxLayout(this);
QHBoxLayout *northLayout = new QHBoxLayout;
QHBoxLayout *southLayout = new QHBoxLayout;

QTextEdit *editor = new QTextEdit;
QLabel *label = new QLabel;
label->setText("Text Input: ");
label->setBuddy(editor);
QPushButton *copyButton = new QPushButton;
copyButton->setText("Set Clipboard");
QPushButton *pasteButton = new QPushButton;
pasteButton->setText("Get Clipboard");

northLayout->addWidget(label);
northLayout->addWidget(editor);
southLayout->addWidget(copyButton);
southLayout->addWidget(pasteButton);
mainLayout->addLayout(northLayout);
mainLayout->addLayout(southLayout);

connect(copyButton, SIGNAL(clicked()), this, SLOT(setClipboard()));
connect(pasteButton, SIGNAL(clicked()), this, SLOT(getClipboard()));
}

void ClipboardDemo::setClipboard()
{
QClipboard *board = QApplication::clipboard();
board->setText("Text from Qt Application");
}

void ClipboardDemo::getClipboard()
{
QClipboard *board = QApplication::clipboard();
QString str = board->text();
QMessageBox::information(NULL, "From clipboard", str);
}

QT-剪贴板操作
https://macbook-pro-gala.github.io/2023/04/22/QT-剪贴板操作/
作者
lyh
发布于
2023年4月22日
许可协议