五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

Python GUI之tkinter詳解

發(fā)布日期:2021-12-26 10:51 | 文章來源:腳本之家

展示

import tkinter
 if __name__ == '__main__':
 win = tkinter.Tk()
  #設置標題
 win.title("我的世界")
  #設置寬和高
 win.geometry('800x600')
  #創(chuàng)建畫布,設置背景色,高,寬
 canvas = tkinter.Canvas(win,bg='#EBEBEB',width=800,height=1200,xscrollincrement = 1,
 yscrollincrement = 1)
 x0,y0 = 100,100
 # 創(chuàng)建一個圓,填充紅色,輪廓白色
 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)
  #創(chuàng)建畫布,設置背景色,高,寬
 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)# 設置水平滾動條的函數(shù)與畫布的X軸滾動條事件綁定
 vbar = Scrollbar(frame,orient=VERTICAL)  # 定義垂直滾動條
 vbar.pack(side=RIGHT, fill=Y)  # 放置垂直滾動條在最右側,占滿Y軸
 vbar.config(command=canvas.yview)# 設置垂直滾動條的函數(shù)與畫布的Y軸滾動條事件綁定
  canvas.config(xscrollcommand=hbar.set, yscrollcommand=vbar.set) # 設置畫布的X,Y軸滾動條函數(shù)與垂直滾動條綁定
 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)
 #創(chuàng)建畫布,設置背景色,高,寬
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)# 設置水平滾動條的函數(shù)與畫布的X軸滾動條事件綁定
vbar = Scrollbar(frame,orient=VERTICAL)  # 定義垂直滾動條
vbar.pack(side=RIGHT, fill=Y)  # 放置垂直滾動條在最右側,占滿Y軸
vbar.config(command=canvas.yview)# 設置垂直滾動條的函數(shù)與畫布的Y軸滾動條事件綁定
 canvas.config(xscrollcommand=hbar.set, yscrollcommand=vbar.set) # 設置畫布的X,Y軸滾動條函數(shù)與垂直滾動條綁定
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()
 

暫定版本

個人知識還是不夠,里面還有很多小bug,容我再思考思考

import time
from tkinter import *
import random
import sys
import threading
class TSP(object):
 def __init__(self,root,cities:list[list]):
  self.__root = root
  self.__root.geometry('800x600')
  self.__root.title("TSP蟻群算法(n:初始化 e:開始搜索 s:停止搜索 c:繼續(xù)搜索 q:退出程序)")
  self.__frame = Frame(root)
  self.__canvas = Canvas(self.__frame,bg='#EBEBEB',width=800,height=800,scrollregion=(0,0,2000,1200))
hbar = Scrollbar(self.__frame, orient=HORIZONTAL)  # 定義水平滾動條
  hbar.pack(side=BOTTOM, fill=X)  # 放置水平滾動條在最下側,占滿X軸
  hbar.config(command=self.__canvas.xview)  # 設置水平滾動條的函數(shù)與畫布的X軸滾動條事件綁定
  vbar = Scrollbar(self.__frame, orient=VERTICAL)  # 定義垂直滾動條
  vbar.pack(side=RIGHT, fill=Y)  # 放置垂直滾動條在最右側,占滿Y軸
  vbar.config(command=self.__canvas.yview)  # 設置垂直滾動條的函數(shù)與畫布的Y軸滾動條事件綁定
self.__canvas.config(xscrollcommand=hbar.set, yscrollcommand=vbar.set)  # 設置畫布的X,Y軸滾動條函數(shù)與垂直滾動條綁定
  self.__canvas.pack(expand=True, fill=BOTH)
  self.__frame.pack(expand=True, fill=BOTH)
  self.setCity(cities)
self.__lock = threading.RLock()  # 線程鎖
  self.__bindEvents()
self.__new()
  def setCity(self,cities:list[list]):
  self.__cities = cities
 def sefPathsAndValues(self,paths:[list],values:list):
  self.__paths = paths
  self.__values = values
  # 按鍵響應程序
 def __bindEvents(self):
  self.__root.bind("q", self.__quite)  # 退出程序
  self.__root.bind("n", self.__new)  # 初始化
  self.__root.bind("e", self.__search_path)  # 開始搜索
  self.__root.bind("s", self.__stop)  # 停止搜索
  self.__root.bind("c", self.__continue)  # 繼續(xù)搜索
  #初始化
 def __new(self,event=None):
  self.__lock.acquire() #上鎖
  self.__running = False#標志位
  self.__lock.release() #釋放鎖
for x, y in self.__cities:
self.__canvas.create_oval(x - 5, y - 5, x + 5, y + 5, fill='#ff0000', outline="#000000", tags="node")
self.__canvas.create_text(x, y - 10, text='(' + str(x) + ',' + str(y) + ')', fill='black', tags="text")
 def __quite(self,event=None):
  self.__lock.acquire()  # 上鎖
  self.__running = False  # 標志位
  self.__lock.release()  # 釋放鎖
  self.__root.destroy()
  print(u"\n程序已退出...")
  sys.exit()
  # 停止搜索
  def __stop(self,event=None):
  self.__lock.acquire()  # 上鎖
  self.__running = False  # 標志位
  self.__lock.release()  # 釋放鎖
 def __line(self,path:list):
  self.__canvas.delete("line")
  i = 0
  while self.__running:
if i == len(self.__cities) -1:
 break
p1, p2 = self.__cities[path[i]], self.__cities[path[i + 1]]
self.__canvas.create_line(p1, p2, fill='#000000', tags="line",
 arrow=LAST, width=1)
self.__canvas.update()
self.__canvas.after(500)
i = i+1
  # 開始搜索
 def __search_path(self,event=None):
  self.__lock.acquire()  # 上鎖
  self.__running = True  # 標志位
  self.__lock.release()  # 釋放鎖
while self.__running:
x = random.randint(10,100)
label = Label(self.__canvas,text="最佳路徑總距離:"+str(x)).place(x=10,y=30)
self.__canvas.update()
path = [x for x in range(len(self.__cities))]
random.shuffle(path)
self.__line(path)
  def __continue(self,event=None):
  self.__lock.acquire()  # 上鎖
  self.__running = True  # 標志位
  self.__lock.release()  # 釋放鎖
 def mainloop(self):
  self.__root.mainloop()
if __name__ == '__main__':
  tsp = TSP(Tk(),cities)
 tsp.mainloop()

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注本站的更多內容!

版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

相關文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部