1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #include "frmimgshow.h"
- FrmImgShow::FrmImgShow(QString& url, QWidget *parent) : QWidget(parent)
- {
- initForm();
- initForm();
- initManager();
- this->url = url;
- manager->get(QNetworkRequest(QUrl(url)));
- }
- bool FrmImgShow::eventFilter(QObject *watched, QEvent *event)
- {
- if (watched == btnCopy) {
- if (event->type() == QEvent::Enter) {
- btnCopy->setIcon(QIcon(QPixmap(":/qrc/image/copy_blue.png")));
- return true;
- }
- else if (event->type() == QEvent::Leave) {
- btnCopy->setIcon(QIcon(QPixmap(":/qrc/image/copy_white.png")));
- return true;
- }
- else {
- return false;
- }
- }
- if (watched == btnDelete) {
- if (event->type() == QEvent::Enter) {
- btnDelete->setIcon(QIcon(QPixmap(":/qrc/image/delete_red.png")));
- return true;
- }
- else if (event->type() == QEvent::Leave) {
- btnDelete->setIcon(QIcon(QPixmap(":/qrc/image/delete_white.png")));
- return true;
- }
- else {
- return false;
- }
- }
- return QWidget::eventFilter(watched, event);
- }
- void FrmImgShow::onFinished(QNetworkReply *reply)
- {
- if (reply->error() == QNetworkReply::NoError) {
- QByteArray imageData = reply->readAll();
- QPixmap pix;
- pix.loadFromData(imageData);
- this->labImg->setPixmap(pix);
- }
- }
- void FrmImgShow::initForm()
- {
- labImg = new QLabel();
- btnCopy = new QToolButton();
- btnDelete = new QToolButton();
- horizenSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
- hLayout = new QHBoxLayout();
- vLayout = new QVBoxLayout();
- hLayout->addWidget(btnCopy);
- hLayout->addSpacerItem(horizenSpacer);
- vLayout->addWidget(labImg);
- vLayout->addLayout(hLayout);
- this->setLayout(vLayout);
- btnCopy->setIcon(QIcon(QPixmap(":/qrc/image/copy_white.png")));
- btnDelete->setIcon(QIcon(QPixmap(":/qrc/image/delete_white.png")));
- btnCopy->setFixedSize(32, 32);
- btnCopy->setCursor(Qt::PointingHandCursor);
- }
- void FrmImgShow::initWidget()
- {
- btnCopy->installEventFilter(this);
- btnDelete->installEventFilter(this);
- }
- void FrmImgShow::initManager()
- {
- manager = new QNetworkAccessManager();
- QClipboard* clipboard = QGuiApplication::clipboard();
- connect(manager, &QNetworkAccessManager::finished,
- this, &FrmImgShow::onFinished);
- connect(btnCopy, &QToolButton::clicked, [&](){
- clipboard->setText(this->url);
- });
- }
|