pycharm用wx建立界面和wx.grid建立表格存放学生成绩的相关代码

时间: 2024-02-22 07:56:31 浏览: 22
以下是使用wx建立界面和wx.grid建立表格存放学生成绩的示例代码: ```python import wx import wx.grid as gridlib class ScoreTable(gridlib.Grid): def __init__(self, parent): gridlib.Grid.__init__(self, parent, -1) self.CreateGrid(5, 3) self.SetColLabelValue(0, "姓名") self.SetColLabelValue(1, "语文") self.SetColLabelValue(2, "数学") self.SetRowLabelValue(0, "1") self.SetRowLabelValue(1, "2") self.SetRowLabelValue(2, "3") self.SetRowLabelValue(3, "4") self.SetRowLabelValue(4, "5") for row in range(5): for col in range(3): self.SetCellValue(row, col, "") self.AutoSizeColumns() class MainFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, title="学生成绩表格", size=(400, 300)) panel = wx.Panel(self, -1) # 创建表格对象 table = ScoreTable(panel) # 创建添加行按钮 add_row_button = wx.Button(panel, label="添加行") add_row_button.Bind(wx.EVT_BUTTON, self.OnAddRow) # 创建删除行按钮 del_row_button = wx.Button(panel, label="删除行") del_row_button.Bind(wx.EVT_BUTTON, self.OnDelRow) # 创建布局管理器 sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(table, 1, wx.EXPAND) sizer.Add(add_row_button, 0, wx.BOTTOM | wx.RIGHT, 5) sizer.Add(del_row_button, 0, wx.RIGHT, 5) panel.SetSizer(sizer) def OnAddRow(self, event): table = self.FindWindowByName("score_table") table.AppendRows(1) def OnDelRow(self, event): table = self.FindWindowByName("score_table") selection = table.GetSelectedRows() if len(selection) == 0: wx.MessageBox("请先选择要删除的行!", "错误", wx.OK | wx.ICON_ERROR) else: for i in reversed(selection): table.DeleteRows(i) if __name__ == "__main__": app = wx.App() frame = MainFrame() frame.Show() app.MainLoop() ``` 在该示例代码中,我们定义了一个名为`ScoreTable`的表格类,继承自`wx.grid.Grid`。在表格类的构造函数中,我们首先调用了`CreateGrid`方法来创建一个5行3列的表格。然后,我们通过`SetColLabelValue`和`SetRowLabelValue`方法来设置表格的列标题和行标题。接着,我们使用两个循环语句来遍历整个表格,使用`SetCellValue`方法将每个单元格的值设置为空字符串。最后,我们通过`AutoSizeColumns`方法来自动调整表格中列的宽度。 在`MainFrame`类的构造函数中,我们首先创建了一个`wx.Panel`对象。然后,我们创建了一个`ScoreTable`对象,并将它添加到了`panel`中。接着,我们创建了两个按钮,分别用于添加行和删除行。我们通过`Bind`方法将这两个按钮的单击事件与`OnAddRow`和`OnDelRow`方法绑定。最后,我们通过`wx.BoxSizer`来设置`panel`的布局管理器。 在`OnAddRow`方法中,我们通过`FindWindowByName`方法获取了名为`score_table`的表格对象,并调用了`AppendRows`方法来添加一行。 在`OnDelRow`方法中,我们首先获取了选中的行,并判断是否有选中的行。如果没有选中的行,则弹出一个错误提示框。否则,我们使用`DeleteRows`方法来删除选中的行。需要注意的是,由于删除行会改变表格的行号,因此我们需要按照相反的顺序删除选中的行。 请注意,以上示例代码只是一个简单的演示,实际应用中需要根据具体需求进行相应的修改和优化。

相关推荐

最新推荐

recommend-type

在pycharm中导入xlrd和xlwt.模块具体操作.docx

主要讲解了pycharm中导入xlrd和xlwt.模块的具体操作方法,经验证非常好用,其中步骤非常清晰明了,适用于想要学习pycharm,进行Excel数据处理新人
recommend-type

PyCharm GUI界面开发和exe文件生成的实现

主要介绍了PyCharm GUI界面开发和exe文件生成,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

Python+Qt5+Pycharm 界面设计.docx

最近小白需要做一个计算器,但是计算机编程能力几乎没有,所以各种查阅资料,最终确认使用Python+Qt5+Pycharm做一个界面。但是过程中遇到太多的坑,所以想把过程和方法记录下来,供大家参考。
recommend-type

在PyCharm下打包*.py程序成.exe的方法

今天小编就为大家分享一篇在PyCharm下打包*.py程序成.exe的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

pycharm 代码自动补全的实现方法(图文)

主要介绍了pycharm 代码自动补全的实现方法(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SQL怎么实现 数据透视表

SQL可以通过使用聚合函数和GROUP BY子句来实现数据透视表。 例如,假设有一个销售记录表,其中包含产品名称、销售日期、销售数量和销售额等信息。要创建一个按照产品名称、销售日期和销售额进行汇总的数据透视表,可以使用以下SQL语句: ``` SELECT ProductName, SaleDate, SUM(SaleQuantity) AS TotalQuantity, SUM(SaleAmount) AS TotalAmount FROM Sales GROUP BY ProductName, SaleDate; ``` 该语句将Sales表按照ProductName和SaleDat
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。