内容正文:
《程序设计基础-Python》高等教育出版社
第7单元 GUI界面设计
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共25小题,每题2分,共50分)
1. 在Python中,用于创建GUI窗口的内置模块是( )
A. gui B. tkinter
C. window D. interface
【答案】:B
【解析】: tkinter是Python自带的GUI界面设计模块,轻量且易上手。
2. 下列代码中,用于创建窗口对象的是( )
A. Window() B. Frame()
C. Tk() D. Root()
【答案】:C
【解析】: Tk()方法用于创建窗口对象,是tkinter GUI的基本元素。
3. 让窗口进行消息循环,接收用户消息的方法是( )
A. loop() B. run()
C. mainloop() D. cycle()
【答案】:C
【解析】: mainloop()方法让窗口进行消息循环,直到关闭窗口为止。
4. 下列方法中,用于设置窗口标题的是( )
A. set_title() B. title()
C. header() D. name()
【答案】:B
【解析】: title()方法用于设置窗口显示的标题。
5. 设置窗口大小为800×600像素的正确语法是( )
A. geometry("800*600") B. dimension("800x600")
C. size("800x600") D. geometry("800x600")
【答案】:D
【解析】: geometry()方法设置窗口尺寸,x为字母不可替换为*。
6. 下列控件中,用于显示文本且不允许用户修改的是( )
A. Entry B. Button
C. Label D. Frame
【答案】:C
【解析】: Label标签控件用于显示文本或图像,不允许用户修改。
7. 用于创建单行文本输入控件的是( )
A. Text B. Input
C. Entry D. TextBox
【答案】:C
【解析】: Entry控件用于输入单行文本。
8. 下列属性中,用于设置按钮关联函数的是( )
A. command B. function
C. action D. event
【答案】:A
【解析】: command属性用于绑定按钮单击时执行的函数。
9. 单选按钮控件的类名是( )
A. CheckBox B. Option
C. Radio D. Radiobutton
【答案】:D
【解析】: Radiobutton用于实现单选功能,用户只能选择一个选项。
10. 下列布局方式中,采用表格结构管理控件的是( )
A. pack B. grid
C. place D. table
【答案】:B
【解析】: grid布局采用行列确定位置,类似表格结构。
11. pack布局中,指定控件放置方向的参数是( )
A. side B. position
C. direction D. orient
【答案】:A
【解析】: side参数指定控件相对于父控件放置的方向。
12. 下列代码的输出结果是( )
from tkinter import *
root = Tk()
root.title("演示程序")
print(root.title())
A. tk B. 演示程序
C. 没有输出 D. 报错
【答案】:B
【解析】: title()方法设置并返回窗口标题。
13. 用于设置窗口透明度的参数是( )
A. -transparent B. -alpha
C. -opacity D. -visible
【答案】:B
【解析】: -alpha参数设置窗口透明度,取值0~1。
14. 下列控件中,可以充当其他控件父容器的是( )
A. Label B. Entry
C. Frame D. Button
【答案】:C
【解析】: Frame框架控件可充当其他基本控件的父容器。
15. grid布局中,指定控件所在行的参数是( )
A. line B. vertical
C. y D. row
【答案】:D
【解析】: row参数指定控件所在的行号,0为第1行。
16. place布局中,设定控件横坐标的参数是( )
A. h B. horizontal
C. left D. x
【答案】:D
【解析】: x参数设定控件基准点的横坐标。
17. 下列事件码中,表示单击鼠标左键的是( )
A. <Button-1> B. <ButtonRelease-1>
C. <Button-Enter> D. <Button-2>
【答案】:A
【解析】: <Button-1>或表示单击鼠标左键, <ButtonRelease-1>表示释放左键。
18. 用于绑定事件的方法是( )
A. connect() B. link()
C. bind() D. attach()
【答案】:C
【解析】: bind()方法用于将事件与控件绑定。
19. 下列代码中,正确创建标签控件的是( )
A. Label(root, text="标签")
B. label(root, "标签")
C. new Label(root, "标签")
D. create Label(root, "标签")
【答案】:A
【解析】: Label()方法创建标签控件,text属性设置显示文本。
20. Entry控件中,用于获取输入内容的方法是( )
A. read() B. get()
C. value() D. content()
【答案】:B
【解析】: get()方法获得当前输入框的内容。
21. 下列属性中,用于设置密码输入框显示字符的是( )
A. password B. hide
C. show D. secret
【答案】:C
【解析】: show属性设置文本框内容显示为指定字符,如show="*"。
22. 用于设置控件背景颜色的属性是( )
A. color B. background
C. fill D. paint
【答案】:B
【解析】: background或bg属性设置控件的背景颜色。
23. 下列代码中,实现控件随窗口大小变化自动填充的是( )
A. pack(expand=True, fill="both")
B. pack(fill="both")
C. pack(auto=True)
D. pack(resize=True)
【答案】:A
【解析】: expand为True开启fill属性,fill="both"代表双向拉伸。
24. 事件处理函数中,event对象的x属性表示( )
A. 窗口宽度 B. 控件宽度
C. 光标相对于窗口的横坐标 D. 屏幕横坐标
【答案】:C
【解析】: event.x表示相对于窗口左上角的光标横坐标位置。
25. 下列修饰符中,表示事件发生时需按下Control键的是( )
A. Ctrl B. Control
C. C D. Key
【答案】:A
【解析】: Ctrl修饰符表示事件发生时需按下Control键。
二、判断题(共10题,每题1分,共10分)
1. tkinter是Python第三方模块,需要单独安装。( )
【答案】:错误
【解析】: tkinter是Python自带的GUI界面模块,无需单独安装。
2. 创建窗口后必须调用mainloop()方法才能显示窗口。( )
【答案】:正确
【解析】: mainloop()让窗口进行消息循环,接收用户消息。
3. Label控件允许用户修改其中显示的文本。( )
【答案】:错误
【解析】: Label标签控件用于显示文本,不允许用户修改。
4. grid布局中,行号和列号从1开始计数。( )
【答案】:错误
【解析】: grid布局中,行号和列号从0开始计数,0为第1行/列。
5. pack布局适合大量控件的复杂排序。( )
【答案】:错误
【解析】: pack适合少量控件排序,grid在控制细节方面更好。
6. Button控件的command属性可以绑定带参数的函数。( )
【答案】:错误
【解析】: command属性绑定的函数默认没有参数传入。
7. Entry控件只能输入单行文本。( )
【答案】:正确
【解析】: Entry是单行文本控件,多行文本需用Text控件。
8. place布局可以显式指定控件的绝对位置。( )
【答案】:正确
【解析】: place布局允许通过x,y参数指定控件的绝对位置。
9. 同一组单选按钮的variable选项应该指向同一个变量。( )
【答案】:正确
【解析】: 同一组单选按钮共享同一个变量,通过value区分选项。
10. bind方法绑定事件时,事件处理函数必须接收event参数。( )
【答案】:正确
【解析】: bind绑定的事件处理函数需要接收event事件对象参数。
3、 名词解释题(共4题,每题3分,共12分)
1. tkinter模块
【答案】: tkinter是Python自带的GUI界面设计模块,用于创建窗口视窗应用程序。与其他GUI框架相比,tkinter轻巧且易上手,适合初学者学习。tkinter提供了窗口创建、控件添加、布局管理和事件处理等功能,是Python进行图形化编程的主要工具。
2. 类与对象
【答案】: 类是用来描述具有相同属性和方法的对象的集合,定义了该集合中每个对象所共有的属性和方法。对象是通过类定义的数据结构实例,是类的具体实现。
3. 事件绑定
【答案】: 事件绑定是指将用户操作与相应的处理函数关联起来的过程。tkinter通过bind方法实现事件绑定,该方法有两个参数:事件类型字符串和处理函数。当触发指定事件时,tkinter会调用对应的处理函数。
4. 布局管理器
【答案】: 布局管理器是tkinter中用于控制控件位置摆放的机制,当调整窗口大小时,布局管理器会自动调整窗口中各控件的大小和位置。tkinter提供3种几何布局方式:pack布局、grid布局和place布局。
四、简答题(共4题,每题4分,共16分)
1. 请简述创建tkinter GUI程序的基本步骤。
【答案】:
(1)导入tkinter模块:from tkinter import *
(2)创建窗口对象:root = Tk()
(3)设置窗口属性:title()、geometry()等
(4)创建各类控件:Label、Entry、Button等
(5)设置控件布局:pack()、grid()或place()
(6)设置事件响应:command属性或bind方法
(7)启动消息循环:root.mainloop()
2. 请说明pack、grid、place三种布局方式的区别。**
【答案】:
(1)pack布局:从上到下、从左到右次序摆放,适合少量控件快速生成界面
(2)grid布局:采用表格结构,用行列确定位置,适合复杂界面布局
(3)place布局:显式指定控件绝对位置(x,y)和尺寸,精确控制控件位置
(4)pack简单但控制细节能力弱,grid最常用,place最灵活但维护成本高
3. 请简述command属性和bind方法处理事件的区别。
【答案】:
(1)command属性:用于Button、Menu、Radiobutton等控件,单击时触发函数
(2)command绑定的函数默认没有参数传入
(3)bind方法:可为任何控件绑定多种事件类型
(4)bind绑定的函数必须接收event事件对象参数
(5)bind更灵活,可处理双击、按键等复杂事件
4. 请说明类属性和实例属性的主要区别。
【答案】:
(1)定义位置:类属性在类内部方法外部定义,实例属性在方法内部定义
(2)访问方式:类属性可通过类或实例访问,实例属性只能通过对象访问
(3)数量:不管创建多少实例,类属性只有1个,每个实例有独立的实例属性
(4)修改:类属性只能通过类修改,实例属性通过对象修改
(5)优先级:若同名,通过实例访问的是实例属性
五、编程题(本题共1小题,每题12分,共12分)
按下面要求编写一个简单的用户登录界面程序:
1. 创建窗口,设置标题为"用户登录",窗口大小为400×300像素(3分)
2. 创建界面控件并用place布局到合适位置:用户名标签和输入框、密码标签和输入框(密码显示为*)、登录按钮(4分)
3. 实现登录功能:点击登录按钮后,判断用户名是否为"admin"且密码是否为"123456",在标签中显示"登录成功"或"登录失败"(5分)
【答案】:
from tkinter import *
from tkinter import messagebox
# 第1问:创建窗口
root = Tk()
root.title("用户登录")
root.geometry("400x300")
# 第2问:创建界面控件
label1 = Label(root, text="用户名:")
label1.place(x=50, y=50)
entry1 = Entry(root, width=20)
entry1.place(x=150, y=50)
label2 = Label(root, text="密码:")
label2.place(x=50, y=100)
entry2 = Entry(root, width=20, show="*")
entry2.place(x=150, y=100)
label3 = Label(root, text="", fg="red", font=("宋体", 12))
label3.place(x=150, y=150)
# 第3问:登录功能
def login():
username = entry1.get()
password = entry2.get()
if username == "admin" and password == "123456":
label3["text"] = "登录成功"
label3["fg"] = "green"
else:
label3["text"] = "登录失败"
label3["fg"] = "red"
btn = Button(root, text="登录", command=login, font=("宋体", 12))
btn.place(x=150, y=200)
root.mainloop()
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
《程序设计基础-Python》高等教育出版社
第7单元 GUI界面设计
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共25小题,每题2分,共50分)
1. 在Python中,用于创建GUI窗口的内置模块是( )
A. gui B. tkinter
C. window D. interface
2. 下列代码中,用于创建窗口对象的是( )
A. Window() B. Frame()
C. Tk() D. Root()
3. 让窗口进行消息循环,接收用户消息的方法是( )
A. loop() B. run()
C. mainloop() D. cycle()
4. 下列方法中,用于设置窗口标题的是( )
A. set_title() B. title()
C. header() D. name()
5. 设置窗口大小为800×600像素的正确语法是( )
A. geometry("800*600") B. dimension("800x600")
C. size("800x600") D. geometry("800x600")
6. 下列控件中,用于显示文本且不允许用户修改的是( )
A. Entry B. Button
C. Label D. Frame
7. 用于创建单行文本输入控件的是( )
A. Text B. Input
C. Entry D. TextBox
8. 下列属性中,用于设置按钮关联函数的是( )
A. command B. function
C. action D. event
9. 单选按钮控件的类名是( )
A. CheckBox B. Option
C. Radio D. Radiobutton
10. 下列布局方式中,采用表格结构管理控件的是( )
A. pack B. grid
C. place D. table
11. pack布局中,指定控件放置方向的参数是( )
A. side B. position
C. direction D. orient
12. 下列代码的输出结果是( )
from tkinter import *
root = Tk()
root.title("演示程序")
print(root.title())
A. tk B. 演示程序
C. 没有输出 D. 报错
13. 用于设置窗口透明度的参数是( )
A. -transparent B. -alpha
C. -opacity D. -visible
14. 下列控件中,可以充当其他控件父容器的是( )
A. Label B. Entry
C. Frame D. Button
15. grid布局中,指定控件所在行的参数是( )
A. line B. vertical
C. y D. row
16. place布局中,设定控件横坐标的参数是( )
A. h B. horizontal
C. left D. x
17. 下列事件码中,表示单击鼠标左键的是( )
A. <Button-1> B. <ButtonRelease-1>
C. <Button-Enter> D. <Button-2>
18. 用于绑定事件的方法是( )
A. connect() B. link()
C. bind() D. attach()
19. 下列代码中,正确创建标签控件的是( )
A. Label(root, text="标签")
B. label(root, "标签")
C. new Label(root, "标签")
D. create Label(root, "标签")
20. Entry控件中,用于获取输入内容的方法是( )
A. read() B. get()
C. value() D. content()
21. 下列属性中,用于设置密码输入框显示字符的是( )
A. password B. hide
C. show D. secret
22. 用于设置控件背景颜色的属性是( )
A. color B. background
C. fill D. paint
23. 下列代码中,实现控件随窗口大小变化自动填充的是( )
A. pack(expand=True, fill="both")
B. pack(fill="both")
C. pack(auto=True)
D. pack(resize=True)
24. 事件处理函数中,event对象的x属性表示( )
A. 窗口宽度 B. 控件宽度
C. 光标相对于窗口的横坐标 D. 屏幕横坐标
25. 下列修饰符中,表示事件发生时需按下Control键的是( )
A. Ctrl B. Control
C. C D. Key
二、判断题(共10题,每题1分,共10分)
1. tkinter是Python第三方模块,需要单独安装。( )
2. 创建窗口后必须调用mainloop()方法才能显示窗口。( )
3. Label控件允许用户修改其中显示的文本。( )
4. grid布局中,行号和列号从1开始计数。( )
5. pack布局适合大量控件的复杂排序。( )
6. Button控件的command属性可以绑定带参数的函数。( )
7. Entry控件只能输入单行文本。( )
8. place布局可以显式指定控件的绝对位置。( )
9. 同一组单选按钮的variable选项应该指向同一个变量。( )
10. bind方法绑定事件时,事件处理函数必须接收event参数。( )
3、 名词解释题(共4题,每题3分,共12分)
1. tkinter模块
2. 类与对象
3. 事件绑定
4. 布局管理器
四、简答题(共4题,每题4分,共16分)
1. 请简述创建tkinter GUI程序的基本步骤。
2. 请说明pack、grid、place三种布局方式的区别。**
3. 请简述command属性和bind方法处理事件的区别。
4. 请说明类属性和实例属性的主要区别。
五、编程题(本题共1小题,每题12分,共12分)
按下面要求编写一个简单的用户登录界面程序:
1. 创建窗口,设置标题为"用户登录",窗口大小为400×300像素(3分)
2. 创建界面控件并用place布局到合适位置:用户名标签和输入框、密码标签和输入框(密码显示为*)、登录按钮(4分)
3. 实现登录功能:点击登录按钮后,判断用户名是否为"admin"且密码是否为"123456",在标签中显示"登录成功"或"登录失败"(5分)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$