使用GUI界面编写教务管理系统代码
时间: 2024-03-07 22:46:59 浏览: 61
学生教务信息管理系统GUI界面C#实现源码
5星 · 资源好评率100%
好的,这里给出一个简单的教务管理系统的代码示例,仅供参考。
首先,需要安装wxPython库:
```
pip install wxPython
```
然后,使用wxFormBuilder工具设计界面,并导出为Python代码。假设导出的文件名为"edu_system_gui.py"。
最后,在Python代码中引入wxPython库,并调用wx.App()函数创建应用程序对象。然后,使用edu_system_gui.py中的类来创建主窗口,并在其中实现各个控件的功能。下面是示例代码:
```
import wx
import sqlite3
class MainFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"教务管理系统", pos=wx.DefaultPosition, size=wx.Size(800, 600), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
bSizer1 = wx.BoxSizer(wx.VERTICAL)
self.m_staticText1 = wx.StaticText(self, wx.ID_ANY, u"学号:", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText1.Wrap(-1)
bSizer1.Add(self.m_staticText1, 0, wx.ALL, 5)
self.m_textCtrl1 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
bSizer1.Add(self.m_textCtrl1, 0, wx.ALL, 5)
self.m_staticText2 = wx.StaticText(self, wx.ID_ANY, u"姓名:", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText2.Wrap(-1)
bSizer1.Add(self.m_staticText2, 0, wx.ALL, 5)
self.m_textCtrl2 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
bSizer1.Add(self.m_textCtrl2, 0, wx.ALL, 5)
self.m_button1 = wx.Button(self, wx.ID_ANY, u"查询", wx.DefaultPosition, wx.DefaultSize, 0)
bSizer1.Add(self.m_button1, 0, wx.ALL, 5)
self.m_button2 = wx.Button(self, wx.ID_ANY, u"录入成绩", wx.DefaultPosition, wx.DefaultSize, 0)
bSizer1.Add(self.m_button2, 0, wx.ALL, 5)
self.SetSizer(bSizer1)
self.Layout()
self.Centre(wx.BOTH)
# 为按钮绑定事件处理函数
self.m_button1.Bind(wx.EVT_BUTTON, self.OnQuery)
self.m_button2.Bind(wx.EVT_BUTTON, self.OnInput)
def __del__(self):
pass
# 查询学生信息
def OnQuery(self, event):
student_id = self.m_textCtrl1.GetValue()
conn = sqlite3.connect("edu_system.db")
cursor = conn.cursor()
cursor.execute("SELECT name FROM students WHERE id=?", (student_id,))
result = cursor.fetchone()
if result:
self.m_textCtrl2.SetValue(result[0])
else:
wx.MessageBox("学生不存在")
# 录入成绩
def OnInput(self, event):
student_id = self.m_textCtrl1.GetValue()
score = wx.GetNumberFromUser("请输入成绩", "成绩", "录入成绩", 0, 0, 100)
conn = sqlite3.connect("edu_system.db")
cursor = conn.cursor()
cursor.execute("UPDATE students SET score=? WHERE id=?", (score, student_id))
conn.commit()
wx.MessageBox("成绩录入成功")
if __name__ == '__main__':
app = wx.App()
frame = MainFrame(None)
frame.Show(True)
app.MainLoop()
```
在上面的代码中,MainFrame是主窗口类,包含了两个按钮和两个文本框控件。在查询和录入按钮的事件处理函数中,使用sqlite3库来连接数据库并进行查询和更新操作。在录入成绩事件中,使用wx.GetNumberFromUser()函数来获取用户输入的成绩,并使用wx.MessageBox()函数弹出提示框。
以上是一个简单的教务管理系统的代码示例,具体实现还需要根据具体的需求进行设计和开发。
阅读全文