Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
clipwindow.cpp
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
4
#
include
<
QtWidgets
>
5
#
include
<
QGuiApplication
>
6
#
include
<
QMimeData
>
7
#
include
<
QClipboard
>
8
9
#
include
"clipwindow.h"
10
11
ClipWindow::ClipWindow(QWidget *parent)
12
: QMainWindow(parent)
13
{
14
clipboard = QGuiApplication::clipboard();
15
16
QWidget *centralWidget =
new
QWidget(
this
);
17
QWidget *currentItem =
new
QWidget(centralWidget);
18
QLabel *mimeTypeLabel =
new
QLabel(tr(
"MIME types:"
), currentItem);
19
mimeTypeCombo =
new
QComboBox(currentItem);
20
QLabel *dataLabel =
new
QLabel(tr(
"Data:"
), currentItem);
21
dataInfoLabel =
new
QLabel(
""
, currentItem);
22
23
previousItems =
new
QListWidget(centralWidget);
24
25
//! [0]
26
connect(clipboard, &QClipboard::dataChanged,
27
this
, &ClipWindow::updateClipboard);
28
//! [0]
29
30
QVBoxLayout *currentLayout =
new
QVBoxLayout(currentItem);
31
currentLayout->addWidget(mimeTypeLabel);
32
currentLayout->addWidget(mimeTypeCombo);
33
currentLayout->addWidget(dataLabel);
34
currentLayout->addWidget(dataInfoLabel);
35
currentLayout->addStretch(1);
36
37
QHBoxLayout *mainLayout =
new
QHBoxLayout(centralWidget);
38
mainLayout->addWidget(currentItem, 1);
39
mainLayout->addWidget(previousItems);
40
41
setCentralWidget(centralWidget);
42
setWindowTitle(tr(
"Clipboard"
));
43
}
44
45
//! [1]
46
void
ClipWindow
::updateClipboard()
47
{
48
mimeTypeCombo->clear();
49
50
QStringList formats = clipboard->mimeData()->formats();
51
if
(formats.isEmpty())
52
return
;
53
54
for
(
const
auto
&format : formats) {
55
QByteArray data = clipboard->mimeData()->data(format);
56
// ...
57
}
58
//! [1]
59
60
mimeTypeCombo->addItems(formats);
61
62
int
size = clipboard->mimeData()->data(formats[0]).size();
63
QListWidgetItem *newItem =
new
QListWidgetItem(previousItems);
64
newItem->setText(tr(
"%1 (%2 bytes)"
).arg(formats[0]).arg(size));
65
66
updateData(formats[0]);
67
}
68
69
void
ClipWindow
::
updateData
(
const
QString &format)
70
{
71
QByteArray data = clipboard->mimeData()->data(format);
72
dataInfoLabel->setText(tr(
"%1 bytes"
).arg(data.size()));
73
}
ClipWindow
Definition
clipwindow.h:19
ClipWindow::updateData
void updateData(const QString &format)
Definition
clipwindow.cpp:69
qtbase
src
gui
doc
snippets
clipboard
clipwindow.cpp
Generated on
for Qt by
1.18.0