Python tkinter界面编写,制作【法律条文查询工具】

奋斗吧
奋斗吧
擅长邻域:未填写

标签: Python tkinter界面编写,制作【法律条文查询工具】 MySQL博客 51CTO博客

2023-05-08 18:24:13 35浏览

Python tkinter界面编写,制作【法律条文查询工具】,前言每次看新闻,会有一些社会新闻说某某某犯了什么法,第几几条。。。。但是对于我一个没专门学过法律的人来说,只能知道个大概,想了解具体点的,每次都要去百度查。所以我就在想,为什么我不能写一个程序,帮助我了解法律条文,不要求功能多强大,只求看新闻的时候多了解些信息环境Python3.8Pycharm《中华人民共和国刑法》效果展示打算做个简单的界面,主要功能就是查询法律条文查询器界面设定界面大小就


前言

每次看新闻,会有一些社会新闻说某某某犯了什么法,第几几条。。。。
但是对于我一个没专门学过法律的人来说,只能知道个大概,想了解具体点的,每次都要去百度查。
所以我就在想,为什么我不能写一个程序,帮助我了解法律条文,不要求功能多强大,只求看新闻的时候多了解些信息

环境

  • Python 3.8
  • Pycharm
  • 《中华人民共和国刑法》

效果展示

打算做个简单的界面,主要功能就是查询法律条文

Python tkinter界面编写,制作【法律条文查询工具】_ide

查询器界面

设定界面大小

就简单的用tkinter做个界面就行

root = tk.Tk()
root.title('法律条文查询')
root.geometry('690x500+200+200')

root.mainloop()

Python tkinter界面编写,制作【法律条文查询工具】_ide_02

查询框

input_frame = tk.Frame(root)
input_frame.pack(pady=20)

input_va = tk.StringVar()

tk.Label(input_frame, text='输入内容:', font=('黑体', 18), fg='#ed1c24').pack(side=tk.LEFT, padx=5)
tk.Entry(input_frame, relief='flat', textvariable=input_va, font=('黑体', 18)).pack(side=tk.LEFT, padx=5)
tk.Button(input_frame, text='查询', font=('黑体', 12), relief='flat', fg='#ffffff', bg='#ed1c24').pack(side=tk.LEFT, padx=5)

Python tkinter界面编写,制作【法律条文查询工具】_pycharm_03

显示框

text = tk.Text(root, width=55, height=9, font=('黑体', 18))
text.pack()

Python tkinter界面编写,制作【法律条文查询工具】_技术交流_04

标图图片

# 读取图片
img = tk.PhotoImage(file='img1.png')
tk.Label(root, image=img).pack()

Python tkinter界面编写,制作【法律条文查询工具】_pycharm_05

查询器功能

读取相关法律条文

def Query():
    doc = Document('中华人民共和国刑法.docx')
    doc_content_list = []
    for paragraph in doc.paragraphs:
        if paragraph.text :
            doc_content_list.append(paragraph.text)
    doc_content = '\n'.join(doc_content_list)
    text.delete(1.0, 'end')
    word = input_va.get()
    # word = input('查询: ')
    num = ChangeNum(Number=word)
    word_1 = str(int(word) + 1)
    num_1 = ChangeNum(Number=word_1)
    result = f'第{num}条 ' + re.findall(f'第{num}条 (.*?)\n第{num_1}条', doc_content, re.S)[0]
    print(result)
    text.insert(tk.INSERT, result)

设置输入关键数字查询功能

def ChangeNum(Number):
    dit = {
        '0': '零',
        '1': '一',
        '2': '二',
        '3': '三',
        '4': '四',
        '5': '五',
        '6': '六',
        '7': '七',
        '8': '八',
        '9': '九',
    }
    if len(Number) == 1:
        num_list = dit[Number]
        return num_list
    elif  len(Number) == 2:
        if Number[-1] == '0':
            num_list = [dit[num] for num in Number]
            num_list.insert(1, '十')
            return ''.join(num_list)[:-1]
        elif Number[0] == '1':
            num_list = [dit[num] for num in Number]
            num_list.insert(1, '十')
            return ''.join(num_list)[1:]
        else:
            num_list = [dit[num] for num in Number]
            num_list.insert(1, '十')
            return ''.join(num_list)

    elif len(Number) == 3:
        if Number[-1] == '0' and Number[1] != '0':
            num_list = [dit[num] for num in Number]
            num_list.insert(1, '百')
            num_list.insert(-1, '十')
            return ''.join(num_list)[:-1]
        elif Number[-1] == '0' and Number[1] == '0':
            num_list = [dit[num] for num in Number]
            num_list.insert(1, '百')
            return ''.join(num_list)[:2]
        else:
            num_list = [dit[num] for num in Number]
            num_list.insert(1, '百')
            num_list.insert(-1, '十')
            return ''.join(num_list)

    elif len(Number) == 4:
        num_list = [dit[num] for num in Number]
        num_list.insert(1, '千')
        num_list.insert(3, '百')
        num_list.insert(-1, '十')
        return ''.join(num_list)

最后运行代码成品

Python tkinter界面编写,制作【法律条文查询工具】_pycharm_06



好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695