Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage Java > [Qt Jambi] > Lecture du sujet

[Qt Jambi]

récupération id éméteur

Vous devez être inscrit pour pouvoir poster des messages

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne Sankasssss # Posté le 07/07/2008 à 17:25:26
Avatar
Groupe : Membres
Salut,
voil dans mon temps libre je découvre Qt Jambi, pour ce faire j'ai lus le tuto de natim et j'ai voulus pour le tester faire un petit jeu de dame.
j'ai donc fais un tableau de QPushButton comme suit :
Code : Java
1
2
3
for(int x=0;x<10;x++)
        for(int y=0;y<10;y++)
        	gridLayout.addWidget(new QPushButton(""+x+" : "+y),x,y);

mais quand je lie le bouton à ma méthode de traitement j'ai besoin de savoir quelle est l'émetteur du signal vu que mes 100 bouton ce retrouve lé à la même méthode...
Merci à ceux qui me lirons.
Hors ligne colibri # Posté le 08/07/2008 à 09:56:56
alergeek
Avatar
Groupe : Membres
Perso je trouve plus simple d'utiliser un QGraphicsScene et un tableau d'images.

la puissance n'est rien sans la maitrise !

Citation : Confucius
Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide.

Image utilisateur
 
Hors ligne Sankasssss # Posté le 09/07/2008 à 08:39:22
Avatar
Groupe : Membres
:) comme je l'ai dis je débute avec Qt, donc je prend toutes les idée sont bonne à prendre :D
Donc je vais de ce pas regarder à QGraphicsScene !

actuellement mon choix c'était porter sur la création d'un widget contenant les coordonnées et réimplémentant la méthode mousePressEvent de telle sorte que quand on clique sur ce widget il nous renvoie ca position.
je réimplémente aussi la fonction paintEvent où j'utilise Qpainter pour dessiner dedans
voici le code de l'élément :
Code : Java
 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
class Elem extends QWidget{
    	public Signal2<Integer,Integer> cliqued = new Signal2<Integer,Integer>();
    	Integer x = 0;
    	Integer y = 0;
        public Elem(QWidget parent,Integer x1,Integer y1){
            super(parent);
    		this.x = x1;
    		this.y = y1;
    		this.resize(new QSize(50,50));
    		//QLabel label = new QLabel(this);
    		//label.setText(""+x+" : "+y);

        }
    	protected void mousePressEvent(QMouseEvent arg1){
    		if (arg1.button()==MouseButton.LeftButton){
    			this.cliqued.emit(y,x);
    			System.out.println(""+y+" : "+x);
    		}
    	}
        protected void paintEvent(QPaintEvent e) {
            QPainter painter = new QPainter(this);
            painter.setBrush(QColor.white);
            painter.drawRect(rect());
            painter.end();
        }


    }


Pour créé le plateau je fais actuellement deux boucle imbriquée qui crée un widget elem et qui l'intègre dans le gridLayout à l'endroit désiré ainsi que dans un tableau d'elem pour garder une référence vers les cases afin de pouvoir appeller leurs future méthodes d'affichage.
Code : Java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
public Plateau(QWidget parent){
        super(parent);
        QGridLayout gridLayout = new QGridLayout();
        gridLayout.setSpacing(0);
        tableau = new Elem[10][10];
        for(int y=0;y<10;y++)
        	for(int x=0;x<10;x++){
        		tableau[y][x] = new Elem(this,x,y);
        		gridLayout.addWidget(tableau[y][x],y,x);
        	}
        this.setLayout(gridLayout);
    }


Merci à ceux qui m'aiderons à m'améliorer ;)
Édité le 09/07/2008 à 08:56:11 par Sankasssss

Retour au forum "Langage Java" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news | XHTML 1.0 | CSS 2.0
Édité par Simple IT SARL : Nous contacter | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 126 Zéros connectés | Requêtes SQL 7 requêtes | Temps de génération de la page : Total (SQL) 0.0752s (0.0615s)