mirror of
https://github.com/crystalidea/qt6windows7.git
synced 2025-07-04 00:05:25 +08:00
qt 6.5.1 original
This commit is contained in:
38
tests/manual/wasm/clipboard/CMakeLists.txt
Normal file
38
tests/manual/wasm/clipboard/CMakeLists.txt
Normal file
@ -0,0 +1,38 @@
|
||||
# Copyright (C) 2022 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
#####################################################################
|
||||
## clipboard Binary:
|
||||
#####################################################################
|
||||
|
||||
qt_internal_add_manual_test(clipboard
|
||||
GUI
|
||||
SOURCES
|
||||
main.cpp
|
||||
mainwindow.cpp mainwindow.h mainwindow.ui
|
||||
LIBRARIES
|
||||
Qt::Core
|
||||
Qt::Gui
|
||||
Qt::Widgets
|
||||
ENABLE_AUTOGEN_TOOLS
|
||||
uic
|
||||
)
|
||||
# Resources:
|
||||
set(data_resource_files
|
||||
"data/qticon64.png"
|
||||
)
|
||||
|
||||
qt_internal_add_resource(clipboard "data"
|
||||
PREFIX
|
||||
"/"
|
||||
FILES
|
||||
${data_resource_files}
|
||||
)
|
||||
|
||||
## Scopes:
|
||||
#####################################################################
|
||||
|
||||
qt_internal_extend_target(clipboard CONDITION (QT_MAJOR_VERSION GREATER 4)
|
||||
LIBRARIES
|
||||
Qt::Widgets
|
||||
)
|
2
tests/manual/wasm/clipboard/README
Normal file
2
tests/manual/wasm/clipboard/README
Normal file
@ -0,0 +1,2 @@
|
||||
The Clipboard manual test app can be used both on desktop and in the browser
|
||||
using WebAssembly to test clipboard use between WebAssembly app and the desktop.
|
27
tests/manual/wasm/clipboard/clipboard.pro
Normal file
27
tests/manual/wasm/clipboard/clipboard.pro
Normal file
@ -0,0 +1,27 @@
|
||||
QT += core gui
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
CONFIG += c++11
|
||||
|
||||
# You can make your code fail to compile if it uses deprecated APIs.
|
||||
# In order to do so, uncomment the following line.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_UP_TO=0x060000 # disables all APIs deprecated in Qt 6.0.0 and earlier
|
||||
|
||||
SOURCES += \
|
||||
main.cpp \
|
||||
mainwindow.cpp
|
||||
|
||||
HEADERS += \
|
||||
mainwindow.h
|
||||
|
||||
FORMS += \
|
||||
mainwindow.ui
|
||||
|
||||
RESOURCES += \
|
||||
data.qrc
|
||||
|
||||
# Default rules for deployment.
|
||||
qnx: target.path = /tmp/$${TARGET}/bin
|
||||
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||
!isEmpty(target.path): INSTALLS += target
|
5
tests/manual/wasm/clipboard/data.qrc
Normal file
5
tests/manual/wasm/clipboard/data.qrc
Normal file
@ -0,0 +1,5 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>data/qticon64.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
BIN
tests/manual/wasm/clipboard/data/qticon64.png
Normal file
BIN
tests/manual/wasm/clipboard/data/qticon64.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
14
tests/manual/wasm/clipboard/main.cpp
Normal file
14
tests/manual/wasm/clipboard/main.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
// Copyright (C) 2021 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
MainWindow w;
|
||||
w.show();
|
||||
return a.exec();
|
||||
}
|
311
tests/manual/wasm/clipboard/mainwindow.cpp
Normal file
311
tests/manual/wasm/clipboard/mainwindow.cpp
Normal file
@ -0,0 +1,311 @@
|
||||
// Copyright (C) 2021 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
|
||||
#include "mainwindow.h"
|
||||
#include "ui_mainwindow.h"
|
||||
#include <QClipboard>
|
||||
#include <QMimeData>
|
||||
#include <QImageReader>
|
||||
#include <QBuffer>
|
||||
#include <QRandomGenerator>
|
||||
#include <QPainter>
|
||||
#include <QKeyEvent>
|
||||
#include <QMimeDatabase>
|
||||
#include <QFileInfo>
|
||||
|
||||
#ifdef Q_OS_WASM
|
||||
#include <emscripten.h>
|
||||
#include <emscripten/html5.h>
|
||||
#include <emscripten/val.h>
|
||||
#include <emscripten/bind.h>
|
||||
|
||||
using namespace emscripten;
|
||||
#endif
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
, ui(new Ui::MainWindow)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
ui->imageLabel->installEventFilter(this);
|
||||
|
||||
ui->imageLabel->setBackgroundRole(QPalette::Base);
|
||||
ui->imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
|
||||
ui->imageLabel->setScaledContents(true);
|
||||
|
||||
setAcceptDrops(true);
|
||||
|
||||
clipboard = QGuiApplication::clipboard();
|
||||
connect(
|
||||
clipboard, &QClipboard::dataChanged,
|
||||
[=]() {
|
||||
ui->textEdit_2->insertHtml("<b>Clipboard data changed:</b><br>");
|
||||
const QMimeData *mimeData = clipboard->mimeData();
|
||||
QByteArray ba;
|
||||
|
||||
for (auto mimetype : mimeData->formats()) {
|
||||
qDebug() << Q_FUNC_INFO << mimetype;
|
||||
ba = mimeData->data(mimetype);
|
||||
}
|
||||
QString sizeStr;
|
||||
|
||||
if (mimeData->hasImage()) {
|
||||
qsizetype imageSize = qvariant_cast<QImage>(mimeData->imageData()).sizeInBytes();
|
||||
sizeStr.setNum(imageSize);
|
||||
ui->textEdit_2->insertHtml("has Image data: " + sizeStr + "<br>");
|
||||
}
|
||||
|
||||
if (mimeData->hasHtml()) {
|
||||
int size = mimeData->html().length();
|
||||
sizeStr.setNum(size);
|
||||
ui->textEdit_2->insertHtml("has html data: " + sizeStr + "<br>");
|
||||
}
|
||||
if (mimeData->hasText()) {
|
||||
int size = mimeData->text().length();
|
||||
sizeStr.setNum(size);
|
||||
ui->textEdit_2->insertHtml("has text data: " + sizeStr + "<br>");
|
||||
}
|
||||
|
||||
ui->textEdit_2->insertHtml(mimeData->formats().join(" | ")+ "<br>");
|
||||
|
||||
ui->textEdit_2->ensureCursorVisible();
|
||||
|
||||
const QString message = tr("Clipboard changed, %1 ")
|
||||
.arg(mimeData->formats().join(' '));
|
||||
|
||||
statusBar()->showMessage(message + sizeStr);
|
||||
}
|
||||
);
|
||||
#ifdef Q_OS_WASM
|
||||
val clipboard = val::global("navigator")["clipboard"];
|
||||
bool hasClipboardApi = (!clipboard.isUndefined() && !clipboard["readText"].isUndefined());
|
||||
QString messageApi;
|
||||
if (hasClipboardApi)
|
||||
messageApi = QStringLiteral("Using Clipboard API");
|
||||
else
|
||||
messageApi = QStringLiteral("Using Clipboard events");
|
||||
ui->label->setText(messageApi);
|
||||
#else
|
||||
ui->label->setText("desktop clipboard");
|
||||
#endif
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void MainWindow::on_setTextButton_clicked()
|
||||
{
|
||||
QGuiApplication::clipboard()->setText(ui->textEdit->textCursor().selectedText());
|
||||
}
|
||||
|
||||
static QImage clipboardImage()
|
||||
{
|
||||
if (const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData()) {
|
||||
if (mimeData->hasImage()) {
|
||||
const QImage image = qvariant_cast<QImage>(mimeData->imageData());
|
||||
if (!image.isNull())
|
||||
return image;
|
||||
}
|
||||
}
|
||||
return QImage();
|
||||
}
|
||||
|
||||
static QByteArray clipboardBinary()
|
||||
{
|
||||
if (const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData()) {
|
||||
|
||||
if (mimeData->formats().contains("application/octet-stream")) {
|
||||
const QByteArray ba = qvariant_cast<QByteArray>(mimeData->data("application/octet-stream"));
|
||||
qDebug() << Q_FUNC_INFO << ba;
|
||||
if (!ba.isNull())
|
||||
return ba;
|
||||
}
|
||||
}
|
||||
return QByteArray();
|
||||
}
|
||||
|
||||
void MainWindow::on_pasteImageButton_clicked()
|
||||
{
|
||||
const QImage newImage = clipboardImage();
|
||||
if (newImage.isNull()) {
|
||||
qDebug() << "No image in clipboard";
|
||||
const QString message = tr("No image in clipboard")
|
||||
.arg(newImage.width()).arg(newImage.height()).arg(newImage.depth());
|
||||
statusBar()->showMessage(message);
|
||||
} else {
|
||||
setImage(newImage);
|
||||
setWindowFilePath(QString());
|
||||
const QString message = tr("Obtained image from clipboard, %1x%2, Depth: %3")
|
||||
.arg(newImage.width()).arg(newImage.height()).arg(newImage.depth());
|
||||
statusBar()->showMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::setImage(const QImage &newImage)
|
||||
{
|
||||
image = newImage;
|
||||
ui->imageLabel->setPixmap(QPixmap::fromImage(image));
|
||||
}
|
||||
|
||||
void MainWindow::on_pasteTextButton_clicked()
|
||||
{
|
||||
ui->textEdit->insertPlainText(QGuiApplication::clipboard()->text());
|
||||
}
|
||||
|
||||
void MainWindow::on_copyBinaryButton_clicked()
|
||||
{
|
||||
QByteArray ba;
|
||||
ba.resize(10);
|
||||
ba[0] = 0x3c;
|
||||
ba[1] = 0xb8;
|
||||
ba[2] = 0x64;
|
||||
ba[3] = 0x18;
|
||||
ba[4] = 0xca;
|
||||
ba[5] = 0xca;
|
||||
ba[6] = 0x18;
|
||||
ba[7] = 0x64;
|
||||
ba[8] = 0xb8;
|
||||
ba[9] = 0x3c;
|
||||
|
||||
QMimeData *mimeData = new QMimeData();
|
||||
mimeData->setData("application/octet-stream", ba);
|
||||
QGuiApplication::clipboard()->setMimeData(mimeData);
|
||||
|
||||
const QString message = tr("Copied binary to clipboard: " + ba + " 10 bytes");
|
||||
statusBar()->showMessage(message);
|
||||
}
|
||||
|
||||
void MainWindow::on_pasteBinaryButton_clicked()
|
||||
{
|
||||
const QByteArray ba = clipboardBinary();
|
||||
if (ba.isNull()) {
|
||||
qDebug() << "No binary in clipboard";
|
||||
const QString message = tr("No binary in clipboard");
|
||||
statusBar()->showMessage(message);
|
||||
} else {
|
||||
setWindowFilePath(QString());
|
||||
const QString message = tr("Obtained binary from clipboard: " + ba);
|
||||
statusBar()->showMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_comboBox_textActivated(const QString &arg1)
|
||||
{
|
||||
QImage image(QSize(150,100), QImage::Format_RGB32);
|
||||
QPainter painter(&image);
|
||||
painter.fillRect(QRectF(0,0,150,100),generateRandomColor());
|
||||
painter.fillRect(QRectF(20,30,130,40),generateRandomColor());
|
||||
painter.setPen(QPen(generateRandomColor()));
|
||||
painter.drawText(QRect(25,30,130,40),"Qt WebAssembly");
|
||||
|
||||
QByteArray ba;
|
||||
QBuffer buffer(&ba);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
image.save(&buffer, arg1.toLocal8Bit());
|
||||
|
||||
qDebug() << ba.mid(0,10) << ba.length();
|
||||
qDebug() << Q_FUNC_INFO << image.sizeInBytes();
|
||||
|
||||
QGuiApplication::clipboard()->setImage(image);
|
||||
}
|
||||
|
||||
QColor MainWindow::generateRandomColor()
|
||||
{
|
||||
return QColor::fromRgb(QRandomGenerator::global()->generate());
|
||||
}
|
||||
|
||||
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
|
||||
{
|
||||
if (event->type() == QEvent::KeyPress) {
|
||||
QKeyEvent *ke = static_cast<QKeyEvent *>(event);
|
||||
if (ke->key() == Qt::Key_V && ke->modifiers().testFlag(Qt::ControlModifier)) {
|
||||
if (obj == ui->imageLabel) {
|
||||
setImage(clipboardImage());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// standard event processing
|
||||
return QObject::eventFilter(obj, event);
|
||||
}
|
||||
|
||||
void MainWindow::on_pasteHtmlButton_clicked()
|
||||
{
|
||||
ui->textEdit->insertHtml(QGuiApplication::clipboard()->mimeData()->html());
|
||||
}
|
||||
|
||||
void MainWindow::on_clearButton_clicked()
|
||||
{
|
||||
ui->textEdit_2->clear();
|
||||
ui->imageLabel->clear();
|
||||
ui->imageLabel->setText("Paste or drop image here");
|
||||
}
|
||||
|
||||
void MainWindow::dragEnterEvent(QDragEnterEvent* e)
|
||||
{
|
||||
e->acceptProposedAction();
|
||||
}
|
||||
|
||||
void MainWindow::dropEvent(QDropEvent* e)
|
||||
{
|
||||
QString sizeStr;
|
||||
ui->textEdit_2->insertPlainText("New Drop has mime formats: " + e->mimeData()->formats().join(", ") + "\n");
|
||||
|
||||
QString urlMessage = QString(" Drop contains %1 urls\n").arg(e->mimeData()->urls().count());
|
||||
ui->textEdit_2->insertPlainText(urlMessage);
|
||||
|
||||
foreach (const QUrl &url, e->mimeData()->urls()) {
|
||||
|
||||
QString urlStr = url.toDisplayString();
|
||||
int size = urlStr.length();
|
||||
sizeStr.setNum(size);
|
||||
ui->textEdit_2->insertPlainText(" Drop has url data length: " + sizeStr + "\n");
|
||||
ui->textEdit_2->insertPlainText(urlStr + "\n");
|
||||
|
||||
QString fname = url.toLocalFile();
|
||||
QFileInfo info(fname);
|
||||
if (info.exists()) { // this is a file
|
||||
QMimeDatabase db;
|
||||
QMimeType mt = db.mimeTypeForFile(info);
|
||||
if (mt.name().contains("image")) {
|
||||
QImage image = QImage(fname);
|
||||
setImage(image);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (e->mimeData()->hasImage()) {
|
||||
qsizetype imageSize = qvariant_cast<QImage>(e->mimeData()->imageData()).sizeInBytes();
|
||||
sizeStr.setNum(imageSize);
|
||||
ui->textEdit_2->insertPlainText(" Drop has Image data length: " + sizeStr + "\n");
|
||||
QImage image = qvariant_cast<QImage>(e->mimeData()->imageData());
|
||||
setImage(image);
|
||||
const QString message = tr("Obtained image from drop, %1x%2, Depth: %3")
|
||||
.arg(image.width()).arg(image.height()).arg(image.depth());
|
||||
statusBar()->showMessage(message);
|
||||
}
|
||||
|
||||
if (e->mimeData()->hasHtml()) {
|
||||
int size = e->mimeData()->html().length();
|
||||
sizeStr.setNum(size);
|
||||
ui->textEdit_2->insertPlainText(" Drop has html data length: " + sizeStr + "\n");
|
||||
ui->textEdit_2->insertPlainText(e->mimeData()->html()+"\n");
|
||||
ui->textEdit->insertHtml(e->mimeData()->html()+"<br>");
|
||||
}
|
||||
if (e->mimeData()->hasText()) {
|
||||
int size = e->mimeData()->text().length();
|
||||
sizeStr.setNum(size);
|
||||
ui->textEdit_2->insertPlainText(" Drop has text data length: " + sizeStr + "\n");
|
||||
ui->textEdit_2->insertPlainText(e->mimeData()->text());
|
||||
}
|
||||
|
||||
const QString message = tr(" Drop accepted, %1 ")
|
||||
.arg(e->mimeData()->formats().join(' '));
|
||||
|
||||
statusBar()->showMessage(message + sizeStr);
|
||||
|
||||
e->acceptProposedAction();
|
||||
}
|
52
tests/manual/wasm/clipboard/mainwindow.h
Normal file
52
tests/manual/wasm/clipboard/mainwindow.h
Normal file
@ -0,0 +1,52 @@
|
||||
// Copyright (C) 2021 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
|
||||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include <QMainWindow>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace Ui { class MainWindow; }
|
||||
QT_END_NAMESPACE
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
MainWindow(QWidget *parent = nullptr);
|
||||
~MainWindow();
|
||||
|
||||
private slots:
|
||||
void on_setTextButton_clicked();
|
||||
|
||||
void on_pasteImageButton_clicked();
|
||||
void setImage(const QImage &newImage);
|
||||
void on_pasteTextButton_clicked();
|
||||
|
||||
|
||||
void on_copyBinaryButton_clicked();
|
||||
|
||||
void on_pasteBinaryButton_clicked();
|
||||
|
||||
void on_comboBox_textActivated(const QString &arg1);
|
||||
|
||||
void on_pasteHtmlButton_clicked();
|
||||
|
||||
void on_clearButton_clicked();
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
QImage image;
|
||||
QClipboard *clipboard;
|
||||
bool eventFilter(QObject *obj, QEvent *event) override;
|
||||
|
||||
QColor generateRandomColor();
|
||||
|
||||
protected:
|
||||
void dragEnterEvent(QDragEnterEvent *e) override;
|
||||
void dropEvent(QDropEvent *e) override;
|
||||
|
||||
};
|
||||
#endif // MAINWINDOW_H
|
222
tests/manual/wasm/clipboard/mainwindow.ui
Normal file
222
tests/manual/wasm/clipboard/mainwindow.ui
Normal file
@ -0,0 +1,222 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>MainWindow</class>
|
||||
<widget class="QMainWindow" name="MainWindow">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1222</width>
|
||||
<height>1011</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="setTextButton">
|
||||
<property name="text">
|
||||
<string>setText()</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pasteTextButton">
|
||||
<property name="text">
|
||||
<string>paste text</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pasteHtmlButton">
|
||||
<property name="text">
|
||||
<string>paste html</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QComboBox" name="comboBox">
|
||||
<property name="currentText">
|
||||
<string>PNG</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>PNG</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>JPG</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>BMP</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>NAN</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pasteImageButton">
|
||||
<property name="text">
|
||||
<string>paste image</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QPushButton" name="copyBinaryButton">
|
||||
<property name="text">
|
||||
<string>setData</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pasteBinaryButton">
|
||||
<property name="text">
|
||||
<string>paste data</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="clearButton">
|
||||
<property name="text">
|
||||
<string>clear</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTextEdit" name="textEdit_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="2" column="0">
|
||||
<widget class="QTextBrowser" name="textEdit">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>500</width>
|
||||
<height>400</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="html">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'.AppleSystemUIFont'; font-size:13pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/data/qticon64.png" /></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a name="tw-target"></a><span style=" font-family:'monospace'; font-size:9pt; font-weight:600;">L</span><span style=" font-family:'monospace'; font-size:9pt; font-weight:600;">orem</span><span style=" font-family:'monospace'; font-size:9pt;"> </span><span style=" font-family:'monospace'; font-size:9pt; font-style:italic;">ipsum</span><span style=" font-family:'monospace'; font-size:9pt;"> </span><span style=" font-family:'monospace'; font-size:9pt; text-decoration: underline;">dolor</span><span style=" font-family:'monospace'; font-size:9pt;"> </span><span style=" font-family:'monospace'; font-size:9pt; vertical-align:super;">sit</span><span style=" font-family:'monospace'; font-size:9pt;"> </span><span style=" font-family:'monospace'; font-size:9pt; vertical-align:sub;">amet</span><span style=" font-family:'monospace'; font-size:9pt;">, </span><a href="http://localhost"><span style=" font-family:'Sans Serif'; font-size:9pt; text-decoration: underline; color:#0000ff;">consectetur</span></a><span style=" font-family:'monospace'; font-size:9pt;"> </span><span style=" font-family:'monospace'; font-size:9pt; color:#7320a4;">adipiscing</span><span style=" font-family:'monospace'; font-size:9pt;"> elit. Som medlemmer av byrået ønsker imidlertid en eiendomsmegler. Ullamcorper største lekseforfatter. Dolor et consectetuer litt ernæring. Maecenas smile jord sitter Vulputate medlemmer og, basketball ethvert problem. Reservert lever nå propaganda. På makroen investere laoreet kan, av enhver latter. Jasmine som en TV -tegneserie.</span></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'monospace'; font-size:9pt;"><br /></p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="imageLabel">
|
||||
<property name="mouseTracking">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::StrongFocus</enum>
|
||||
</property>
|
||||
<property name="acceptDrops">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Paste or drop content here</string>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::Panel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Sunken</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1222</width>
|
||||
<height>24</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
Reference in New Issue
Block a user