Tkinter实现透明窗口最简单的方法

import tkinter as tkroot = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')
root.resizable(False, False)
root.attributes('-alpha', 0.5)root.mainloop()


动态更改鼠标样式

import tkinter as tkroot = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')
# root.resizable(False, False) # 禁止更改窗口大小
root.attributes('-alpha', 0.5)def change_cursor(event):if event.x in range(100, 300): # 当鼠标从距离零点100 到 300 的 x 坐标上开始时,光标变为忙碌状态。root.config(cursor="watch")else:root.config(cursor="")root.bind("<Motion>", change_cursor)root.mainloop()

所有ttk 小部件都有 cursor 参数,允许您在鼠标悬停它们时更改光标

import tkinter as tk
from tkinter import ttk
from ttkbootstrap.constants import *root = tk.Tk()
root.title('Tkinter Window Demo')
# root.geometry('300x300')
# root.resizable(False, False) # 禁止更改窗口大小
root.attributes('-alpha', 0.7)"""
cursor_name:
arrow
based_arrow_down
based_arrow_up
boat
bogosity
bottom_left_corner
bottom_right_corner
bottom_side
bottom_tee
box_spiral
center_ptr
circle
clock
coffee_mug
cross
cross_reverse
crosshair
diamond_cross
dot
dotbox
double_arrow
draft_large
draft_small
draped_box
exchange
fleur
gobbler
gumby
hand1
hand2
heart
icon
iron_cross
left_ptr
left_side
left_tee
leftbutton
ll_angle
lr_angle
man
middlebutton
mouse
pencil
pirate
plus
question_arrow
right_ptr
right_side
right_tee
rightbutton
rtl_logo
sailboat
sb_down_arrow
sb_h_double_arrow
sb_left_arrow
sb_right_arrow
sb_up_arrow
sb_v_double_arrow
shuttle
sizing
spider
spraycan
star
target
tcross
top_left_arrow
top_left_corner
top_right_corner
top_side
top_tee
trek
ul_angle
umbrella
ur_angle
watch
xterm
X_cursor
"""
b1 = ttk.Button(root, text="Button 1", bootstyle=SUCCESS, cursor="watch")
b1.pack(side=LEFT, padx=5, pady=10)b2 = ttk.Button(root, text="Button 2", bootstyle=(INFO, OUTLINE), cursor="trek")
b2.pack(side=LEFT, padx=5, pady=10)root.mainloop()


树状图分层数据

import tkinter as tk
from tkinter import ttk
from ttkbootstrap.constants import *# create root window
root = tk.Tk()
root.title('Treeview Demo - Hierarchical Data')
root.geometry('400x200')# configure the grid layout
root.rowconfigure(0, weight=1)
root.columnconfigure(0, weight=1)# create a treeview
tree = ttk.Treeview(root)
tree.heading('#0', text='Departments', anchor=tk.W)# adding data
tree.insert('', tk.END, text='目录', iid=0, open=False)
tree.insert('', tk.END, text='主页', iid=1, open=False)
tree.insert('', tk.END, text='博客', iid=2, open=False)
tree.insert('', tk.END, text='联系', iid=3, open=False)
tree.insert('', tk.END, text='帮助', iid=4, open=False)# adding children of first node
tree.insert('', tk.END, text='文件夹1', iid=5, open=False)
tree.insert('', tk.END, text='文件夹2', iid=6, open=False)
tree.move(5, 0, 0) # 5(需要添加的子节点iid) 0(代表向iid=0的节点下添加) 0(文件索引默认0开始有五个就是 0,1,2,3,4)
tree.move(6, 0, 1)tree.insert('', tk.END, text='文件1', iid=7, open=False)
tree.insert('', tk.END, text='文件2', iid=8, open=False)
tree.move(7, 5, 0)
tree.move(8, 6, 1)# place the Treeview widget on the root window
tree.grid(row=0, column=0, sticky=tk.NSEW)# run the app
root.mainloop()


画布事件功能

import tkinter as tkroot = tk.Tk()
root.geometry('800x600')
root.title('Canvas Demo - Binding Event')canvas = tk.Canvas(root, width=600, height=400, bg='white')
canvas.pack(anchor=tk.CENTER, expand=True)python_image = tk.PhotoImage(file='暴走.gif')
image_item = canvas.create_image((300, 200),image=python_image
)
canvas.tag_bind(image_item,'<Button-1>',lambda e: canvas.delete(image_item)
)root.mainloop()


不同帧之间的切换

import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showerror
from ttkbootstrap.constants import *class TemperatureConverter:@staticmethoddef fahrenheit_to_celsius(f, format=True):result = (f - 32) * 5/9if format:return f'{f}Fahrenheit ={result:.2f}Celsius'return result@staticmethoddef celsius_to_fahrenheit(c, format=True):result = c * 9/5 + 32if format:return f'{c}Celsius ={result:.2f}Fahrenheit'return resultclass ConverterFrame(ttk.Frame):def __init__(self, container, unit_from, converter):super().__init__(container)self.unit_from = unit_fromself.converter = converter# field optionsoptions = {'padx': 5, 'pady': 0}# temperature labelself.temperature_label = ttk.Label(self, text=self.unit_from)self.temperature_label.grid(column=0, row=0, sticky='w',  **options)# temperature entryself.temperature = tk.StringVar()self.temperature_entry = ttk.Entry(self, textvariable=self.temperature)self.temperature_entry.grid(column=1, row=0, sticky='w', **options)self.temperature_entry.focus()# buttonself.convert_button = ttk.Button(self, text='Convert')self.convert_button.grid(column=2, row=0, sticky='w', **options)self.convert_button.configure(command=self.convert)# result labelself.result_label = ttk.Label(self)self.result_label.grid(row=1, columnspan=3, **options)# add padding to the frame and show itself.grid(column=0, row=0, padx=5, pady=5, sticky="nsew")def convert(self, event=None):"""  Handle button click event"""try:input_value = float(self.temperature.get())result = self.converter(input_value)self.result_label.config(text=result)except ValueError as error:showerror(title='Error', message=error)def reset(self):self.temperature_entry.delete(0, "end")self.result_label.text = ''class ControlFrame(ttk.LabelFrame):def __init__(self, container):super().__init__(container)self['text'] = 'Options'# radio buttonsself.selected_value = tk.IntVar()ttk.Radiobutton(self,text='F to C',value=0,variable=self.selected_value,command=self.change_frame).grid(column=0, row=0, padx=5, pady=5)ttk.Radiobutton(self,text='C to F',value=1,variable=self.selected_value,command=self.change_frame).grid(column=1, row=0, padx=5, pady=5)self.grid(column=0, row=1, padx=5, pady=5, sticky='ew')# initialize framesself.frames = {}self.frames[0] = ConverterFrame(container,'Fahrenheit',TemperatureConverter.fahrenheit_to_celsius)self.frames[1] = ConverterFrame(container,'Celsius',TemperatureConverter.celsius_to_fahrenheit)self.change_frame()def change_frame(self):frame = self.frames[self.selected_value.get()]frame.reset()frame.tkraise()class App(tk.Tk):def __init__(self):super().__init__()self.title('Temperature Converter')self.geometry('370x120')self.resizable(False, False)if __name__ == "__main__":app = App()ControlFrame(app)app.mainloop()

颜色选择器

import tkinter as tk
from tkinter import ttk
from tkinter.colorchooser import askcolor
from ttkbootstrap.constants import *root = tk.Tk()
root.title('Tkinter Color Chooser')
root.geometry('300x150')def change_color():colors = askcolor(title="Tkinter Color Chooser")root.configure(bg=colors[1])ttk.Button(root,text='Select a Color',command=change_color).pack(expand=True)root.mainloop()

iShot_2022-11-12_11.35.29

tkinter线程GUI程序Demo

import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showerror
from threading import Thread
import requests
from ttkbootstrap.constants import *class AsyncDownload(Thread):def __init__(self, url):super().__init__()self.html = Noneself.url = urldef run(self):response = requests.get(self.url)self.html = response.textclass App(tk.Tk):def __init__(self):super().__init__()self.title('Webpage Download')self.geometry('870x400')self.resizable(0, 0)self.create_header_frame()self.create_body_frame()self.create_footer_frame()def create_header_frame(self):self.header = ttk.Frame(self)# configure the gridself.header.columnconfigure(0, weight=1)self.header.columnconfigure(1, weight=10)self.header.columnconfigure(2, weight=1)# labelself.label = ttk.Label(self.header, text='URL')self.label.grid(column=0, row=0, sticky=tk.W)# entryself.url_var = tk.StringVar()self.url_entry = ttk.Entry(self.header,textvariable=self.url_var,width=80)self.url_entry.grid(column=1, row=0, sticky=tk.EW)# download buttonself.download_button = ttk.Button(self.header, text='Download')self.download_button['command'] = self.handle_downloadself.download_button.grid(column=2, row=0, sticky=tk.E)# attach the header frameself.header.grid(column=0, row=0, sticky=tk.NSEW, padx=10, pady=10)def handle_download(self):url = self.url_var.get()if url:self.download_button['state'] = tk.DISABLEDself.html.delete(1.0, "end")download_thread = AsyncDownload(url)download_thread.start()self.monitor(download_thread)else:showerror(title='Error',message='Please enter the URL of the webpage.')def monitor(self, thread):if thread.is_alive():# check the thread every 100msself.after(100, lambda: self.monitor(thread))else:self.html.insert(1.0, thread.html)self.download_button['state'] = tk.NORMALdef create_body_frame(self):self.body = ttk.Frame(self)# text and scrollbarself.html = tk.Text(self.body, height=20, width=92)self.html.grid(column=0, row=1)scrollbar = ttk.Scrollbar(self.body,orient='vertical',command=self.html.yview)scrollbar.grid(column=1, row=1, sticky=tk.NS)self.html['yscrollcommand'] = scrollbar.set# attach the body frameself.body.grid(column=0, row=1, sticky=tk.NSEW, padx=10, pady=10)def create_footer_frame(self):self.footer = ttk.Frame(self)# configure the gridself.footer.columnconfigure(0, weight=1)# exit buttonself.exit_button = ttk.Button(self.footer,text='Exit',command=self.destroy)self.exit_button.grid(column=0, row=0, sticky=tk.E)# attach the footer frameself.footer.grid(column=0, row=2, sticky=tk.NSEW, padx=10, pady=10)if __name__ == "__main__":app = App()app.mainloop()

Python tkinter相关Demo演示相关推荐

  1. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command) 目录 tkinter应用案例 1.添加菜单栏组件 2.tkinter应用案例:添 ...

  2. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu/Menu的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu/Menu的Command) 目录 tkinter应用案例 1.添加右键弹出菜单 2.点击一个按钮弹 ...

  3. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Canvas)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Canvas) 导读 动态演示调用python库的tkinter带你进入GUI世界(Canvas) 目录 t ...

  4. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件) 导读 动态演示调用python库的tkinter带你进入GUI世界(Find/un ...

  5. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件) 导读 动态演示调用python库的tkinter带你进入GUI世 ...

  6. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件) 导读 动态演示调用python库的tkinter带你进入GUI世界(Button ...

  7. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command) 导读 动态演示调用python库的tkinter带你进入GUI世界 ...

  8. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Listbox/Scrollbar)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Listbox/Scrollbar) 导读 动态演示调用python库的tkinter带你进入GUI世界(L ...

  9. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(计算器简单功能)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(计算器简单功能) 导读 动态演示调用python库的tkinter带你进入GUI世界(计算器简单功能) 目录 ...

最新文章

  1. 有关Gradle Network is unreachable: connect的报错
  2. 洛谷P2503 [HAOI2006]均分数据(模拟退火)
  3. typedef和define的详细区别
  4. linux内核中的每cpu变量
  5. Linux-鸟菜-6-文件搜索
  6. php中获取本月第二天,php第二天
  7. const指针和指向常量的指针
  8. java矩阵面积_Java基础 矩阵面积
  9. 面试官:为什么单线程的Redis可以实现高并发访问
  10. 解决Docker容器时区不一致的问题
  11. leetcode python3 简单题101. Symmetric Tree
  12. 决策树(十二)--XGBoost
  13. 由浅入深了解EventBus:(五)
  14. FA 工业自动化设备设计基础
  15. 学习外挂 -------- 成长过程(经典推荐)
  16. sublime快捷键生成html5基本模板
  17. 4r照片尺寸是多大_4r照片尺寸(正常照片是5寸还是6寸)
  18. 几款优秀的文档管理系统
  19. oracle打开audit,oracle开启audit(审计)
  20. element 表格,实现选择的行变色

热门文章

  1. 今天是七夕节了,你想好怎么表白了吗?
  2. 关于面试总结2-SQL学生表
  3. 曾李青:早期创业公司九种死法
  4. 计算机硬盘是什么材质的好,电脑硬盘长什么样子_电脑硬盘什么样的好
  5. 腾讯音乐知识图谱搜索实践
  6. ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS
  7. 禅卡塔罗;追随它的指引,你会得到更多
  8. 新栏目上线|我是戴小乐-集美貌与才华于一身~
  9. 题解 CF981A 【Antipalindrome】
  10. USTC科研 7.1 and 7.3 配置环境的学习