je le schéma suivant d'un programme Python (en utilisant PyQt4):Comment appeler une fonction d'une autre classe en Python
class Polygon(QtGui.QGraphicsItem):
def __init__(self):
super(Polygon, self).__init__()
def addpoint(self, point):
if last_point:
# trying to add auto-save here
class MainWidget(QtGui.QWidget):
openFileName = ""
list_of_polygons = []
def __init__(self):
super(MainWidget, self).__init__()
def openFile(self):
call dialog
self.openFileName = ...
def saveFile(self):
# needs to access a couple something with self.variables, like self.openFileName
def main():
app = QtGui.QApplication(sys.argv)
ex = MainWidget()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
La fonctionnalité est une visionneuse d'image où je crée des polygones pour objet marquer. Je voudrais appeler une sauvegarde automatique une fois qu'un polygone a été créé. Donc, pour sauvegarder un polygone, je dois l'appeler à partir de la classe saveFile
de la fonction MainWidget
. Mon problème est que la fonctionnalité d'enregistrement est implémentée dans la classe MainWidget, et je ne sais pas comment y accéder à partir de la classe Polygon
.
Quelle serait la meilleure idée pour le faire? Devrais-je créer saveFile global? Si oui, comment puis-je accéder à moi-même? variables du MainWidget?
Sérieusement, vous pensez devoir faire une application 'saveFile()' après chaque 'addpoint()'? Cela semble lent, surtout si les points sont créés de manière interactive par un utilisateur ... – martineau
Chaque polygone a environ 4-10 points. Je ne sauvegarde que lorsque le polygone est terminé. Juste ne pas inclus dans le code. – zsero