日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tkinter学习-菜单与画布

發布時間:2025/4/16 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tkinter学习-菜单与画布 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

閱讀目錄

  • Menu  菜單控件

  • Menubutton  菜單按鈕控件

  • OptionMenu  選項菜單?
  • Canvas  畫布控件

Menu:

  說明:菜單控件,顯示菜單欄,下拉菜單和彈出菜單

  屬性:創建一個頂級菜單,需要先創建一個菜單實例,然后使用add()方法將命令和其他子菜單添加進去

   ? ? ? ? ?創建一個下拉菜單(或者其他的子菜單),方法是一樣的,最主要的區別是它們最后需要添加到主菜單上(而不是窗口上)

  方法:add_cascade(label=' ',...)  

     add_command(label=' ',...)

?

from tkinter import * root = Tk() root.title('山丘') root.geometry('200x200') l = Label(root,text='',bg='yellow') l.pack() num=0 def show():global numl.config(text=num)num+=1 menubar = Menu(root) #創建一個頂級的窗口 #創建一個下拉菜單'File',然后讓它添加到頂級窗口上 filemenu = Menu(menubar,tearoff=1) #tearoff是在'File'菜單上加了一個小橫杠,為0就是不加,和平時看到的一樣 menubar.add_cascade(label='File',menu=filemenu) filemenu.add_command(label='New',command=show) filemenu.add_command(label='Open',command=show) filemenu.add_command(label='Save',command=show) filemenu.add_separator() #這個是分割線 filemenu.add_command(label='Rxit',command=root.quit) editmenu = Menu(menubar,tearoff=0)#創建一個下拉菜單'Edit',然后讓它添加到頂級窗口上 menubar.add_cascade(label='Edit',menu=editmenu) editmenu.add_command(label='Cut',command=show) editmenu.add_command(label='Copy',command=show) editmenu.add_command(label='Paste',command=show) root.config(menu=menubar)#顯示菜單, mainloop()

點擊小橫杠后的結果:

            

  這個菜單不僅可以添加常見的命令菜單,和可以添加單選或多選按鈕

from tkinter import * root = Tk() def show():print('被調用了') #創建一個頂級的菜單 menubar = Menu(root) #創建checkbutton關聯變量 openVar = IntVar() saveVar = IntVar() exitVar = IntVar() #創建一個下拉菜單‘文件’,然后將它添加到頂級的菜單上 filemenu = Menu(menubar,tearoff = True) menubar.add_cascade(label='文件',menu=filemenu) filemenu.add_checkbutton(label='打開',command=show,variable=openVar) filemenu.add_checkbutton(label='保存',command=show,variable=saveVar) filemenu.add_checkbutton(label='退出',command=root.quit,variable=exitVar) #創建radiobutton關聯變量 editVar = IntVar() editVar.set(1) #創建一個下拉菜單‘編輯’,然后將它添加到頂級的菜單上 editmenu = Menu(menubar,tearoff = False) menubar.add_cascade(label='編輯',menu=editmenu) editmenu.add_radiobutton(label='剪切',command=show,variable=editVar,value=1) editmenu.add_radiobutton(label='拷貝',command=show,variable=editVar,value=2) editmenu.add_radiobutton(label='粘貼',command=show,variable=editVar,value=3) root.config(menu=menubar)#顯示菜單 mainloop()

結果:

      

Menubutton:

  說明:菜單按鈕控件,由于顯示菜單項,它可以放在窗口的任意位置,并彈出下拉菜單

from tkinter import * root = Tk() def callback():print('被調用了') mb = Menubutton(root,text='點我',relief = RAISED)#這個是樣式 mb.pack() filemenu = Menu(mb) filemenu.add_command(label= '打開',command=callback) filemenu.add_command(label='保存',command=callback) filemenu.add_separator() filemenu.add_command(label='退出',command=callback) mb.config(menu=filemenu) mainloop()

?

結果:

     

OptionMenu:

  說明:這是下拉菜單的改版,主要用于記錄用戶選擇了什么

from tkinter import * root = Tk() variable = StringVar() variable.set('one') w = OptionMenu(root,variable,'one','two','there') w.pack() def show():print(variable.get()) Button(root,text='點我',command=show).pack() mainloop()

結果:

         

  還有就是將很多選項添加到選項菜單中?

from tkinter import * root = Tk() l = Label(root,text='',bg='yellow') l.pack() OPTIONS = ['A','B','C','D','E'] variable = StringVar() variable.set(OPTIONS[0]) w = OptionMenu(root,variable,*OPTIONS)#這里注意 w.pack() def show():l.config(text=variable.get()) Button(root,text='點我',command=show).pack() mainloop()

結果:

    

Canvas:

  說明:畫布控件,顯示圖形元素如線條或文本

  屬性:在Canvas上繪制對象,可以用create_xxx()的方法(xxx表示對象的類型)常用的:

  acr:弧形,扇形,弦

  image:PhotoImage的實例化對象

  line:線

  oval:圓形或橢圓形

  rectangle:矩形

  text:文本

  window:組件

  fill:填充顏色

  outline:輪廓線

from tkinter import * root = Tk() w = Canvas(root,width=200,height=100) w.pack() #普通的直線,以及矩形 line1 = w.create_line(0,50,200,50,fill='green') line2 = w.create_line(100,0,100,100,fill='red',dash=(4,4))#這個是設置成虛線 rect1 = w.create_rectangle(50,25,150,75,fill='blue') mainloop()

結果:

    

  如果你希望修改它們,可以用coords(),itemconfig(),move(),方法來移動畫布上的對象

from tkinter import * root = Tk() w = Canvas(root,width=200,height=100) w.pack() #普通的直線,以及矩形 line1 = w.create_line(0,50,200,50,fill='green') line2 = w.create_line(100,0,100,100,fill='red',dash=(4,4)) rect1 = w.create_rectangle(50,25,150,75,fill='blue') #關于修改的方法 w.coords(line1,0,25,200,25) w.itemconfig(rect1,fill='red') w.delete(line2) mainloop()

結果:

    

  當然了,還可以設置圓形,參數是指定一個限定的矩形(Tkinter會自動的在這個矩形里繪制一個橢圓)

from tkinter import * root = Tk() w = Canvas(root,width=650,height=350) w.pack() w.create_rectangle(200,100,600,300,dash = (4,4)) w.create_oval(200,100,600,300,fill='pink') w.create_text(400,200,text='越過山丘\n才發現無人等候',font=('微軟雅黑',20)) w.create_oval(0,0,200,200,fill='green') w.create_oval(75,75,125,125,fill='yellow') w.create_text(100,100,text='山丘') mainloop()

結果:

    

  還支持畫圖,繪制超小的橢圓形的點,通過獲取鼠標位置<B1 - Motion>

from tkinter import * root = Tk() w = Canvas(root,width=800,height=400) w.pack() def paint(event):x1,y1 = (event.x - 1),(event.y - 1)x2,y2 = (event.x + 1),(event.y + 1)w.create_oval(x1,y1,x2,y2,fill='green') w.bind('<B1-Motion>',paint) Label(root,text='拖住鼠標左鍵進行移動,繪制你心中的藍圖').pack(side=BOTTOM) mainloop()

結果:

    

  有了這些,就可以隨心所欲的畫圖了

from tkinter import * root = Tk() w = Canvas(root,width=400,height=400) w.pack() w.create_line(0,0,400,400,fill='green',width=2,dash=(4,4))#線 w.create_line(400,0,0,400,fill='red',width=2,dash=(4,4)) w.create_rectangle(0,0,100,100,fill='green')    #矩形 w.create_rectangle(300,0,400,100,fill='blue') w.create_rectangle(0,300,100,400,fill='yellow') w.create_rectangle(300,300,400,400,fill='red') w.create_oval(100,100,300,300,fill='black')    #球 w.create_text(200,200,text='山丘',fill='white',font=('微軟雅黑',20))  #文本 mainloop()

?結果:

    

參考文獻:

  小甲魚的python教學視頻

?

?

?

?

?

?

  

轉載于:https://www.cnblogs.com/mengd/p/7299319.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的tkinter学习-菜单与画布的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。