Guardar preferencias en Linux con ini

Este es uno de los capítulos del tutorial Hacer una aplicación gráfica para Linux. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.

Estamos llegando al final de esta serie de artículos, creo que este será el penúltimo, si no me equivoco y no añado alguna utilidad mas al final. En fin, a lo que iba, he añadido dos interesantes características a la aplicación.

La primera para centrar la ventana en la pantalla. Hasta ahora, la ventana principal aparecía donde le venía en gana. Con estas líneas aparece justo en el centro de la ventana:

def center_on_screen(self):
	width=gtk.gdk.screen_width()
	height=gtk.gdk.screen_height()
	window_width=self.window.get_size()[0]
	window_height=self.window.get_size()[1]
	self.window.move((width-window_width)/2,(height-window_height)/2)

Donde self.window es la ventana en cuestión claro.

La segunda característica añadida es guardar las preferencias en un archivo «ini», de manera que cuando ejecutemos la aplicación vaya inmediatamente al sitio:

class Ini:
	def __init__(self,inifile):
		self.inifile=inifile
		self.magnitud=0
		self.de=0
		self.a=0
		if os.path.exists(inifile)==False:
			self.write()

	def read(self):
		ini=ConfigParser.ConfigParser()
		ini.read(self.inifile)
		self.magnitud=ini.get(`Defecto`,`Magnitud`)
		self.de=ini.get(`Defecto`,`De`)
		self.a=ini.get(`Defecto`,`A`

	def write(self):
		ini=ConfigParser.ConfigParser()
		ini.read(self.inifile)
		if not ini.has_section(`Defecto`):
			ini.add_section(`Defecto`)
		ini.set(`Defecto`,`Magnitud`,self.magnitud)
		ini.set(`Defecto`,`De`,self.de)
		ini.set(`Defecto`,`A`,self.a)
		with open(self.inifile,`wb`) as writefile:
			ini.write(writefile)
	def get_magnitud(self):
		return self.magnitud
	def get_de(self):
		return self.de
	def get_a(self):
		return self.a
	def set_magnitud(self,magnitud):
		self.magnitud=magnitud
	def set_de(self,de):
		self.de=de
	def set_a(self,a):
		self.a=a

En el próximo artículo nos queda añadir un icono y publicar la aplicación y finito. No se como hacerlo para que sea pública para todos los usuarios de linux, pues es una herramienta sencilla y muy rápida de utilizar. Investigaré a ver.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *