Python窗口学习之搜索框美化
初学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窗口学习之搜索框美化的更多相关文章
- Python窗口学习之给按钮美化
tkinter的按钮很丑也很难改 怎么办呢? 最好的方法就是不用按钮! 给Label添加点击事件,和按钮的作用是一样的! 代码: #!/usr/bin/env python # -*- coding: ...
- Python+Selenium学习--下拉框处理
场景 下拉框也是web 页面上非常常见的功能,webdriver 对于一般的下拉框处理起来也相当简单,要想定位下拉框中的内容,首先需要定位到下拉框:这样的二次定位 下拉框一般有以下两种方式: 鼠标移上 ...
- Python窗口学习之浅尝按键触发事件
一.窗口上敲键盘触发事件(以Enter键为例) 二.点击窗口按钮触发事件(以鼠标左键双击为例) 代码: import tkinter as tk root = tk.Tk() root.geometr ...
- Python窗口学习之监听窗口变化触发函数
在窗口大小发生变化后,往往组件也需要调整 代码: #空间适应屏幕 def window_resiz(self,event=None): print(window.winfo_height()) pri ...
- Python窗口学习之使窗口变得更高清
初学tkinter发现窗口并不像成熟软件那么清楚 在实例化window后加这一行代码 #使窗口更加高清 # 告诉操作系统使用程序自身的dpi适配 ctypes.windll.shcore.SetPro ...
- PYthon窗口学习之用异步请求解决Treeview列表插入大量数据反应慢的解决办法
当列表插入大量数据时,经常会等一会才显示数据 异步请求就将每一个插入语句并发运行,从而提高插入速度 代码: # 显示结果 def insert_result(table, info): def ins ...
- 零基础入门Python游戏学习笔记(1)
书是车洪于2020年出的,到手已经过去一年多了.现在学来,好多东西不一样了. 作者的GitHub,大家知道的原因,并不好打开. 代码就不搬了,只是为了学习方便,书籍勘误搬一下. 一.开发环境: 1.p ...
- 带搜索框的jQuery下拉框插件
由于下拉框的条数有几十个,于是打算找一个可以搜索查找功能的下拉框,刚开始在网上看了几个,都是有浏览器兼容性问题,后来看到这个“带搜索框的jQuery下拉框美化插件 searchable”,看演示代码简 ...
- C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例
C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...
随机推荐
- 【面经】Java面试突击
基础语法 基本数据结构 Java 的基本数据类型有 8 种,包括 6 种数字类型.1 种字符类型和 1 种布尔类型. 基本数据类型总览 数字类型包括 4 种整数类型和 2 种浮点数类型,4 种整数类型 ...
- 二级python考试大纲以及考试指导复习方案
二级python考试大纲与复习指导 本人也是在备考二级py 可能理解不对的地方请指正 参考网络,侵权删除 考纲解读→ 一.考试介绍 1.1考试人群 全国计算机等级考试(python语言程序设计(二 ...
- tp6 验证方式
think验证方式
- 解决vue单页面应用做微信JSSDK注入权限时出现“invalid signature”(ios端)
--都说微信开发多坑,没想到遇到一个天坑. 在做一个vue项目时,要用到微信JS-SDK,官方文档详见:https://developers.weixin.qq.com/doc/offiaccount ...
- Java基础——基本类型包装类
一.概述: 将基本数据类型封装成对象 优点: 可以在对象中定义更多的功能方法操作该数据 常见用法: 用于基本类型与字符串之间的转换 基本数据类型 包装类 byte Byte short Short i ...
- 除了增删改查你对MySQL还了解多少?
目录 除了增删改查你对MySQL还了解多少? MySQL授权远程连接 创建用户.授权 客户端与服务器连接的过程 TCP/IP 命名管道和共享内存 Unix域套接字文件 查询优化 MySQL中走与不走索 ...
- python域名200检测
import requests import threading import queue # qianxiao996精心制作 #博客地址:https://blog.csdn.net/qq_36374 ...
- Rsync反弹shell
vulhub环境靶机 : 192.168.91.130 攻击机:kali 192.168.91.128 一.环境搭建 vulhub环境靶机环境搭建 在纯净ubuntu中部署vulhub环境: 1. ...
- python的内存回收机制
变量相当于门牌号,当门牌没有了,即函数的引用都没有调用了,内存的数据就会被清除掉. python内有个定时器,定期的会刷新,如果发现内存中数据被引用了,就会被回收,这个就是内存的回收机制 ...
- javascript函数 (二 定义函数的三种方法)
javascript定义函数(声明函数)可以有三种方法:正常方法.构造函数.函数直接量 <html><head></head><body> <sc ...