初学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. python解释器下载与安装与pychorm下载与安装

    python的下载地址: (不推荐使用最新版) 下载地址:https://www.python.org/downloads/windows/对应版本:Python 3.6.8 - Dec. 24, 2 ...

  2. 【.NET6+WPF+Avalonia】开发支持跨平台的WPF应用程序以及基于ubuntu系统的演示

    前言:随着跨平台越来越流行,.net core支持跨平台至今也有好几年的光景了.但是目前基于.net的跨平台,大多数还是在使用B/S架构的跨平台上:至于C/S架构,大部分人可能会选择QT进行开发,或者 ...

  3. 6. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 收集诊断跟踪信息与如何分析瓶颈

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  4. BBS项目补充知识(后台文章展示功能)

    BBS项目补充知识 1. 开放 media 文件路径 # 以用户注册页面为例 用户头像文件我们默认时保存在 根路径下的static下的img文件夹 但也可以单独放置在指定路径下 # 根路径下创建 me ...

  5. ZYNQ使用ymodem协议传输文件

    SDK: V2014.4 协议: Ymodem 工具: USB转UART转接线.xshell6软件 可实现各种文件传输,大小不限,只是速度很慢 参考原代码如下: /****************** ...

  6. Acwing 社交距离 分类讨论+贪心

    一种新型疾病,COWVID-19,开始在全世界的奶牛之间传播. Farmer John 正在采取尽可能多的预防措施来防止他的牛群被感染. Farmer John 的牛棚是一个狭长的建筑物,有一排共 N ...

  7. 有关电控制图软件EPLAN的安装,下面有破解版本2.7

    前段时间刚刚接触这一块,就安装个软件老是出问题,所以我通过自己的努力学会啦,来给正要学习EPLAN的同学发福利啦 15:07:48 安装包发放在百度网盘来自取呀  建议安装我勾选的这个哦 链接:htt ...

  8. error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数。。。使用

    一,问题描述 MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引 ...

  9. 使用 JWT 来保护你的 SpringBoot 应用

    关键词 写在前面 Spring Boot 创建Spring Boot应用 创建一个Web 应用 使用JWT保护你的Spring Boot应用 添加Spring Security 本文代码 关键词 Sp ...

  10. Myql 中的事务回滚机制概述 ?

    事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个 不可分割的工作单位,事务回滚是指将该事务已经完成的对数据库的更新操作撤 销. 要同时修改数据库中两个不同表时,如果它们不是一个事 ...