Я попытался добавить базу данных следующим образом.
import sys
import sqlite3
# --- constructor
# --------------
self.m_grid1 = wx.grid.Grid( self.m_panel6, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 )
# Grid
self.m_grid1.CreateGrid( 6, 3 )
вызывается с кнопки
def Database_View( self, event ):
db = sqlite3.connect("database/Save.db")
cur = db.cursor()
cur.execute("SELECT id,login,password FROM datosurl")
data = cur.fetchall()
if data:
for row, form in enumerate(data):
for column, item in enumerate(form):
#self.m_grid1.SetCellValue(column, row, form[0])
print("row: "+str(row)+" - column - "+str(column)+" - "+str(form[0]))
print("row :"+str(row)+" - column - "+str(column)+" - "+ str(form[1]))
print("row :"+str(row)+" - column - "+str(column)+" - "+ str(form[2]))
column +=1
row +=1
db.close()
Как видите, я пытался использовать print, но целью был следующий код:
self.m_grid1.SetCellValue(column, row, form[0])
в form1 у меня есть следующее
form('id','apple','english') #and continuously
Я знаю, что у меня не получается повторять предложения, не могли бы вы мне помочь? я застопорился
Было бы правильно, если бы я уже определил вас?, потому что мои данные превышают определенное значение
self.m_grid1.CreateGrid( 6, 3 )





Вот один из способов сделать это, их несколько, в зависимости от того, как устроена база данных и как осуществляется доступ к ней.
См. onLoadTable, который загружает метки столбцов и данные.
import wx
import sqlite3 as sqlite
import wx.grid as gridlib
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY,"",size=(900,400))
panel = wx.Panel(self, -1)
self.db = db
self.cursor = self.db.conn.cursor()
result = self.cursor.execute("create table if not exists Data (myindex INTEGER PRIMARY KEY AUTOINCREMENT, id int, login text, password text)");
vbox = wx.BoxSizer(wx.VERTICAL)
self.grid = wx.grid.Grid(panel)
rows = self.cursor.execute('SELECT Count(*) FROM Data')
val = rows.fetchone()
self.db_exists = val[0]
self.grid.CreateGrid(15,20)
self.grid.Scroll(0,0)
self.LoadBtn = wx.Button(panel, -1, "Commit/Load")
self.Bind(wx.EVT_BUTTON, self.onLoad, self.LoadBtn)
vbox.Add(self.LoadBtn)
vbox.Add(self.grid)
panel.SetSizer(vbox)
panel.Fit()
def onLoad(self, event):
if self.db_exists == 0:
for i in range(10):
id = i
login = 'login'+str(i)
password = 'pass'+str(i)
self.cursor.execute("INSERT INTO Data VALUES (NULL,?,?,?);",(id, login, password))
self.db.conn.commit()
self.onLoadTable()
def onLoadTable(self):
self.grid.ClearGrid()
metadata = self.cursor.execute('SELECT * from Data')
labels = []
for i in metadata.description:
labels.append(i[0])
labels = labels[1:]
for i in range(len(labels)):
self.grid.SetColLabelValue(i, labels[i])
logins = self.cursor.execute('SELECT * from Data')
for row in logins:
row_num = row[0]
cells = row[1:]
for i in range(0,len(cells)):
if cells[i] != None and cells[i] != "null":
self.grid.SetCellValue(row_num-1, i, str(cells[i]))
self.Show()
self.db.conn.commit()
class GetDatabase():
def __init__(self):
self.conn = sqlite.connect("logins.db")
if __name__ == "__main__":
db=GetDatabase()
app = wx.App()
frame = MyFrame()
frame.Show()
app.MainLoop()
Танк тебе РЛФ Саксонии