柠檬少年|Python GUI项目实战(四)实现学生明细窗体GUI的设计( 三 )


self.Tree.bind("",self.view_student)效果演示:
柠檬少年|Python GUI项目实战(四)实现学生明细窗体GUI的设计双击表格任一行均可弹出明细窗体
四、呈现三种不同的状态以上三种触发函数实现的都是同一种功能 , 然而我们想实现查看、添加、修改三种不同状态 , 那么怎样才能体现差异化呢?
1.添加标志参数在实例化明细窗体的时候 , 添加一个标志参数action_flag,我们通过区分action_flag参数的值 , 来确定以什么样的模式进行加载 。这里我们规定:

  • 当action_flag = 1时 , 表示查看模式;
  • 当action_flag = 2时 , 表示添加模式;
  • 当action_flag = 3时 , 表示修改模式 。
2. 修改窗体标题我们在明细窗体的构造函数中 , 定义一个全局变量:
self.flag = action_flag再定义一个修改窗体标题的函数:
def load_windows_flag(self):if self.flag == 1:self.Label_title.configure(text="==查看学生明细==")elif self.flag == 2:self.Label_title.configure(text="==新建学生明细==")elif self.flag == 3:self.Label_title.configure(text="==修改学生明细==")创建好修改标题的函数后 , 不要忘了在构造函数中添加上:
self.load_windows_flag()我们在主窗体函数中也定义一个全局变量 , 作为修改明细窗体标题的标志位:
self.action_flag = 0然后在主窗体函数中 , 给load_detail_window()函数添加参数self.action_flag:
def load_detail_window(self):detail_window = detailgui.DetailWindow(self.action_flag)与此同时 , add_student()、update_student()、view_student()三个方法也要做相应的修改:
def add_student(self):self.action_flag = 2self.load_detail_window()def update_student(self):self.action_flag = 3self.load_detail_window()def view_student(self,event):self.action_flag = 1self.load_detail_window()这样三种不同的触发事件 , 对应的明细窗体标题也发生了相应的变化:
柠檬少年|Python GUI项目实战(四)实现学生明细窗体GUI的设计点击不同按钮明细窗体显示不同标题
点击添加学生按钮 , 明细窗体标题显示“添加学生明细”;点击修改学生按钮 , 明细窗体标题显示“修改学生明细”;双击表格学生学生信息某一行 , 明细窗体标题显示“查看学生明细” 。
最后本节我们完成了明细窗体GUI的搭建 , 设置了明细窗体的查看模式、添加模式、和修改模式 , 并且实现了在不同触发按钮下同一个明细窗体显示不同的标题 。 希望小伙伴们不仅仅学习的同时 , 思考一下为什么要这么做?我们是怎么实现呈现三种不同窗体状态的 , 并且结合着前面的文章自己动手练一练 , 所有的数据源、素材和源码直接私信我 , 我发给你 。
本节的明细窗体GUI的搭建已经完成了 , 前期准备工作已经做好了 , 下一节我们就要正式将数据源学生信息填充进明细窗体中显示出来 , 敬请期待吧~
【柠檬少年|Python GUI项目实战(四)实现学生明细窗体GUI的设计】小伙伴们觉得文章内容还不错的话 , 点赞、转发、关注安排一下^_^ , 感谢您的支持~


推荐阅读