Bonjour à vous tous,
Voilà, je dois programmer en Python via Eclipse (avec PyDev) afin d'élaborer une interface graphique. De ce fait, je suis en train d'utiliser PyQt4. Pour le moment, je souhaite que l'utilisateur saisisse l'adresse d'un serveur, son login et son mot de passe. Ainsi, je voudrais que lorsqu'il clique sur le bouton "Suivant", les informations qu'il a entrées soient copiées.
Ainsi, voici la programmation que j'ai :
#!/usr/bin/python
#-*- coding: utf8 -*-
#include <QApplication>
# -*- coding: utf-8 -*-
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(613, 579)
self.commandLinkButton = QtGui.QCommandLinkButton(Dialog)
self.commandLinkButton.setGeometry(QtCore.QRect(480, 470, 91, 41))
self.commandLinkButton.setObjectName("commandLinkButton")
self.label = QtGui.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(80, 70, 391, 31))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(22)
font.setWeight(75)
font.setBold(True)
self.label.setFont(font)
self.label.setObjectName("label")
self.gridLayoutWidget_2 = QtGui.QWidget(Dialog)
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(140, 350, 261, 80))
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
self.gridLayout_2 = QtGui.QGridLayout(self.gridLayoutWidget_2)
self.gridLayout_2.setObjectName("gridLayout_2")
self.label_3 = QtGui.QLabel(self.gridLayoutWidget_2)
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(12)
font.setWeight(75)
font.setBold(True)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.gridLayout_2.addWidget(self.label_3, 0, 2, 1, 1)
self.label_4 = QtGui.QLabel(self.gridLayoutWidget_2)
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(12)
font.setWeight(75)
font.setBold(True)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.gridLayout_2.addWidget(self.label_4, 2, 2, 1, 1)
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.gridLayout_2.addItem(spacerItem, 0, 1, 1, 1)
spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.gridLayout_2.addItem(spacerItem1, 2, 1, 1, 1)
self.lineEdit_4 = QtGui.QLineEdit(self.gridLayoutWidget_2)
self.lineEdit_4.setEchoMode(QtGui.QLineEdit.Password)
self.lineEdit_4.setObjectName("lineEdit_4")
self.gridLayout_2.addWidget(self.lineEdit_4, 2, 0, 1, 1)
self.lineEdit_3 = QtGui.QLineEdit(self.gridLayoutWidget_2)
self.lineEdit_3.setMaximumSize(QtCore.QSize(124, 20))
self.lineEdit_3.setEchoMode(QtGui.QLineEdit.Normal)
self.lineEdit_3.setObjectName("lineEdit_3")
self.gridLayout_2.addWidget(self.lineEdit_3, 0, 0, 1, 1)
self.label_2 = QtGui.QLabel(Dialog)
self.label_2.setGeometry(QtCore.QRect(100, 270, 361, 51))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(16)
font.setWeight(75)
font.setBold(True)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.gridLayoutWidget = QtGui.QWidget(Dialog)
self.gridLayoutWidget.setGeometry(QtCore.QRect(100, 150, 351, 88))
self.gridLayoutWidget.setObjectName("gridLayoutWidget")
self.gridLayout = QtGui.QGridLayout(self.gridLayoutWidget)
self.gridLayout.setObjectName("gridLayout")
self.lineEdit = QtGui.QLineEdit(self.gridLayoutWidget)
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(12)
self.lineEdit.setFont(font)
self.lineEdit.setObjectName("lineEdit")
self.gridLayout.addWidget(self.lineEdit, 0, 1, 1, 1)
self.label_5 = QtGui.QLabel(self.gridLayoutWidget)
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(12)
font.setWeight(75)
font.setBold(True)
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.gridLayout.addWidget(self.label_5, 0, 0, 1, 1)
self.retranslateUi(Dialog)
QtCore.QObject.connect(self.commandLinkButton, QtCore.SIGNAL("clicked()"), self.lineEdit.copy)
QtCore.QObject.connect(self.commandLinkButton, QtCore.SIGNAL("clicked()"), self.lineEdit_4.copy)
QtCore.QObject.connect(self.commandLinkButton, QtCore.SIGNAL("clicked()"), self.lineEdit_3.copy)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
self.commandLinkButton.setText(QtGui.QApplication.translate("Dialog", "Suivant", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("Dialog", "CONNEXION SERVEUR", None, QtGui.QApplication.UnicodeUTF8))
self.label_3.setText(QtGui.QApplication.translate("Dialog", "Login", None, QtGui.QApplication.UnicodeUTF8))
self.label_4.setText(QtGui.QApplication.translate("Dialog", "Mot de passe", None, QtGui.QApplication.UnicodeUTF8))
self.label_2.setText(QtGui.QApplication.translate("Dialog", "Entrez votre login et votre mot de passe", None, QtGui.QApplication.UnicodeUTF8))
self.lineEdit.setText(QtGui.QApplication.translate("Dialog", "http://", None, QtGui.QApplication.UnicodeUTF8))
self.label_5.setText(QtGui.QApplication.translate("Dialog", "Adresse Subversion :", None, QtGui.QApplication.UnicodeUTF8))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Dialog = QtGui.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
Comme vous pouvez le voir, lorsque l'utilisateur clique sur le bouton "suivant" (qui est un "commandLinkButton"), il copie les différents champs (self.lineEdit.copy, self.lineEdit_4.copy, self.lineEdit_3.copy). Malheureusement, après, je ne vois pas comment il serait possible de récupérer ces informations. Sinon, je pensais qu'il fallait plutôt créer via "QtDesigner" des nouveaux slots comme par exemple : copylogin(), copyadress(), copypassword() (qui prendraient ainsi la place de "copy()"). De cette manière, je n'aurais plus qu'à définir ces fonctions à l'intérieur de la classe Ui_Dialog... En réalité, j'ai cherché pas mal d'exemples mais ils fonctionnaient pour la plupart avec des fichiers en C++ (avec le main.cpp, le ou les header files, etc) alors que moi, je dois faire ma programmation que sur Python...
Bref, en résumé, je voudrais savoir comment est-il possible de parvenir à ce que je souhaite ?
Je vous remercie d'avance pour vos suggestions.