class DbSqlite:
"""class for work with database"""
+
+ def __init__(self):
+ self.conn = self.connect()
+
def connect(self):
"""connect to database"""
conn = None
return conn
+ def get_record(self, id):
+
+ """return record field"""
+ cur = self.conn.cursor()
+ cur.execute("select field.name, data.value "
+ "from data left join field "
+ "on data.id_field=field.id "
+ "where data.id=?", (id,))
+ self.data = {}
+ for row in cur:
+ print "key = %s value = %s" % (row[0], row[1])
+ self.data[row[0]] = row[1]
+ return self.data
+
+ def get_allrecords(self, field):
+
+ """return records"""
+ cur = self.conn.cursor()
+ cur.execute("select data.id, data.value "
+ "from data left join field "
+ "on data.id_field=field.id "
+ "where field.name=?", (field,))
+ self.data = {}
+ for row in cur:
+ #print row
+ self.data[row[0]] = row[1]
+ return self.data
+
def ins_record(self, rec):
"""insert record into database"""
#get id new record
- conn = self.connect()
- if conn is None:
+ #conn = self.connect()
+ if self.conn is None:
print "database connect error"
return None
- cur = conn.cursor()
+ cur = self.conn.cursor()
cur.execute("select max(id) from data")
id_record = cur.fetchone()[0]
if id_record is None:
for i in val:
cur.execute("insert into data (id, id_field, value) values (?, ?, ?)",
(id_record, id_field, i))
- conn.commit()
- conn.close()
+ self.conn.commit()
+ #conn.close()
def clear_data(self):
pygtk.require('2.0')
import gtk
+from database import db
+
class HelloWorld:
def hello(self, widget, data=None):
def __init__(self):
gtk.rc_parse_string("style 'scroll' {\n"
- " GtkRange::slider-width = 40\n"
+ " engine 'sapwood'{\n"
+ " GtkRange::slider-width = 40\n"
+ " }\n"
"}\n"
"class 'GtkRange' style 'scroll'")
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
- self.window.set_size_request(300, 200)
+ self.window.set_size_request(600, 360)
-
+
+
# When the window is given the "delete_event" signal (this is given
# by the window manager, usually by the "close" option, or on the
# titlebar), we ask it to call the delete_event () function
vbox.pack_start(sw, True, True, 0)
- self.data = [('fio fdkfdskajf jdkflasjkla', 'doldfsagfdas dlaskj', '212345'),
- ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
- ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
- ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
- ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
- ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
- ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
- ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
- ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
- ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
- ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
- ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
- ('fdas dafs fdsfasd ', 'fdasf dafa', '12435678')]
- store = gtk.ListStore(str, str, str)
- for d in self.data:
- store.append([d[0], d[1], d[2]])
+ self.dbo = db.DbSqlite()
+ self.data = self.dbo.get_allrecords('cn')
+ store = gtk.ListStore(int, str)
+ for d in self.data:
+ store.append([d, self.data[d]])
+
tree = gtk.TreeView(store)
tree.set_rules_hint(True)
tree.connect("row-activated", self.select_item)
t1 = gtk.CellRendererText()
- column = gtk.TreeViewColumn("Name", t1, text=0)
+ column = gtk.TreeViewColumn("Id", t1, text=0)
column.set_sort_column_id(0)
+ column.set_visible(False)
tree.append_column(column)
-
t1 = gtk.CellRendererText()
- column = gtk.TreeViewColumn("State", t1, text=1)
- column.set_sort_column_id(1)
+ column = gtk.TreeViewColumn("Name", t1, text=1)
+ column.set_sort_column_id(0)
tree.append_column(column)
- t1 = gtk.CellRendererText()
- column = gtk.TreeViewColumn("Phone", t1, text=2)
- column.set_sort_column_id(2)
- tree.append_column(column)
-
sw.add(tree)
self.window,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
-
- label = gtk.Label("select item %s" % path)
+ model = widget.get_model()
+ id = model[path][0]
+ rec = self.dbo.get_record(id)
+ print rec
+ text = ""
+ for r in rec:
+ print "%s -> %s" % (r, rec[r])
+ text += "%s: %s\n" % (r, rec[r])
+
+ #sw = gtk.ScrolledWindow()
+ #sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
+ #sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+
+ label = gtk.Label(text)
+ #sw.add(label)
+ #label.set_markup(text)
self.dialog.vbox.pack_start(label)
label.show()
response = self.dialog.run()