Python GUI项目实战(二)主窗体的界面设计与实现

Python GUI项目实战(二)主窗体的界面设计与实现,第1张

上一节我们介绍了登录窗体的GUI设计与功能实现,用户的账号和密码校验完成后应当跳转到主窗体内容,这一节我们将具体介绍主窗体界面的设计与功能实现!

我们新建一个900x640的窗口,顶部加入图片,下面主体部分创建两个Panedwindow容器,左边添加按钮,右边作为TreeView显示界面;

显示效果:(注意:tkinter在Mac上Panedwindow不支持修改前景色背景色)

在右边的Pannedwindow容器中,添加一个LabelFrame容器作为查询区域,在LabelFrame容器中添加一系列的Label、Entry、携租Button控件,可以输入学号、姓名、电话、身份z、查询、和显示全部信息:

显示效果:

创建控件、设置对齐方式和每个列的标题

显示效果:

登录成功后,在顶部显示用户姓名和登录时间,用户姓名是怎么来的?是我们在登录窗口输入的,所以这就涉及到了跨窗体数据的传递。这一点非常重要!

登录窗体(登录信息)==>主谈隐册窗体

传递的基本方式:构造函数

在主窗体的构造函数中添加一个接收参数 current_user ,在登录窗体加载新窗体时将参数传递进去

但是我们登录窗体的登录函数 login() 中用户名的变量 user 是局部变量,函数调含宏用完了之后就变量就没有了,那怎么调用呢?

我们需要在登录窗体的构造函数中定义全局变量:

为了获取用户登录的时间,我们定义一个获取当前时间的方法:

然后在加载主窗体时将参数 self.user 和 self.get_now_time() 作为参数传递进去

另一边,我们在主窗体中,在构造函数中添加全局变量

之后,我们在Top_banner中通过标签将user信息展示出来:

这样主窗口就会显示通过登录窗口登录的用户名(首字母自动转大写)和登录时间:

效果演示:

然后我们在构造方法中把这个函数写入,以实现自动把学生信息写入到all_student_list中

文件中读取到的学生信息存储到all_student_list列表,以此作为参数传入加载TreeView的方法中;

在构造方法中调用该方法,自动把所有学生信息加载到TreeView中

运行效果:

这一节我们实现了主窗体的搭建,从界面的布局到TreeView加载全部学生信息。学生数据如此之多,如果我们想精确查看具体某个学生的信息该怎么做呢?下一讲,我们将实现学生信息的查询功能,敬请期待吧~

第68行里面的参数要有类型,你的隐燃纳Aclass属性是String类开还是什么类型,把那行的参数灶没改成

private void handleAdd(String Aname, String Aclass, String Aid, String Aage){...}

把String类型改成你自己定义的类型就可以了,一定要记住,参数是要带类段旦型的

表格和列表框相似,一般也用来导入数据,最常见的就是处理Excel表格内容。这个例子是将Excel表格中学生的成绩导入到表格中,并对成绩进行计算(相加)。

1.在界面中拖入面板、表格以及三个按钮,调整各个控件的大小和字体等属性,整个界面布局如下图。

2.双击旦野磨表格进入到检查器中,如下图。找到模斗标红的那种图标,点进去就可以进入到表格的属性编辑器中脊兄。

3.表格的属性编辑器中,可以设置列数、列标题、行数、行标题等,根据需要自己设定,也可以不设置。下面是本例子中的设置,列标题分别是“姓名”、“语文成绩”、“数学成绩”、“总和”。

4.三个按钮控件分别修改名称为“导入Excel“、“添加学生“、“计算总和“。首先进入到“导入Excel“的按钮的回调函数中,程序如下图所示,具体的解释附在语句后面了。

5.进入到“添加学生”的按钮回调函数中,程序如下图所示。

6.进入到“计算总和”的按钮回调函数中,程序如下图所示。

7.到此就完成了表格的简单示例。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11989793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存