IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Problème avec tabWidget


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Par défaut Problème avec tabWidget
    Hello...

    J'ai un petit problème avec tabWidget... Soit j'ai rien compris, sois je deviens fou

    si on a un tabwidget et quelques bouton et label (qui ne sont pas forcement dans le tabwidget) est-ce qu'on doit les "lier"?

    j'ai ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    string MainWindowImpl::LireCapteur(const int Ligne)
    {
    	/* Declaration des variables */
    	int Compteur = 0;
    	string Valeur;
    	fstream Fichier;
     
    	label_7->setText("test");
    	/* Ouverture du ficher en lecture seule */
    	Fichier.open("test2.txt", ios::in);
     
    	/* Si l'ouverture du fichier a reussi */
    	if(Fichier.is_open())
    	{	
    		/* On parcours le fichier jusqu'a la bonne ligne */
    		while(getline(Fichier,Valeur))
    		{
    			if (++Compteur == Ligne)
    			{
    				/* Une fois la lecture terminee on ferme le fichier */
    				Fichier.close();
     
    				/* On retourne la valeur desiree */
    				return Valeur;
    			}
    			/* Si erreur on retourne "#" */
    			else
    			{
    				return "#";
    			}
    		}
     
    	}
    	/* Si il y a une erreur on l'indique */
    	else
    	{	
    		/* On ouvre une boite de dialogue */
    		QMessageBox::about(0,"ERREUR","Le fichier ne peut etre ouvert");
    		return "#";
    	}
    	return "#";
    }
    mais le probleme c'esst que quand j'appuie sur le bouton qui est "connect" a cette fonction, mon label_7 ne change pas et je n'ai aucune erreur...

    merci d'avance

  2. #2
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Salut,

    Si, tu as des erreurs mais tu n'y payes pas attention. Les signaux et les slots doivent TOUJOURS avoir la même signature!; à une exception près le slot peut omettre un ou plusieurs paramètres, toujours dans l'ordre gauche->droite mais jamais en ajouter!

    Lire la doc sur les signaux/slots te fera le plus grand bien

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Par défaut
    Citation Envoyé par IrmatDen Voir le message
    Salut,

    Si, tu as des erreurs mais tu n'y payes pas attention.
    je parlais d'erreur a la compilation

    concernant les signaux/slot, je crois que j'ai a peu pres compris ce qu'était un signal, mais les slot pas vraiment...

  4. #4
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Si le texte ne change pas c'est que ta fonction n'est pas appelée.
    D'ailleurs, je viens de voir que ta fonction prend un paramètre const int. Je pense que dans ton connect, tu connectes justement un SIGNAL sans argument à un SLOT avec 1 argument (ton const int), ce qui n'est pas valide. Un signal doit être connecté à un slot qui a les mêmes types d'arguments.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Par défaut
    Citation Envoyé par Alp Voir le message
    Si le texte ne change pas c'est que ta fonction n'est pas appelée.
    D'ailleurs, je viens de voir que ta fonction prend un paramètre const int. Je pense que dans ton connect, tu connectes justement un SIGNAL sans argument à un SLOT avec 1 argument (ton const int), ce qui n'est pas valide. Un signal doit être connecté à un slot qui a les mêmes types d'arguments.
    j'ai ca comme connect:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connect(boutonBleu, SIGNAL(clicked()),this,SLOT(LireCapteur(2)));

    ps: le code entier se trouve la: http://pastebin.com/m25d4e126

  6. #6
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Oui. Et donc relis mon message précédent.
    Un slot doit être connecté à un signal qui à la même signature !
    Alors que là, ton slot prend un const int en argument alors que le signal "clicked" n'a pas d'argument.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Par défaut
    Citation Envoyé par Alp Voir le message
    Oui. Et donc relis mon message précédent.
    Un slot doit être connecté à un signal qui à la même signature !
    Alors que là, ton slot prend un const int en argument alors que le signal "clicked" n'a pas d'argument.
    donc je dois mettre clicked(const int) ou je passe aussi ma valeur dans le clicked (clicked(2))?

    desolé si mes question paraissent un peu "conne" mais qt c'est asez nouveau pour moi...

Discussions similaires

  1. Problème avec les TabWidget
    Par bibmanhjp dans le forum Android
    Réponses: 4
    Dernier message: 02/04/2012, 14h13
  2. Problème avec TabHost et tabWidget
    Par lupus83 dans le forum Android
    Réponses: 4
    Dernier message: 08/02/2011, 19h28
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo