Faire exucuter un fichier.py python à partir d'un menu principal
Foutha02
Messages postés
1
Statut
Membre
-
tarneo23 Messages postés 62 Statut Membre -
tarneo23 Messages postés 62 Statut Membre -
Bonjour,
j'ai créer un programme principal main qui contient un menu principal et je n'arrive pas lancer les autres modules à partir du menu principal, sachant que j'ai utiliser les modules de PYQT5
prière de me assister pour régler ce pbm.
j'ai créer un programme principal main qui contient un menu principal et je n'arrive pas lancer les autres modules à partir du menu principal, sachant que j'ai utiliser les modules de PYQT5
prière de me assister pour régler ce pbm.
Configuration: Windows / Chrome 81.0.4044.92
######### Main Menu###########
import sys
from PyQt5 import QtGui
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction
#import Fiche_Client
#from fubonacci import fubonnaci_Suite
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.initWind()
def initWind(self):
self.setWindowIcon(QtGui.QIcon("tux.png"))
self.setWindowTitle("Logiciel Suiv des Crédits")
self.setGeometry(100,100,1000,600)
self.menuPrincipal()
self.show()
######## Creation d'un Menu Principal du Logiciel
def menuPrincipal(self):
mainMenu = self.menuBar()
fichier = mainMenu.addMenu("Fichier")
trt = mainMenu.addMenu("Traitement des Credits")
ed = mainMenu.addMenu("Edition")
out = mainMenu.addMenu("Outils")
###########################
cli = QAction("Client", self)
art = QAction("Articles", self)
quit = QAction("Quitter", self)
fichier.addAction(cli)
fichier.addAction(art)
fichier.addAction(quit)
quit.triggered.connect(self.close)
cli.triggered.connect(self.Client)
##art.triggered.connect(fubonnaci_Suite)
#############################
vent = QAction("Ventes", self)
vers = QAction("Versements ", self)
trt.addAction(vent)
trt.addAction(vers)
#############################
regSuiv = QAction("Registre Suivi Crédit", self)
factimpay = QAction("Etat des Factures Impayées", self)
soldGlob = QAction("Etat Global Solde Client", self)
ed.addAction(regSuiv)
ed.addAction(factimpay)
ed.addAction(soldGlob)
##############################
ent = QAction("Mise a jour Entete", self)
pw = QAction("Changer le Mot de Passe", self)
out.addAction(ent)
out.addAction(pw)
################################
def Client(self):
#???????? comment faire ?
app = QApplication(sys.argv)
wind = Window()
sys.exit(app.exec_())
#################################################################
######### Module Fichier Client
from PyQt5.QtWidgets import QWidget, QGroupBox, QHBoxLayout, QApplication, QLabel, QLineEdit, QGridLayout, QTableWidget, \
QTableWidgetItem, QVBoxLayout, QPushButton,QMessageBox
from PyQt5.QtGui import QFont
import sqlite3
import sys
class Win_Client(QWidget):
def __init__(self):
super().__init__()
self.InitWind()
self.show()
def InitWind(self):
self.setGeometry(400, 300, 800, 600)
self.setWindowTitle("Fichier Client")
self.fich_Cli()
def fich_Cli(self):
glob = QGroupBox()
group1 = QGroupBox("Fichier Client :")
self.group2 = QGroupBox("Table Client :")
vbox = QVBoxLayout()
vbox.addWidget(group1)
vbox.addWidget(self.group2)
glob.setLayout(vbox)
grid = QGridLayout()
lab1 = QLabel("Code Client", self)
lab2 = QLabel("Raison Social :", self)
lab3 = QLabel("Adresse : ", self)
self.cod = QLineEdit(self)
self.rais = QLineEdit(self)
self.rais.setFont(QFont('Arial', 12))
self.cod.setEnabled(False)
self.adres = QLineEdit(self)
but1 = QPushButton("Valider", self)
self.but2 = QPushButton('Suprimer ', self)
but3 = QPushButton('Fermer', self)
grid.addWidget(lab1, 0, 0)
grid.addWidget(lab2, 1, 0)
grid.addWidget(lab3, 2, 0)
grid.addWidget(self.cod, 0, 1)
grid.addWidget(self.rais, 1, 1)
grid.addWidget(self.adres, 2, 1)
grid.addWidget(but1, 0, 2)
grid.addWidget(self.but2, 1, 2)
grid.addWidget(but3, 2, 2)
group1.setLayout(grid)
self.table = QTableWidget()
self.table.setColumnCount(4)
self.table.setHorizontalHeaderLabels(("Code,Rais_Soc,Adresse,Solde").split(','))
self.table.cellClicked.connect(self.clic)
vbox = QVBoxLayout()
vbox.addWidget(self.table)
self.group2.setLayout(vbox)
hbox = QHBoxLayout()
hbox.addWidget(glob)
self.setLayout(hbox)
self.attrib_Cod()
self.Charger_La_Base()
but1.clicked.connect(self.Valider)
but3.clicked.connect(self.close)
self.but2.clicked.connect(self.Supprimer)
self.but2.setEnabled(False)
def Charger_La_Base(self):
connection = sqlite3.connect("credit.db")
cursor = connection.cursor()
req = cursor.execute("SELECT * FROM client ORDER BY code")
self.table.setRowCount(0)
try:
for row_number, row_data in enumerate(req):
self.table.insertRow(row_number)
for column_number, data in enumerate(row_data):
self.table.setItem(row_number, column_number, QTableWidgetItem(str(data)))
self.attrib_Cod()
except Exception as e:
print("[ERREUR :]", e)
connection.rollback()
finally:
connection.close()
def attrib_Cod(self):
connection = sqlite3.connect("credit.db")
cursor = connection.cursor()
req = cursor.execute("SELECT * FROM client ORDER BY code")
row = req.fetchall()
reccount = len(row)
if reccount > 0:
req = cursor.execute("SELECT * FROM client ORDER BY code")
row = req.fetchone()
while (row):
cod = row[0]
row = req.fetchone()
cod = int(cod[1:4])
cod += 1
l = len(str(cod))
s = ''
if l < 3:
for i in range(3 - l):
s = s + '0'
cod1 = 'C' + s + str(cod)
else:
cod1 = 'C001'
self.cod.setText(cod1)
connection.close()
def Valider(self):
message= QMessageBox.question(self,"Nouveau Client","Est Vous Sur ?",QMessageBox.Yes|QMessageBox.No)
if message==QMessageBox.Yes :
connection = sqlite3.connect("credit.db")
cursor = connection.cursor()
try:
nouvClient = (self.cod.text(), self.rais.text().upper(), self.adres.text().capitalize(), 0)
cursor.execute("INSERT INTO Client VALUES(?,?,?,?)", nouvClient)
connection.commit()
print("Nouveau Client Ajouté !")
except Exception as e:
print("[ERREUR :]", e)
connection.rollback()
finally:
connection.close()
self.Charger_La_Base()
self.attrib_Cod()
self.rais.clear()
self.adres.clear()
else :
self.rais.clear()
self.adres.clear()
def Supprimer(self):
message = QMessageBox.question(self, "Suppression Client", "Est Vous Sur ?", QMessageBox.Yes | QMessageBox.No)
if message == QMessageBox.Yes:
connection = sqlite3.connect("credit.db")
cursor = connection.cursor()
try:
code_cli = self.table.item(self.table.currentRow(), 0).text()
cursor.execute("DELETE FROM Client WHERE code = ?" , (code_cli,))
connection.commit()
print("Client Suprimé !")
except Exception as e:
print("[ERREUR :]", e)
connection.rollback()
finally:
connection.close()
self.Charger_La_Base()
self.attrib_Cod()
self.but2.setEnabled(False)
def clic(self):
self.but2.setEnabled(True)
print(self.table.item(self.table.currentRow(), 0).text())
#print(self.table.item(self.table.currentRow(), 0).text())
app = QApplication(sys.argv)
win = Win_Client()
sys.exit(app.exec_())
############################
A voir également:
- Faire exucuter un fichier.py python à partir d'un menu principal
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Menu déroulant excel - Guide
- Citizen code python - Accueil - Outils
- Changer d'écran principal ✓ - Forum Windows