QClipboard e immagini
-
ciao!
ok, però il problema è che non ricade mai nella condizione mimeData->hasImage().
quindi non saprei come identificare che sto provando a copiare una immagine!
stiamo parlando di normali immagini jpg.questo:
void MainWindow::on_textEdit_textChanged() { QClipboard *clipboard = QApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); qDebug() << clipboard->mimeData(); if (mimeData->hasImage()) { clipboard->setPixmap(qvariant_cast<QPixmap>(mimeData->imageData())); qDebug() << "Immagine"; } else if (mimeData->hasHtml()) { clipboard->setText(mimeData->html()); qDebug() << "HTML"; } else if (mimeData->hasText()) { clipboard->setText(mimeData->text()); qDebug() << "Testo semplice"; } else { clipboard->setText(tr("Impossibile visualizzare i dati copiati!")); qDebug() << "Nessuno dei precedenti"; } }
mi da questo quando provo a copiare una immagine:
QXcbClipboardMime(0x7f78f4006250) Testo semplice
-
@fermatqt said in QClipboard e immagini:
ho provato a selezionare una parte dell'immagine in gimp e ad incollarla nella textedit.
QClipboard *clipboard = QApplication::clipboard();
clipboard->setPixmap(qvariant_cast<QPixmap>(mimeData->imageData()));
Prendi quello che c'e' nella clipboard e lo metti di nuovo nella clipboard. Il tuo codice non fa quello che chiedi
se copio una immagine, mi esce fuori il path dove si trova l'immagine.
Da dove lo stai copiando?
Puoi usare
qDebug() << clipboard->formats();
per vedere tutto cio' che c'e' disponibile? -
Ciao, prova ad aprire una immagine con KolourPaint ad esempio, a selezionare e copiare una parte di immagine.
Nel form mi sono messo un pulsante. Lo clicco ed usando il tuo codice mi diceQXcbClipboardMime(0x55ea90503d20)
ImmagineA questo punto probabilmente devi lavorare sull'evento che stai usando suolla text edit.
-
@mrdebug said in QClipboard e immagini:
Ciao, prova ad aprire una immagine con KolourPaint ad esempio, a selezionare e copiare una parte di immagine.
Nel form mi sono messo un pulsante. Lo clicco ed usando il tuo codice mi diceQXcbClipboardMime(0x55ea90503d20)
ImmagineA questo punto probabilmente devi lavorare sull'evento che stai usando suolla text edit.
si in effetti con il pulsante anche a me risulta una immagine (ho usato gimp).
-
@fermatqt said in QClipboard e immagini:
allora, questa riga non funziona:
qDebug() << clipboard->formats();
mi dice che ‘class QClipboard’ has no member named ‘formats’.
scusa ho perso un pezzo:
qDebug() << clipboard->mimeData()->formats();