Hi, I’m new to Pythonista, and I’m struggling with binding SQLite data to custom Tableview and then in UI form. Here is my code. What I’m doing wrong?
import ui
import sqlite3 as dB
#tv = ui.TableView()
conn = db.connect('pythonsqlite.db')
conn.row_factory = lambda cursor, row: row[0]
c = conn.cursor()
ids = c.execute('SELECT name FROM projects').fetchall()
print(len(ids))
#tv.data_source = ui.ListDataSource(ids)
#tv.present('fullscreen')
class MyTableViewDataSource (object):
def tableview_number_of_sections(self, tableview):
# Return the number of sections (defaults to 1)
return 1
def tableview_number_of_rows(self, tableview, section):
# Return the number of rows in the section
return (len(ids))
def tableview_cell_for_row(self, tableview, section, row):
# Create and return a cell for the given section/row
cell = ui.TableViewCell()
data_source = ui.ListDataSource(ids)
cell.data_source = cell.delegate = data_source
print(ids)
return cell
def tableview_title_for_header(self, tableview, section):
# Return a title for the given section.
# If this is not implemented, no section headers will be shown.
return 'Names'
def tableview_can_delete(self, tableview, section, row):
# Return True if the user should be able to delete the given row.
return True
def tableview_can_move(self, tableview, section, row):
# Return True if a reordering control should be shown for the given row (in editing mode).
return True
def tableview_delete(self, tableview, section, row):
# Called when the user confirms deletion of the given row.
pass
def tableview_move_row(self, tableview, from_section, from_row, to_section, to_row):
# Called when the user moves a row with the reordering control (in editing mode).
pass
t=ui.TableView()
t.frame=(0,0,200,480)
t.data_source=MyTableViewDataSource()
t.present('sheet')
#ui.load_view('MyForm').present('sheet')