相关学习课程:Python Tkinter 绘图项目 - 网易云课堂​study.163.com

一、关于主窗口的介绍:

我们见的比较多的命令如下:

1root.geometry("300x200+100+50")

这是什么意思呢?

其实:第一个是指窗口的宽度,第二个窗口的高度,第三个窗口左上点离左屏幕边界距离,第四个窗口左上点离上面屏幕边界距离。 那么,放在整段代码里如下:

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

显示效果如下:

(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()

运行效果如下:

(4)一个很重要的知识点

我们使用上述的方法得到的位置和宽高,其实是tk初始化时的一个值。因此在初始化的时候默认都是1,如果需要获取准确的位置和大小信息 此时我们调用update方法,刷新win窗口。

运行脚本如下:

import tkinter

win = 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()

(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 tk

root = tk.Tk()

root.title('测试窗口')

center_window(root, 500, 340)

root.mainloop()Python Tkinter 绘图项目 - 网易云课堂​study.163.com

python设置窗口位置_python中tkinter窗口位置相关推荐

  1. Python设置画布大小_Python 之 Tkinter Canvas画布

    定义: Canvas画布:画布控件用于将结构化图形的Python应用.主要用于绘制图表和曲线图. 语法格式: 可能选项的列表如下 选项 描述 bd 表示该边界的宽度,默认的宽度是 2  bg 它代表了 ...

  2. python设置堆大小_Python中的堆问题

    Heap in python 堆(英语:Heap)是计算机科学中一类特殊的数据结构的统称.堆通常是一个可以被看做一棵树的数组对象.在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时 ...

  3. python设置http代理_python中设置HTTP代理的方法

    什么是HTTP代理 HTTP代理本质上是一个Web应用,它和其他普通Web应用没有根本区别.HTTP代理收到请求后,根据Header中Host字段的主机名和Get/POST请求地址综合判断目标主机,建 ...

  4. python 设置全局代理_Python中使用socks5设置全局代理的方法示例

    0x01介绍 PySocks使您可以通过SOCKS和HTTP代理服务器发送流量.它是SocksiPy的现代分支,具有错误修复和其他功能. 0x02 安装 λ pip3 install Pysocks ...

  5. python设置次坐标_Python中Matplotlib如何添加次坐标轴,添加多个图例

    由于总量数据过大,不太适合与拆分的维度使用同一坐标轴展示,所以对于总量使用主坐标轴,拆分的细分维度均使用次坐标轴. 这是使用同一个坐标轴的结果: 知识点1:subplots() plt.subplot ...

  6. python设置字符间距_Python中字符串的常见操作技巧总结

    本文实例总结了Python中字符串的常见操作技巧.分享给大家供大家参考,具体如下: 反转一个字符串 >>> S = 'abcdefghijklmnop' >>> S ...

  7. python算法和数据结构_Python中的数据结构和算法

    python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...

  8. python视窗版_Python GUI tkinter窗口视窗学习3

    Python GUI tkinter窗口视窗学习3 # test9 import tkinter as tk window = tk.Tk() window.title('my test9') win ...

  9. python tkinter 下拉框_python中tkinter入门之Menu创建顶级菜单、下拉菜单和弹出菜单。...

    创建顶级菜单 Menu 组件通常被用于实现应用程序上的各种菜单.使用add_command可以添加菜单内容.创建后通过root.config()添加到窗口上. from tkinter import ...

  10. python中与label类似的控件是_python中tkinter的使用(控件整理)(一)

    1.使用tkinter.Tk() 生成主窗口(window=tkinter.Tk()): window.title('标题名')修改框体的名字,也可在创建时使用className参数来命名: wind ...

最新文章

  1. Moss/Sharepoint 一些很重要的API备忘
  2. FormsAuthentication详解
  3. 在.NET上如何根据字符串动态创建控件
  4. 如何看linux是32位还是64位--转
  5. MATLAB机器学习系列-3:BP神经网络算例实现
  6. 天池 在线编程 输入流
  7. java实现把数据写入到Excel并下载
  8. [复变函数]第19堂课 5.3 解析函数在无穷远处的性质
  9. 2 追踪光线=》2.2 前向光线追踪和逆向光线追踪
  10. 【Java】java JMX之ObjectName
  11. python list二维数组_python中的二维数组和lamda
  12. 转:expect的基本用法 - Shell - ChinaUnix.net -
  13. 大创笔记——硬切法实现基于单片机的人机交互系统
  14. 20071020ー胡小蝶
  15. 我用 140 行代码,带你看一场流星雨⭐
  16. python getcwd_Python3 os.getcwd() 方法
  17. 画爱心代码 python
  18. 电脑有网但打不开网页怎么办?
  19. dropout层加在哪里_Nomaomi
  20. j3455文件服务器,UNRAID下解决华擎 J3455-ITX  IOMMU 分组(4口网卡顺利分开直通 )...

热门文章

  1. 一个对于三只松鼠视觉稿的分析
  2. 利用互斥量实现进程间同步
  3. 安利一款提醒休息的工具--重度电脑工作者和程序员必备
  4. Naive Bayes Model 朴素贝叶斯 简单易懂的笔记by hch
  5. 【论文笔记】RETHINKING NETWORK DESIGN AND LOCAL GEOMETRY IN POINT CLOUD: A SIMPLE RESIDUAL MLP FRAMEWORK
  6. 【操作系统】—I/O设备的基本概念和分类
  7. Longhorn 企业级云原生容器存储解决方案-部署篇
  8. matplotlib 网格线不要覆盖柱状图
  9. 神经网络未来发展趋势,神经网络未来发展前景
  10. 大学本科计算机专业那些课 左飞