wxpython phoenix: как получить значения с плавающей запятой из ячеек сетки wx и выполнить математические операции?
Я пытаюсь построить счет с сеткой wx, я хотел бы добавить значения в столбце количества и значения в столбце цены и отобразить его в итоговой строке.
import wx
import wx.grid as gridlib
class MyForm(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "Invoice")
datag = 0
# Add a panel so it looks the correct on all platforms
panel = wx.Panel(self, wx.ID_ANY)
grid = gridlib.Grid(panel)
grid.CreateGrid(25, 3)
note_sizer = wx.BoxSizer()
note_sizer.Add(grid, 1, wx.EXPAND)
panel.SetSizer(note_sizer)
# We can set the sizes of individual rows and columns
# in pixels
grid.SetColSize(0, 520)
# change a couple column labels
grid.SetColLabelValue(0, "Product")
grid.SetColLabelValue(1, "Quantity")
grid.SetColLabelValue(2, "Price")
grid.SetColFormatFloat(2)
grid.SetCellValue(24, 0, 'Total')
if __name__ == "__main__":
app = wx.App()
frame = MyForm().Show()
app.MainLoop()
кто-нибудь может помочь?
1 ответ
Как только вы захотите сделать что-то подобное, рекомендуется использовать собственную таблицу сетки для хранения значений ваших данных. Другими словами, вместо того, чтобы помещать свои значения в сетку и возвращать значения при необходимости, сетка просто запрашивает у вашей таблицы значения для отображения по мере необходимости. Это облегчает работу с данными в любой структуре и типах данных, которые имеют смысл для вашего приложения. В демонстрации wxPython есть несколько примеров, демонстрирующих некоторые способы реализации табличных классов, полученных из GridTableBase
и как их использовать.