《Python GUI设计 tkinter菜鸟编程》配套代码 第09章 与数字有关的Widget

ch9_1.py

# ch9_1.py
from tkinter import *

window = Tk()
window.title("ch9_1")  
# window.geometry("300x180")
slider1 = Scale(window,from_=0,to=10).pack()
slider2 = Scale(window,from_=0,to=100,
            length=300,orient=HORIZONTAL).pack()

window.mainloop()

ch9_2.py

# ch9_2.py
from tkinter import *

root = Tk()
root.title("ch9_2")                         # 窗口标题 

slider = Scale(
                root,
                from_=0,                    # 起点值
                to=20,                     # 终点值
                troughcolor="yellow",       # 槽的颜色
                width="30",                 # 槽的高度
                tickinterval=2,             # 刻度
                label="My Scale",           # Scale标签
                length=300,                 # Scale长度
                orient=HORIZONTAL           # 水平
            )
slider.pack()

root.mainloop()

ch9_3.py

# ch9_3.py
from tkinter import *

def printInfo():
    print("垂直尺度值 = %d, 水平尺度值 = %d" % (sV.get(),sH.get()))

root = Tk()
root.title("ch9_3")                           # 窗口标题 

sV = Scale(root,label="垂直的滑块",from_=0,to=10)   # 建立垂直尺度
sV.set(5)                                     # 设定垂直尺度初始值是5
sV.pack()

sH = Scale(root,label="水平的滑块",from_=0,to=10,
            length=300,orient=HORIZONTAL)
sH.set(3)             
sH.pack()              

Button(root,text="打印两个滑块上的数值",command=printInfo).pack()

root.mainloop()

ch9_4_1.py

# ch9_4_1.py 
from tkinter import * 
from tkinter.colorchooser import * 

def bgUpdade():
    ''' 更改窗口背景颜色 '''
    myColor = askcolor()              # 列出色彩对话框
    print(type(myColor),myColor)      # 打印传递回来的值
    root.config(bg=myColor[1])        # 设置窗口背景颜色

root = Tk()
root.title("ch9_4_1")
root.geometry("360x240")

btn = Button(root,text="Select Color",command=bgUpdade)
btn.pack(pady=5)

root.mainloop()

ch9_4.py

# ch9_4.py 
from tkinter import * 

def bgUpdade(source): # 注意:这里的参数source是必须的
    ''' 更改窗口背景颜色 '''
    red = rSlider.get()                              # 读取red值
    green = gSlider.get()                            # 读取green值
    blue = bSlider.get()                             # 读取blue值
    print("R=%d, G=%d, B=%d" % (red, green, blue))   # 打印色彩数值
    myColor = "#%02x%02x%02x" % (red,green,blue)     # 将颜色转成十六进制字符串
    print(myColor)                                   # 打印这个代表颜色的字符串
    root.config(bg=myColor)                          # 设置窗口背景颜色

root = Tk()
root.title("ch9_4")
root.geometry("360x240")

rSlider = Scale(root,from_=0,to=255,label="红色分量",command=bgUpdade)
gSlider = Scale(root,from_=0,to=255,label="绿色分量",command=bgUpdade)
bSlider = Scale(root,from_=0,to=255,label="蓝色分量",command=bgUpdade)
gSlider.set(125)                       # 设置green分量的初始值是125
rSlider.grid(row=0, column=0)          # row=0,col=0
gSlider.grid(row=0, column=1)          # row=0,col=1
bSlider.grid(row=0, column=2)          # row=0,col=2

root.mainloop()

ch9_5.py

# ch9_5.py 
from tkinter import * 
def bgUpdade(source): # 注意:这里的参数source是必须的
    ''' 更改窗口背景颜色 '''
    red = rSlider.get()                              # 读取red值
    green = gSlider.get()                            # 读取green值
    blue = bSlider.get()                             # 读取blue值
    print("R=%d, G=%d, B=%d" % (red, green, blue))   # 打印色彩数值
    myColor = "#%02x%02x%02x" % (red,green,blue)     # 将颜色转成十六进制字符串
    print(myColor)                                   # 打印这个代表颜色的字符串
    root.config(bg=myColor)                          # 设置窗口背景颜色

def resetColor():
    rSlider.set(0)
    gSlider.set(0)
    bSlider.set(0)

root = Tk()
root.title("ch9_5")
root.geometry("360x240")

fm = Frame(root)         # 创建框架
fm.pack()                # 自动放置在上方中央

rSlider = Scale(fm,from_=0,to=255,label="红色分量",command=bgUpdade)
gSlider = Scale(fm,from_=0,to=255,label="绿色分量",command=bgUpdade)
bSlider = Scale(fm,from_=0,to=255,label="蓝色分量",command=bgUpdade)
gSlider.set(125)                       # 设置green分量的初始值是125
rSlider.grid(row=0, column=0)          # row=0,col=0
gSlider.grid(row=0, column=1)          # row=0,col=1
bSlider.grid(row=0, column=2)          # row=0,col=2

btn = Button(root,text="Reset Color",command=resetColor)
btn.pack(pady=5)

root.mainloop()

ch9_6.py

# ch9_6.py
from tkinter import *

root = Tk()
root.title("ch9_6")
root.geometry("300x100")
spin = Spinbox(root,from_=10,to=30,increment=2)
spin.pack(pady=20)

root.mainloop()

ch9_7.py

# ch9_7.py
from tkinter import *

def printInfo():       # 打印显示的值
    print(sp.get())

root = Tk()
root.title("ch9_7")

sp = Spinbox(root,from_=0,to=10,command=printInfo)
sp.pack(pady=10,padx=10)

root.mainloop()

ch9_8.py

# ch9_8.py
from tkinter import *

def printInfo():       # 打印显示的值
    print(sp.get())

root = Tk()
root.title("ch9_8")

sp = Spinbox(
                root,
                # values=(10,38,170,101),   # 以元组形式存储数值
                values=[10,38,170,101],   # 以列表形式存储数值
                command=printInfo
            )
sp.pack(pady=10,padx=10)

root.mainloop()

ch9_9.py

# ch9_9.py
from tkinter import *

def printInfo():       # 打印显示的值
    print(sp.get())

root = Tk()
root.title("ch9_9")
# cities = ("北京","上海","广州","深圳")       # 以元组形式存储数值
cities = ["北京","上海","广州","深圳"]       # 以列表形式存储数值

sp = Spinbox(
                root,
                values=cities,   # 以元组形式存储数值
                command=printInfo
            )
sp.pack(pady=10,padx=10)

root.mainloop()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值