Bonjour,

voila je veux avoir une structure MVC donc c'est pour cela que j'ai séparé la vue et les évenements.
Mais le problème, c'est que je sais pas comment récupérer les données après les événements.

class pour l'interface

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import controller_view
 
class View(QWidget):
 
    def __init__(self):
        super(View, self).__init__()
        self.init()
        self.number_msa=0
        self.layout=QGridLayout()
 
    def label_name(self, number_msa):
        label=QLabel(self)
        label.setText("MSA "+str(number_msa))
        return label
 
    def button_file(self):
        button = QPushButton('file', self)
        button.setFocusPolicy(Qt.NoFocus)
        return button
 
    def file_name(self):
        filename=QLineEdit(self)
        return filename
 
    def aligt(self):
        algt=QTextEdit(self)
        return algt
 
    def button_remove(self):
        button = QPushButton('remove', self)
        return button
 
    def group_radio(self):
        group=QGroupBox("format", self)
        clustal=QRadioButton("clustal")
        fasta=QRadioButton("fasta")
        msf=QRadioButton("msf")
        fasta.setChecked(1)
        box=QHBoxLayout()
        box.addWidget(fasta)
        box.addWidget(clustal)
        box.addWidget(msf)
        group.setLayout(box)
        return group
 
    def button_submit(self):
        button = QPushButton('submit', self)
        return button
 
    def button_plus(self):
        button = QPushButton('+algt',self)
        return button
 
    def msa_1(self):
        label=self.label_name(1)
        self.layout.addWidget(label, 0, 0)
        button_file=self.button_file()
        self.layout.addWidget(button_file, 1, 0)
        file_name=self.file_name()
        self.layout.addWidget(file_name, 1, 1)
        self.layout.addWidget(self.button_remove(), 1, 2)
        self.layout.addWidget(self.aligt(), 2, 1)
        self.layout.addWidget(self.group_radio(), 3, 0, 1, 2)
        self.connect(button_file,SIGNAL('clicked()'),self.control.choose_file)
        #file_name.setText(self.control.get_filename())
 
    def msa_2(self):
        self.layout.addWidget(self.label_name(2), 4, 0)
        button_file=self.button_file()
        self.layout.addWidget(button_file, 5, 0)
        self.layout.addWidget(self.file_name(), 5, 1)
        self.layout.addWidget(self.button_remove(), 5, 2)
        self.layout.addWidget(self.aligt(), 6, 1)
        self.layout.addWidget(self.group_radio(), 7, 0, 1, 2)
        self.connect(button_file,SIGNAL('clicked()'),self.control.choose_file)
 
 
    def init(self):
        self.control = controller_view.Controller(self)
        self.layout=QGridLayout()
        self.msa_1()
        self.msa_2()
        self.layout.addWidget(self.button_submit(), 7, 3)
        self.setWindowTitle('MsaCompare')
        self.setLayout(self.layout)
 
 
if __name__ == '__main__':
    app=QApplication(sys.argv)
    vw=View()
    vw.show()
    app.exec_()
class pour les évenements :
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
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from view2 import *
import os
 
class Controller(QWidget):
    "Realize the event and action of the window view"
    def __init__(self, QWidget):
        super(Controller, self).__init__()
        self.filename=""
 
    def get_filename(self):
        print "oui"
        return self.filename
 
    def choose_file(self):
        filename = QFileDialog.getOpenFileName(self, 'Open file', os.getenv("HOME"))
        fname = open(filename)
        self.filename=filename
en faite j'aimerai récupéré le self.filename de la class controller et l'afficher dans le file_name de l'interface.
mais le problème c'est que quand j'appel la fonction get_filename() elle est apelé avant que je puisse cliqué sur le bouton file. Ce que je comprends. Mais comment faire alors?

j'espère avoir été clair.

merci
alaninho