内容正文:
专题十六 GUI图形化编程
一、单项选择题
1.在Tkinter中,用于将控件以行和列的形式进行排列的是( )。
A. pack()
B. grid()
C. place()
D. 以上都是
2.在Tkinter中,用于显示多行不可编辑的文本信息的控件是( )。
A. Label
B. Message
C. Entry
D. Text
3.在Tkinter中,用于设置主窗口的大小以及位置的是( )。
A. root.title()
B. root.resizable()
C. root.geometry()
D. root.config()
4.在Tkinter中,控件用于提供单项选择功能的是( )
A. Checkbutton
B. Radiobutton
C. Listbox
D. Entry
5.在Tkinter中,用于动态跟踪字符串值的变化的变量类型是( )。
A. IntVar()
B. StringVar()
C. DoubleVar()
D. BooleanVar()
6.在Tkinter中,以下关于控件的通用属性说法错误的是( )。
A. bg用于设置背景色
B. fg用于设置字体颜色
C. font指定文本的样式,元组参数格式为(字体,大小,样式)
D. state该参数用来指定控件的状态,可选参数值有"normal"、"active"、"disabled"
7.在Tkinter中,以下关于Text控件的说法正确的是( )。
A. Text控件用于显示和处理多行文本
B. Text控件不能用于作为简单的文本编辑器
C. Text控件的主要目的是显示多行文本,但它不能用于网页浏览器
D. Text控件在创建时里面是有内容的
8.在Tkinter中,以下关于Listbox控件的说法错误的是( )。
A. Listbox控件包含一组文本选项可供用户选择
B. Listbox控件呈现为一个矩形区域,其中包含一些选项,每个选项占用一行
C. Listbox控件不能从中选择一项或多项
D. Listbox控件可以通过insert()方法在指定位置添加一个选项
9.在Tkinter中,以下关于动态变量的说法正确的是( )。
A. 动态变量可以动态跟踪变量值的变化,保证值的变换及时反映到显示界面上
B. Python内置的数据类型可以实现动态跟踪变量值的变化
C. 常用的动态类型有IntVar()和StringVar()
D. 动态变量的get()方法用于获取变量的内容,set(cont)方法用于设置变量的内容
10.在Tkinter中,以下关于Radiobutton控件的说法正确的是( )。
A. Radiobutton控件用于提供一种多项选择功能
B. 在同一组内各个单选按钮之间是相互独立、互不影响的
C. 当用户选择某个单选框,则会将value属性绑定的值赋值给variable绑定的变量
D. 如果希望通过若干个单选按钮构成一个控件组,则需要将这些单选按钮的variable属性绑定到不同的动态变量上
二、填空题
1.在Tkinter中,布局管理器有pack()、grid()以及______。
【答案】place()
【解析】Tkinter提供了三种常用的布局管理器,分别是pack()、grid()以及place()。
2.在Tkinter中,用于显示多行不可编辑的文本信息的控件是______。
3.在Tkinter中,设置主窗口的大小以及位置的方法是root.______()。
4.在Tkinter中,用于提供单项选择功能的控件是______。
5.在Tkinter中,用于动态跟踪字符串值变化的变量类型是______。
6.在Tkinter中,控件的通用属性中,用于设置背景色的属性是______。
7.在Tkinter中,Text控件用于显示和处理______文本。
8.在Tkinter中,Listbox控件包含一组______选项可供用户选择。
9.在Tkinter中,动态变量的get()方法用于获取变量的______,set(cont)方法用于设置变量的内容。
10.在Tkinter中,Radiobutton控件的variable属性绑定到同一个动态变量上,可以构成一个______组。
三、综合应用题
1.GUI编程,设计登陆框。如图:窗口大小300x300像素,使用标签提示输人用户名和密码,用户名和密码输人使用 Entry控件,单击“登陆”按钮,用户名和密码分别为“user”、“123456”。如果用户名错误,Message对象显示“用户名错误”:用户名正确密码错误,显示“密码错误”;用户名和密码都正确,显示“登陆成功”。
2. CUI编程,如图所示;窗口大小为“350x300”,标题为:“Citys”。程序运行后,在“Entry"组件中输人城市的名称,单击“添加”按钮将其中的城市名称添加到下方的“Listbox"组件中,禁止重复添加,否则弹出信息框提示。选中列表框中的城市,单击“删除”按钮删除选中的城市项,单击“退出”按钮实现退出窗口功能。
学科网(北京)股份有限公司
$$
专题十六 GUI图形化编程
一、单项选择题
1.在Tkinter中,用于将控件以行和列的形式进行排列的是( )。
A. pack()
B. grid()
C. place()
D. 以上都是
【答案】B
【解析】 grid()布局管理器以行和列的形式对控件进行排列,适合需要网格布局的场景。pack()默认将控件自上而下居中布局,place()可以指定组件大小以及摆放位置。
2.在Tkinter中,用于显示多行不可编辑的文本信息的控件是( )。
A. Label
B. Message
C. Entry
D. Text
【答案】B
【解析】Message控件与Label控件功能类似,但主要用于显示多行不可编辑的文本信息,并且具有自动分行的功能。
3.在Tkinter中,用于设置主窗口的大小以及位置的是( )。
A. root.title()
B. root.resizable()
C. root.geometry()
D. root.config()
【答案】C
【解析】 root.geometry()方法用于设定主窗口的大小以及位置。root.title()用于设置窗口标题,root.resizable()用于设置窗口是否可被拉伸,root.config()用于设置窗口的背景色等属性。
4.在Tkinter中,控件用于提供单项选择功能的是( )
A. Checkbutton
B. Radiobutton
C. Listbox
D. Entry
【答案】B
【解析】Radiobutton控件用于提供单项选择功能,用户每次只能从一组相关的选项中选择一个选项。Checkbutton用于多项选择,Listbox用于显示可选择的列表,Entry用于接收单行文本输入。
5.在Tkinter中,用于动态跟踪字符串值的变化的变量类型是( )。
A. IntVar()
B. StringVar()
C. DoubleVar()
D. BooleanVar()
【答案】B
【解析】StringVar()用于创建动态字符串变量,能够动态跟踪字符串值的变化,常用于与控件的文本显示相关联。IntVar()用于动态整型变量,DoubleVar()用于动态浮点型变量,BooleanVar()用于动态布尔型变量。
6.在Tkinter中,以下关于控件的通用属性说法错误的是( )。
A. bg用于设置背景色
B. fg用于设置字体颜色
C. font指定文本的样式,元组参数格式为(字体,大小,样式)
D. state该参数用来指定控件的状态,可选参数值有"normal"、"active"、"disabled"
【答案】D
【解析】state参数用来指定控件的状态,可选参数值有"normal"(正常状态)、"active"(激活状态)和"disabled"(不可用状态),而不是"disabled"、"normal"、"active"。
7.在Tkinter中,以下关于Text控件的说法正确的是( )。
A. Text控件用于显示和处理多行文本
B. Text控件不能用于作为简单的文本编辑器
C. Text控件的主要目的是显示多行文本,但它不能用于网页浏览器
D. Text控件在创建时里面是有内容的
【答案】A
【解析】Text控件用于显示和处理多行文本,它可以用于作为简单的文本编辑器和网页浏览器使用。当创建一个Text控件的时候里面是没有内容的,需要使用insert()方法来插入内容。
8.在Tkinter中,以下关于Listbox控件的说法错误的是( )。
A. Listbox控件包含一组文本选项可供用户选择
B. Listbox控件呈现为一个矩形区域,其中包含一些选项,每个选项占用一行
C. Listbox控件不能从中选择一项或多项
D. Listbox控件可以通过insert()方法在指定位置添加一个选项
【答案】C
【解析】Listbox控件可以从中选择一项或多项,选项C说法错误。
9.在Tkinter中,以下关于动态变量的说法正确的是( )。
A. 动态变量可以动态跟踪变量值的变化,保证值的变换及时反映到显示界面上
B. Python内置的数据类型可以实现动态跟踪变量值的变化
C. 常用的动态类型有IntVar()和StringVar()
D. 动态变量的get()方法用于获取变量的内容,set(cont)方法用于设置变量的内容
【答案】A
【解析】动态变量可以动态跟踪变量值的变化,保证值的变换及时反映到显示界面上。Python内置的数据类型无法实现动态跟踪变量值的变化,选项B错误。常用的动态类型有IntVar()和StringVar(),选项C正确。动态变量的get()方法用于获取变量的内容,set(cont)方法用于设置变量的内容,选项D正确。
10.在Tkinter中,以下关于Radiobutton控件的说法正确的是( )。
A. Radiobutton控件用于提供一种多项选择功能
B. 在同一组内各个单选按钮之间是相互独立、互不影响的
C. 当用户选择某个单选框,则会将value属性绑定的值赋值给variable绑定的变量
D. 如果希望通过若干个单选按钮构成一个控件组,则需要将这些单选按钮的variable属性绑定到不同的动态变量上
【答案】C
【解析】Radiobutton控件用于提供一种单项选择功能,选项A错误。在同一组内各个单选按钮之间是相互排斥的关系,选项B错误。当用户选择某个单选框,则会将value属性绑定的值赋值给variable绑定的变量,选项C正确。如果希望通过若干个单选按钮构成一个控件组,则需要将这些单选按钮的variable属性绑定到同一个动态变量上,选项D错误。
二、填空题
1.在Tkinter中,布局管理器有pack()、grid()以及______。
【答案】place()
【解析】Tkinter提供了三种常用的布局管理器,分别是pack()、grid()以及place()。
2.在Tkinter中,用于显示多行不可编辑的文本信息的控件是______。
【答案】Message
【解析】Message控件与Label控件功能类似,但主要用于显示多行不可编辑的文本信息,并且具有自动分行的功能。
3.在Tkinter中,设置主窗口的大小以及位置的方法是root.______()。
【答案】geometry()
【解析】root.geometry()方法用于设定主窗口的大小以及位置。
4.在Tkinter中,用于提供单项选择功能的控件是______。
【答案】Radiobutton
【解析】Radiobutton控件用于提供单项选择功能,用户每次只能从一组相关的选项中选择一个选项。
5.在Tkinter中,用于动态跟踪字符串值变化的变量类型是______。
【答案】StringVar()
【解析】StringVar()用于创建动态字符串变量,能够动态跟踪字符串值的变化,常用于与控件的文本显示相关联。
6.在Tkinter中,控件的通用属性中,用于设置背景色的属性是______。
【答案】bg
【解析】bg属性用来设置背景色。
7.在Tkinter中,Text控件用于显示和处理______文本。
【答案】多行
【解析】Text控件用于显示和处理多行文本,它可以用于作为简单的文本编辑器和网页浏览器使用。
8.在Tkinter中,Listbox控件包含一组______选项可供用户选择。
【答案】文本
【解析】Listbox控件包含一组文本选项可供用户选择,呈现为一个矩形区域,其中包含一些选项,每个选项占用一行。
9.在Tkinter中,动态变量的get()方法用于获取变量的______,set(cont)方法用于设置变量的内容。
【答案】内容
【解析】动态变量的get()方法用于获取变量的内容,set(cont)方法用于设置变量的内容。
10.在Tkinter中,Radiobutton控件的variable属性绑定到同一个动态变量上,可以构成一个______组。
【答案】控件
【解析】如果希望通过若干个单选按钮构成一个控件组,则需要将这些单选按钮的variable属性绑定到同一个动态变量上。
三、综合应用题
1.GUI编程,设计登陆框。如图:窗口大小300x300像素,使用标签提示输人用户名和密码,用户名和密码输人使用 Entry控件,单击“登陆”按钮,用户名和密码分别为“user”、“123456”。如果用户名错误,Message对象显示“用户名错误”:用户名正确密码错误,显示“密码错误”;用户名和密码都正确,显示“登陆成功”。
【答案】
from tkinter import *
root = Tk()
root.title("登陆框")
root.geometry("300x300")
def dl():
if e1.get() == 'user' and e2.get() == '123456':
ms.config(text='登陆成功')
elif e1.get() != 'user' and e2.get() == '123456':
ms.config(text='用户名错误')
elif e1.get() == 'user' and e2.get() != '123456':
ms.config(text='密码错误')
else:
ms.config(text='用户名和密码都错误')
lb1 = Label(root, text="用户名:")
lb1.pack()
e1 = Entry(root)
e1.pack()
lb2 = Label(root, text="密码:")
lb2.pack()
e2 = Entry(root)
e2.pack()
btn1 = Button(root, text="登陆", command=dl)
btn1.pack()
btn2 = Button(root, text="退出", command=root.destroy)
btn2.pack()
ms = Message(root)
ms.pack()
root.mainloop()
2. CUI编程,如图所示;窗口大小为“350x300”,标题为:“Citys”。程序运行后,在“Entry"组件中输人城市的名称,单击“添加”按钮将其中的城市名称添加到下方的“Listbox"组件中,禁止重复添加,否则弹出信息框提示。选中列表框中的城市,单击“删除”按钮删除选中的城市项,单击“退出”按钮实现退出窗口功能。
【答案】
from tkinter import *
from tkinter import messagebox
root=Tk()
root.title('Citys')
root.geometry('350x300')
def tj():
if e.get() not in lsb.get(0,'end'):
lsb.insert('end',e.get())
else:
messagebox.showinfo('提示','禁止重复添加')
def sc():
lsb.delete(ACTIVE)
Label(root,text='输入城市名称:').grid(row=0,column=0)
e=Entry(root)
e.grid(row=0,column=1)
lsb=Listbox(root)
lsb.grid(row=1,column=1)
Button(root,text='添加',command=tj).grid(row=2,column=0)
Button(root,text='删除',command=sc).grid(row=2,column=1)
Button(root,text='退出',command=root.quit).grid(row=2,column=2)
root.mainloop()
学科网(北京)股份有限公司
$$