基于 Python 的 tkinter 模块制作的名人名言查询工具

爬虫学习--垃圾分类查询(tkinter显示结果) python爬虫学习--垃圾分类查询(tkinter显示结果) 阅读详情
  • 简介:本文主要介绍如何用 Python 内置的 tkinter 写一个查询工具。
  • 很多人学习python,不知道从何学起。
    很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
    很多已经做案例的人,却不知道如何去学习更加高深的知识。
    那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
    QQ群:961562169

准备

  • 环境
    • Windows 10
    • Python 3.7.3
    • VS Code
  • 依赖
    • tkinter
    • python-Levenshtein
    • fuzzywuzzy

目录结构及运行界面

目录结构

图1 目录结构图

 

查询界面

图2 查询界面图

 

查询结果

图3 查询结果图

 

具体实现

import tkinter as tk
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
from fuzzywuzzy import fuzz


class Window(object):

    def __init__(self):
        root = tk.Tk()
        root.minsize(580, 320)  # 窗口大小
        root.resizable(width=False, height=False)  # False窗口大小不可变

        # root.iconbitmap('data/icon.ico')   # 无法显示图片

        root.title('鲁迅:都是我说的?!')  # 窗口标题

        label1 = Label(text='句子:')  # 标签
        label1.place(x=10, y=10, width=80, height=25)  # 确定位置
        self.line_text = Entry(root)  # 单行文本输入
        self.line_text.place(x=80, y=10, width=300, height=25)
        button = Button(text='开始查询', command=self.inquiry)  # 按钮
        button.place(x=390, y=10, width=60, height=25)

        self.filemenu = tk.StringVar()  # 下拉列表
        self.file_menu = ttk.Combobox(root, width=12, textvariable=self.filemenu)
        # 列表内容
        self.file_menu['values'] = ('匹配度: 100%', '匹配度: 90%',
                                    '匹配度: 80%', '匹配度: 70%')
        self.file_menu.place(x=460, y=10, width=100, height=25)
        self.file_menu.current(0)  # 当前显示 100%

        label2 = Label(text='查询结果:')
        label2.place(x=10, y=100, width=80, height=20)
        self.text = Text(root)  # 多行文本显示
        self.text.place(x=80, y=50, width=480, height=240)

        self.paragraphs = self.load_data('data/book.txt')  # 数据文件
        root.mainloop()  # 主循环

    '''查询'''

    def inquiry(self):
        sentence = self.line_text.get()  # 获取输入的内容
        matched = []
        score_thresh = self.get_score_thresh()
        self.text.delete(1.0, tk.END)  # 用于删除后续显示的文件
        if not sentence:  # 没有输入句子就查询,会出现弹窗警告
            messagebox.showinfo("Warning", '请先输入需要查询的鲁迅名言')
        else:
            for p in self.paragraphs:
                score = fuzz.partial_ratio(p, sentence)
                if score >= score_thresh and len(sentence) <= len(p):
                    matched.append([score, p])
            infos = []
            # 查找相匹配的内容
            for match in matched:
                infos.append('[匹配度]: %d\n[内容]: %s\n' % (match[0], match[1]))
            if not infos:
                infos.append('未匹配到任何相似度大于或等于%d的句子,请修改匹配度.\n' % score_thresh)
            # 查找到的内容插入文本,并显示
            self.text.insert('insert', '\n\n\n'.join(infos)[:-1])

    '''根据下拉列表获取匹配度'''

    def get_score_thresh(self):
        if self.file_menu.current() == 0:
            return 100
        elif self.file_menu.current() == 1:
            return 90
        elif self.file_menu.current() == 2:
            return 80
        elif self.file_menu.current() == 3:
            return 70

    '''数据导入'''

    def load_data(self, data_path):
        paragraphs = []
        with open(data_path, 'r', encoding='utf-8') as f:
            for line in f.readlines():
                if line.strip():
                    paragraphs.append(line.strip('\n'))
        return paragraphs


if __name__ == '__main__':
    Window()

小结

  • 本文借鉴地址:https://github.com/CharlesPikachu/Tools/tree/master/luxunSentencesQuery 此地址代码基于 PyQt5 模块,Python 版本为 3.6。由于我的 Python 版本为3.7,兼容存在问题,所以我用tkinter 模块改写了代码。原地址教程很详细,感兴趣,可以尝试 PyQt5。
  • 以鲁迅全集为例,通过一句话,查询是否为鲁迅所说。您可以替换成自己想要查询的人物,或者其他资料。
  • 小问题
    • 窗口默认图标为羽毛,这里想要设置自定义图标,通过以下代码 root.iconbitmap('data/icon.ico'),并不能成功,修改图片格式为 .jpg 仍不能成功,各位如能解决,劳烦告知,谢谢。
【Python】【Tkinter】图形界面设计(GUI) 一. 窗口创建及常见函数 from tkinter import tk #初始化tk() root = tk.Tk() #设置标题 root.title('Python GUI Learning') #设置窗口大小 root.geometry('380x300') #设置窗口是否可变长、宽,True:可变,False:不可变 root.resizable(width=False, height=True) #…… 设置控件 #进入消息循环 root.mainloop() 常见函数 函数 含义 阅读详情

相关推荐

课程设计:商品零售信息管理系统(Python+MySQL+Tinker实现)

本文为基于Python的商品零售管理系统,数据库采用MySQL,前端UI界面采用Tinker。 文内包含了从数据库到业务逻辑相关的所有的可运行代码。商品销售信息管理系统主要用于对商品信息的管理,包括客户端和管理端两部分,分别涉及商品购买和各类信息的处理。 学生根据所学的数据库系统原理与程序设计的知识,能够针对一个数据库管理信息系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库管理信息系统的目的。

李威威wiwi的博客 4579

基于 Python tkinter 的查询器

简介:本文主要介绍如何用 Python 内置的 tkinter 写一个查询工具。 准备 环境 Windows 10 Python 3.7.3 VS Code 依赖 tkinter python-Levenshtein fuzzywuzzy 目录结构及运行界面 图片 具体实现 import tkinter as tk from tkinter import * from tkinter import ttk from tkinter import messagebox from fuz.

Talk is cheap, show the code. zhangsihui.pythonanywhere.com 2065

GPS从入门到放弃(一) --- GPS基础原理

GPS从入门到放弃(一) — GPS基础原理 GPS,全称Global Positioning System,已经广泛应用于我们的日常生活中了,现在的智能手机 里都会自带GPS定位功能。这是一个美国的全球定位系统,虽然我们现在也有北斗了,但毕竟GPS搞的早,所以先从它开始研究起。 整个GPS系统分三大部分: 地面站 卫星 接收机 地面站负责监控。它们通过接收、测量各个卫星信号,计算卫星的运行轨...

tyst08的专栏 2万+

Python3.7+tkinter实现查询界面

上一篇博客的爬虫数据存储在sqlite中,这里用tkinter实现一个简单的查询界面 #!/usr/bin/python # -*- coding: UTF-8 -*- from tkinter import * import sqlite3 # 导入消息对话框子模块 import tkinter.messagebox #import urllib #创建主窗口 root = Tk()...

wangwenjing90的专栏 7455

本地部署Llama 3中文版:Ollama量化配置与调优指南

大模型本地部署正在成为数据敏感场景下的主流选择。本地运行开源大模型,既能保护隐私又能降低调用成本,但中文能力往往成为瓶颈。以Llama 3为代表的开源模型,需借助中文微调与量化技术,才能在消费级显卡上流畅运行。量化通过压缩模型权重减小显存占用,配合Ollama等推理框架,可快速搭建私有中文AI服务。该方案适用于知识库问答、内容生成、离线助手等场景,并可通过OpenAI兼容接口无缝对接Dify等应用平台。本文从硬件选型、量化等级到Modelfile配置,系统梳理本地部署中文大模型的全链路实战方法与排错思路,帮

weixin_29035405的博客 82

CTP-API开发系列之三:柜台系统简介

综合交易平台(Comprehensive Transaction Platform,CTP)是专门为期货公司开发的一套期货经纪业务管理系统,由交易、风险控制和结算三大系统组成。接下来分享的内容,对于期货公司的负责交易、运维同事会比较熟悉,针对CTP-API接口对接的朋友可以了解一下,在接口之上的系统是怎样的。

码上助君的专栏 6198

基于Tkinter的Python窗体程序,用于对SQLite数据库进行增删改查操作的示例

【代码】基于Tkinter的Python窗体程序,用于对SQLite数据库进行增删改查操作

颜 1203

Navicat从入门到精通:数据库管理全攻略

本文系统梳理Navicat数据库管理工具的核心应用体系。从基础的安装与多类型数据库连接入手,详解数据库与数据表的创建、修改、删除等操作逻辑;深入数据增删改查的可视化与 SQL 语句双重操作模式,结合Excel/SQL文件的导入导出场景提供实操指南。同时覆盖数据备份恢复、跨库同步等进阶功能,以及视图、存储过程等高级应用。通过对比同类工具突出Navicat的易用性与功能性优势,并针对连接失败、字符乱码等常见问题提供解决方案,帮助读者从零基础掌握数据库全生命周期管理,提升数据操作效率与安全性。

邓邓子的博客 1897

python名人名言代码打印_基于Python的tkinter模块制作的名人名言查询工具

简介:本文主要介绍如何用 Python 内置的 tkinter 写一个查询工具。准备环境Windows 10Python 3.7.3VS Code依赖tkinterpython-Levenshteinfuzzywuzzy目录结构及运行界面​图1 目录结构图​图2 查询界面图​图3 查询结果图具体实现import tkinter as tkfrom tkinter import *from tkin...

weixin_39946300的博客 428

FPGA开发中的操作系统

在FPGA开发中,操作系统起着关键的作用,它负责任务管理、资源管理、中断处理和设备驱动程序等功能。在实际的FPGA开发中,可以选择使用现有的操作系统,如MicroC/OS-II、FreeRTOS等,或者根据具体需求自行设计和开发操作系统。在FPGA(可编程逻辑门阵列)开发中,操作系统扮演着关键的角色,为硬件设计师提供了一种有效的方式来管理资源、调度任务并实现系统级功能。本文将介绍FPGA开发中的操作系统概念,并提供一个简单的示例代码来说明如何在FPGA平台上实现一个基本的操作系统。

CqpFsharp的博客 1156

tkinter中text插入_基于Python的tkinter模块制作的名人名言查询工具

简介:本文主要介绍如何用 Python 内置的 tkinter 写一个查询工具。准备点击此处,获取海量Python学习资料!环境Windows 10Python 3.7.3VS Code依赖tkinterpython-Levenshteinfuzzywuzzy目录结构及运行界面​图1 目录结构图​图2 查询界面图​图3 查询结果图具体实现import tkinter as tk from tkin...

weixin_39530960的博客 99

【用unity实现100个游戏之1】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(二)(附源码)

这篇文章我们将继续实现曲线射击与两种不需要实体子弹的射击方式 源码在文章末尾。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 5060

python名人名言代码打印_基于 Python 的 tkinter 模块制作的名人名言查询工具

import tkinter as tkfrom tkinter import *from tkinter import ttkfrom tkinter import messageboxfrom fuzzywuzzy import fuzzclass Window(object):def __init__(self):root = tk.Tk()root.minsize(580, 320) #...

weixin_39950083的博客 449

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

桌宠智能体开发那些事

关于智能体开发那些事

weixin_44985842的博客 270

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

用python tkinter做一个简单的mysql查询界面

import tkinter as tk import pymysql import pandas as pd window = tk.Tk() window.title('号码查询') ##窗口尺寸 window.geometry('200x200') #定义一个输入框entry e=tk.Entry(window,show=None)#如果是输入密码,可以写show='*' e.pack() #定义按钮功能 def insert_point(): conn= pymysql.connect(h.

yywand的博客 3700

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Python+TKinter实现账号数据查询工具

python提供了多个图形开发界面的库,常用的Tkinter,wxPython,pyQT5等。 Tkinter是Python的标准GUI库,Python可以快速的创建GUI应用程序。Tkinter是内置到python的安装包中的,只要安装了python,就可以import Tkinter库。 基于tkinter,实现一个账号数据查询工具,用来排查账号数据有没有被采集到系统中,需求:输入一个账号,可以查询出此账号在系统中的数目,及最近的一条内容文本信息。若此账号没有被采集到系统,则在第三方的接口中查询内容

rusuo_1995的博客 1311

基于python的数据查询脚本-GUI类型-tkinter

利用Python做一个简易的数据查询脚本 涉及模块 主要涉及到tkinter、pandas等,记录下这一周以来遇到的小问题 实现功能 读取数据存储文件、对数据表中的数据进行删减操作、存储文件、计算误差数据、设计GUI界面、自动输出问题数据、文件的封装打包 ...

qq_43352308的博客 870

python 显示数据库数据tk_python – SQL查询结果在tkinter中

你绝对不想使用exec,也不需要使用textvariable选项.这两者只是增加了混乱.只需将您的小部件存储为字典,直接从条目小部件获取数据,这一切都变得非常容易管理.这是一个有效的例子:import tkinter as tkclass Example(tk.Frame):def __init__(self, parent):tk.Frame.__init__(self, parent)b = ...

weixin_39820244的博客 1600

【Python制作数据查询小工具】

1.从MySQL数据库查询某个时间段的数据2.查询SQL固定,数据的时间区间可自定义选择3.查询的数据结果可导出为excel4.查询结果可发送到飞书消息5.可在其它windows电脑上运行。

qq_40605196的博客 1524

python3.7界面_Python3.7+tkinter实现查询界面功能

Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。这篇文章使用tkinter实现一个简单的查询界面#!/usr/bin/python# -*- coding: UTF-8 -*-from tkinter import *import sqlite3# 导入消息对话框子模块import tkinter.messagebox#i...

weixin_39546520的博客 640

python使用tkinter编写一个数据显示窗口(实时显示更新的数据)

以下代码为python3版本,python2版本使用需保证更新数据的那部分代码处于主进程中,如果放在线程中会出现错误,所以建议能用 python3就用python3,只用我为什么知道python2会出现这个问题,那就是ros没python3的版本… 示意图(数据就会在后面的框里面变换): 以下为代码,我这里在下面提供两个代码示例: 1.(第一部分)修改为可以直接运行显示,但注释掉了刷新数据的线程部分的,无法对数据进行更新。 """注意这个 窗口拉起接口在 一 二 部分中被调用的不同的写法""" self.

weixin_43134049的博客 1万+

利用python操纵数据库--数据写入与tkinter实现界面查询

在日常练习sql的时候,又找不到好的线上数据库,这个时候不如自己下载一个mysql.但是数据批量写入呢,就可能是一个问题.这时候,利用python脚本批量写入即可.其实结合文章Python窗体输入、展示并存储数据,也可以实现窗口输入,写到数据库中,这将在后面的文章中介绍,这里只介绍python批量写入,并且从中读取的脚本.下面从安装开始介绍: 一、MySQL的安装 去官网寻找安装包,我使用的MAC,但是最新版本安装之后会提示无法打开,因此一定要找到系统对应的版本下载链接,安装好之后点击,会有一个提示给roo

洗脚看电视的博客 3602

python GUI计算器的实现

01 实现 我们几乎每个人都用过计算器,大家对于计算器应该都是比较熟悉的,计算器整体也是比较简单的,主要包括:显示器、键盘、运算的逻辑处理等,计算器的图形界面我们使用 tkinter 库实现,下面看一下具体实现过程。 首先,我们画一个主窗口,代码实现如下: 1 2 3 4 5 6 7 8 # 创建主窗口 tk = tkinter.Tk() # 设置窗口大小和位置 tk.geometry('300x210+500+200') # 不允许改变窗口大小 tk.resizable(False, False)

1456

ThinkPHP5.1学习--查询数据

一.基本查询 Db::table()中 table 必须指定完整数据表(包括前缀); 如果希望只查询一条数据,可以使用 find()方法; Db::table(‘tp_user’)->find(); Db::getLastSql()方法,可以得到最近一条 SQL 查询的原生语句; SELECT * FROM ‘tp_user’ LIMIT 1 想指定数据查询,可以使用 where()方法; Db::table(‘tp_user’)->where(‘id’, 27)->fi

Cure The World的博客 2139
上一篇: 利用Python 多协程和队列爬取豆瓣图书
下一篇: 10个最值得Python新人练手的有趣项目
Python_sn
博客等级 码龄6年 324粉丝 290原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值