IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【Python】GUI之tkinter -> 正文阅读

[Python知识库]【Python】GUI之tkinter

Tkinter canvas-画布参数、删除组件、添加垂直滚动条

蚁群算法(Ant Colony Optimization)

展示
在这里插入图片描述

import tkinter

if __name__ == '__main__':
    win = tkinter.Tk()

    #设置标题
    win.title("我的世界")

    #设置宽和高
    win.geometry('800x600')

    #创建画布,设置背景色,高,宽
    canvas = tkinter.Canvas(win,bg='#EBEBEB',width=800,height=1200,xscrollincrement = 1,
                yscrollincrement = 1)


    x0,y0 = 100,100
    # 创建一个圆,填充红色,轮廓白色
    oval = canvas.create_oval(x0-5,y0-5,x0+5,y0+5,fill='#ff0000',outline="#000000",tags="node")
    canvas.create_text(x0,y0-10,text='('+str(x0) +','+str(y0)+')',fill='black',tags="text")
    p1 = (x0,y0)

    x0, y0 = 120,170
    oval = canvas.create_oval(x0 - 5, y0 - 5, x0 + 5, y0 + 5, fill='#ff0000', outline="#000000", tags="node")
    canvas.create_text(x0, y0 - 10, text='(' + str(x0) + ',' + str(y0) + ')', fill='black',tags="text")
    p2 = (x0, y0)

    #连线
    canvas.create_line(p1, p2, fill='#000000', tags="line")

    canvas.pack(expand = tkinter.YES, fill = tkinter.BOTH)

    #删除tags = "text"
    # canvas.delete("text")



    win.mainloop()


在这里插入图片描述

from tkinter import *
import random
if __name__ == '__main__':
    win = Tk()

    #设置标题
    win.title("我的世界")

    #设置宽和高
    win.geometry('800x600')
    frame = Frame(win)



    #创建画布,设置背景色,高,宽
    canvas = Canvas(frame,bg='#EBEBEB',width=800,height=800,scrollregion=(0,0,2000,1200))


    pos = [[565.0,575.0],[25.0,185.0],[345.0,750.0],[945.0,685.0],[845.0,655.0],
                        [880.0,660.0],[25.0,230.0],[525.0,1000.0],[580.0,1175.0],[650.0,1130.0],
                        [1605.0,620.0],[1220.0,580.0],[1465.0,200.0],[1530.0,  5.0],[845.0,680.0],
                        [725.0,370.0],[145.0,665.0],[415.0,635.0],[510.0,875.0],[560.0,365.0],
                        [300.0,465.0],[520.0,585.0],[480.0,415.0],[835.0,625.0],[975.0,580.0],
                        [1215.0,245.0],[1320.0,315.0],[1250.0,400.0],[660.0,180.0],[410.0,250.0],
                        [420.0,555.0],[575.0,665.0],[1150.0,1160.0],[700.0,580.0],[685.0,595.0],
                        [685.0,610.0],[770.0,610.0],[795.0,645.0],[720.0,635.0],[760.0,650.0],
                        [475.0,960.0],[95.0,260.0],[875.0,920.0],[700.0,500.0],[555.0,815.0],
                        [830.0,485.0],[1170.0, 65.0],[830.0,610.0],[605.0,625.0],[595.0,360.0],
                        [1340.0,725.0],[1740.0,245.0]]
    for x,y in pos:
        canvas.create_oval(x - 5, y - 5, x + 5, y + 5, fill='#ff0000', outline="#000000", tags="node")
        canvas.create_text(x, y - 10, text='(' + str(x) + ',' + str(y) + ')', fill='black', tags="text")

    length = len(pos)
    path = [x for x in range(length)]
    random.shuffle(path)

    for i in range(length-1):
        canvas.create_line(pos[i], pos[i+1], fill='#000000', tags="line")

    hbar = Scrollbar(frame,orient=HORIZONTAL)  # 定义水平滚动条
    hbar.pack(side=BOTTOM, fill=X)  # 放置水平滚动条在最下侧,占满X轴
    hbar.config(command=canvas.xview)# 设置水平滚动条的函数与画布的X轴滚动条事件绑定
    vbar = Scrollbar(frame,orient=VERTICAL)  # 定义垂直滚动条
    vbar.pack(side=RIGHT, fill=Y)  # 放置垂直滚动条在最右侧,占满Y轴
    vbar.config(command=canvas.yview)# 设置垂直滚动条的函数与画布的Y轴滚动条事件绑定

    canvas.config(xscrollcommand=hbar.set, yscrollcommand=vbar.set) # 设置画布的X,Y轴滚动条函数与垂直滚动条绑定
    canvas.pack(expand=True, fill=BOTH)
    frame.pack(expand=True, fill=BOTH)


    #删除tags = "text"
    # canvas.delete("text")



    win.mainloop()

多线程
在这里插入图片描述

import time
from tkinter import *
import random
import threading
pos = [[565.0,575.0],[25.0,185.0],[345.0,750.0],[945.0,685.0],[845.0,655.0],
                        [880.0,660.0],[25.0,230.0],[525.0,1000.0],[580.0,1175.0],[650.0,1130.0],
                        [1605.0,620.0],[1220.0,580.0],[1465.0,200.0],[1530.0,  5.0],[845.0,680.0],
                        [725.0,370.0],[145.0,665.0],[415.0,635.0],[510.0,875.0],[560.0,365.0],
                        [300.0,465.0],[520.0,585.0],[480.0,415.0],[835.0,625.0],[975.0,580.0],
                        [1215.0,245.0],[1320.0,315.0],[1250.0,400.0],[660.0,180.0],[410.0,250.0],
                        [420.0,555.0],[575.0,665.0],[1150.0,1160.0],[700.0,580.0],[685.0,595.0],
                        [685.0,610.0],[770.0,610.0],[795.0,645.0],[720.0,635.0],[760.0,650.0],
                        [475.0,960.0],[95.0,260.0],[875.0,920.0],[700.0,500.0],[555.0,815.0],
                        [830.0,485.0],[1170.0, 65.0],[830.0,610.0],[605.0,625.0],[595.0,360.0],
                        [1340.0,725.0],[1740.0,245.0]]

win = Tk()

#设置标题
win.title("我的世界")

#设置宽和高
win.geometry('800x600')
frame = Frame(win)



#创建画布,设置背景色,高,宽
canvas = Canvas(frame,bg='#EBEBEB',width=800,height=800,scrollregion=(0,0,2000,1200))



for x,y in pos:
    canvas.create_oval(x - 5, y - 5, x + 5, y + 5, fill='#ff0000', outline="#000000", tags="node")
    canvas.create_text(x, y - 10, text='(' + str(x) + ',' + str(y) + ')', fill='black', tags="text")



hbar = Scrollbar(frame,orient=HORIZONTAL)  # 定义水平滚动条
hbar.pack(side=BOTTOM, fill=X)  # 放置水平滚动条在最下侧,占满X轴
hbar.config(command=canvas.xview)# 设置水平滚动条的函数与画布的X轴滚动条事件绑定
vbar = Scrollbar(frame,orient=VERTICAL)  # 定义垂直滚动条
vbar.pack(side=RIGHT, fill=Y)  # 放置垂直滚动条在最右侧,占满Y轴
vbar.config(command=canvas.yview)# 设置垂直滚动条的函数与画布的Y轴滚动条事件绑定

canvas.config(xscrollcommand=hbar.set, yscrollcommand=vbar.set) # 设置画布的X,Y轴滚动条函数与垂直滚动条绑定
canvas.pack(expand=True, fill=BOTH)
frame.pack(expand=True, fill=BOTH)


def run():
    length = len(pos)
    path = [x for x in range(length)]
    random.shuffle(path)
    time.sleep(1)

    for i in range(length - 1):
        canvas.create_line(pos[i], pos[i + 1], fill='#000000', tags="line", arrow=LAST, width=1)
        time.sleep(1)


if __name__ == '__main__':



    #删除tags = "text"
    # canvas.delete("text")

    t = threading.Thread(target=run)
    t.start()

    win.mainloop()

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 11:45:45  更:2021-10-08 11:46:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:53:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码