目录

  • 单元1  初识Python
    • ● 任务 1.1  计算机程序设计语言概述
    • ● 任务 1.2 Python语言
    • ● 任务1.3 Python开发环境搭建
    • ● 任务 1.4 Python的简单使用
    • ● 知识拓展
    • ● 思考与练习
  • 单元2   Python基础知识
    • ● 任务2.1 Python程序基本结构
    • ● 任务2.2  标准输入输出
    • ● 任务2.3  Python对象
    • ● 任务2.4 Python变量
    • ● 任务2.5  数据类型
    • ● 任务2.6 字符串
    • ● 任务2.7 运算符
    • ● 知识拓展
    • ● 思考与练习
  • 单元3   程序流程控制
    • ● 任务3.1  顺序结构
    • ● 任务3.2 选择结构
    • ● 任务3.3  循环结构
    • ● 知识拓展
    • ● 思考与练习
  • 单元4  Python序列
    • ● 任务4.1  序列
    • ● 任务4.2 列表
    • ● 任务4.3  用于序列操作的常用内置函数
    • ● 任务4.4   元组
    • ● 任务4.5  字典
    • ● 任务4.6  集合
    • ● 知识拓展
    • ● 思考与练习
  • 单元5  函数
    • ● 任务5.1 函数的定义与调用
    • ● 任务5.2 函数的参数
    • ● 任务5.3   参数类型
    • ● 任务5.4  变量作用域
    • ● 任务5.5   嵌套调用与递归调用
    • ● 任务5.6  lambda表达式
    • ● 任务5.7  模块
    • ● 知识拓展
    • ● 思考与练习
  • 单元6  异常处理
    • ● 任务6.1 异常处理的基本概念
    • ● 任务6.2 Python的异常处理语句
    • ● 任务6.3  自定义异常
    • ● 知识扩展
    • ● 思考与练习
  • 单元7  文件操作
    • ● 任务7.1  文件的分类
    • ● 任务7.2  文件对象
    • ● 任务7.3  文本文件
    • ● 任务7.4  二进制文件
    • ● 知识拓展
    • ● 思考与练习
  • 单元8  面向对象程序设计
    • ● 任务8.1 面向对象技术的基本概念
    • ● 任务8.2 类与对象
    • ● 任务8.3 类的继承
    • ● 任务8.4 方法重写
    • ● 知识扩展
    • ● 思考与练习
  • 单元9  网络编程基础
    • ● 任务9.1  Socket概述
    • ● 任务9.2   Socket对象内建方法
    • ● 任务9.3  Socket编程实例
    • ● 任务9.4    PythonInternet模块
    • ● 知识扩展
    • ● 思考与练习
  • 单元10    Python标准库及第三方库
    • ● 任务10.1 Python标准库
    • ● 任务10.2 Python第三方库的下载及安装
    • ● 任务10.3  Python第三方库举例
    • ● 知识扩展
    • ● 思考与练习
  • 任务11 用户图形界面(GUI)
    • ● 任务11.1 图形用户界面概述
    • ● 任务11.2 窗体容器和组件
    • ● 任务11.3 界面布局管理
    • ● 任务11.4 文本框组件
    • ● 任务11.5 其他组件
    • ● 任务11.6菜单与对话框
    • ● 任务11.7 鼠标键盘事件
    • ● 知识扩展
    • ● 思考与练习
  • 任务12   Python操作数据库
    • ● 数据库基础
    • ● 结构化查询语言SQL
    • ● Python操作数据库核心API
    • ● Python操作数据库案例
    • ● sqlite3 实训练习案例
    • ● pymysql 数据库实训案例
    • ● 小结  思考与练习
  • 习题解析(线上作业等参考解答)
    • ● 第一单元 初识Python  作业
    • ● 第二单元  Python基础(作业)
    • ● 第三单元  程序流程控制 作业(1)
    • ● 第三单元  程序流程控制  作业(2)
    • ● 第四单元  Python序列   作业
    • ● 第五单元   函数   作业
    • ● 单元六  异常处理  作业
    • ● 单元七、八  文件操作,GUI,面向对象
    • ● 单元九   网络编程基础
    • ● 线上习题解析
    • ● 编程训练
  • 应用题解(综合编程技术)
    • ● 《食品识别小专家》
    • ● 格式输出
    • ● 习题选解
    • ● 每日一帖
    • ● 模拟基本信息
    • ● 模拟基本数据
    • ● 数制转换
    • ● 定制每日运动计划
    • ● 《简易购物系统》
  • 课程章节测验
    • ● 第1次章节测验
  • 复习
    • ● Python基础知识总结
  • 第三方库TOOLS(备用)
    • ● 库模块(可下载)
    • ● 供考查备用的库模块(可下载)
任务11.5 其他组件

其它常用组件

1、单选按钮(Radiobutton)和复选框(Checkbutton)

(一)单选按钮Radiobutton、复选框Checkbutton

单选按钮Radiobutton、复选框Checkbutton是一组表示多种“选择”的组件。它们都只有两种状态:“选中/未选中”(ON/OFF),其属性和方法都类似。


在创建单选按钮Radiobutton或复选框Checkbutton时,要先声明一个选择状态变量:

 chVarDis = tk.IntVar() 

该变量记录单选按钮或复选框是否被勾选的状态,可以通过chVarDis.get()来获取其的状态,其状态值为int类型 勾选为1  未勾选为0。

  另外,复选框Checkbutton对象的select()方法表示勾选,deselect()方法表示不勾选。

【例】编写一个小程序,功能是在顶层窗口上安放4个单选按钮

'''  编写一个小程序,功能是在顶层窗口上安放4个单选按钮,

 标明“北京”“上海”“昆明”“大连”4座旅游城市,供用户选择

'''

import tkinter as tk

top=tk.Tk()

top.title('python GUI')

v=tk.StringVar()

v.set(0)  #开始谁选中

lis=['北京','上海','昆明','大连']

def calb():

     for m in lis:

         if v.get()==m:

             lab1=tk.Label(top,text='你想去的旅游城市是:'+v.get()+'!',

                 font=('宋体',10,'bold'),fg='red',bd=3,relief='ridge', height=2)

             lab1.pack()

             btn=tk.Button(top,text='退',width=5,height=1,fg='red',bg='white',bd=2,font=('隶书',14),command=quit)

             btn.pack()

lab=tk.Label(top,text='请选择你希望的旅游城市:',font=('宋体',10,'bold'),fg='Red',relief='ridge',bd=3,height=2)

lab.pack(anchor='w')

radb0=tk.Radiobutton(top,text=lis[0],font=('Arial',10,'italic','bold'),fg='Red',relief='ridge',bd=2,width=7,value=lis[0],

                     command=calb,variable=v)

radb0.pack(anchor='w')

radb1=tk.Radiobutton(top,text=lis[1],font=('Arial',10,'italic','bold'),fg='Red',relief='ridge',bd=2,width=7,value=lis[1],

                     command=calb,variable=v)

radb1.pack(anchor='w')

radb2=tk.Radiobutton(top,text=lis[2],font=('Arial',10,'italic','bold'),fg='Red',relief='ridge',bd=2,width=7,value=lis[2],

                     command=calb,variable=v)

radb2.pack(anchor='w')

radb3=tk.Radiobutton(top,text=lis[3],font=('Arial',10,'italic','bold'),fg='Red',relief='ridge',bd=2,width=7,value=lis[3],

                     command=calb,variable=v)

radb3.pack(anchor='w')

top.mainloop()

【例7c复选按钮

import tkinter as tk

top=tk.Tk()

top.title('python GUI')

lab1 = tk.Label(top, bg='white', width=20, height=2, text='当前无选择',

fg='red',bd=6,relief='ridge',font=('隶书',20))

lab1.grid(row=0,column=1)

var1 = tk.IntVar()

var2 =tk.IntVar()

def psel():  #这是回调函数

    if (var1.get()==1) and (var2.get()==0):  # 只选中选项1

        lab1.config(text='你喜欢狗')

    elif  (var1.get()==1) and (var2.get()==1):  # 选中选项1和2

        lab1.config(text='你喜欢狗,且喜欢猫')

    elif (var1.get()==0) and (var2.get()==0): # 两项都没选中

        lab1.config(text='你不喜欢狗也不喜欢猫')

    else:     # 只选中选项2

        lab1.config(text='你喜欢猫') 

# 下面创建复选按钮

c1 = tk.Checkbutton(top, text='狗', width=4,height=2,bd=2, relief='ridge',variable=var1,

 onvalue=1, # 选中该项时,把1放入var1

                            offvalue=0,  #不选该项时,把0放入var1

                           command= psel, #回调

                           font=('Verdana',14,'bold'))

c1.grid(row=2,column=1)

c2 = tk.Checkbutton(top,text='猫',  width=4,height=2,bd=2, relief='ridge',variable=var2,

 onvalue=1,  # 选中该项时,把1放入var1

            offvalue=0,   # 不选该项时,把0放入var1

            command=psel,#回调 

            font=('Verdana',14,'bold') )

c2.grid(row=3,column=1)

top.mainloop()

【例8】 创建包含有单选按钮和复选框的窗体。

'''编写一个小程序,在顶层窗口上安放4个单选按钮和

一个复选按钮。读者可通过该程序了解初启时控件的哪个参数决定了谁被选中或不被选中。

'''

import tkinter as tk

top=tk.Tk()

top.title('python GUI')

rts =["鲜花","鼓掌","鸡蛋","点赞"]

cts =["Python","Java","c++"]

rt = tk.StringVar()

rt.set('0')

radio0 =tk.Radiobutton(top,variable = rt,value ='1',text=rts[0]+'Radio1')

radio0.pack()

radio1 = tk.Radiobutton(top,variable = rt,value ='2',text=rts[1]+'Radio2')

radio1.pack()

radio2 = tk.Radiobutton(top,variable = rt,value ='3',text=rts[2]+'Radio3')

radio2.pack()

radio3 = tk.Radiobutton(top,variable = rt,value ='4',text=rts[3]+'Radio4')

radio3.pack()

ct = tk.IntVar()

ct.set(2)

check = tk.Checkbutton(top,text='Checkbutton ',variable=ct,onvalue=1, offvalue=2)

check.pack()

top.mainloop()

k=int(rt.get())

p=int(ct.get())

print(rts[k])

print(cts[p])

(二) 标签框架、下拉列表框和滚动文本框

1. 标签框架LabelFrame

  标签框架LabelFrame是一个带边框的容器,可以在该容器中放置其它组件。

标签框架LabelFrame的构造方法为:

       ttk.LabelFrame(上一级容器, text="标签显示的文字内容")

 

2. 下拉列表Combobox

下拉列表Combobox是常用的一种选值组件,使用下拉列表时要先声明一个取值变量:

        number = tk.StringVar()

该变量记录在下拉列表中预设的值中所选取的字符值,在下拉列表中所预设的值为一个元组。

    下拉列表Combobox的构造方法为:

     ttk.Combobox(容器, width=宽度, textvariable=取值变量)

3. 滚动文本框scrolledtext

滚动文本框scrolledtext是一个带滚动条的文本框,可以输入多行文本内容。其构造方法为:

      scr = scrolledtext.ScrolledText(容器, width=文本框宽度, height=文本框高度)


【例4-9】标签框架、下拉列表、滚动文本框示例。

    编写程序代码如下:


例如:

(1)安装MySQL数据库管理模块:

          pip install pymysql

(2)安装图形处理库模块:

           pip install pillow

(3)安装SomePackage模块:

            pip install SomePackage  

(4)卸载SomePackage模块:

            pip uninstall SomePackage 

(5)查看当前已经安装的模块:

              pip list