用gui写座位选择系统
时间: 2023-09-20 09:03:00 浏览: 33
好的,座位选择系统可以使用 Python 的 tkinter 模块来实现 GUI 界面,以下是一个简单的座位选择系统的示例代码:
```python
import tkinter as tk
class SeatSelectSystem:
def __init__(self, rows, cols):
self.rows = rows
self.cols = cols
self.seats = [[False for _ in range(cols)] for _ in range(rows)]
self.selected_seats = []
self.root = tk.Tk()
self.root.title('座位选择系统')
self.canvas = tk.Canvas(self.root, width=cols*50, height=rows*50)
self.canvas.pack()
for i in range(rows):
for j in range(cols):
x1, y1 = j*50, i*50
x2, y2 = x1+50, y1+50
self.canvas.create_rectangle(x1, y1, x2, y2, outline='black')
self.canvas.bind('<Button-1>', self.on_click)
self.btn_confirm = tk.Button(self.root, text='确定', command=self.confirm)
self.btn_confirm.pack()
self.root.mainloop()
def on_click(self, event):
x, y = event.x, event.y
row, col = y//50, x//50
seat = (row, col)
if not self.seats[row][col]:
self.canvas.create_rectangle(col*50, row*50, col*50+50, row*50+50, fill='green')
self.seats[row][col] = True
self.selected_seats.append(seat)
else:
self.canvas.create_rectangle(col*50, row*50, col*50+50, row*50+50, outline='black')
self.seats[row][col] = False
self.selected_seats.remove(seat)
def confirm(self):
if len(self.selected_seats) == 0:
tk.messagebox.showerror('错误', '您还未选择座位!')
else:
seat_str = ', '.join([f'({s[0]+1}, {s[1]+1})' for s in self.selected_seats])
tk.messagebox.showinfo('选座成功', f'您已成功选择座位:{seat_str}')
if __name__ == '__main__':
system = SeatSelectSystem(5, 8)
```
这个座位选择系统使用 `tkinter.Canvas` 组件来绘制座位的矩形框,并在用户点击座位时改变矩形框的颜色,同时记录用户选择的座位。用户点击“确定”按钮后,检查用户是否选择了座位,并将用户选择的座位信息以字符串形式展示给用户。