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 и как их использовать.

Другие вопросы по тегам