[QT] Appeler une variable dans une autre classe

Fermé
Luune Messages postés 24 Date d'inscription mercredi 26 avril 2017 Statut Membre Dernière intervention 25 juillet 2017 - 10 juil. 2017 à 12:14
 Utilisateur anonyme - 10 juil. 2017 à 14:57
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

Utilisateur anonyme
10 juil. 2017 à 12:40
Tu utilises deja ces variables dans Logista.cpp en faisant :
w.setFixedSize(ScreenWidth,ScreenHeight);

0
Luune Messages postés 24 Date d'inscription mercredi 26 avril 2017 Statut Membre Dernière intervention 25 juillet 2017 5
10 juil. 2017 à 12:45
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
Utilisateur anonyme
10 juil. 2017 à 12:47
Cette erreur provient de main.cpp ? Quelle ligne de ton programme provoque cette erreur ?
0
Luune Messages postés 24 Date d'inscription mercredi 26 avril 2017 Statut Membre Dernière intervention 25 juillet 2017 5
10 juil. 2017 à 12:52
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
Tu peux me donner le bout de code qui plante ? Si possible la fonction entiere
0
Luune Messages postés 24 Date d'inscription mercredi 26 avril 2017 Statut Membre Dernière intervention 25 juillet 2017 5
Modifié le 10 juil. 2017 à 13:27
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