Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Italian
  4. come impostare il Focus in due oggetti distinti contemporaneamente
Forum Update on Tuesday, May 27th 2025

come impostare il Focus in due oggetti distinti contemporaneamente

Scheduled Pinned Locked Moved Unsolved Italian
focussetfocus
4 Posts 2 Posters 1.7k 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.
  • L Offline
    L Offline
    LorenzoMusci
    wrote on last edited by
    #1

    Salve a tutti.

    premetto di non essere un grande esperto di Qt e di programmazion e

    avrei la necessità di muovere 2 oggetti distinti nella mia scena usando comandi da tastiera, per poter dare dei comandi da tastiera ad un dato oggetto devo prima impostare il Flag e il Focus su tale oggetto, purtroppo però Qt mi permette di mettere sotto Focus un singolo oggetto alla volta e quindi al momento mi trovo a poter dare i comandi da tastiera ad un singolo oggetto alla volta.
    Esiste un modo per poter impostare 2 o più oggetti sotto Focus in modo da potergli inviare comandi da tastiera contemporanemente?

    1 Reply Last reply
    0
    • P Offline
      P Offline
      patrik08
      wrote on last edited by patrik08
      #2

      Ciao Lorenzo...
      Domanda: in quanto non riesco bene a capire cosa intendi per scena... ti riferisci ad QGraphicsScene e i suoi item?
      oppure a un altra classe?
      10 anni fa ho scritto Miniscribus... un programma che vuole fare simili cose come il grande Scribus.. https://www.scribus.net/ non capivo mai .. neanche oggi perhè scribus non legge anche i file Apache™ FOP (Formatting Objects Processor) cosi in 2-3 mesi ho scritto il piccolo Miniscribus...
      https://sourceforge.net/projects/wysiwyg-edit/ e quello è pieno di
      QGraphicsScene permettendo di lavorare con Layer che si possono girare in qualsiasi gradi... in poche parole le classi derivanti da QObject si possono sempre eseguire come static c++ .. e senza perdere le loro proprieta dei segnali slot... con i quali puoi inviare segnali prendere e ricevere da classi che non necessariamente sono child ....se fosse quello il problema pubblico un po di template di esempio da capire meglio come funzionano....
      Saluti dalla svizzera italiana...

      1 Reply Last reply
      0
      • L Offline
        L Offline
        LorenzoMusci
        wrote on last edited by
        #3

        Ciao patrik08
        si forse non sono stato precisissimo, comunque mi riferisco alla QGraphicsScene e a 2 item che ho deciso di aggiungere.. il problema sta nel fatto che sono riuscito a creare un modo per muovere i due item in tutte le direzioni che voglio solo che per problemi di setFocus o setFlag non riesco a farli muovere contemporaneamente! devo ogni volta che voglio muovere un item piùttosto che un altro cliccare con il mouse sopra l'item che voglio muovere e solo a quel punto inviare i comandi da tastiera!...

        spero di essere stato abbastanza chiaro, purtroppo sono solo alle prime armi con Qt e con il c++ in generale

        Saluti da Reggio Emilia

        1 Reply Last reply
        0
        • P Offline
          P Offline
          patrik08
          wrote on last edited by
          #4

          La parola magica si chiama zValue:
          nei documenti html e xsl-fo sarebbe il z-index..
          piu questo numero è alto il singolo elemento è visibile...
          muovendo in drag & drop con il tasto CTRL premuto...
          vedi in:
          https://github.com/pehohlva/fop-miniscribus/tree/master/fop_miniscribus.2.0.0
          esempio x mac e window.. cercando si trova anche un pacchetto gentoo linux... 10 anni or sono che ho scritto quel coso.. il codice è rozzo ma funziona.
          https://sourceforge.net/projects/wysiwyg-edit/

          /* filter only item a top Zindex /  zValue */
          bool GraphicsScene::WakeUp( const QPointF incomming ) 
          {
                 QList<QGraphicsItem *>  listing = QGraphicsScene::items(incomming);
                 qreal thebest = 0;  /* zindex on front */
                 for (int o=0;o<listing.size();o++) {
                     listing[o]->setSelected(false); 
                     listing[o]->setFlag(QGraphicsItem::ItemIsSelectable,false);
                     thebest = qMax(listing[o]->zValue(),thebest);
                 }
                 /* activate item at top z-index zValue  /  not the down not visible!!!! */
                 for (int e=0;e<listing.size();e++) {
                     if (listing[e]->zValue() == thebest) {
                       listing[e]->setFlag(QGraphicsItem::ItemIsSelectable,true);
                       emit SelectOn(listing[e],thebest);
                       return true;
                     }
                 }
          return false;
          }
          
          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