当前位置: 首页 > news >正文

tkinter学习系列(二)之窗口的设置

目录

  • (一)窗体的最小框架
    • 1.说明:
    • 2.源代码:
    • 3.实现效果:
  • (二)窗体的基本设置
    • 1.说明:
    • 2.完整代码:
    • 3.实现效果:
  • (三)窗体的外形设置
    • 1.说明:
    • 2.完整代码:
    • 3.实现效果:
  • (四)窗体的三个方法:
    • 1.获取屏幕的大小
    • 2.获取窗体的大小
    • 3.获取窗体的位置

目录:

1.窗体的最小框架

2.窗体的基本设置

3.窗体的外形设置

(一)窗体的最小框架

1.说明:

需要导入标准库:
import tkinter

2.源代码:

# 导入模块,并取别名
import tkinter as tk
# 实例化一个窗体对象
win = tk.Tk()
# 设置窗体的大小(300x300),与出现的位置距离窗体左上角(+150+150)
win.geometry("300x300+150+150")
# 进入消息循环,显示窗体
win.mainloop()

3.实现效果:

01.png

(二)窗体的基本设置

1.说明:

(1)添加标题:

# 设置标题
win.title("标题")

(2)添加图标:

图标:必须是以 .ico 为后缀的图标文件,放于同目录下。

# 设置图标,以QQ头为例
win.iconbitmap("app.ico")

(3)添加背景:

颜色:可以用英文名,也可以用RGU,十六进制表示的颜色。

# 设置背景色,以“蓝色”为例
win["background"] = "blue"

2.完整代码:

# 导入模块,并去别名
import tkinter as tk
# 实例化一个窗体对象
win = tk.Tk()
# 设置窗体的大小(300x300),与出现的位置距离窗体左上角(+150+150)
win.geometry("300x300+150+150")
# 设置标题
win.title("标题")
# 设置图标,以QQ头为例
win.iconbitmap("app.ico")
# 设置背景色,以“蓝色”为例
win["background"] = "blue"
# 进入消息循环,显示窗体
win.mainloop()

3.实现效果:

02.png

(三)窗体的外形设置

1.说明:

(1)设置透明度:

透明度的值是:0~1 可以是小数点,0:全透明;1:全不透明
python win.attributes("-alpha", 0.6)

(2)设置工具栏样式:

工具样式:True 只有退出按钮,也没有图标; False 正常的窗体样式

win.attributes("-toolwindow", True)

透明度与工具栏的效果图:

03.png

(3)设置全屏:

全屏模式:True 全屏;False 正常显示

win.attributes("-fullscreen", True)

(4)设置窗体置顶

窗体置顶:True 所有窗口中处于最顶层;False 正常显示

win.attributes("-topmost", True)

(5)设置成脱离工具栏

脱离工具栏:True 没有工具栏按钮;False 正常显示

win.overrideredirect(True)

脱离工具栏的效果图:

04.png

2.完整代码:

# 导入模块,并去别名
import tkinter as tk
# 实例化一个窗体对象
win = tk.Tk()
# 设置窗体的大小(300x300),与出现的位置距离窗体左上角(+150+150)
win.geometry("300x300+150+150")
# 设置标题
win.title("标题")
# 设置图标,以QQ头为例
win.iconbitmap("app.ico")
# 设置背景色,以“蓝色”为例
win["background"] = "blue"
# 设置透明度
win.attributes("-alpha", 0.6)
# 设置窗口为工具样式:
win.attributes("-toolwindow", True)
# # 设置全屏:
win.attributes("-fullscreen", False)
# 设置窗体置顶
win.attributes("-topmost", True)
# 设置成脱离工具栏
win.overrideredirect(False)
# 进入消息循环,显示窗体
win.mainloop()

3.实现效果:

05.png

(四)窗体的三个方法:

1.获取屏幕的大小

(1)语法说明:

# 获取屏幕的大小;
screen_height = root.winfo_screenheight()
screen_width = root.winfo_screenwidth()

(2)源代码:

import tkinter as tk
root = tk.Tk()
# 获取屏幕的大小;
screen_height = root.winfo_screenheight()
screen_width = root.winfo_screenwidth()
print("你电脑的屏幕的高度是:", screen_height)
print("你电脑的屏幕的宽度度是:", screen_width)
root.mainloop()

(3)输出结果:

06.png

2.获取窗体的大小

(1)语法说明:

# 获取屏幕的大小;
win_height = root.winfo_height()
win_width = root.winfo_width()

需要注意的是:要用root.update()方法,才能看到更新后的数值

(2)源代码:

import tkinter as tk
root = tk.Tk()
root.geometry("600x500")
# 更新窗体
root.update()
# 获取屏幕的大小;
win_height = root.winfo_height()
win_width = root.winfo_width()
print("控件的高度是:", win_height)
print("控件的宽度度是:", win_width)
root.mainloop()

(3)输出结果:

07.png

3.获取窗体的位置

(1)语法说明:

# 获取窗体的位置
win_x = win.winfo_x()
win_y = win.winfo_y()

(2)源代码:

import tkinter as tk
win = tk.Tk()
win.geometry("600x500")


def change(event):
    win.update()
    # 获取窗体的位置
    win_x = win.winfo_x()
    win_y = win.winfo_y()
    print(win_x)
    print(win_y)


# 绑定事件,窗体的改变事件
win.bind("<Configure>", change)
win.mainloop()

(3)输出结果:

当我用鼠标拖动窗体时,更新了一系列的位置数值

08.png

转载于:https://www.cnblogs.com/zyg123/p/10351034.html

相关文章:

  • 多年父子成兄弟
  • p2519 [HAOI2011]problem a
  • SQL Server 变更数据捕获(CDC)监控表数据
  • java写文件实现换行
  • mount --bind使用方法
  • react 项目中 引入 bootstrap
  • “Usage of API documented as @since 1.8+”报错的解决办法
  • 【Spring系列】spring mvc整合任务调度
  • 【BZOJ2301】Problem B
  • linux 全部卸载python yum 重新安装
  • 【进阶4-4期】Lodash是如何实现深拷贝的
  • 提问的艺术
  • git学习(一) 如何将项目上传到github
  • HTML和CSS第一篇
  • git的基本使用
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • AngularJS指令开发(1)——参数详解
  • Apache Zeppelin在Apache Trafodion上的可视化
  • JavaScript设计模式系列一:工厂模式
  • Java-详解HashMap
  • Python连接Oracle
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • windows下如何用phpstorm同步测试服务器
  • 成为一名优秀的Developer的书单
  • 读懂package.json -- 依赖管理
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 前端
  • 实战|智能家居行业移动应用性能分析
  • 使用权重正则化较少模型过拟合
  • 算法系列——算法入门之递归分而治之思想的实现
  • 无服务器化是企业 IT 架构的未来吗?
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 原生js练习题---第五课
  • ​io --- 处理流的核心工具​
  • #Linux(Source Insight安装及工程建立)
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (52)只出现一次的数字III
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (分享)自己整理的一些简单awk实用语句
  • (万字长文)Spring的核心知识尽揽其中
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (正则)提取页面里的img标签
  • (转)ABI是什么
  • .gitignore文件—git忽略文件
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET CLR基本术语
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .NET企业级应用架构设计系列之开场白
  • @TableLogic注解说明,以及对增删改查的影响
  • @我的前任是个极品 微博分析
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • [IE技巧] IE 中打开Office文件的设置