初学tkinter,感觉这个插件虽然是做界面的,但是没有html,也没有android那么人性化

既没有画圆角长方形的办法也没有添加透明按钮的办法(可能是我没找到)

所以自己用canvas画了两个扇形和一个长方形拼起来哈哈哈哈哈

在canvas上叠加输入框、搜索label和删除label

代码:

import ctypes
import tkinter as tk
from tkinter import * # 实例化object,建立窗口window
window = Tk() # 设定窗口的大小(长 * 宽)
window.geometry('1200x600') # 将label标签的内容设置为字符类型,用var_search来接收内容用以显示在标签上
var_search = tk.StringVar() #使窗口更加高清
# 告诉操作系统使用程序自身的dpi适配
ctypes.windll.shcore.SetProcessDpiAwareness(1) # 在图形界面上创建 500 * 200 大小的画布并放置各种元素
canvas = tk.Canvas(window) # 设置输入框在画布中上下左右的位置
top, bottom, left, right = 0, 40, 30, 800 #绘制长方形
rect = canvas.create_rectangle(left, top, right, bottom, outline="white", fill="white") #绘制两个半圆
arc = canvas.create_arc(left - 30, top, left + 30, bottom, start=90, extent=180, outline="white",
fill="white") # 画扇形 从0度打开收到180度结束
arce = canvas.create_arc(right - 30, top, right + 30, bottom, start=270, extent=180, outline="white",
fill="white") # 画扇形 从0度打开收到180度结束 #防止画布
canvas.place(x=30, y=10, height=40, relwidth=1) # 在图形界面上设定输入框控件entry框并放置
entry_search = tk.Entry(window, textvariable=var_search, font=("黑体", 14), relief=FLAT)
entry_search.place(x=60, y=15, height=30, width=700) #搜索
def searc(self):
print(var_search.get()) #清空输入框
def delete(self):
entry_search.delete(0, END) # Enter键搜索
window.bind('<Return>', searc) # 在窗口界面设置放置Label
# Creating a photoimage object to use image
search_photo = PhotoImage(file=r"search.png") # 调整图片尺寸适应按钮大小
search_photoimage = search_photo.subsample(9, 9)
search_b = tk.Label(window, text='', image=search_photoimage, relief=FLAT, bg="white", activebackground='white')
search_b.bind('<Button-1>', searc)
search_b.place(x=38, y=20, width=20, height=20, ) # 在窗口界面设置放置Button按键 # 在窗口界面设置放置Label
# Creating a photoimage object to use image
delete_photo = PhotoImage(file=r"delete.png") # 调整图片尺寸适应按钮大小
delete_photoimage = delete_photo.subsample(9, 9)
delete_b = tk.Label(window, text='', image=delete_photoimage, relief=FLAT, bg="white", activebackground='white')
delete_b.bind('<Button-1>', delete)
delete_b.place(x=830, y=20, width=20, height=20, ) # 在窗口界面设置放置Button按键 window.mainloop()

效果:

Python窗口学习之搜索框美化的更多相关文章

  1. Python窗口学习之给按钮美化

    tkinter的按钮很丑也很难改 怎么办呢? 最好的方法就是不用按钮! 给Label添加点击事件,和按钮的作用是一样的! 代码: #!/usr/bin/env python # -*- coding: ...

  2. Python+Selenium学习--下拉框处理

    场景 下拉框也是web 页面上非常常见的功能,webdriver 对于一般的下拉框处理起来也相当简单,要想定位下拉框中的内容,首先需要定位到下拉框:这样的二次定位 下拉框一般有以下两种方式: 鼠标移上 ...

  3. Python窗口学习之浅尝按键触发事件

    一.窗口上敲键盘触发事件(以Enter键为例) 二.点击窗口按钮触发事件(以鼠标左键双击为例) 代码: import tkinter as tk root = tk.Tk() root.geometr ...

  4. Python窗口学习之监听窗口变化触发函数

    在窗口大小发生变化后,往往组件也需要调整 代码: #空间适应屏幕 def window_resiz(self,event=None): print(window.winfo_height()) pri ...

  5. Python窗口学习之使窗口变得更高清

    初学tkinter发现窗口并不像成熟软件那么清楚 在实例化window后加这一行代码 #使窗口更加高清 # 告诉操作系统使用程序自身的dpi适配 ctypes.windll.shcore.SetPro ...

  6. PYthon窗口学习之用异步请求解决Treeview列表插入大量数据反应慢的解决办法

    当列表插入大量数据时,经常会等一会才显示数据 异步请求就将每一个插入语句并发运行,从而提高插入速度 代码: # 显示结果 def insert_result(table, info): def ins ...

  7. 零基础入门Python游戏学习笔记(1)

    书是车洪于2020年出的,到手已经过去一年多了.现在学来,好多东西不一样了. 作者的GitHub,大家知道的原因,并不好打开. 代码就不搬了,只是为了学习方便,书籍勘误搬一下. 一.开发环境: 1.p ...

  8. 带搜索框的jQuery下拉框插件

    由于下拉框的条数有几十个,于是打算找一个可以搜索查找功能的下拉框,刚开始在网上看了几个,都是有浏览器兼容性问题,后来看到这个“带搜索框的jQuery下拉框美化插件 searchable”,看演示代码简 ...

  9. C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例

    C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...

随机推荐

  1. sprintf的用法总结

    大概知道sprintf的用法,今天在CSDN上看到一篇关于sprintf比较好的总结,现在抄下来,emmmmmmm....... srpintf()函数的功能非常强大:效率比一些字符串操作函数要高:而 ...

  2. JAVA——转义字符

    目录 1.Java转义字符 2.Java中的注释 2.1Java 中的注释类型 2.2文档注释 3.Java代码规范 4.Java开发注意事项和细节说明 1.Java转义字符 在控制台,输入 tab ...

  3. JZ-045-扑克牌顺子

    扑克牌顺子 题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的 ...

  4. 扩展我们的分析处理服务(Smartly.io):使用 Citus 对 PostgreSQL 数据库进行分片

    原文:Scaling Our Analytical Processing Service: Sharding a PostgreSQL Database with Citus 在线广告商正在根据绩效数 ...

  5. 记一次NAS故障分析(ZFS NFS)

    问题: 使用vdbench进行单层100w目录,每个目录30个文件,共3000w文件读写时,在创建文件得时候IO会出现断断续续得情况. 分析过程: 1.  nfs抓包分析 使用vdbench创建一个文 ...

  6. 重磅 | 腾讯云服务网格开源项目 Aeraki Mesh 加入 CNCF 云原生全景图

    作者 赵化冰,腾讯云工程师,Aeraki Mesh 创始人,Istio member,Envoy contributor,目前负责 Tencent Cloud Mesh 研发工作. 摘要 近日,腾讯云 ...

  7. pthon语法

    1.条件语句 #找到a.b.c中最大的数,其中and是逻辑运算符"且"的意思 if a>b and a>c: print(a) elif b>a and b> ...

  8. mysql使用group by分组时出现错误ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and

    问题: 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ...

  9. 如何修改windows Server 2012 远程桌面连接默认端口

    如何修改windows Server 2012 远程桌面连接默认端口   修改windows 2012/win8.win7远程桌面连接默认端口一般需要修改注册表四个地方[HKEY_LOCAL_MACH ...

  10. [ Shell ] 两个 case 实现 GetOptions 效果

    https://www.cnblogs.com/yeungchie/ 可以用 getopt,但我还是喜欢自己写这个过程,便于我够控制更多细节. 下面要实现的效果是,从命令行参数中分析,给 $libNa ...