Python 跨多窗口教程
原文:https://pythonguides.com/python-tkinter-multiple-windows-tutorial/
在这个 Python Tkinter 教程中,我们将学习如何在 Python Tkinter 中创建多个窗口,我们还将涵盖与多个窗口相关的不同示例。我们将讨论这些话题。
- Python Tkinter 多窗口
- 使用多窗口的 Python Tkinter 用户注册
- Python Tkinter 多页面访问验证
目录
Python Tkinter 多窗口
首先,我们将学习如何使用 Python Tkinter 创建多个窗口。
我们正在学习多窗口是如何工作的。所谓多窗口,我们指的是将一个页面与其他相互链接的页面连接起来,并在一个新的标签页中打开,甚至将我们重定向到一个新的页面。
代码:
import tkinter as tk
def New_Window():
Window = tk.Toplevel()
canvas = tk.Canvas(Window, height=HEIGHT, width=WIDTH)
canvas.pack()
HEIGHT = 300
WIDTH = 500
ws = tk.Tk()
ws.title("Python Guides")
canvas = tk.Canvas(ws, height=HEIGHT, width=WIDTH)
canvas.pack()
button = tk.Button(ws, text="Click ME", bg='White', fg='Black',
command=lambda: New_Window())
button.pack()
ws.mainloop()
下面是给定代码的一些主要亮点。
ws
用于根窗口- 高度 =画布小工具的高度。
- 宽度 =宽度用于画布小部件。
bg
用于背景色。fg
用于前景色。- **tk。**按钮()用于添加按钮。
输出:
在上面的代码中,我们在屏幕底部制作了一个简单的按钮。点击那个按钮,一个新窗口就打开了。
Python Tkinter Multiple Window Output
我们可以在上面的输出中看到一个按钮,点击“ Click Me
按钮会打开一个新窗口。结果如下所示。
Final Output
使用多窗口的 Python Tkinter 用户注册
在下一节中,我们将学习使用多窗口的 Python Tkinter 用户注册。
我们必须制作一个登记表,在其中我们制作了载有与姓名、电子邮件和密码相关的信息的区块列。它还使用 OTP 验证电子邮件,以检查真正的用户是否有健康的数据库。
代码:
我们在这段代码中使用的一些库是 smtplib
、 sqlite3
和 messagebox
、 random
、 EmailMessage
、under Tkinter
和 email.message
库。这里还使用了一些标签、字段、条目和按钮。
sqllite3.connect()
用于数据库连接Label()
用于显示文本,在此用户只查看不交互。Entry()
是一个单行文本框,用于接受来自用户的值。
from tkinter import *
import re
from tkinter import messagebox
import sqlite3
import random
from email.message import EmailMessage
import smtplib
**# Database**
try:
con = sqlite3.connect('website.db')
con.execute('''create table if not exists users(
fname text not null,
lname text not null,
email text not null,
password text not null);
''')
con.close()
except Exception as ep:
messagebox.showerror('', ep)
ws = Tk()
ws.title('Python Guides')
ws.geometry('500x400')
ws.config(bg="#447c84")
ws.attributes('-fullscreen',True)
**# functions**
def otp_gen():
pass
cpy = ''
def sendOtp():
otp_no = ''
for _ in range(4):
r = random.randint(0, 9)
otp_no += str(r)
global cpy
cpy += otp_no
sender = "codetestingemail6@gmail.com"
reciever = em.get()
password = "Cute...pie@0823"
msg_body = f'otp is {cpy}'
msg = EmailMessage()
msg['subject'] = 'OTP'
msg['from'] = sender
msg['to'] = reciever
msg.set_content(msg_body)
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
smtp.login(sender,password)
smtp.send_message(msg)
print(cpy)
return cpy
def clr():
fname.delete(0, END)
lname.delete(0, END)
em.delete(0, END)
pwd.delete(0, END)
def submit():
enteredOtp = otp.get()
expectedOtp = cpy
print(expectedOtp)
fname_check = fname.get()
lname_check = lname.get()
em_check = em.get()
pwd_check = pwd.get()
otp_check = otp.get()
check_count = 0
if fname_check == "":
warn = "First name can't be empty!"
else:
check_count += 1
if lname_check == "":
warn = "Last name can't be empty!"
else:
check_count += 1
if em_check == "":
warn = "Email can't be empty!"
else:
check_count += 1
if pwd_check == "":
warn = "Password can't be empty!"
else:
check_count += 1
if otp_check == "":
warn = "Otp can't be empty!"
else:
check_count += 1
# if fname_check, lname_check, pwd_check, otp_check:
if check_count == 5:
if (expectedOtp == enteredOtp):
con = sqlite3.connect('website.db')
c = con.cursor()
c.execute("insert into users VALUES (:fname, :lname, :em, :pwd)",{
'fname': fname.get(),
'lname': lname.get(),
'em': em.get(),
'pwd': pwd.get()
})
con.commit()
ws.destroy()
import app
else:
messagebox.showerror('','Incorrect Otp')
else:
messagebox.showerror('', warn)
**# frames**
frame = Frame(ws, padx=20, pady=20)
frame.pack(expand=True)
**# labels**
Label(
frame,
text="Create New Account",
font=("Times", "24", "bold")
).grid(row=0, columnspan=3, pady=10)
Label(
frame,
text='First Name',
font=("Times", "14")
).grid(row=1, column=0, pady=5)
Label(
frame,
text='Last Name',
font=("Times", "14")
).grid(row=2, column=0, pady=5)
Label(
frame,
text='Email Address',
font=("Times", "14")
).grid(row=3, column=0, pady=5)
Label(
frame,
text='Password',
font=("Times", "14")
).grid(row=4, column=0, pady=5)
Label(
frame,
text='Enter OTP',
font=("Times", "14")
).grid(row=5, column=0, pady=5)
**# Entry**
fname = Entry(frame, width=30)
lname = Entry(frame, width=30)
em = Entry(frame, width=30)
pwd = Entry(frame, width=30)
otp = Entry(frame, width=30)
fname.grid(row=1, column=1)
lname.grid(row=2, column=1)
em.grid(row=3, column=1)
pwd.grid(row=4, column=1)
otp.grid(row=5, column=1)
**# button**
clr = Button(frame, text="Clear", padx=20, pady=10, relief=SOLID, font=("Times", "14", "bold"), command=clr)
reg = Button(frame, text="Register", padx=20, pady=10, relief=SOLID, font=("Times", "14", "bold"), command=submit)
ext = Button(frame, text="Exit", padx=20, pady=10, relief=SOLID, font=("Times", "14", "bold"), command=lambda:ws.destroy())
otpp = Button(frame, text="verify email", padx=10, relief=RAISED, font=("Times", "10", "bold"), command=sendOtp)
clr.grid(row=6, column=0, pady=20)
reg.grid(row=6, column=1, pady=20)
ext.grid(row=6, column=2, pady=20)
otpp.grid(row=5, column=2)
ws.mainloop()
输出:
在上面的代码中,我们制作了一个带有细节的注册表单,如标签**、按钮**、、和条目,这些都用在这个代码中,它与一个数据库连接相连接,这个数据库连接添加了一个真正的用户来注册。
new account Output
在下面的输出中,我们填写了所有详细信息,并验证了电子邮件以继续下一步。
Python Tkinter user registration using multiple windows
当我们检查并随机输入动态口令时,我们可以看到出现了一个错误,显示消息“不正确的动态口令”。这意味着在我们提供注册时使用的正确的动态口令和电子邮件地址之前,我们不能继续前进。
multiple windows in Python tkinter
Python Tkinter 多页面访问验证
在下一节中,我们将学习多页访问验证。
通过访问验证,我们是指验证在注册期间注册用户的密码和电子邮件。我们也可以使用这个代码中的 create account 按钮来注册用户。
代码:
登录 Page.py
现在,让我们看看我们在这段代码中使用的一些库是 Tkinter 库下的 sqlite3
和 messagebox
。这里还使用了标签、字段、条目和按钮。
un
用于用户名pd
用于密码- 使用 messagebox.showerror() 当输入不正确的用户名和密码时,会自动显示错误。
from tkinter import *
from tkinter import messagebox
import sqlite3
try:
con = sqlite3.connect('website.db')
c = con.cursor()
c.execute("Select * from users")
for i in c.fetchall():
un = i[2]
pd = i[3]
except Exception as ep:
messagebox.showerror('', ep)
ws = Tk()
ws.title('Python Guides')
ws.geometry('500x400')
ws.config(bg="#447c84")
ws.attributes('-fullscreen',True)
def createAccount():
ws.destroy()
import register
def submit():
u = uname.get()
p = pwd.get()
check_counter=0
if u == "":
warn = "Username can't be empty"
else:
check_counter += 1
if p == "":
warn = "Password can't be empty"
else:
check_counter += 1
if check_counter == 2:
if (u == un and p == pd):
ws.destroy()
import app
else:
messagebox.showerror('', 'invalid username or password')
else:
messagebox.showerror('', warn)
**# frame**
frame = Frame(ws, padx=20, pady=20)
frame.pack_propagate(False)
frame.pack(expand=True)
**# labels**
Label(
frame,
text="Admin Login",
font=("Times", "24", "bold")
).grid(row=0, columnspan=3, pady=10) #..place(x=170, y=10)
Label(
frame,
text='Enter Username',
font=("Times", "14")
).grid(row=1, column=1, pady=5) #.place(x=50, y=70)
Label(
frame,
text='Enter Password',
font=("Times", "14")
).grid(row=2, column=1, pady=5) #.place(x=50, y=110)
**# Entry**
uname = Entry(frame, width=20)
pwd = Entry(frame, width=20, show="*")
# uname.place(x=220, y=70)
# pwd.place(x=220, y=110)
uname.grid(row=1, column=2)
pwd.grid(row=2, column=2)
**# button**
reg = Button(
frame,
text="Create Account",
padx=20, pady=10,
relief=RAISED,
font=("Times", "14", "bold"),
command=createAccount
)
sub = Button(
frame,
text="Login",
padx=20,
pady=10,
relief=RAISED,
font=("Times", "14", "bold"),
command=submit
)
reg.grid(row=3, column=1, pady=10)
sub.grid(row=3, column=2, pady=10)
ws.mainloop()
输出:
运行上面的代码后,我们得到了这样的输出,其中我们可以看到标签**【输入用户名】****【输入密码】**和两个按钮在不同的功能上工作。
Login Output
在下面的输出中,我们在密码部分的用户名和密码中输入电子邮件,然后单击“登录按钮。
Login Output
我们可以看到,用户输入了错误的用户名和密码,这表明它不会将我们重定向到另一个窗口或页面。
Login2.Output
App.py
下面是验证过程完成后运行另一个页面的代码。
代码:
from tkinter import *
from tkinter import messagebox
ws = Tk()
ws.title('Python Guides')
ws.geometry('500x300')
ws.config(bg="#447c84")
ws.attributes('-fullscreen',True)
**# functions**
def msg():
return messagebox.showinfo('', 'Life is short, \n do what you love')
def logOut():
resp = messagebox.askquestion('', 'Are you sure?')
if resp == 'yes':
ws.destroy()
else:
pass
# frames
frame = Frame(
ws,
padx=20,
pady=20
)
frame.pack(expand=True)
**# image**
img = PhotoImage(file='img.png')
**# labelslo**
Label(
frame,
text="Congratulations!",
font=("Times", "24", "bold")
).grid(row=0, columnspan=3)
Label(
frame,
text='Your Account is Active',
fg='green',
font=("Times", "14")
).grid(row=1, columnspan=3)
imglbl = Label(frame, image=img)
imglbl.grid(row=2, column=1)
**# button**
exp = Button(frame, text="open>>", padx=20, pady=10, relief=SOLID, font=("Times", "14", "bold"), command=msg)
logout = Button(frame, text="Logout", padx=20, pady=10, relief=SOLID, font=("Times", "14", "bold"), command=logOut)
exp.grid(row=2 , column=1)
logout.grid(row=3, column=1)
ws.mainloop()
运行下面的代码并点击登录按钮后,我们必须输入一个有效的用户名和密码。它会将我们重定向到另一个窗口,并显示以下消息。
此外,我们可以看到一个注销按钮,它将帮助我们退出该页面。
Output
你也可以阅读下面的 Tkinter 教程。
- Python Tkinter 测验
- 使用 Tkinter 中 pyqrcode 的 Python QR 码生成器
- 如何在 Python Tkinter 中创建贪吃蛇游戏
- Python Tkinter Image
- python tkinter auto complete
- Python Tkinter 主循环
- Python Tkinter 动画
- Python Tkinter 事件
- Python Tkinter 验证示例
在本教程中,我们学习了Python t inter multiple window
及其示例,并涵盖了以下主题。
- Python Tkinter 多窗口
- 使用多窗口的 Python Tkinter 用户注册
- Python Tkinter 多页面访问验证
Python 是美国最流行的语言之一。我从事 Python 工作已经有很长时间了,我在与 Tkinter、Pandas、NumPy、Turtle、Django、Matplotlib、Tensorflow、Scipy、Scikit-Learn 等各种库合作方面拥有专业知识。我有与美国、加拿大、英国、澳大利亚、新西兰等国家的各种客户合作的经验。查看我的个人资料。
Python Tkinter 笔记本小部件
在这个 Python Tkinter 教程中,我们将学习如何在 Python Tkinter 中创建一个笔记本小部件,我们还将涵盖与 Tkinter 笔记本相关的不同示例。我们将讨论这些话题。
- Python Tkinter 笔记本小部件
- Python Tkinter 笔记本背景色
- Python Tkinter 笔记本风格
- Python Tkinter 笔记本标签大小
- Python Tkinter 笔记本选择选项卡
- Python Tkinter 笔记本禁用选项卡
目录
- Python Tkinter 笔记本小工具
- Python Tkinter 笔记本背景色
- Python Tkinter 笔记本风格
- Python Tkinter 笔记本标签大小
- Python Tkinter 笔记本选择标签
- Python Tkinter 笔记本禁用标签
Python Tkinter 笔记本小工具
在这一节中,我们将学习如何在 python Tkinter 中创建一个笔记本小部件。
众所周知,笔记本是一本有空白页的小书,如果我们愿意,我们可以在上面写任何东西。作为笔记本, Tkinter 笔记本 widget 的工作原理也是一样的。
笔记本小部件允许用户在应用程序窗口中创建选项卡。选项卡用于分隔工作空间。
代码:
在下面的代码中,我们创建了一个笔记本小部件,用户在其中创建了标签**“标签 1”和“标签 2”**,我们还为这些标签使用了框架。
- 从 tkinter.ttk 导入笔记本我们导入笔记本小部件。
notebook.add()
用于在笔记本中添加标签页。
from tkinter import *
from tkinter.ttk import Notebook
ws = Tk()
ws.geometry('400x300')
ws.title('Python Guides Notebook')
notebook = Notebook(ws)
notebook.pack(pady=10, expand=True)
frame1 = Frame(notebook, width=400, height=280)
frame2 = Frame(notebook, width=400, height=280)
frame1.pack(fill='both', expand=True)
frame2.pack(fill='both', expand=True)
notebook.add(frame1, text='Tab 1')
notebook.add(frame2, text='Tab 2')
ws.mainloop()
输出:
在下面的输出中,我们看到一个笔记本小部件创建了两个选项卡**“Tab 1”和“Tab 2”**。
Notebook widget Output
Python Tkinter 笔记本背景色
在这一节中,我们将学习如何在 Python Tkinter 中添加笔记本背景颜色。
我们进口了**。ttk Notebook,style** library 为了在标签上创建背景色,我们使用几何图形来给出创建标签和应用样式的窗口的大小。
代码:
在下面的代码中,我们创建了笔记本小部件的背景色,这有助于制作一个多彩的图形用户界面。我们使用 add()
在笔记本中创建标签。
- **style . theme _ use(’ default ')**用于改变小工具的主题。
note.add()
用于在窗口内创建标签页。
from tkinter import *
from tkinter.ttk import Notebook, Style
ws = Tk()
ws.geometry("700x350")
# Create an instance of ttk style
style = Style()
style.theme_use('default')
style.configure('TNotebook.Tab', background="Red")
style.map("TNotebook", background= [("selected", "red")])
# Create a Notebook widget
note =Notebook(ws)
# Add a frame for adding a new tab
frame1= Frame(note, width= 400, height=180)
# Adding the Tab Name
note.add(frame1, text= 'Tkinter-1')
frame2 = Frame(note, width= 400, height=180)
note.add(frame2, text= "Tkinter-2")
note.pack(expand= True, fill=BOTH, padx= 5, pady=5)
ws.mainloop()
输出:
在下面的输出中,我们看到了 Notebook 小部件,其上的选项卡是用彩色背景创建的。
Background color Output
Python Tkinter 笔记本风格
在本节中,我们将学习如何在 Python Tkinter 中添加笔记本样式。
风格是指完成任务的对象或方法的设计。我们进口。ttk 笔记本,风格库给笔记本一个不同的风格,从我们的笔记本看起来很有吸引力。
代码:
在下面的代码中,我们在小部件中创建一个笔记本小部件,我们使用 add()
来创建选项卡,并赋予这些选项卡样式。
style.theme_create()
用于访问风格数据库。style.theme_use ()
用于改变当前主题。notebook.add ()
用于在小部件内部添加标签页。
from tkinter import *
from tkinter.ttk import Notebook, Style
ws = Tk()
Mysky = "#DCF0F2"
Myyellow = "#F2C84B"
style = Style()
style.theme_create( "dummy", parent="alt", settings={
"TNotebook": {"configure": {"tabmargins": [2, 5, 2, 0] } },
"TNotebook.Tab": {
"configure": {"padding": [5, 1], "background": Mysky },
"map": {"background": [("selected", Myyellow)],
"expand": [("selected", [1, 1, 1, 0])] } } } )
style.theme_use("dummy")
notebook = Notebook(ws)
frame1 = Frame(notebook, width=300, height=200)
notebook.add(frame1, text = 'First')
frame2 = Frame(notebook, width=300, height=200)
notebook.add(frame2, text = 'Second')
notebook.pack(expand=1, fill='both', padx=7, pady=7)
Button(ws, text='dummy!').pack(fill='x')
ws.mainloop()
输出:
在下面的输出中,我们看到在小部件选项卡中创建了一个笔记本小部件,我们在其上应用了样式主题。当我们点击标签时,标签的样式和颜色会改变。
Notebook Style Output
Python Tkinter 笔记本标签大小
在这一节中,我们将学习如何在 Python Tkinter 中改变笔记本标签的大小。
大小被定义为一个物体有多大或多小。笔记本标签尺寸是指我们导入的标签尺寸有多大或多小。ttk import Notebook,style library 创建一个笔记本小部件,并赋予笔记本风格。
代码:
在下面的代码中,我们创建了一个笔记本小部件,在小部件中添加了选项卡,我们使用高度和宽度来改变选项卡的大小。
width()
用来改变标签页的宽度。Height()
用来改变标签页的高度。
from tkinter import *
from tkinter.ttk import Notebook, Style
ws= Tk()
style = Style()
style.theme_create( "MyStyle", parent="alt", settings={
"TNotebook": {"configure": {"tabmargins": [2, 5, 2, 0] } },
"TNotebook.Tab": {"configure": {"padding": [100, 100] },}})
style.theme_use("MyStyle")
notebook = Notebook(ws, width=250, height=250)
tab1 = Frame(notebook)
notebook.add(tab1, text = 'Welcome to tab one')
tab2 = Frame(notebook)
notebook.add(tab2, text = 'Welcome to tab two')
notebook.pack(expand=True, fill=BOTH)
Button(ws, text='Some Text!').pack(fill=X)
ws.mainloop()
输出:
在下面的输出中,我们看到添加了小部件选项卡内的一个笔记本小部件。当我们看到标签的尺寸太大而无法改变标签的尺寸时,我们调整了标签的高度和宽度。
Notebook Tab Size Output
Python Tkinter 笔记本选择标签
在本节中,我们将学习如何在 Python Tkinter 笔记本中选择选项卡。
我们进口了**。ttk 导入笔记本**库来创建笔记本小部件。我们使用几何图形来给出创建选项卡的窗口的大小。我们将光标移到选项卡上,通过单击随机选择任意选项卡。
代码:
在下面的代码中,我们通过导入。ttk 导入 note book
library 也导入时间来处理与时间相关的任务。
Button() :当我们将某个功能附加到一个按钮上时,它们会通过点击来自动调用。
from tkinter import *
import time
from tkinter.ttk import Notebook
ws=Tk()
ws.config(width=330,height=250)
notebook=Notebook(ws)
notebook.place(x=0,y=0)
Tablist=[]
i=0
while i<6:
Tablist.append(Frame(ws))
Tablist[i].config(width=330,height=200,background='white')
i+=1
i=0
while i<6:
notebook.add(Tablist[i],text='tab'+str(i))
i+=1
def LoopTabs():
i=0
while i<6:
notebook.select(i)
time.sleep(2)
i+=1
button=Button(ws,text='Click here',command=LoopTabs)
button.place(x=20,y=180)
ws.mainloop()
输出:
在下面的输出中,我们看到在用户单击 tab1 时放置的小部件选项卡内创建了一个笔记本小部件。如果用户点击下一个标签“Tab2”,我们将进一步移动。Tab2 标签被选中。
Notebook select tab Output
Python Tkinter 笔记本禁用标签
在本节中,我们将学习 Python Tkinter 中的笔记本禁用标签。
在学习笔记本禁用标签之前,我们应该有一些关于禁用的知识。残疾意味着不能工作。
在 Python Tkinter 笔记本禁用选项卡中,我们在笔记本中创建了一个笔记本,并添加了两个选项卡。如果第一个标签是禁用的,他们会移动到下一个标签。
代码:
在下面的代码中,我们导入了一些库**。ttk 导入笔记本,Style** 用于创建笔记本,Style 用于赋予我们的笔记本一些风格。
Style.layout
用于禁用第一个标签页。text.insert()
用于在笔记本中插入一些文字。note.add()
用于在笔记本中添加框架。
from tkinter import *
from tkinter.ttk import Notebook, Style
ws = Tk()
style = Style()
style.layout('TNotebook.Tab', []) # turn off tabs
note = Notebook(ws)
frame1 = Frame(note)
text = Text(frame1, width=40, height=10)
text.insert('end', 'page0 : a text widget')
text.pack(expand=1, fill='both')
note.add(frame1)
frame2 = Frame(note)
lablel = Label(frame2, text='page1 : a label')
lablel.pack(expand=1, fill='both')
note.add(frame2)
note.pack(expand=1, fill='both', padx=5, pady=5)
def Do_Something():
note.select(1)
ws.after(3000, Do_Something)
ws.mainloop()
输出:
在下面的输出中,我们可以看到第 0 页和第 1 页当我们将光标移到第 0 页时,它们被禁用并移到下一页第 1 页。
Notebook disable tab Output
您可能会喜欢以下 Python Tkinter 教程:
- Python Tkinter TreeView
- Python Tkinter 通断开关
- Python Tkinter 待办事项列表
- Python Tkinter 窗口大小
- Python Tkinter 画布教程
- Python Tkinter 进度条小工具
在本教程中,我们讨论了Python Tkinter Notebook widget
,我们还介绍了不同的例子。这是我们已经讨论过的例子列表。
- Python Tkinter 笔记本小部件
- Python Tkinter 笔记本背景色
- Python Tkinter 笔记本风格
- Python Tkinter 笔记本标签大小
- Python Tkinter 笔记本选择选项卡
- Python Tkinter 笔记本禁用选项卡
Python 是美国最流行的语言之一。我从事 Python 工作已经有很长时间了,我在与 Tkinter、Pandas、NumPy、Turtle、Django、Matplotlib、Tensorflow、Scipy、Scikit-Learn 等各种库合作方面拥有专业知识。我有与美国、加拿大、英国、澳大利亚、新西兰等国家的各种客户合作的经验。查看我的个人资料。
Python Tkinter 开关
在这个 Python Tkinter 教程中,我们将学习如何创建 Python Tkinter 通断开关,我们还将涵盖与通断开关相关的不同示例。而且,我们将涵盖这些主题
- Python Tkinter 简单切换开关
- Python Tkinter 开关滑动开关
- 使用按钮打开/关闭 Python Tkinter
目录
- Python Tkinter 简单拨动开关
- Python Tkinter 开关滑动开关
- 使用按钮开启/关闭 Python Tkinter
Python Tkinter 简单拨动开关
在本教程中,我们将学习如何在 Python Tkinter 中创建一个简单的拨动开关。
开关是用来接通电路的。我们在这里使用开关作为一种功能,我们可以在任何游戏应用程序或任何类似的应用程序中使用它来打开或关闭该功能。
代码:
在下面的代码中,我们导入 tkinter 库将 Tkinter 作为 tk 导入,还创建了一个小部件,在其中我们使用了一个简单的切换开关。这里的拨动开关就像我们日常生活中用来打开房间灯的普通开关一样。
**按钮()**用作普通拨动开关,开启或关闭该功能。
from tkinter import *
def Simpletoggle():
if toggle_button.config('text')[-1] == 'ON':
toggle_button.config(text='OFF')
else:
toggle_button.config(text='ON')
ws = Tk()
ws.title("Python Guides")
ws.geometry("200x100")
toggle_button = Button(text="OFF", width=10, command=Simpletoggle)
toggle_button.pack(pady=10)
ws.mainloop()
输出:
运行下面的代码后,我们得到下面的输出,其中我们看到当我们单击它们时,切换开关将打开。当我们再次点击它们时,拨动开关就会关闭。
Simple Toddle Switch Output
Python Tkinter 开关滑动开关
在本节中,我们将学习如何在 Python Tkinter 中创建开关滑动开关。
我们正在寻找技术,因为它一天比一天好,体力工作已经被人工智能/人工智能取代。我们制作的开关滑动开关同样可以用于具有物联网嵌入式应用的移动应用。打开灯、灯泡、风扇、照相机、空调等。
代码:
在下面的代码中,我们创建了一个小部件,其中放置了一个开关滑动开关。我们使用标签、按钮,并添加照片图像来展示开关按钮的工作原理。
Label()
用于显示文本或图像的字段。- **按钮()**用作开启或关闭该功能的普通开关。
Photoimage()
用于在 widget 中添加图片。
from tkinter import *
ws = Tk()
ws.title('Python Guides')
ws.geometry("400x300")
#global is_on
is_on = True
label = Label(ws,
text = "The Switch Is On!",
fg = "green",
font = ("Helvetica", 32))
label.pack(pady = 20)
def Switch():
global is_on
if is_on:
button.config(image = off)
label.config(text = "Switch is Off",
fg = "grey")
is_on = False
else:
button.config(image = on)
label.config(text = "Switch is On", fg = "green")
is_on = True
on = PhotoImage(file = "on.png")
off = PhotoImage(file = "off.png")
button = Button(ws, image = on, bd = 0,
command = Switch)
button.pack(pady = 50)
ws.mainloop()
输出:
在下面的输出中,我们看到如果用户滑动右边的开关,开关会自动打开。另一方面,用户滑动左侧开关,开关自动关闭。
On-Off slide switch Output
使用按钮开启/关闭 Python Tkinter
在本节中,我们将学习如何在 Python Tkinter 中创建一个开关按钮。
我们在这里使用开关按钮作为我们可以在任何游戏应用程序或任何类似应用程序中打开或关闭该功能的功能。这里的按钮就像一个普通的开关一样工作,我们在日常生活中使用它来打开房子的灯。
代码:
在下面的代码中,我们使用 def convert()
来定义函数,并使用 state
方法来禁用或启用连接。
**按钮()**用作开启或关闭该功能的普通开关。
from tkinter import *
ws = Tk()
ws.title("Python Guides")
def convert():
if(a1['state']==NORMAL):
a1["state"] = DISABLED
a2["text"]="ON"
elif (a1['state']==DISABLED):
a1["state"]=NORMAL
a2["text"]="OFF"
a1=Button(ws, text="Bulb")
a1.config(height = 8, width = 9)
a1.grid(row=0, column=0)
a2 = Button(text="OFF", command=convert)
a2.grid(row=0,column=1)
ws.mainloop()
输出:
在上面的代码中,首先,我们创建了一个按钮对象“a1 ”,然后,我们使用 IF 语句来检查按钮的状态。最后,我们使用状态来改变按钮的行为,以获得想要的结果。
运行下面的代码后,我们得到下面的输出,其中我们看到当我们单击它们时,按钮将是 ON
。当我们再次点击它们时,按钮会让离开。
On-Off Pushbutton Output
你可能也喜欢阅读下面的 Tkinter
教程。
- Python Tkinter 动画
- Python Tkinter 保存文本到文件
- Python Tkinter 多窗口教程
- Python Tkinter 编辑器+示例
- Python Tkinter 表教程
- Python Tkinter 测验
- Python Tkinter Image
- Python Tkinter 搜索框
因此,在本教程中,我们讨论了 Python Tkinter On-Off 开关,并且我们还涵盖了不同的例子。这是我们已经讨论过的例子列表。
- Python Tkinter 简单切换
- Python Tkinter 开关滑动开关
- 使用按钮打开/关闭 Python Tkinter
Python 是美国最流行的语言之一。我从事 Python 工作已经有很长时间了,我在与 Tkinter、Pandas、NumPy、Turtle、Django、Matplotlib、Tensorflow、Scipy、Scikit-Learn 等各种库合作方面拥有专业知识。我有与美国、加拿大、英国、澳大利亚、新西兰等国家的各种客户合作的经验。查看我的个人资料。
Python Tkinter 选项菜单[完整教程]
在这个 Python 教程中,我们将学习关于 Python Tkinter OptionMenu
小部件的一切。OptionMenu 小工具也称为下拉菜单或组合框。我们将通过例子学习所有的方法。此外,我们将涵盖这些主题。
- python tkinter option menu documentation(python tkinter option 菜单文档)
- Python Tkinter 选项菜单获取值
- Python Tkinter 选项菜单宽度
- Python Tkinter 选项菜单样式
- Python Tkinter 选项菜单命令
- Python Tkinter 选项集值
- Python Tkinter 选项菜单更改事件
- Python Tkinter 选项菜单禁用
- Python Tkinter 选项菜单追踪
- Python Tkinter 选项菜单颜色
目录
- Python Tkinter 选项菜单
- Python Tkinter OptionMenu 获取值
- Python Tkinter 选项菜单宽度
- Python Tkinter 选项菜单样式
- Python Tkinter OptionMenu 命令
- Python Tkinter 选项设置值
- Python Tkinter OptionMenu 更改事件
- Python Tkinter 选项菜单禁用
- Python Tkinter option menu trace
- Python Tkinter 选项菜单颜色
Python Tkinter 选项菜单
- Python Tkinter 中的 OptionMenu 用于在应用程序中创建下拉菜单。
- 它占用更少的空间,并向用户显示多个选项。用户只能从项目列表中选择一个项目。
- OptionMenu 的唯一缺点是它不能处理大数据。因为下拉菜单受限于屏幕的大小。因此,在大数据的情况下,使用 Listbox 是因为它提供了滚动功能。
- 下面是 Python Tkinter 中 OptionMenu 的语法
OptionMenu(
master,
variable,
value,
*values,
**kwargs
)
master
是您想要放置 OptionMenu 的窗口。它可以是主窗口、次窗口或框架。- 变量表示小工具的值不是固定的,它会不断变化。该变量可以在以下情况下实现:
string var()
–保存一个字符串;预设值""int var()
–保存整数;默认值为 0double var()
–保存浮点值;默认值为 0.0boolean var()
–保存布尔值,返回 0 表示假,返回 1 表示真
- 值取决于变量的类型,如果变量是 StringVar(),那么该值将是任何名称或字符集。
- *值是我们存储所有选项的列表的名称。
- 要查看完整的文档,请运行下面的代码。
from tkinter import *
help(OptionMenu)
这是 OptionMenu 的预览图。这是一个显示多个选项的下拉菜单,用户可以选择他/她的选择。
Preview of OptionMenu Widget
使用 Tkinter 阅读 Python 中的注册表
Python Tkinter OptionMenu 获取值
- 在本节中,我们将学习如何获取用户在
Python Tkinter OptionMenu
中选择的值。 - OptionMenu 显示多个选项,但用户只能选择一个。因此,为了知道用户选择的选项,我们使用了
get()
方法。 get()
应用于分配给 OptionMenu 的变量,并返回 OptionMenu 中当前选中的选项。
Python Tkinter 中 get()方法示例:
在这个例子中, get()
方法用于在 Python Tkinter 中提取存储在 OptionMenu 中的信息。这里我们提到了使用 get()
方法的确切代码,我们还基于 get()
方法创建了一个完整的程序。
def display_selected(choice):
choice = variable.get()
print(choice)
下面是用 python tkinter 实现 get()方法的完整程序代码。
from tkinter import *
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x300')
ws.config(bg='#F2B90C')
def display_selected(choice):
choice = variable.get()
print(choice)
countries = ['Bahamas','Canada', 'Cuba','United States']
# setting variable for Integers
variable = StringVar()
variable.set(countries[3])
# creating widget
dropdown = OptionMenu(
ws,
variable,
*countries,
command=display_selected
)
# positioning widget
dropdown.pack(expand=True)
# infinite loop
ws.mainloop()
输出:
在此输出中,无论在 OptionMenu 中选择了什么选项,都会显示在终端上。
Python Tkinter OptionMenu example
这就是如何在 Python Tkinter OptionMenu 中获取值。
Python Tkinter 选项菜单宽度
- 在本节中,我们将学习如何控制
Python Tkinter OptionMenu
的宽度。 - Width 是小部件左右两边的空间&根据应用程序的需要调整它是很重要的,因为它给应用程序带来了更好的外观。
- 使用 OptionMenu 小工具中的宽度选项,我们可以改变宽度。OptionMenu】不直接接受宽度的,所以你必须使用配置方法。
Python Tkinter
中的选项菜单宽度示例
这是一个我们如何在 Python Tkinter 中改变 OptionMenu 宽度的例子。在这段代码中,我们创建了一个函数来改变 OptionMenu 的宽度大小。用户可以从选项中选择尺寸,选项菜单将变成该尺寸。
from tkinter import *
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x300')
ws.config(bg='#F26849')
def change_width(choice):
choice = variable.get()
dropdown.config(width=choice)
# width choices available.
width_size = [10, 15, 20, 25, 30]
# setting variable for Integers
variable = IntVar()
# creating widget
dropdown = OptionMenu(
ws,
variable,
*width_size,
command=change_width
)
# positioning widget
dropdown.pack(expand=True)
# infinite loop
ws.mainloop()
输出:
在此输出中,显示了两张图片。左图的宽度设置为 10,当该值从 10 变为 15 时,选项菜单的宽度也会在右图中增加。
Python Tkinter OptionMenu width
阅读:使用 Python Tkinter 的身体质量指数计算器
Python Tkinter 选项菜单样式
- 在这一节中,我们将学习如何在 Python Tkinter 中的 OptionMenu 上应用样式。
- Style 是颜色、字体、宽度和其他组件,用于改善 Python Tkinter 中 OptionMenu 的外观和感觉。
Python Tkinter 中的 OptionMenu 样式示例:
- 在这个输出中,我们增加了 Python 中 OptionMenu 的宽度并提供了颜色。可以通过在 Python Tkinter 中更改 OptionMenu 中的选项来更改颜色。
- 下面是用于在 Python Tkinter 中更改 OptionMenu 的高度、宽度和颜色的确切代码。在这段代码中,下拉列表是分配给 OptionMenu 的变量。
dropdown.config(width=10)
dropdown.config(height=2)
dropdown.config(bg='light blue')
下面是为实现 Python Tkinter 中 OptionMenu 中的样式选项而创建的程序的完整代码。
from tkinter import *
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x300')
ws.config(bg='#BF7C41')
def change_color(choice):
choice = variable.get()
dropdown.config(bg=choice)
# color choices available.
color_list = ['aquamarine', 'light blue', 'olive drab', 'gray']
# setting variable for Integers
variable = StringVar()
variable.set(color_list[1])
# creating widget
dropdown = OptionMenu(
ws,
variable,
*color_list,
command=change_color
)
dropdown.config(width=10)
dropdown.config(height=2)
dropdown.config(bg='light blue')
# positioning widget
dropdown.pack(expand=True)
# infinite loop
ws.mainloop()
输出:
在这个输出中,OptionMenu 的颜色随着选项的变化而变化。此外,应用于它的高度和宽度给整个应用程序带来了良好的外观。
Python Tkinter OptionMenu style
Python Tkinter OptionMenu 命令
- 在本节中,我们将学习 Python Tkinter OptionMenu 命令的需求和用法。
- 一个命令用于将一个回调函数分配给选项菜单。如果在 OptionMenu 中选择了一个特定的选项,它允许您触发一个功能。
Python Tkinter 中的 OptionMenu 命令示例:
在本例中,用户可以从 OptionMenu 中选择应用程序颜色。窗口背景将被更改为选定的颜色。
from tkinter import *
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x300')
ws.config(bg='#F26849')
def change_color(choice):
choice = variable.get()
ws.config(bg=choice)
# color choices available.
color_list = ['red', 'green', 'yellow', 'blue', 'pink']
# setting variable for Integers
variable = StringVar()
# creating widget
dropdown = OptionMenu(
ws,
variable,
*color_list,
command=change_color
)
# positioning widget
dropdown.pack(expand=True)
# infinite loop
ws.mainloop()
输出:
下面是上面代码的输出,你可以看到窗口的颜色可以通过在 Python Tkinter 的 OptionMenu 中选择任意颜色来改变。
Python Tkinter OptionMenu command
阅读:使用 Tkinter 中 pyqrcode 的 Python QR 码生成器
Python Tkinter 选项设置值
- Python Tkinter OptionMenu 提供了一个方法集(),允许在 OptionMenu 中设置默认值。
set()
方法可以应用在变量上,它需要列表中您想要显示为默认值的项目。
带设定值选项的 OptionMenu 命令示例。:
在本例中,我们将默认国家设置为“美国”。因此,如果用户不选择任何选项,则 OptionMenu 中的默认值将为美国。
from tkinter import *
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x300')
ws.config(bg='#597678')
# choices available with user.
countries = ['Bahamas','Canada', 'Cuba', 'Dominica', 'Jamaica', 'Mexico', 'United States']
# setting variable for strings
variable = StringVar()
# set default country as United States
variable.set(countries[6])
# creating widget
dropdown = OptionMenu(
ws,
variable,
*countries
)
# positioning widget
dropdown.pack(expand=True)
# infinite loop
ws.mainloop()
输出:
在此输出中,左边的图片显示了没有指定默认值时的 OptionMenu,而右边的图片显示了自动选择的“美国”。所以是用 Python Tkinter 中的 set()方法完成的。
with and without default value set
阅读:如何在 Python Tkinter 中设置背景为图像
Python Tkinter OptionMenu 更改事件
事件是为响应所执行的活动而发生的更改。在 OptionMenu 中,每次选项改变时都被称为一个事件。使用变量,我们可以获得有关发生变化的信息。
Python Tkinter 中 OptionMenu 更改事件示例:
在本例中,终端上将显示更改。下面提到的代码负责报告所有变化的事件。
def check(*args):
print(f"the variable has changed to '{variable.get()}'")
variable = StringVar(value='United States')
variable.trace('w', check)
下面是用 Python Tkinter 显示已更改事件日志的程序的完整代码。
from tkinter import *
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x300')
ws.config(bg='#597678')
def check(*args):
print(f"the variable has changed to '{variable.get()}'")
variable = StringVar(value='United States')
variable.trace('w', check)
# choices available with user.
countries = ['Bahamas','Canada', 'Cuba', 'Dominica', 'Jamaica', 'Mexico', 'United States']
# set default country as United States
variable.set(countries[6])
# creating widget
dropdown = OptionMenu(
ws,
variable,
*countries
)
# positioning widget
dropdown.pack(expand=True)
# infinite loop
ws.mainloop()
输出:
在这个输出中,每次 OptionMenu 中的选项被更改时,终端屏幕上都会报告一条消息。
Python Tkinter OptionMenu change event
Python Tkinter 选项菜单禁用
- Python Tkinter OptionMenu 提供了一个方法
state
,使用该方法 OptionMenu 可以灰显。一旦变灰,OptionMenu 的所有功能都被禁用。单击时不会发生任何变化,也不会显示下拉列表。 - 状态提供了两个选项:
disabled
–它禁用 Python Tkinter 中的 OptionMenu 小部件。normal
–它启用 Python Tkinter 中的 OptionMenu 小部件
Python Tkinter 中的 OptionMenu 禁用示例:
在本例中,我们创建了一个复选框并设置了规则,如果复选框被选中,则 OptionMenu 处于正常状态,如果复选框未被选中或取消选中,则 OptionMenu 将变为禁用状态。
这个函数负责 Python Tkinter 中 OptionMenu 小部件的状态变化。
def changeState():
if checkVar.get() == 1:
dropdown.configure(state='normal')
else:
dropdown.configure(state='disabled')
这是该程序的完整代码。
from tkinter import *
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x300')
ws.config(bg='#393C73')
def changeState():
if checkVar.get() == 1:
dropdown.configure(state='normal')
else:
dropdown.configure(state='disabled')
variable = StringVar()
checkVar = IntVar()
checkVar.set(1)
# checkbutton widget
cb = Checkbutton(
ws,
text = "Enable/Disable OptionMenu",
variable = checkVar,
onvalue = 1,
offvalue = 0,
height=2,
width=30,
command=changeState
)
cb.pack(expand=True)
# choices available with user.
countries = ['Bahamas','Canada', 'Cuba', 'Dominica', 'Jamaica', 'Mexico', 'United States']
# set default country as United States
variable.set(countries[6])
# creating widget
dropdown = OptionMenu(
ws,
variable,
*countries
)
# positioning widget
dropdown.pack(expand=True)
# infinite loop
ws.mainloop()
输出:
在输出中,左侧图片中的复选框处于选中状态,用户可以单击并操作 Python Tkinter 中的 OptionMenu 小部件。但是在右图中,复选框被禁用,现在选项菜单是灰色的。再次选择复选框,使 OptionMenu 返回工作状态。
Disable OptionMenu
Python Tkinter option menu trace
Trace
类似于 change event 部分,Trace 简单来说就是跟踪 Python Tkinter 中 OptionMenu 小部件发生的变化。
Python Tkinter 中 OptionMenu 更改事件示例:
在本例中,终端上将显示更改。下面提到的代码负责跟踪和报告 Python Tkinter 中 OptionMenu 小部件发生的所有变化。
def check(*args):
print(f"the variable has changed to '{variable.get()}'")
variable = StringVar(value='United States')
variable.trace('w', check)
下面是在 Python Tkinter 的 OptionMenu 小部件中实现 trace 的完整代码。
from tkinter import *
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x300')
ws.config(bg='#597678')
def check(*args):
print(f"the variable has changed to '{variable.get()}'")
variable = StringVar(value='United States')
variable.trace('w', check)
# choices available with user.
countries = ['Bahamas','Canada', 'Cuba', 'Dominica', 'Jamaica', 'Mexico', 'United States']
# set default country as United States
variable.set(countries[6])
# creating widget
dropdown = OptionMenu(
ws,
variable,
*countries
)
# positioning widget
dropdown.pack(expand=True)
# infinite loop
ws.mainloop()
输出:
在这个输出中,每次 OptionMenu 中的选项被更改时,终端屏幕上都会报告一条消息。
Python Tkinter OptionMenu trace
Python Tkinter 选项菜单颜色
在这一节中,我们将看到如何在 Python Tkinter 中的 OptionMenu 上应用颜色。应用颜色是小部件样式的一部分。
Python Tkinter 中的 OptionMenu 颜色示例:
在本例中,可以通过在 Python Tkinter 中更改 OptionMenu 小部件的选项来更改 OptionMenu 小部件的颜色。
from tkinter import *
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x300')
ws.config(bg='#BF7C41')
def change_color(choice):
choice = variable.get()
dropdown.config(bg=choice)
# color choices available.
color_list = ['aquamarine', 'light blue', 'olive drab', 'gray']
# setting variable for Integers
variable = StringVar()
variable.set(color_list[1])
# creating widget
dropdown = OptionMenu(
ws,
variable,
*color_list,
command=change_color
)
dropdown.config(width=10)
dropdown.config(height=2)
dropdown.config(bg='light blue')
# positioning widget
dropdown.pack(expand=True)
# infinite loop
ws.mainloop()
输出:
在这个输出中,OptionMenu 的颜色随着选项的变化而变化。此外,应用于它的高度和宽度给整个应用程序带来了良好的外观。
Python Tkinter OptionMenu color
您可能喜欢:
在本教程中,我们已经学习了 Python Tkinter 中关于 OptionMenu 小部件的一切。此外,我们已经讨论了这些主题。
- Python Tkinter 选项菜单
- Python Tkinter 选项菜单获取值
- Python Tkinter 选项菜单宽度
- Python Tkinter 选项菜单样式
- Python Tkinter 选项菜单命令
- Python Tkinter 选项菜单样式
- Python Tkinter 选项集值
- Python Tkinter 选项菜单更改事件
- Python Tkinter 选项菜单禁用
- Python Tkinter 选项菜单追踪
- Python Tkinter 选项菜单颜色
- python tkinter option menu documentation(python tkinter option 菜单文档)
Python 是美国最流行的语言之一。我从事 Python 工作已经有很长时间了,我在与 Tkinter、Pandas、NumPy、Turtle、Django、Matplotlib、Tensorflow、Scipy、Scikit-Learn 等各种库合作方面拥有专业知识。我有与美国、加拿大、英国、澳大利亚、新西兰等国家的各种客户合作的经验。查看我的个人资料。
Python Tkinter 面板
在本教程中,我们将学习如何在 Python Tkinter 中创建面板,我们还将介绍与 Tkinter 面板相关的不同示例。我们也将讨论这些话题。
- Python Tkinter 面板
- Python Tkinter 添加面板
- Python Tkinter 按钮面板
- Python Tkinter 滚动面板
目录
Python Tkinter 面板
在本节中,我们将学习如何在 Python Tkinter 中创建面板。
面板的行为就像一个容器,它包含几个窗格作为子部件,并垂直或水平排列。用户可以调整子部件的大小,每个窗格都包含一个部件。
语法:
p1 = PanedWindow(master,options)
master
作为父 widget 使用。
代码:
在下面的代码中,我们看到用 orient= vertical
创建了一个窗格窗口。在窗格窗口中,我们创建了一些标签。
如果用户将子控件从上到下放置,则 orient
被设置为 vertical
。如果方向被设置为水平,那么子部件被并排放置。
from tkinter import *
ws=Tk()
ws.title("Python Guides")
ws.geometry("500x300")
p1 = PanedWindow()
p1.pack(fill=BOTH, expand=1)
left = Label(p1, text="Left Panel")
p1.add(left)
p2 = PanedWindow(p1, orient=VERTICAL)
p1.add(p2)
top = Label(p2, text="Top Panel")
p2.add(top)
bottom = Label(p2, text="Bottom Panel")
p2.add(bottom)
ws.mainloop()
输出:
运行上面的代码后,我们得到了下面的输出,我们可以看到一个窗格化的窗口被创建了,在这个窗口中有一个子窗口。当我们设置 PanedWindow(p1,orient=VERTICAL) 时,我们希望从上到下放置子窗口。
Python Tkinter Panel Output
Python Tkinter 添加面板
在本节中,我们将学习如何在 Python Tkinter 中添加面板。
众所周知,面板窗口是一个容器,我们可以在里面添加任何东西,比如按钮、标签、入口小部件。我们还可以通过 **PanedWindow(主窗口,选项)**向主窗口添加面板。
代码:
在下面的代码中,我们添加了一个面板,我们甚至添加了一个带有文本**“嘿,点击我!\n 我是按钮"。并且还添加了一个带有文本“选择我!”**。
pawin.add(top)
用于在面板中添加一个按钮。pawin.add(button)
用于在面板中添加一个复选按钮。
from tkinter import *
ws = Tk()
ws.title("Python Guides")
ws.geometry("500x300")
pawin = PanedWindow(orient ='vertical')
top = Button(pawin, text ="Heya Click Me !\n I am a button")
top.pack(side = TOP)
pawin.add(top)
button = Checkbutton(pawin, text ="Choose Me !")
button.pack(side = TOP)
pawin.add(button)
pawin.pack(fill = BOTH, expand = True)
pawin.configure(relief = RAISED)
ws.mainloop()
输出:
运行上面的代码后,我们得到下面的输出,其中我们将一个窗格窗口分成两个窗格。一个是按钮窗格,另一个是复选框窗格。
Python Tkinter add panel Output
Python Tkinter 按钮面板
在这一节中,我们将学习如何在 Python Tkinter 中创建一个按钮面板。
我们可以在面板窗口中创建一个按钮面板,帮助我们通过单击来执行任何任务。
代码:
在下面的代码中,我们创建了一个面板窗口,在这个面板窗口中有 orient =vertical
,我们创建了两个面板按钮。一个标签为“命令,另一个标签为“退出”。顾名思义,第二个按钮用于什么目的。
from tkinter import *
def write_a_slogan():
print("Life is short\Do what you Love.!!")
ws = Tk()
ws.title("Python Guides")
ws.geometry("200x200")
pawin = PanedWindow(orient ='vertical')
frame = tk.Frame(ws)
frame.pack()
but = Button(frame,
text="Exit",
fg="blue",
command=quit)
but.pack(side=LEFT)
slog = Button(frame,
text="command",
fg="red",
command=write_a_slogan)
slog.pack(side=LEFT)
ws.mainloop()
输出:
在下面的输出中,我们看到两个按钮面板,一个是命令按钮,另一个是退出按钮。
Python Tkinter button panel Output
单击命令按钮,我们会看到命令提示符上显示的文本。如果我们点击退出按钮,整个程序将被终止。
Python Tkinter button panel1 Output
Python Tkinter 滚动面板
在这一节中,我们将学习如何在 Python Tkinter 中创建滚动面板。
滚动面板用于在预定义的方向(水平或垂直)滚动面板窗口。当内容超出面板窗口并且用户想要阅读面板窗口的全部内容时,使用滚动面板。
代码:
在这段代码中,我们创建了一个面板窗口,在其中写入内容。内容超出了面板窗口,用户不会阅读全部内容。为了阅读全部内容,我们创建了一个滚动面板。
Orient
决定滚动条是垂直还是水平。
from tkinter import *
class ScrollBar:
def __init__(self):
ws = Tk()
ws.title("Python Guides")
ws.geometry("200x200")
pw = PanedWindow(orient ='vertical')
h1 = Scrollbar(ws, orient = 'horizontal')
h1.pack(side = BOTTOM, fill = X)
v1 = Scrollbar(ws)
v1.pack(side = RIGHT, fill = Y)
t1 = Text(ws, width = 15, height = 15, wrap = NONE,
xscrollcommand = h1.set,
yscrollcommand = v1.set)
for i in range(20):
t1.insert(END,"Python Guides Tutorial..!!\n")
t1.pack(side=TOP, fill=X)
h1.config(command=t1.xview)
v1.config(command=t1.yview)
ws.mainloop()
s1 = ScrollBar()
输出:
在下面的输出中,我们看到当我们想从上到下阅读整个内容时,只有一个垂直滚动面板。然后我们滚动垂直滚动面板。
Python Tkinter scrollbar panel Output
您可能还想阅读以下关于 Python Tkinter 的主题。
- Python Tkinter 待办事项列表
- Python Tkinter 窗口大小
- Python Tkinter Canvas
- Python Tkinter Stopwatch
- Python Tkinter 列表框
因此,在本教程中,我们将讨论 Python Tkinter Panel,我们还将介绍与其实现相关的不同示例。这是我们已经讨论过的例子列表。
- Python Tkinter 面板
- Python Tkinter 添加面板
- Python Tkinter 按钮面板
- Python Tkinter 滚动面板
Python 是美国最流行的语言之一。我从事 Python 工作已经有很长时间了,我在与 Tkinter、Pandas、NumPy、Turtle、Django、Matplotlib、Tensorflow、Scipy、Scikit-Learn 等各种库合作方面拥有专业知识。我有与美国、加拿大、英国、澳大利亚、新西兰等国家的各种客户合作的经验。查看我的个人资料。
Python Tkinter 进度条小部件–如何使用
在这个 Python 教程、、T3 中,我们将学习 Python Tkinter 进度条小工具。此外,我们将涵盖这些主题。
- 关于 Python Tkinter 进度条
- Python Tkinter 进度条使用确定
- Python Tkinter 进度条使用不定
- 如何找到进度条的值
- 在进度条中应用文本
- 如何增加或减少进度条的宽度
- 在 Python Tkinter 进度条中使用线程
- 如何更新进度条
- 进度条不更新错误
目录
- Python Tkinter 进度条小工具
- Python Tkinter 进度条值
- Python Tkinter 进度条文本
- Python Tkinter 进度条宽度
- Python Tkinter 进度条线程
- Python Tkinter 进度条更新
- Python Tkinter 进度条未更新
Python Tkinter 进度条小工具
- Python Tkinter 进度条告知活动或任务的当前状态。
- 进度条让用户感觉到他们的点击有反应,他们需要等待。
- 进度条有两种模式:
- 确定的
- 模糊的
python tkinter progress bar
阅读:如何在 Python Tkinter 中添加图片。
Python Tkinter 进度条确定
- Python Tkinter 进度条确定有一个确定的值,表示程序知道终点。
- Determinate 是一种动画类型,在这种动画中,随着任务的继续完成,一个框会继续填充颜色。
代码:
在这段代码中,确定了进度条的显示模式
from tkinter import *
from tkinter.ttk import *
import time
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x250+1000+300')
def step():
for i in range(5):
ws.update_idletasks()
pb1['value'] += 20
time.sleep(1)
pb1 = Progressbar(ws, orient=HORIZONTAL, length=100, mode='indeterminate')
pb1.pack(expand=True)
Button(ws, text='Start', command=step).pack()
ws.mainloop()
输出:
python tkinter progress bar determinate
Python Tkinter 进度条不确定
- Python Tkinter 进度条不确定有一个不确定的值,这意味着系统没有固定的结束值。
- 不定是一种动画类型,其中固定大小的条一直在移动。
- 进度条的这种模式可以在“错误屏幕”或“故障排除屏幕”上看到。
Python Tkinter Progress bar indeterminate
代码:
from tkinter import *
from tkinter.ttk import *
import time
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x250+1000+300')
def step():
for i in range(5):
ws.update_idletasks()
pb1['value'] += 20
time.sleep(1)
pb1 = Progressbar(ws, orient=HORIZONTAL, length=100, mode='indeterminate')
pb1.pack(expand=True)
Button(ws, text='Start', command=step).pack()
ws.mainloop()
输出:
Python Tkinter Progress bar indeterminate
阅读 Python Tkinter 过滤函数()——如何使用
Python Tkinter 进度条值
- Python Tkinter 进度条值决定进度条每次走的步数。
- 假设进度条的最大长度是 100。然后,达到 100 的每一步都被认为是一个值。
- 如果值是 20,这意味着进度条将移动 5 次,变成 100。
代码:
在这段代码中,我们提供的值是 20。既然是这样
from tkinter import *
from tkinter.ttk import *
import time
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x250+1000+300')
def step():
for i in range(5):
ws.update_idletasks()
pb1['value'] += 20
time.sleep(1)
pb1 = Progressbar(ws, orient=HORIZONTAL, length=100, mode='indeterminate')
pb1.pack(expand=True)
Button(ws, text='Start', command=step).pack()
ws.mainloop()
输出:
在这个输出中,进度序列被显示出来&就在它的下面,进度条的值被打印出来。您可以观察到每个值相差 20
Python Tkinter 进度条文本
- 在这一节中,我们将学习如何在 Python 进度条上实现一个文本。
- 进度条没有单独显示文本的功能。
- 我们可以使用一个标签小部件来做到这一点。我们所要做的就是在我们想要实现文本的地方放置一个标签小部件。
- 现在我们可以配置标签的文本值&可以用 Python Tkinter 进度条中的变化来改变它。
- 在这一部分,我们在进度条的右侧放置了一个标签。进度条的值提供给标签。
代码:
在这段代码中,我们在 step function 下声明了一个将运行 5 次的循环。这个循环将继续用 20 更新进度条值。
每次循环运行时,它都会更新标签的值。使用 ws.update_idletasks()以便我们可以看到进度。否则很快就会发生。每次循环运行时都有 1 秒的间隔。
from tkinter import *
from tkinter.ttk import Progressbar
import time
def step():
for i in range(5):
ws.update_idletasks()
pb['value'] += 20
time.sleep(1)
txt['text']=pb['value'],'%'
ws = Tk()
ws.title('PythonGuides')
ws.geometry('200x150')
ws.config(bg='#345')
pb = Progressbar(
ws,
orient = HORIZONTAL,
length = 100,
mode = 'determinate'
)
pb.place(x=40, y=20)
txt = Label(
ws,
text = '0%',
bg = '#345',
fg = '#fff'
)
txt.place(x=150 ,y=20 )
Button(
ws,
text='Start',
command=step
).place(x=40, y=50)
ws.mainloop()
输出:
在此输出中,进度条旁边的文本显示进度条的值。
Python tkinter text on progress bar
Python Tkinter 进度条宽度
- 如果你想知道,如何在 Tkinter 中增加进度条的宽度。
- 那么最简单的解决方法就是增加长度值。长度值决定了进度条的宽度
- 这里我们将投影两个不同宽度的例子。
代码:
在这段代码中,我们使用内置函数 start()
创建了三个不同的进度条。两个进度条是确定的&中间的一个是不确定的。
from tkinter import *
from tkinter.ttk import Progressbar
import time
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x350')
ws.config(bg='#345')
pb1 = Progressbar(
ws,
orient = HORIZONTAL,
length = 50,
mode = 'determinate'
)
pb1.place(x=40, y=20)
pb2 = Progressbar(
ws,
orient = HORIZONTAL,
length = 100,
mode = 'indeterminate'
)
pb2.place(x=40, y=80)
pb3 = Progressbar(
ws,
orient = HORIZONTAL,
length = 150,
mode = 'determinate'
)
pb3.place(x=40, y=140)
pb1.start()
pb2.start()
pb3.start()
ws.mainloop()
输出:
在这个输出中,您可以看到所有三个进度条都有不同的宽度。
Python tkinter progress bar width
Python Tkinter 进度条线程
- Python 逐行运行程序。因此,程序的第二部分只在第一部分完成后运行。
- 在这种情况下,会创建一个依赖项,这会延迟程序。
- 为了解决这个问题&使程序独立,引入了线程的概念。
- 在线程化中,程序的每个部分都作为一个独立的单元运行。
代码:
在这段代码中,我们使用线程创建了程序。线程有助于避免屏幕冻结。因为它使程序的一部分能够独立运行。
这里的进度条将在 5 秒钟后开始。与此同时,屏幕冻结,用户不能做任何事情。但是使用 thread,可以点击其他按钮或关闭窗口。
from tkinter import *
from tkinter.ttk import Progressbar
import time
import threading
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x200')
ws.config(bg='#345')
def start_download():
time.sleep(5)
pb.start()
def stop_download():
pb.stop()
pb = Progressbar(
ws,
orient = HORIZONTAL,
length = 200,
mode = 'determinate'
)
pb.pack()
msg = Label(
ws,
text='',
bg='#345',
fg='red',
)
msg.pack()
start = Button(
ws,
text='Start Download',
command=threading.Thread(target=start_download).start()
#command=start_download
)
start.pack()
stop = Button(
ws,
text='Stop Download',
command=stop_download
)
stop.pack()
ws.mainloop()from tkinter import *
from tkinter.ttk import Progressbar
import time
import threading
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x350')
ws.config(bg='#345')
def play():
time.sleep(10)
pb.start()
pb = Progressbar(
ws,
orient = HORIZONTAL,
length = 100,
mode = 'determinate'
)
pb.pack(pady=30)
play = Button(
ws,
text="Freeze",
#command=threading.Thread(target=play).start())
command=play)
play.pack(pady=30)
pb1 = Progressbar(
ws,
orient = HORIZONTAL,
length = 100,
mode = 'determinate'
)
pb1.start()
pb1.pack(pady=30)
ws.mainloop()
输出:
在这个输出中,图 1.1 中的图像运行良好,当单击开始下载按钮时不会冻结屏幕。然而,图 1.2 中的图像显示,当单击开始下载按钮时,屏幕冻结 5 秒钟。这就是线程化的好处。
python tkinter progress bar using threading
Python Tkinter 进度条更新
- python Tkinter 中的进度条显示每次事件发生时的一些更新。
- 它让用户觉得有事发生,需要等待。您可能已经注意到有一行代码写着
update_idletasks()
。 update_idletasks()
允许我们在进度条中看到增量。- 有了这行代码,人眼只能看到 100|%完成的进度条。
- 要查看示例,请参考我们的 Python Tkinter 进度条文本部分。
Python Tkinter 进度条未更新
- Python Tkinter 进度条应该会持续更新,如果进度条没有更新,它会提示用户什么也没有发生。
- 进度条绑定到时间,指示用户保持片刻。
- 进度条不更新有各种可能的原因。
- 这里有一些你可以遵循的提示:
- 增量的值应该总是小于进度条的长度
- 尝试提供增量值作为长度的整除。例如,如果长度是 100,20 或 10 将是完美的增量值,因为提醒最终将是 0。
- 使用循环时,请确保提供
您可能会喜欢以下 Python 教程:
- 使用蟒蛇龟绘制彩色填充形状
- 使用 if-else 理解 Python 列表
- Python Tkinter Stopwatch
- Python 读取二进制文件
- 如何使用 Turtle 在 python 中绘制形状
- Python Tkinter 列表框
- Python 文件方法
- Python tkinter messagebox
- Python Tkinter 帧
在本教程中,我们学习了使用 Python Tkinter 实现一个进度条。此外,我们已经讨论了这些主题。
- 关于 Python Tkinter 进度条
- Python Tkinter 进度条使用确定
- Python Tkinter 进度条使用不定
- 如何找到进度条的值
- 在进度条中应用文本
- 如何增加或减少进度条的宽度
- 在 Python Tkinter 中使用线程
- 如何更新进度条
- 进度条不更新错误
Python 是美国最流行的语言之一。我从事 Python 工作已经有很长时间了,我在与 Tkinter、Pandas、NumPy、Turtle、Django、Matplotlib、Tensorflow、Scipy、Scikit-Learn 等各种库合作方面拥有专业知识。我有与美国、加拿大、英国、澳大利亚、新西兰等国家的各种客户合作的经验。查看我的个人资料。
Python Tkinter 测验–完整教程
在本 Python 教程中,我们将学习如何使用 Python Tkinter 创建一个测验应用程序。测验应用程序用于输入多项选择问卷。用户需要为所提问题选择正确的选项。
目录
Python Tkinter 问答应用概述
- 在我们开始用 Python Tkinter 编写代码之前,理解 quiz 中的工作原理是很重要的。
- 问题显示有四个选项,从中选择一个是正确答案。
- 用户选择答案后,单击“下一步”按钮。“下一步”按钮带来了带有新选项集的新问题。
- 一旦程序到达最后一个问题,然后显示结果。结果会弹出,显示百分比分数、正确答案和错误答案总数。
- 每个屏幕上都有一个退出按钮,以防你想退出程序。
Python Tkinter 问答应用代码描述
代码是使用面向对象编程编写的,类名是 Quiz。
- 在下面的代码中,我们创建了一个构造函数,用来保存问题数量、窗口标题、使用单选按钮的多选项问题、函数等值。
- 每次程序运行时都会调用这个构造函数,所以我们在这里提供了所有主要函数的名称。
class Quiz:
def __init__(self):
self.qno=0
self.disp_title()
self.disp_ques()
self.opt_sel=IntVar()
self.opts=self.radio_buttons()
self.disp_opt()
self.buttons()
self.total_size=len(question)
self.correct=0
def disp_res()
函数用于显示测验的结果。最终结果将使用 Python Tkinter 中的消息框显示。- 错误答案=问题总数–正确答案总数和最终分数的百分比是分数=(正确答案/问题总数)乘以 100
def disp_res(self):
wrong_count = self.total_size - self.correct
correct = f"Correct: {self.correct}"
wrong = f"Wrong: {wrong_count}"
score = int(self.correct / self.total_size * 100)
result = f"Score: {score}%"
mb.showinfo("Result", f"{result}\n{correct}\n{wrong}")
check_ans()
函数在这里用来返回正确的答案。- 该功能将用户选择的选项与正确的选项进行比较。如果两者相同,则函数返回 True。
def check_ans(self, qno):
if self.opt_sel.get() == answer[qno]:
return True
next_btn()
此处使用函数移动到下一个问题。点击“下一步”按钮将显示新问题。- 如果没有问题,它将显示结果。
def next_btn(self):
if self.check_ans(self.qno):
self.correct += 1
self.qno += 1
if self.qno==self.total_size:
self.disp_res()
ws.destroy()
else:
self.disp_ques()
self.disp_opt()
buttons()
此处使用 Python Tkinter 在屏幕或窗口上显示按钮。- 程序中使用了两个按钮:
next_button
:显示结果或新问题quit_button
:终止程序。
def buttons(self):
next_button = Button(
ws,
text="Next",
command=self.next_btn,
width=10,
bg="#F2780C",
fg="white",
font=("ariel",16,"bold")
)
next_button.place(x=350,y=380)
quit_button = Button(
ws,
text="Quit",
command=ws.destroy,
width=5,
bg="black",
fg="white",
font=("ariel",16," bold")
)
quit_button.place(x=700,y=50)
disp_opt()
函数用于向用户显示每个问题的选项。- 这些选项是从保存问卷、选项及其答案的硬编码数据库中获取的。
def disp_opt(self):
val=0
self.opt_sel.set(0)
for option in options[self.qno]:
self.opts[val]['text']=option
val+=1
阅读使用 pyinstaller 将 python 文件转换为 exe 文件
使用 Python Tkinter 的源代码测试应用
这段源代码遵循了面向对象编程,这样我们就不用重复代码了。单击此处下载包含测验问题、选项和答案的数据文件。
from tkinter import *
from tkinter import messagebox as mb
import json
class Quiz:
def __init__(self):
self.qno=0
self.disp_title()
self.disp_ques()
self.opt_sel=IntVar()
self.opts=self.radio_buttons()
self.disp_opt()
self.buttons()
self.total_size=len(question)
self.correct=0
def disp_res(self):
wrong_count = self.total_size - self.correct
correct = f"Correct: {self.correct}"
wrong = f"Wrong: {wrong_count}"
score = int(self.correct / self.total_size * 100)
result = f"Score: {score}%"
mb.showinfo("Result", f"{result}\n{correct}\n{wrong}")
def check_ans(self, qno):
if self.opt_sel.get() == answer[qno]:
return True
def next_btn(self):
if self.check_ans(self.qno):
self.correct += 1
self.qno += 1
if self.qno==self.total_size:
self.disp_res()
ws.destroy()
else:
self.disp_ques()
self.disp_opt()
def buttons(self):
next_button = Button(
ws,
text="Next",
command=self.next_btn,
width=10,
bg="#F2780C",
fg="white",
font=("ariel",16,"bold")
)
next_button.place(x=350,y=380)
quit_button = Button(
ws,
text="Quit",
command=ws.destroy,
width=5,
bg="black",
fg="white",
font=("ariel",16," bold")
)
quit_button.place(x=700,y=50)
def disp_opt(self):
val=0
self.opt_sel.set(0)
for option in options[self.qno]:
self.opts[val]['text']=option
val+=1
def disp_ques(self):
qno = Label(
ws,
text=question[self.qno],
width=60,
font=( 'ariel' ,16, 'bold' ),
anchor= 'w',
wraplength=700,
justify='center'
)
qno.place(x=70, y=100)
def disp_title(self):
title = Label(
ws,
text="PythonGuides QUIZ",
width=50,
bg="#F2A30F",
fg="white",
font=("ariel", 20, "bold")
)
title.place(x=0, y=2)
def radio_buttons(self):
q_list = []
y_pos = 150
while len(q_list) < 4:
radio_btn = Radiobutton(
ws,
text=" ",
variable=self.opt_sel,
value = len(q_list)+1,
font = ("ariel",14)
)
q_list.append(radio_btn)
radio_btn.place(x = 100, y = y_pos)
y_pos += 40
return q_list
ws = Tk()
ws.geometry("800x450")
ws.title("PythonGuides Quiz")
with open('data.json') as f:
data = json.load(f)
question = (data['question'])
options = (data['options'])
answer = (data[ 'answer'])
quiz = Quiz()
ws.mainloop()
使用 Python Tkinter 的问答应用
的输出
- 在这个输出中,您可以看到有一个使用 Python Tkinter 创建的测验应用程序。该应用程序显示标题、问题和四个单选按钮来显示选项。
- 每次用户点击下一步按钮,新的问题就会出现在屏幕上。
- 右边有一个退出按钮,点击它将终止程序。
Python Tkinter Quiz
您可能会喜欢以下 python Tkinter 教程:
- 使用 Tkinter 的 Python 注册表
- 从 PDF Python 中提取文本
- 使用 Python Tkinter 的身体质量指数计算器
- 如何在 Python Tkinter 中设置背景为图像
- Python Tkinter 在文本框中显示数据
- python Django 是什么,用于
- Python Tkinter 表教程
- Python Tkinter 编辑器
在本教程中,我们学习了如何使用 Python Tkinter 创建测验应用程序。
Python 是美国最流行的语言之一。我从事 Python 工作已经有很长时间了,我在与 Tkinter、Pandas、NumPy、Turtle、Django、Matplotlib、Tensorflow、Scipy、Scikit-Learn 等各种库合作方面拥有专业知识。我有与美国、加拿大、英国、澳大利亚、新西兰等国家的各种客户合作的经验。查看我的个人资料。