Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Italian
  4. QClipboard e immagini

QClipboard e immagini

Scheduled Pinned Locked Moved Solved Italian
13 Posts 3 Posters 2.5k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    fermatqt
    wrote on last edited by
    #1

    ciao!

    volevo capire l'utilizzo di QClipboard ed ho scritto questo (riprendendolo dalla documentazione):

    void MainWindow::on_textEdit_textChanged() {
        QClipboard *clipboard = QApplication::clipboard();
        const QMimeData *mimeData = 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";
        }
    }
    

    ho provato a copiare sia del testo, che del codice html che una immagine.
    nei primi due casi, il qDebug mi da il tipo corretto.
    se copio una immagine, mi esce fuori il path dove si trova l'immagine.
    io invece vorrei copiare proprio l'immagine stessa.
    è possibile?

    1 Reply Last reply
    0
    • mrdebugM Offline
      mrdebugM Offline
      mrdebug
      wrote on last edited by
      #2

      Non penso sia un problema di QClipboard. Se ottieni il path significa che quando hai cliccato su "copia" in verità nella clipboard è stato messo il path, non l'array di byte che rappresenta l'immagine.
      Se vuoi l'immagine eventualmente puoi ottenerla caricandola dal path che ti è stato indicato, posto che il formato sia conosciuto.

      Need programmers to hire?
      www.labcsp.com
      www.denisgottardello.it
      GMT+1
      Skype: mrdebug

      1 Reply Last reply
      1
      • F Offline
        F Offline
        fermatqt
        wrote on last edited by
        #3

        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
        
        1 Reply Last reply
        0
        • mrdebugM Offline
          mrdebugM Offline
          mrdebug
          wrote on last edited by
          #4

          Prova ad editare con paint di Windows una immagine, a selezionare una sua parte ed a copiare la parte selezionata e facci sapere cosa accade.

          Need programmers to hire?
          www.labcsp.com
          www.denisgottardello.it
          GMT+1
          Skype: mrdebug

          1 Reply Last reply
          1
          • F Offline
            F Offline
            fermatqt
            wrote on last edited by
            #5

            allora:

            • sono su linux
            • ho provato con gimp
            • e sto usando una TextEdit

            cosi come sono messo, non succede nulla.
            ho provato a selezionare una parte dell'immagine in gimp e ad incollarla nella textedit.
            non succede niente.

            1 Reply Last reply
            0
            • VRoninV Offline
              VRoninV Offline
              VRonin
              wrote on last edited by VRonin
              #6

              @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?

              "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
              ~Napoleon Bonaparte

              On a crusade to banish setIndexWidget() from the holy land of Qt

              1 Reply Last reply
              0
              • mrdebugM Offline
                mrdebugM Offline
                mrdebug
                wrote on last edited by
                #7

                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 dice

                QXcbClipboardMime(0x55ea90503d20)
                Immagine

                A questo punto probabilmente devi lavorare sull'evento che stai usando suolla text edit.

                Need programmers to hire?
                www.labcsp.com
                www.denisgottardello.it
                GMT+1
                Skype: mrdebug

                F 1 Reply Last reply
                0
                • F Offline
                  F Offline
                  fermatqt
                  wrote on last edited by
                  #8

                  allora, questa riga non funziona:

                  qDebug() << clipboard->formats();
                  

                  mi dice che ‘class QClipboard’ has no member named ‘formats’.

                  per quanto riguarda le immagini, le sto copiando dal filesystem.

                  VRoninV 1 Reply Last reply
                  0
                  • mrdebugM Offline
                    mrdebugM Offline
                    mrdebug
                    wrote on last edited by
                    #9

                    Bé, se le copi dal filesistem è ovvio che hai solo il path.

                    Need programmers to hire?
                    www.labcsp.com
                    www.denisgottardello.it
                    GMT+1
                    Skype: mrdebug

                    F 1 Reply Last reply
                    1
                    • mrdebugM mrdebug

                      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 dice

                      QXcbClipboardMime(0x55ea90503d20)
                      Immagine

                      A questo punto probabilmente devi lavorare sull'evento che stai usando suolla text edit.

                      F Offline
                      F Offline
                      fermatqt
                      wrote on last edited by
                      #10

                      @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 dice

                      QXcbClipboardMime(0x55ea90503d20)
                      Immagine

                      A 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).

                      1 Reply Last reply
                      0
                      • mrdebugM mrdebug

                        Bé, se le copi dal filesistem è ovvio che hai solo il path.

                        F Offline
                        F Offline
                        fermatqt
                        wrote on last edited by
                        #11

                        @mrdebug si, sono io che non ho ben capito come funziona qclipaboard probabilmente!!

                        1 Reply Last reply
                        0
                        • F fermatqt

                          allora, questa riga non funziona:

                          qDebug() << clipboard->formats();
                          

                          mi dice che ‘class QClipboard’ has no member named ‘formats’.

                          per quanto riguarda le immagini, le sto copiando dal filesystem.

                          VRoninV Offline
                          VRoninV Offline
                          VRonin
                          wrote on last edited by
                          #12

                          @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();

                          "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                          ~Napoleon Bonaparte

                          On a crusade to banish setIndexWidget() from the holy land of Qt

                          1 Reply Last reply
                          0
                          • F Offline
                            F Offline
                            fermatqt
                            wrote on last edited by
                            #13

                            ok, ho capito il funzionamento.
                            grazie a entrambi!!

                            1 Reply Last reply
                            0

                            • Login

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • Users
                            • Groups
                            • Search
                            • Get Qt Extensions
                            • Unsolved