[QT] Appeler une variable dans une autre classe

Luune Messages postés 25 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

Je développe une application sur QT, et dans main.cpp j'ai ce code :

#include "logista.h"
#include
#include

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Logista w;
w.show();

//w.showFullScreen();

QScreen *screen = QGuiApplication::primaryScreen();
QRect screenGeometry = screen->geometry();
int ScreenHeight = screenGeometry.height();
int ScreenWidth = screenGeometry.width();
w.setFixedSize(ScreenWidth,ScreenHeight);
w.show();
qDebug() << "Computed dimensions " << ScreenWidth << "x" << ScreenHeight;

return a.exec();
}


Je sais que c'est bête comme question mais est ce que vous pouvez me dire comment je fais pour utiliser ScreenWidth et ScreenHeight dans Logista.cpp.
Merci d'avance..

1 réponse

  1. Utilisateur anonyme
     
    Tu utilises deja ces variables dans Logista.cpp en faisant :
    w.setFixedSize(ScreenWidth,ScreenHeight);

    0
    1. Luune Messages postés 25 Statut Membre 5
       
      J'ai déjà essayer de faire ça, et j'ai obtenue cette erreur :

      'w' was nt declared in this scope
      'ScreenWidth' was nt declared in this scope
      'ScreenHeight' was nt declared in this scope
      0
    2. Utilisateur anonyme
       
      Cette erreur provient de main.cpp ? Quelle ligne de ton programme provoque cette erreur ?
      0
    3. Luune Messages postés 25 Statut Membre 5
       
      non je n'ai aucune erreur a main.cpp.
      j'ai ces erreurs a Logista.cpp :( chaque fois que j'essaie d'ajouter ScreenWidth ou ScreenHeight.
      0
    4. Utilisateur anonyme
       
      Tu peux me donner le bout de code qui plante ? Si possible la fonction entiere
      0
    5. Luune Messages postés 25 Statut Membre 5
       
      ok voila le code de Logista.cpp:

      #include "logista.h"
      #include "ui_logista.h"
      #include <QTime>
      #include <QTimer>
      #include <QWidget>
      #include <QQueue>

      Logista::Logista(QWidget *parent) :
      QMainWindow(parent),
      ui(new Ui::Logista)
      {
      //QString StrBanner;
      x = 0;
      y= 10;
      QTimer *timer = new QTimer(this);
      connect(timer, SIGNAL(timeout()), this, SLOT(moveLabPdsFruit()));
      timer->start(200);

      ui->setupUi(this);

      }

      Logista::~Logista()
      {
      delete ui;
      }
      void Logista::moveLabPdsFruit()
      {
      x += 5;

      ui->LabPdsFruit->move(QPoint(x,y));
      if(x>SreenWidth){
      x=0;
      }
      }


      Pour que tu puisse comprendre ce que j'essaie de faire, dans main j'obtiens la dimension de l’écran ou l'application a été lancer pour que la fenêtre principal profite de toute la dimension.. du coup dans Logista.cpp j'ai une label qui bouge et je veux qu'elle s’arrête a la fin du width pour qu'elle revient a x=0;
      Tout ça marche quand je fixe le 'x' a 800 par exemple, mais quand je remplace 800 par SreenWidth, j'obtiens l'erreur que je t'ai déjà montrer.
      Merci pour le temps que tu as accorder a mon problème.
      0