J'ai créé un cadre avec wxFormBuilder appelé MyFrame1 dans un fichier .py appelé gui.py. J'essaie de lire et d'écrire des valeurs sur cette grille mais j'ai été bloqué pendant des heures pour essayer de résoudre le problème. Ceci est une version simplifiée du code comme l'exemple précédent que j'ai posté était trop compliqué.Comment lire/mettre à jour un wxgrid dans un formulaire que j'ai créé avec wxFormBuilder
L'application est démarrée dans maingridtest.py et j'essaie de lire et d'écrire dans la grille à partir de là. Si j'intergrate tout dans un fichier (wFormBuilder gui et maingridtest dans say 'code.py' je peux lire et écrire à la grille pas de problème.Je veux que le code formbulider gardé séparé pour simplifier les mises à jour au GUI
J'essaie je ne peux pas obtenir python pour trouver m_grid1 dans gui.py.
Voici maingridtest.py
__author__ = 'Paul'
import wx
import wx.xrc
import wx.grid
from gui import MyFrame1
class ReadGrid(MyFrame1):
def __init__(self, parent):
MyFrame1.__init__(self, parent)
test = m_grid1.GetCellValue(2, 2)
print test
if __name__ == '__main__':
app = wx.App(0)
MainApp = MyFrame1(None)
MainApp.Show()
app.MainLoop()
et est ici le gui.py
# -*- coding: utf-8 -*-
###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################
import wx
import wx.xrc
import wx.grid
ID_ABOUT = 1000
###########################################################################
## Class MyFrame1
###########################################################################
class MyFrame1 (wx.Frame):
def __init__(self, parent):
wx.Frame.__init__ (self, parent, id = wx.ID_ANY, title = u"Grid Test", pos = wx.DefaultPosition, size = wx.Size(818,525), style = wx.CAPTION|wx.CLOSE_BOX|wx.DEFAULT_FRAME_STYLE|wx.SYSTEM_MENU|wx.TAB_TRAVERSAL)
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
bSizer1 = wx.BoxSizer(wx.VERTICAL)
self.m_grid1 = wx.grid.Grid(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0)
# Grid
self.m_grid1.CreateGrid(5, 5)
self.m_grid1.EnableEditing(True)
self.m_grid1.EnableGridLines(True)
self.m_grid1.EnableDragGridSize(False)
self.m_grid1.SetMargins(0, 0)
# Columns
self.m_grid1.EnableDragColMove(False)
self.m_grid1.EnableDragColSize(True)
self.m_grid1.SetColLabelSize(30)
self.m_grid1.SetColLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)
# Rows
self.m_grid1.EnableDragRowSize(True)
self.m_grid1.SetRowLabelSize(80)
self.m_grid1.SetRowLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)
# Label Appearance
# Cell Defaults
self.m_grid1.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP)
bSizer1.Add(self.m_grid1, 0, wx.ALL, 5)
self.SetSizer(bSizer1)
self.Layout()
self.m_menubar1 = wx.MenuBar(0)
self.file = wx.Menu()
self.m_menubar1.Append(self.file, u"File")
self.help = wx.Menu()
self.about = wx.MenuItem(self.help, ID_ABOUT, u"About", wx.EmptyString, wx.ITEM_NORMAL)
self.help.AppendItem(self.about)
self.m_menubar1.Append(self.help, u"Help")
self.SetMenuBar(self.m_menubar1)
self.Centre(wx.BOTH)
# Connect Events
self.Bind(wx.EVT_CLOSE, self.closeGridFrame)
def __del__(self):
pass
# Virtual event handlers, overide them in your derived class
def closeGridFrame(self, event):
event.Skip()
Voici le cadre – Finchy70