Si bien mis logros en la materia son más bien escasos y no son comparables con los grandes maestros de la programación de este foro y otros dedicados al tema. Creo que es bueno hacer público este proceso para aquellos que se inicien en programación y necesiten un ejemplo sencillo
Para ejecutar este script se necesitan los siguientes paquetes (en Archlinux, no he probado otras distribuciones):
- python-gobject (en ubuntu creo que es python3-gi
- python-dbus (en ubuntu creo que es dbus-python)
- python-dbus-common
- jack2 o jack2-dbus
jack debe estar funcionando (con dbus habilitado) para que el script funcione.
Alguien escribió:#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Listado de puertos de jack en GTK+ 3
"""
###########################################
### Primero conectamos a Dbus ###
###########################################
import dbus
bus = dbus.SessionBus()
jack_control = bus.get_object("org.jackaudio.service", "/org/jackaudio/Controller")
port_list = jack_control.GetAllPorts()
############################################
### Ahora la Gui ###
############################################
from gi.repository import Gtk
class MainWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Listado de Puertos Jack")
self.set_default_size(200, 200)
model = self.__create_model(port_list)
sw = Gtk.ScrolledWindow()
treeView = Gtk.TreeView(model)
cellRenderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Puertos", cellRenderer, text=0)
treeView.append_column(column)
sw.add(treeView)
self.add(sw)
def __create_model(self, item_list):
model = Gtk.ListStore(str)
for item in item_list:
model.append([item])
return model
win = MainWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
ojo para verlo con indentación lo dejo en pastebin:
http://pastebin.com/KH4pcrSA
En caso contrario solo se producirá un error.
El resultado será una lista de los puertos en jack hecha con GTK+3.
Sé que es poco lo que hace este script, pero para mí ha sido un aprendizaje bien grande lograr esto. Si he seguido tutoriales de python 2, wxwidget, y algo de GTK+2, incluso había hecho pequeños scripts útiles para mí, pero con la aparición de Python3 y GTK+3 ha habido un cambio muy profundo para mí que me ha significado un re-aprendizaje de este tema, no soy muy hábil para esto de la programación y tampoco es mi área, pero espero sacarle provecho a este aprendizaje y a la vez que otras personas se les facilite el proceso.
Ahora me enfocaré en desarrollar alguna aplicación un tanto más útil.