亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python中tkinter窗口位置坐標大小等實現示例

瀏覽:79日期:2022-07-18 10:12:59

正在嘗試著做一個比較完善的畫圖軟件,計劃使用tkinter庫中的canvas控件來做,然后正在攻關圖形項位置、坐標、大小及其他屬性項的保存和加載的問題,剛好需要用到坐標、位置的知識,因此作為這個畫圖軟件的附帶產出物,整理成了本篇博文,分享給大家,一起研究研究,期待能對你工作帶來啟發和幫助。

不忘初心,方得始終,讓我們一起共勉!

好的,言歸正傳,回歸本篇博文的主題:python中tkinter窗口位置|坐標大小等知識的科普。

大家都知道tkinter庫中有很多控件和主窗口,因此這些控件和主窗口都有對應的屏幕坐標的信息。因此我們可以分別進行介紹。

一、關于主窗口的介紹:

我們見的比較多的命令如下:

root.geometry('300x200+100+50')

這是什么意思呢?

其實:第一個是指窗口的寬度,第二個窗口的高度,第三個窗口左上點離左屏幕邊界距離,第四個窗口左上點離上面屏幕邊界距離。 那么,放在整段代碼里如下:

from tkinter import *root = Tk()root.geometry('300x200+100+50')root.mainloop()

顯示效果如下:

python中tkinter窗口位置坐標大小等實現示例

(1)窗口屬性設置

在上面程序的基礎上,在root = Tk()和root.mainloop()之間添加下面的代碼以在窗口中添加元素

窗口標題:root.title('title_a')

添加窗口圖標:root.iconbitmap(icon_file),icon_file就是一個.ico的圖標文件,使用絕對或相對路徑 設置窗口大小:root.geometry('x_WIDTHxx_HEIGHT'),其中將_WIDTH替換為窗口寬度,將_HEIGHT替換為窗口高度 設置窗口在屏幕上的位置:

root.geometry('+X+Y'),X/Y表示以屏幕左上角為頂點的窗口的坐標

(2)常用的事件處理函數:

刷新窗口狀態:root.update()

銷毀窗口:root.destroy()

自動觸發事件:root.after(sec,command),表示多少秒以后自動執行command

置頂窗口:root.wm_attributes(’-topmost’,1)

隱藏窗口外部:root.overrideredirect(True)

設置最大的窗口:root.maxsize(600, 400)

設置最小的窗口:root.minsize(300, 240)

設置窗口是否可以縮放(兩種方法):

root.resizable(width=False, height=False)#禁止改變窗口大小

root.resizable(0, 0) # 設置窗口大小不可變

(3)獲取窗口的方法

winfo_width獲得窗口的寬度,winfo_height獲得窗口的高度。以上兩個方法都是無參方法,通過返回值我們可以獲得窗口的寬高。

from tkinter import * def go(): txt = ’窗口的左上角坐標為:(%s,%s)n窗口的高度為:%s窗口的寬度為:%s’ % (root.winfo_x(),root.winfo_y(),root.winfo_width(),root.winfo_height()) label1.configure(text=txt) root.after(1,go) root = Tk()root.geometry('300x200+100+50')label1 = Label(root)label1.pack(expand=YES)go()root.mainloop()

運行效果如下:

python中tkinter窗口位置坐標大小等實現示例

(4)一個很重要的知識點

我們使用上述的方法得到的位置和寬高,其實是tk初始化時的一個值。因此在初始化的時候默認都是1,如果需要獲取準確的位置和大小信息 此時我們調用update方法,刷新win窗口。

運行腳本如下:

import tkinterwin = tkinter.Tk()win.geometry('100x100')print('初始化的窗口的寬度和寬度為 %s * %s' % (win.winfo_width(),win.winfo_height()))win.update()print('update后的窗口的寬度和寬度為 %s * %s' % (win.winfo_width(),win.winfo_height()))win.mainloop()

python中tkinter窗口位置坐標大小等實現示例

(5)常用的一些位置處理函數

設置窗口最大化

#設置窗口最大化:#方法一root = Tk()w, h = root.maxsize()root.geometry('{}x{}'.format(w, h)) #看好了,中間的是小寫字母x#方法二root = Tk()w = root.winfo_screenwidth()h = root.winfo_screenheight()root.geometry('%dx%d' %(w, h))#方法三root = Tk()root.attributes('-fullscreen', true)

設置居中顯示

def center_window(root, width, height): screenwidth = root.winfo_screenwidth() screenheight = root.winfo_screenheight() size = ’%dx%d+%d+%d’ % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2) print(size) root.geometry(size) root.update() print(root.winfo_x())

調用腳本:

import tkinter as tkroot = tk.Tk()root.title(’測試窗口’)center_window(root, 500, 340)root.mainloop()

二、關于控件的位置介紹

其實跟主窗口的訪問方式類似,主要是要找到對應的方法和函數。

import tkinter as tk def center_window(root, width, height): screenwidth = root.winfo_screenwidth() screenheight = root.winfo_screenheight() size = ’%dx%d+%d+%d’ % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2) root.geometry(size) root.update() def go(): txt = ’Label1控件的位置信息如下:%s’ % label1.winfo_geometry() label2.configure(text=txt) root.after(1,go) root = tk.Tk()root.title(’測試窗口’)center_window(root, 500, 340)label1 = tk.Label(root, text=’測試用途的Label控件’)label1.pack(expand=tk.YES)label2 = tk.Label(root)label2.pack()go()root.mainloop()

主要用到的函數為:label1.winfo_geometry()

運行的效果如下:

python中tkinter窗口位置坐標大小等實現示例

到此這篇關于python中tkinter窗口位置坐標大小等實現示例的文章就介紹到這了,更多相關python中tkinter窗口位置坐標大小內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 五月天爱爱激情视频在线观看 | 国产一级内谢a级高清毛片 国产一级毛片大陆 | 最新国产精品久久精品 | 一级黄色片大全 | 2019在线大片免费观看 | 国产精品久久久久国产精品三级 | 日本黄色绿像 | 久久亚洲私人国产精品va | 直接黄91麻豆网站 | 一级黄色绿像片 | 精品国产系列 | 又硬又大又湿又紧a视频 | 日本欧美韩国一区二区三区 | 国产福利毛片 | 亚洲黄色激情网 | 国产精品亚洲一区二区三区正片 | 日本免费久久久久久久网站 | 亚洲欧美日本国产综合在线 | a黄色一级片 | 亚洲精品一级一区二区三区 | 91麻豆精品国产高清在线 | 六度国产福利午夜视频黄瓜视频 | 麻豆中文字幕 | 国产精品视频在 | 亚洲国产婷婷综合在线精品 | 欧美亚洲尤物久久精品 | 国产性生活视频 | 精品一区二区三区在线播放 | 91精品久久久久亚洲国产 | 欧美一级色 | 亚洲一区二区三区亚瑟 | 欧洲亚洲精品 | 91在线播放网站 | 新26uuu在线亚洲欧美 | 国产亚洲精品成人一区看片 | 国产成视频 | 色综合综合色综合色综合 | 手机看片日韩国产一区二区 | 欧美.成人.综合在线 | 中国xxxx视频播放50 | 99热国产这里只有精品免费 |