Buenas. Tengo un problema....
Tengo una clase, donde cuya clase estoy llamando a la funcion OS_system(), importado del paquete ' init'
from init import *
class notification:
# [CODE]
def popup(self, title, type_title, content_text, type_image, Image=Image):
try:
main = Tk()
ico = Image.open(OS_system().path_tkinter("SockServices.png"))
# [...]
init modulo:
class OS_system:
def __init__(self):
self.system = platform.system()
# [...]
def path_tkinter(self,image):
if self.system == "Linux":
return "/etc/SockServices/mods/popup/images/"+str(image)
elif self.system == "Windows":
return "C:\Program Files\SockServices\mods\popup\images\\"+str(image)
El problema es que me da el error
NameError: name 'OS_system' is not defined
El problema es que la clase OS_system del modulo init no es importada dentro de la clase notification. Como lo hago?[/code]
hola:
como no hay forma de saber que estás usando en tu código y esto le puede servir a otro, hago un ejemplo básico desde 0 y funcional:
módulo inicio:
import os
class Os_system:
def __init__(self):
self.system = os.name #me parece mejor que platform, salvo que sigas usando 2.7
def path_tkinter(self,imagen):
if self.system == "nt":
return f"windows/{imagen}" #por una cuestión de fiaca cambié el camino
elif self.system == 'posix':
return f"linux/{imagen}"
codigo principal:
from inicio import *
import tkinter as tk
from PIL import ImageTk, Image
class uno:
def __init__(self):
ventana = tk.Tk()
imagen = Image.open(Os_system().path_tkinter("bola.png")) #la imagen más a mano que tenía
tkimagen = ImageTk.PhotoImage(imagen)
imagen= tk.Label(ventana,image=tkimagen)
imagen.pack()
ventana.mainloop()
app=uno()
esto funciona.
Saludos.