欢迎访问宙启技术站
智能推送

怎么在Python3.7中使用tkinter实现查询界面功能

发布时间:2023-05-18 10:25:32

Tkinter是Python自带的GUI库,可以用于创建各种窗口和对话框。在Python3.7中使用Tkinter实现查询界面功能需要以下步骤:

1. 导入Tkinter模块和相关库

import tkinter as tk
import tkinter.messagebox as messagebox
import sqlite3

2. 创建主窗口并设置窗口大小、标题等属性

# 创建主窗口
root = tk.Tk()

# 设置窗口大小
root.geometry('400x300')

# 设置窗口标题
root.title('查询界面')

3. 创建查询条件输入框和查询结果显示框

# 创建查询条件输入框
input_frame = tk.Frame(root)
input_frame.pack(side=tk.TOP, padx=20, pady=10)

input_label = tk.Label(input_frame, text='输入查询条件:')
input_label.pack(side=tk.LEFT)

input_entry = tk.Entry(input_frame, width=30)
input_entry.pack(side=tk.LEFT)

# 创建查询结果显示框
result_frame = tk.Frame(root)
result_frame.pack(side=tk.TOP, padx=10, pady=10)

result_label = tk.Label(result_frame, text='查询结果:')
result_label.pack(side=tk.TOP)

result_text = tk.Text(result_frame, width=40, height=15)
result_text.pack(side=tk.TOP)

4. 创建查询按钮并定义查询函数

# 创建查询按钮
def query():
  # 获取查询条件
  query_param = input_entry.get()

  # 连接数据库
  conn = sqlite3.connect('data.db')
  cursor = conn.cursor()

  # 查询数据
  try:
    cursor.execute(f"SELECT * FROM data WHERE name LIKE '%{query_param}%' OR age={query_param}")
    results = cursor.fetchall()
  except Exception as e:
    messagebox.showerror('错误', str(e))
    conn.close()
    return

  # 显示查询结果
  result_text.delete(1.0, tk.END)
  if len(results) == 0:
    result_text.insert(tk.END, '没有找到匹配结果。')
  else:
    for result in results:
      result_text.insert(tk.END, f'{result[0]}\t{result[1]}
')

  # 关闭数据库连接
  conn.close()

query_button = tk.Button(root, text='查询', command=query)
query_button.pack(side=tk.TOP, padx=10, pady=10)

5. 运行主循环

# 运行主循环
root.mainloop()

完整代码:

import tkinter as tk
import tkinter.messagebox as messagebox
import sqlite3

# 创建主窗口
root = tk.Tk()

# 设置窗口大小
root.geometry('400x300')

# 设置窗口标题
root.title('查询界面')

# 创建查询条件输入框
input_frame = tk.Frame(root)
input_frame.pack(side=tk.TOP, padx=20, pady=10)

input_label = tk.Label(input_frame, text='输入查询条件:')
input_label.pack(side=tk.LEFT)

input_entry = tk.Entry(input_frame, width=30)
input_entry.pack(side=tk.LEFT)

# 创建查询结果显示框
result_frame = tk.Frame(root)
result_frame.pack(side=tk.TOP, padx=10, pady=10)

result_label = tk.Label(result_frame, text='查询结果:')
result_label.pack(side=tk.TOP)

result_text = tk.Text(result_frame, width=40, height=15)
result_text.pack(side=tk.TOP)

# 创建查询按钮
def query():
  # 获取查询条件
  query_param = input_entry.get()

  # 连接数据库
  conn = sqlite3.connect('data.db')
  cursor = conn.cursor()

  # 查询数据
  try:
    cursor.execute(f"SELECT * FROM data WHERE name LIKE '%{query_param}%' OR age={query_param}")
    results = cursor.fetchall()
  except Exception as e:
    messagebox.showerror('错误', str(e))
    conn.close()
    return

  # 显示查询结果
  result_text.delete(1.0, tk.END)
  if len(results) == 0:
    result_text.insert(tk.END, '没有找到匹配结果。')
  else:
    for result in results:
      result_text.insert(tk.END, f'{result[0]}\t{result[1]}
')

  # 关闭数据库连接
  conn.close()

query_button = tk.Button(root, text='查询', command=query)
query_button.pack(side=tk.TOP, padx=10, pady=10)

# 运行主循环
root.mainloop()

以上就是在Python3.7中使用Tkinter实现查询界面功能的完整代码。其中包含了创建主窗口、查询条件输入框、查询结果显示框以及查询按钮等元素,以及定义查询函数和运行主循环等操作。通过这个例子,可以了解到如何使用Tkinter开发简单的GUI应用程序。