Bonjour
J’ai un script qui commence à grandir pas mal et je me pose la question de le découper (il y a déjà 4 fichiers : EssaiDeNotebook.py, Errors.py, style.css et EssaiDeNotebook.glade)
mon ficher se présente comme cela :
# import de la bibliothèque graphique
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk,Gdk
import os, sys
import Errors
from math import *
class EssaiDeNotebook:
__gtype_name__ = "EssaiDeNotebook"
def __init__(self):
# en cas d'usage de PyInstaller pour créer un exe unique, il faut adapter le chemin du fichier glade
if getattr(sys, 'frozen', False):
wd = sys._MEIPASS
print("bundle : path = ",wd)
else:
wd = os.getcwd()
print("live : path = ",wd)
file_path = os.path.join(wd,'EssaiDeNotebook.glade')
style_provider = Gtk.CssProvider()
css = open(wd+'\\'+'style.css', 'rb')
css_data = css.read()
css.close()
style_provider.load_from_data(css_data)
#path="{0}style.css".format(wd)
#style_provider.load_from_file(path)
interface = Gtk.Builder()
interface.add_from_file(file_path)
interface.connect_signals(self)
window = interface.get_object("window")
SC=Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), style_provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
self.statusbar = interface.get_object('statusbar')
self.notebook = interface.get_object("notebook1")
self.on_notebook_switchpage(self.notebook, '', 0)
# volet calcul de coussinet
self.cs_effort= interface.get_object("cs_effort_radial")
self.cs_dia = interface.get_object("cs_dia")
self.cs_long = interface.get_object("cs_long")
self.cs_freq = interface.get_object("cs_freq")
self.cs_pression=interface.get_object("cs_label_p")
self.cs_pv = interface.get_object("cs_label_pv")
self.cs_vitesse = interface.get_object("cs_label_vitesse")
self.cs_bouton= interface.get_object("cs_bt_calc")
window.show_all()
# Lien avec glade : notebook1 / signaux / GTKnoteBook/ switch-page -> on_notebook_switchpage
def on_notebook_switchpage(self, notebook, page, page_num, data=None):
self.tab = notebook.get_nth_page(page_num)
self.label = notebook.get_tab_label(self.tab).get_label()
print(self.label)
self.message_id = self.statusbar.push(0, self.label)
def cs_bt_calc_clicked(self,widget):
erreur=0
N=self.cs_effort.get_text()
if not Errors.is_numeric(N):
Errors.MessageErreur(); erreur += 1
dia=self.cs_dia.get_text()
if not Errors.is_numeric(dia):
Errors.MessageErreur(); erreur += 1
else:
if dia=="0":
Errors.MessageErreurZero(); erreur=erreur+1
long = self.cs_long.get_text()
if not Errors.is_numeric(long):
Errors.MessageErreur(); erreur += 1
else:
if long=="0":
Errors.MessageErreurZero(); erreur=erreur+1
freq = self.cs_freq.get_text()
if not Errors.is_numeric(freq):
Errors.MessageErreur(); erreur += 1
if erreur<=0:
pression = float(N)/(float(dia)*float(long))
vitesse = float(dia)*pi*float(freq)/60000
pv=pression*vitesse
self.cs_vitesse.set_label(str(vitesse))
self.cs_pression.set_label(str(pression))
self.cs_pv.set_label(str(pv))
print("Effort =",N," - Diàmétre =",dia," - long =",long," - Freq=",freq)
# Lien avec glade : windows / signaux / GtkWidget / widget / destroy -> destroy
def destroy(self, widget):
print("Au Revoir !")
Gtk.main_quit()
if __name__ == "__main__":
app = EssaiDeNotebook()
Gtk.main()
Je voudrais le découper en 2 parties ou plus, est-il possibel de mettre la zone a partir de
def cs_bt_calc_clicked
dans un autre fichier ?
Merci d’avance
+0
-0