初学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. Comparator.comparing排序使用示例

    Comparator.comparing排序使用示例 目录 Comparator.comparing排序使用示例 背景 实体类 示例一 示例二 背景 以前常用的排序方式是通过实现Comparator接 ...

  2. BBS项目(一)

    目录 BBS项目(一) 项目开发流程 BBS项目 BBS表分析 自关联 表关系图示 BBS项目(一) 项目开发流程 项目分类 针对互联网用户:抖音,淘宝····· 针对公司内部:后台管理系统··· 针 ...

  3. 对象中的apply&call

    显式绑定法 apply/call(); 通过显式绑定法可以使用另一个对象中的方法 apply/call()都是JS预定义的方法, 他们都可以用于将一个对象作为参数调用对象方法 FOR example ...

  4. Java基础——Arrays类

    概述: Arrays类包含用于操作数组的各种方法,常用的有以下几种 方法名 说明 public static String toString(int[]a) 返回指定数组的内容的字符串表达形式 pub ...

  5. JavaWeb 11_jsp九大内置对象

    1. out: 输出对象,向客户端输出内容2. request: 请求对象;存储"客户端向服务端发送的请求信息" request对象的常见方法: String getParamet ...

  6. Paypal标准支付对接

    提醒一下,题主是在快速标准支付做到一半的时候换成了标准支付,所以该文档的快速支付大家做个参考就可以了. 一.两种支付方式 标准支付 优点:纯前端对接,简单方便,适用于非技术开发人员.个人即可用,不用花 ...

  7. RabbitMQ Go客户端教程6——RPC

    本文翻译自RabbitMQ官网的Go语言客户端系列教程,本文首发于我的个人博客:liwenzhou.com,教程共分为六篇,本文是第六篇--RPC. 这些教程涵盖了使用RabbitMQ创建消息传递应用 ...

  8. RabbitMQ Go客户端教程2——任务队列/工作队列

    本文翻译自RabbitMQ官网的Go语言客户端系列教程,本文首发于我的个人博客:liwenzhou.com,教程共分为六篇,本文是第二篇--任务队列. 这些教程涵盖了使用RabbitMQ创建消息传递应 ...

  9. 为什么要从Web form过渡到MVC中

    可以说,在未来几年中,Web form的使用会逐渐减少,而取而代之的就是MVC.可能你不会同意我的观点,那么我就试着阐述一下我的观点,如果你还是不能接受,那么请你反驳我. 学习一个新语言或者是新架构是 ...

  10. BUU findkey

    定位关键函数 跟入flag找到问题位置 两行一样的代码,nop掉第二行,按p生成函数 代码审计 int __userpurge sub_4018C4@<eax>(int a1@<eb ...