首页 > 其他分享 >使用tkinter做一个查询界面

使用tkinter做一个查询界面

时间:2022-09-29 18:13:31浏览次数:57  
标签:10 界面 text 查询 methodId serviceId tk tkinter pack

通过tkinter做一个简单的ui,输入关键字,查到对应结果(需要绑定后台查询方法)

 

# -*- coding=utf-8 -*-
# ui_main.py

import tkinter as tk
import finder  # 存放业务查询逻辑的模块
from threading import Thread

window = tk.Tk()    # 生成ui界面
window.title("查询工具")    # 界面标题
window.geometry('600x400+300+100')  # 窗口长600宽400,离左侧距离300,离顶部距离100
# value_str = tk.StringVar()
# value_int = tk.IntVar()
value = tk.StringVar()


def thread(func, *args):
    """
    使用子线程调用func方法
    :param func: 
    :param args: 
    :return: 
    """
    t = Thread(target=func, args=args)
    t.setDaemon(True)   # 设置为启动线程的守护线程
    t.start()

def button():
    """
    点击button按钮触发的方法,触发后调用后台查询模块finder获取值
    :return:
    """
    serviceId = srv_ipt.get()   # 获取输入框的值
    methodId = md_ipt.get()
    value.set("正在查询...")    # 赋值给value,在label输出框展示
    # print(finder.main(serviceId, methodId)[0])
    if serviceId and methodId:
        if finder.main(serviceId, methodId):
            res_text = '结果行号:%s\n类型名称:%s\n结果数据:\n%s\n' % (finder.main(serviceId, methodId)[0], finder.main(serviceId, methodId)[1], finder.main(serviceId, methodId)[2])
        else:
            res_text = "未找到数据"
    else:
        res_text = "请输入serviceid、methodid"
    value.set(res_text)

# 容器1,搜索栏
frame1 = tk.Frame()     # borderwidth=2边框宽度,relief=tk.RAISED 边框样式
# .pack() 为自适应模式,自动设置对应控件位置大小,.grid()为网格模式
frame1.pack(side=tk.TOP,    # 组件在父级中放置的位置
            fill=tk.BOTH,   # 是否填充pack分配的空间,默认None保持组件原始尺寸,BOTH填充x(水平)和y(垂直)方向空间
            ipadx=5,        # 水平方向的内边距
            ipady=10,       # 垂直方向的内边距
            padx=3,         # 水平方向的外边距
            pady=3          # 垂直方向的外边距
            )


# serviceid输入框
tk.Label(frame1, text="serviceId:").pack(side='left', padx=5)   # 输入框标题
srv_ipt = tk.Entry(frame1, show=None, font=("微软雅黑", 10))    # show文字的显示样式,None保持默认,'*'文字显示为*,密码使用
srv_ipt.pack(side='left', padx=10)


# methodid输入框
tk.Label(frame1, text="methodId:").pack(side='left', padx=5)    # 输入框标题
md_ipt = tk.Entry(frame1, show=None, font=("微软雅黑", 10))
md_ipt.pack(side='left', padx=10)


# 查询按钮
search_btn = tk.Button(window, text="查询", width=15, height=3, command=lambda: thread(button))   # command,按钮点击时触发方法,使用子线程调用button方法,防止单线程执行时,干扰mainloop()方法,造成界面假死
search_btn.pack(side="top", fill=None, padx=15, pady=15)


# 输出打印窗口
out_label = tk.Label(window,
                     text="*** 查询中 ***",   # 文本内容
                     textvariable=value,       # tkinder变量的内容,变量变化时,lable中文本自动刷新
                     justify="left",        # 文本对齐方式,取决于anchor的值
                     anchor="nw",           # 文本所在方位,nw为北西
                     bg="black",            # 背景色
                     fg="white",            # 前景色
                     font=("微软雅黑", 10),   # 字体设置
                     width=10,              # label宽度
                     height=50,             # label高度
                     padx=5,                # 水平方向文本外边距
                     pady=3                 # 垂直方向文本外边距
                     )
out_label.pack(side="bottom", fill="both", padx=10, pady=10,
               # ipadx=0,     # 无法改变文字与边框的距离
               )


if __name__ == "__main__":
    window.mainloop()

 

 

效果图:

 

 

 

标签:10,界面,text,查询,methodId,serviceId,tk,tkinter,pack
From: https://www.cnblogs.com/tgzz/p/16742499.html

相关文章

  • 千万级数据表选错索引导致的线上慢查询事故
     故障描述在7月24日11点线上某数据库突然收到大量告警,慢查询数超标,并且引发了连接数暴增,导致数据库响应缓慢,影响业务。看图表慢查询在高峰达到了每分钟14w次,在平时正常......
  • 【问题】记录spark查询ES,数据重复的问题
    真实环境遇到spark查询ES,出现数据重复的现象。记录一下整个背景和解决问题过程。记录过程比较简单,真实排查过程艰难定位到最终原因记录spark查询ES,数据重复的问题1.环境......
  • 索引优化与查询优化
    目录1、数据准备2、索引失效案例2.1全值匹配我最爱2.2最佳左前缀法则2.3主键插入顺序2.4计算、函数、类型转换(自动或手动)导致索引失效2.5类型转换导致索引失效2.6待......
  • Elasticsearch: Terms lookup查询方案
    场景:商品池索引 sku_data,需要过滤编码字段skuCodeTerms使用terms查询商品编码{"query":{"bool":{"filter":[{"terms":{......
  • MySQL查询 7:连接查询
    当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回mysql支持三种类型的连接查询,分别为:内连接查询:查询的结果为两个表匹配到的数据左连接查......
  • SAP数据平台上的查询服务
    ​数据平台对外提供便捷的查询服务,是数据传递到用户手中的“最后一公里路”。大数据平台对企业的数据进行整合、加工,使不同结构、不同来源、不同业务含义的数据变成结构化的......
  • js 获取当前地址的查询参数列表
    eg.https://go.gliffy.com/go/html5/launch?_ga=2.201967958.654328489.1658124867-1818406430.1658124867console.log(location.search)结果:?_ga=2.201967958.654328489.16......
  • 504条件查询_模糊查询和505约束概述
    模糊查询一般查询数据库我们用到的是完整查询,在查询的时候是需要我们把全部完整的条件都输入进来才可以查询到结果的,如果说你查询的条件有一点的不对就不会查询到结果,这......
  • 502基础查询和503条件查询
    DQK:查询表中的记录select*from表名;语法select字段列表from表名列表where条件列表groupby分组字段orderby排序limit分页......
  • MYSQL小记,SQL查询,如果有更新时间则优先按更新时间倒序,没有则按创建时间倒序
    selectnow()fromdualORDERBYIFNULL(update_date,create_date)DESCIFNULL函数说明IFNULL(expr1,expr2)如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr......