前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python tkinter 制作文章搜索软件,有没有方便快捷不知道,好玩就行了

Python tkinter 制作文章搜索软件,有没有方便快捷不知道,好玩就行了

作者头像
松鼠爱吃饼干
发布2022-12-05 21:44:46
2770
发布2022-12-05 21:44:46
举报
文章被收录于专栏:Python分享

前言

无聊的时候做了一个搜索文章的软件,有没有更加的方便快捷不知道,好玩就行了

环境使用

  • Python 3.8
  • Pycharm

模块使用

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

最终效果

有疑问的同学,或者想要Python相关资料的可以加群:326937069找管理员领取资料和一对一解答

界面实现代码

导入模块

代码语言:javascript
复制
import tkinter as tk
from tkinter import ttk

创建窗口

代码语言:javascript
复制
root = tk.Tk()
root.title('问题搜索')
root.geometry('900x700+100+100')
root.iconbitmap('search.ico')

root.mainloop()

标题图片

代码语言:javascript
复制
img = tk.PhotoImage(file='封面.png')
tk.Label(root, image=img).pack()

搜索框

代码语言:javascript
复制
search_frame = tk.Frame(root)
search_frame.pack(pady=10)
search_va = tk.StringVar()
tk.Label(search_frame, text='问题描述:', font=('黑体', 15)).pack(side=tk.LEFT, padx=5)
tk.Entry(search_frame, relief='flat', width=30, textvariable=search_va).pack(side=tk.LEFT, padx=5, fill='both')
tk.Button(search_frame, text='搜索一下', font=('黑体', 12), relief='flat', bg='#fe6b00').pack(side=tk.LEFT,padx=5)

内容显示界面

代码语言:javascript
复制
tree_view = ttk.Treeview(root, show="headings")

tree_view.column('num', width=1, anchor='center')
tree_view.column('title', width=150, anchor='w')
tree_view.column('author', width=10, anchor='center')
tree_view.column('date', width=10, anchor='center')
tree_view.column('link', width=30, 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=True, pady=5)

内容效果代码

代码语言:javascript
复制
def search(word):
    search_list = []
    num = 0
    for page in range(1, 4):
        url = 'https://so.csdn.net/api/v3/search'
        data = {
            'q': word,
            't': 'all',
            'p': page,
            's': '0',
            'tm': '0',
            'lv': '-1',
            'ft': '0',
            'l': '',
            'u': '',
            'ct': '-1',
            'pnt': '-1',
            'ry': '-1',
            'ss': '-1',
            'dct': '-1',
            'vco': '-1',
            'cc': '-1',
            'sc': '-1',
            'akt': '-1',
            'art': '-1',
            'ca': '-1',
            'prs': '',
            'pre': '',
            'ecc': '-1',
            'ebc': '-1',
            'urw': '',
            'ia': '1',
            'dId': '',
            'cl': '-1',
            'scl': '-1',
            'tcl': '-1',
            'platform': 'pc',
        }
        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>', '')
            dit = {
                'num': num,
                'title': title,
                'author': index['nickname'],
                'date': index['create_time_str'],
                'link': index['url'],
            }
            num += 1
            search_list.append(dit)
    return search_list


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


def click():
    key_word = search_va.get()
    if key_word:
        search_list = search(word=key_word)
        # 往树状图中插入数据
        show(search_list)

# 单击 获取当前点击行的值
def tree_view_click(event):
    # 遍历选中的元素
    for item in tree_view.selection():
        # 获取选中元素的值
        item_text = tree_view.item(item, "values")
        # 打印选中元素的值
        # print(item_text)
        webbrowser.open(item_text[-1])

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 松鼠爱吃饼干 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 环境使用
      • 模块使用
        • 最终效果
        • 有疑问的同学,或者想要Python相关资料的可以加群:326937069找管理员领取资料和一对一解答
        • 界面实现代码
          • 导入模块
            • 创建窗口
              • 标题图片
                • 搜索框
                  • 内容显示界面
                  • 内容效果代码
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档