使用tkint和pymsql创建一个python窗口,连接bus数据库,创建六个文本框分别为汽车编号、出发地、目的地、出发时间、到达时间、票价,创建一个增加按钮,点击按钮即可向数据库bus中schedule表添加数据。最后美化页面
时间: 2024-02-03 09:03:03 浏览: 73
Python编程实战:运用设计模式、并发和程序库创建高质量程序(全球资深Python专家Doug Hellmann作序推荐,以3个完整的案例。
好的,我来为你解答这个问题。
首先,需要安装 `tkinter` 和 `pymysql` 库,可以使用以下命令进行安装:
```
pip install tkinter pymysql
```
然后,我们需要创建一个连接数据库的函数,用于连接 `bus` 数据库:
```python
import pymysql
def connect_db():
conn = pymysql.connect(
host='localhost',
user='root',
password='password',
database='bus',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
return conn
```
这里使用了 `pymysql` 库来连接数据库,需要根据自己的情况修改参数。
接着,我们需要创建一个 `Tk` 窗口,并添加六个文本框和一个按钮。代码如下:
```python
import tkinter as tk
def add_schedule():
# TODO:添加数据到数据库
pass
def create_window():
window = tk.Tk()
window.title('添加班次')
window.geometry('400x300')
# 汽车编号
label_bus_id = tk.Label(window, text='汽车编号')
label_bus_id.grid(column=0, row=0)
entry_bus_id = tk.Entry(window)
entry_bus_id.grid(column=1, row=0)
# 出发地
label_departure = tk.Label(window, text='出发地')
label_departure.grid(column=0, row=1)
entry_departure = tk.Entry(window)
entry_departure.grid(column=1, row=1)
# 目的地
label_destination = tk.Label(window, text='目的地')
label_destination.grid(column=0, row=2)
entry_destination = tk.Entry(window)
entry_destination.grid(column=1, row=2)
# 出发时间
label_departure_time = tk.Label(window, text='出发时间')
label_departure_time.grid(column=0, row=3)
entry_departure_time = tk.Entry(window)
entry_departure_time.grid(column=1, row=3)
# 到达时间
label_arrival_time = tk.Label(window, text='到达时间')
label_arrival_time.grid(column=0, row=4)
entry_arrival_time = tk.Entry(window)
entry_arrival_time.grid(column=1, row=4)
# 票价
label_price = tk.Label(window, text='票价')
label_price.grid(column=0, row=5)
entry_price = tk.Entry(window)
entry_price.grid(column=1, row=5)
# 添加按钮
button_add = tk.Button(window, text='添加', command=add_schedule)
button_add.grid(column=1, row=6)
window.mainloop()
```
其中,`add_schedule` 函数是用于添加数据到数据库的,这里先不实现,用 `pass` 占位。
最后,我们需要对界面进行美化,可以使用 `ttk` (Themed Tkinter)库来实现。代码如下:
```python
import tkinter as tk
from tkinter import ttk
def add_schedule():
# TODO:添加数据到数据库
pass
def create_window():
window = tk.Tk()
window.title('添加班次')
window.geometry('400x300')
# 汽车编号
label_bus_id = ttk.Label(window, text='汽车编号')
label_bus_id.grid(column=0, row=0, padx=5, pady=5)
entry_bus_id = ttk.Entry(window)
entry_bus_id.grid(column=1, row=0, padx=5, pady=5)
# 出发地
label_departure = ttk.Label(window, text='出发地')
label_departure.grid(column=0, row=1, padx=5, pady=5)
entry_departure = ttk.Entry(window)
entry_departure.grid(column=1, row=1, padx=5, pady=5)
# 目的地
label_destination = ttk.Label(window, text='目的地')
label_destination.grid(column=0, row=2, padx=5, pady=5)
entry_destination = ttk.Entry(window)
entry_destination.grid(column=1, row=2, padx=5, pady=5)
# 出发时间
label_departure_time = ttk.Label(window, text='出发时间')
label_departure_time.grid(column=0, row=3, padx=5, pady=5)
entry_departure_time = ttk.Entry(window)
entry_departure_time.grid(column=1, row=3, padx=5, pady=5)
# 到达时间
label_arrival_time = ttk.Label(window, text='到达时间')
label_arrival_time.grid(column=0, row=4, padx=5, pady=5)
entry_arrival_time = ttk.Entry(window)
entry_arrival_time.grid(column=1, row=4, padx=5, pady=5)
# 票价
label_price = ttk.Label(window, text='票价')
label_price.grid(column=0, row=5, padx=5, pady=5)
entry_price = ttk.Entry(window)
entry_price.grid(column=1, row=5, padx=5, pady=5)
# 添加按钮
button_add = ttk.Button(window, text='添加', command=add_schedule)
button_add.grid(column=1, row=6, padx=5, pady=5)
# 设置样式
style = ttk.Style(window)
style.configure('TLabel', font=('微软雅黑', 12))
style.configure('TEntry', font=('微软雅黑', 12))
style.configure('TButton', font=('微软雅黑', 12))
window.mainloop()
```
这里使用了 `ttk` 库来创建标签、文本框和按钮,并设置了样式。
最后,我们只需要实现 `add_schedule` 函数,将数据添加到 `bus` 数据库的 `schedule` 表中即可。
阅读全文