电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:110日期: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 編程
相關文章:
主站蜘蛛池模板: 生物风-销售载体,基因,质粒,ATCC细胞,ATCC菌株等,欢迎购买-百风生物 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 | 淘剧影院_海量最新电视剧,免费高清电影随心观看 | 手术室净化厂家-成都做医院净化工程的公司-四川华锐-15年特殊科室建设经验 | DDoS安全防护官网-领先的DDoS安全防护服务商 | 自清洗过滤器_全自动过滤器_全自动反冲洗过滤器_量子过滤器-滑漮滴 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 | 一路商机网-品牌招商加盟优选平台-加盟店排行榜平台 | 武汉高温老化房,恒温恒湿试验箱,冷热冲击试验箱-武汉安德信检测设备有限公司 | 圆盘鞋底注塑机_连帮鞋底成型注塑机-温州天钢机械有限公司 | 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | 北京自然绿环境科技发展有限公司专业生产【洗车机_加油站洗车机-全自动洗车机】 | 电子巡更系统-巡检管理系统-智能巡检【金万码】 | 高博医疗集团上海阿特蒙医院 | 金刚网,金刚网窗纱,不锈钢网,金刚网厂家- 河北萨邦丝网制品有限公司 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 掺铥光纤放大器-C/L波段光纤放大器-小信号光纤放大器-合肥脉锐光电技术有限公司 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | 家乐事净水器官网-净水器厂家「官方」 | 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | pbt头梳丝_牙刷丝_尼龙毛刷丝_PP塑料纤维合成毛丝定制厂_广州明旺 | 没斑啦-专业的祛斑美白嫩肤知识网站-去斑经验分享 | 超声波分散机-均质机-萃取仪-超声波涂料分散设备-杭州精浩 | 离子色谱自动进样器-青岛艾力析实验科技有限公司 | 私人别墅家庭影院系统_家庭影院音响_家庭影院装修设计公司-邦牛影音 | 无尘烘箱_洁净烤箱_真空无氧烤箱_半导体烤箱_电子防潮柜-深圳市怡和兴机电 | 亳州网络公司 - 亳州网站制作 - 亳州网站建设 - 亳州易天科技 | 溶氧传感器-pH传感器|哈美顿(hamilton) | 合肥汽车充电桩_安徽充电桩_电动交流充电桩厂家_安徽科帝新能源科技有限公司 | 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 菏泽知彼网络科技有限公司 | 断桥铝破碎机_铝合金破碎机_废铁金属破碎机-河南鑫世昌机械制造有限公司 | PCB接线端子_栅板式端子_线路板连接器_端子排生产厂家-置恒电气 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 全自动包装秤_全自动上袋机_全自动套袋机_高位码垛机_全自动包装码垛系统生产线-三维汉界机器(山东)股份有限公司 | 碳刷_刷握_集电环_恒压簧_电刷厂家-上海丹臻机电科技有限公司 | SEO网站优化,关键词排名优化,苏州网站推广-江苏森歌网络 | 【ph计】|在线ph计|工业ph计|ph计厂家|ph计价格|酸度计生产厂家_武汉吉尔德科技有限公司 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 |