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 Updated to NodeBB v4.3 + New Features

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