Python tkinter 制作文章搜索软件

这篇具有很好参考价值的文章主要介绍了Python tkinter 制作文章搜索软件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

Python tkinter 制作文章搜索软件

今天,我无聊的时候做了一个搜索文章的软件,有没有更加的方便快捷不知道,好玩就行了。基于Python tkinter 制作文章搜索软件,都是一些基础的应用。🍖 🍗 🥩

功能实现

Python tkinter 制作文章搜索软件

导入模块

代码

我们首先做到第一件事是导入模块。

import tkinter as tk
import webbrowser
from tkinter import ttk
import requests

创建窗口

代码

root = tk.Tk()
root.title('CSDN问题搜索')
root.geometry('1000x700+100+100')
root.iconbitmap('search.ico')
root.mainloop()

这段代码创建了一个名为root的Tkinter窗口对象,并设置了窗口的标题和大小。然后,它使用root.iconbitmap()方法将一个名为search.ico的图标图像设置为窗口的图标。

root.geometry()方法用于设置窗口的位置和大小,它接受一个参数,即窗口的位置和大小。在这个例子中,我们将窗口的位置设置为(1000, 700)并将大小设置为(100, 100)

效果

Python tkinter 制作文章搜索软件

背景图片

代码

img = tk.PhotoImage(file='benjing.png')
tk.Label(root, image=img).pack()

这行代码创建了一个名为img的PhotoImage对象,并将其设置为根窗口对象root的图像。然后,它使用tk.Label创建一个标签对象,并将图像设置为该标签的图像。最后,它使用pack()方法将标签对象放置在根窗口对象中。

效果

Python tkinter 制作文章搜索软件

搜索文本框 

代码

search_frame = tk.Frame(root)
search_frame.pack(pady=12)
# 创建一个字符串变量
search_va = tk.StringVar()
tk.Label(search_frame, text='CSDN搜索', font=('黑体', 12)).pack(side=tk.LEFT, padx=6)
tk.Entry(search_frame, relief='flat', width=30, textvariable=search_va).pack(side=tk.LEFT, padx=5, fill='both')
tk.Button(search_frame, text='C一下', font=('黑体', 12), relief='flat', bg='#fe6b00').pack(side=tk.LEFT, padx=5)

这段代码创建了一个名为search_frame的Tkinter窗口对象,并将其放置在根窗口对象root中。然后,它创建了一个StringVar对象search_va,并将其设置为一个字符串变量。接下来,它创建了一个Label对象tk.Label,并将其放置在search_frame中。tk.Label对象具有一个文本属性和一个字体属性,这里使用了一个黑体字体和12号字号。tk.Entry对象具有一个文本属性和一个宽度属性,这里使用了一个30像素的宽度和一个StringVar对象search_va。最后,它创建了一个Button对象tk.Button,并将其放置在search_frame中。tk.Button对象具有一个文本属性、一个字体属性和一个背景属性,这里使用了一个黑体字体、12号字号和一个背景颜色为#fe6b00

效果

Python tkinter 制作文章搜索软件

内容显示界面

代码

tree_view = ttk.Treeview(root,show="headings", columns=('num', 'title', 'author', 'date', 'link'))
tree_view.column("num", width=10, anchor='center')
tree_view.column('title', width=200, anchor='w')
tree_view.column('author', width=10, anchor='center')
tree_view.column('date', width=10, anchor='center')
tree_view.column('link', width=150, anchor='center')
tree_view.heading('num', text='序号')
tree_view.heading('title', text='标题')
tree_view.heading('author', text='作者')
tree_view.heading('date', text='发布时间')
tree_view.heading('link', text='链接')
tree_view.pack(fill=tk.BOTH, expand=False, pady=10)

这段代码创建了一个名为tree_view的Tkinter Treeview对象,并将根节点设置为rootshow参数设置为"headings",表示显示节点的标题。columns参数设置为一个包含节点标题、作者、发布时间和链接的列表。tree_view.column()方法用于设置每个列的宽度和锚点。tree_view.column()方法接受一个参数,即要设置宽度和锚点的列的名称。tree_view.heading()方法用于设置每个列的标题。tree_view.pack()方法用于设置节点的位置和大小,并将节点放置在根窗口对象中。tree_view.fill参数设置为"both",表示填充整个窗口,expand参数设置为True,表示展开节点,pady参数设置为10,表示节点之间的间距。

效果

Python tkinter 制作文章搜索软件

搜索内容效果代码

到了这里,我们这个框架就写好了,那么,我们如何获取搜索功能呢。、

def search(word):
    search_list = []
    num = 1
    for page in range(1, 3):
        url = 'https://so.csdn.net/api/v3/search'
        data = {
            'q': word,
            'p': page,
        }
        headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
        }
        response = requests.get(url=url, params=data, headers=headers)
        for index in response.json()['result_vos']:
            title = index["title"].replace('<em>', '').replace('</em>', '')
            author = index["nickname"].replace('<em>', '').replace('</em>', '')
            dit = {
                'num': num,
                'title': title,
                'author': author,
                'date': index['create_time_str'],
                'link': index['url'],
            }
            num += 1
            search_list.append(dit)
    return search_list

这段代码定义了一个名为search的函数,该函数接受一个字符串参数word,并返回一个字符串列表,其中包含符合给定字符串的所有文档的标题、作者和发布时间。

该函数首先创建一个空字符串列表search_list,然后使用一个循环来搜索所有可能的页面。在每个页面上,它使用requests库发送一个HTTP GET请求,并将搜索参数作为请求的一部分传递。然后,它将响应的JSON数据解析为一个字典,其中包含每个文档的标题、作者和发布时间。然后,它将每个字典添加到search_list中,并将搜索列表的长度增加1。

最后,该函数返回search_list,该列表包含符合给定字符串的所有文档的标题、作者和发布时间。

效果

比如讲,搜索博主“爱吃饼干的小白鼠”,我们看看网站反馈的数据是不是和我们一样的。

Python tkinter 制作文章搜索软件

展示内容效果代码

接下来,我们就要把上面的内容展示到界面里面。

def show(search_list):
    # 往树状图中插入数据
    for index, li in enumerate(search_list):
        tree_view.insert('', index + 1,values=(li['num'], li['title'], li['author'], li['date'], li['link']))

这段代码定义了一个名为show的函数,该函数接受一个字符串列表参数search_list,该列表包含每个文档的标题、作者和发布时间,用于插入树状图中。

该函数首先使用一个循环来遍历search_list,并使用tree_view.insert()方法将每个文档插入到树状图中。tree_view.insert()方法接受一个参数,即要插入的节点的索引和值列表。values参数用于指定节点的值列表。

点击搜索功能代码

上面我们讲述了搜索功能代码,以及展示代码。接下来,我们就要实现这样的功能——我们在文本框输入“爱吃饼干的小白鼠”,然后,我们点击C一下,就会在界面显示内容。

PS—如果大家感兴趣,可以实现一个回车的功能

def click():
    key_word = search_va.get()
    if key_word:
        search_list = search(word=key_word)
        show(search_list)

这段代码定义了一个名为click的函数,该函数用于查找键盘上输入的字符串。如果找到了相应的字符串,则调用search()函数查找包含该字符串的文档并显示它们。get()方法用于从缓冲区中获取字符串。if key_word语句检查输入字符串是否包含在search_va中,如果是,则将search_list更新为包含相关文档的字符串列表。然后调用show()函数将其显示在树状图中。

效果

Python tkinter 制作文章搜索软件

 访问博客网页

我们接下来,就实现点击某一行就会访问该文章。

def tree_view_click():
    for item in tree_view.selection():
        item_text = tree_view.item(item, "values")
        webbrowser.open(item_text[-1])

这段代码定义了一个名为tree_view_click的函数,该函数用于在树状图中选择节点并打开相应的网页。它使用tree_view.selection()方法获取选中的节点,并使用tree_view.item()方法获取节点的文本值。然后,它使用webbrowser.open()方法打开相应的网页。

tree_view.bind("<Button-1>",tree_view_click)

在 Python 中,可以使用 tkinter 模块中的 ttk 子模块来创建树形视图控件。要为树形视图添加点击函数,可以使用 ttk.Treeview 的 __init__ 方法来设置点击事件处理函数。

总结

到了这里,我们这个功能就实现了,是不是很神奇。搜索文章的软件就实现了,有的人说了,何必这么麻烦,直接去官网搜索就好了啊。确实,可是通过这个练习,我们可以学到很多东西。

Python tkinter 制作文章搜索软件文章来源地址https://www.toymoban.com/news/detail-401942.html

到了这里,关于Python tkinter 制作文章搜索软件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python入门学习之小工具制作系列--02使用tkinter库写一个BMI身体指数检测小程序

    一、小程序检测功能逻辑 即通过输入身高、体重两个数据即可计算自己的BMI身体指数是多少,且对身体状况做相应提醒。 二、小程序使用体验 1,弹出主界面,输入身高,体重数据~ 2,点击计算,输出BMI数据~ 3,根据BMI结果,给出相应的建议~ 三、小程序代码逻辑 1,引入t

    2024年02月15日
    浏览(51)
  • tkinter制作一个简单计算器

            我们知道tkinter是python常用的UI框架,那么它是如何使用的呢?我们用一个简单的例子来显示它的作用,制作一个简单的计算器,如下图所示。 上图是一个计算器,我们可以看出它一共有20个键,每个按键都表示一个功能,在最上方是一个文本框用来显示数值。接下

    2024年02月11日
    浏览(44)
  • 【教程】使用ChatGPT制作基于Tkinter的桌面时钟

    目录 描述 代码 效果 说明 下载 开源链接:GitHub - 1061700625/Tkinter_Desktop_Clock: 基于Tkinter的桌面时钟小工具         给ChatGPT的描述内容:         python在桌面上显示动态的文字,不要显示窗口边框。窗口背景和标签背景都是透明的,但标签内的文字是有颜色。使用tkint

    2024年02月07日
    浏览(33)
  • 用tkinter库制作一个简单的登录注册小程序

    目录 各种组件的布局 制作过程中的理解 制作过程中遇到的难点 解决问题的方法 tkinter库作为python的标准库之一,它的功能性十分强大,下面我将使用tkinter库制作一个简易的注册登录窗口(很难看就是了)。 一· 制作之前需要大致明白各个窗体的大致位置,登录注册嘛 自然

    2024年02月09日
    浏览(29)
  • 使用python制作一个批量查询搜索排名的SEO免费工具

    💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网】 🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】 💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 最近工作中需要用上 Google SEO(搜索引擎优化),有了解过的朋友们应该都知道SEO必不

    2024年02月09日
    浏览(39)
  • python界面开发案例:制作一个计算器软件

    前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 在我们手机上大家都有一个计算器,对吧 那它这功能是怎么实现的呢? 今天我们在电脑上来实现一个电脑端计算器界面~ 开发环境: Python 3.8 / 编译器 Pycharm 2021.2版本 / 编辑器 本文所有模块环境源码教程皆可点击文章下方

    2023年04月16日
    浏览(39)
  • python如何制作手机软件,python3手机版怎么用

    大家好,小编为大家解答python如何生成手机可运行文件的问题。很多人还不知道手机python3.0编程软件怎么用,现在让我们一起来看看吧! Source code download: 本文相关源码 编辑器: HBuiderX、PyCharm 主要技术: 5+App、python HBuiderX 下载地址: HBuilderX-高效极客技巧 PyCharm 下载地址:

    2024年02月22日
    浏览(30)
  • 基于Tkinter实现一个垃圾分类答题软件

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 一、Tkinter 二、最终效果 三、项目过程 3.1分析布局 3.2创建窗口 3.3构建题库 3.4创建组件

    2024年01月21日
    浏览(46)
  • Python-编写点云处理软件(二)点云软件ui制作之仿CC界面

    本系列第一篇中已经对VTK显示点云、VTK集成到Pyside2以及可执行程序打包进行了介绍与示例分析。 接着我们需要对这个小程序的界面进行优化,点云处理的开源软件中,CloudCompare算是比较实用的一款,其界面也是比较简洁和美观。那么本篇将在UI界面上进行简单的设计,达到一

    2024年02月12日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包