用pycharm的python语言tkinter库,写一个登录系统,要求登录成功后主界面左上方有两个下拉菜单和确认按钮,可以分别选择两个数据集和三个算法,点击确认按钮后,根据菜单选择运行六种对应的*.py程序。因为运行程序后会生成一个tkinter库的子界面,要求这个子界面固定在主界面。
时间: 2023-06-26 20:08:13 浏览: 116
基于python语言和tkinter库语言的图书管理系统
好的,让我们来实现这个登录系统。
首先,需要安装tkinter库,可以在命令行中执行以下命令进行安装:
```
pip install tkinter
```
接下来,我们可以开始编写代码。我会分步骤来讲解,希望能够帮助你更好地理解。
### 1. 导入必要的库
```python
import tkinter as tk
import subprocess
```
### 2. 定义登录界面
```python
class LoginFrame(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.master.title('登录系统')
self.master.geometry('300x200')
self.username_label = tk.Label(self.master, text='用户名:')
self.username_label.pack()
self.username_entry = tk.Entry(self.master)
self.username_entry.pack()
self.password_label = tk.Label(self.master, text='密码:')
self.password_label.pack()
self.password_entry = tk.Entry(self.master, show='*')
self.password_entry.pack()
self.login_button = tk.Button(self.master, text='登录', command=self.login)
self.login_button.pack()
def login(self):
username = self.username_entry.get()
password = self.password_entry.get()
if username == 'admin' and password == '123456':
self.master.destroy()
root = tk.Tk()
app = MainFrame(root)
app.mainloop()
else:
tk.messagebox.showerror('错误', '用户名或密码错误!')
```
在这个类中,我们定义了一个登录界面,包括用户名、密码和登录按钮。当用户点击登录按钮时,会进行验证,如果验证通过,则销毁登录窗口,创建主界面窗口并进入主界面。
### 3. 定义主界面
```python
class MainFrame(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.master.title('主界面')
self.master.geometry('600x400')
self.dataset_label = tk.Label(self.master, text='数据集:')
self.dataset_label.grid(row=0, column=0)
self.dataset_var = tk.StringVar()
self.dataset_dropdown = tk.OptionMenu(self.master, self.dataset_var, '数据集1', '数据集2')
self.dataset_dropdown.grid(row=0, column=1)
self.algorithm_label = tk.Label(self.master, text='算法:')
self.algorithm_label.grid(row=1, column=0)
self.algorithm_var = tk.StringVar()
self.algorithm_dropdown = tk.OptionMenu(self.master, self.algorithm_var, '算法1', '算法2', '算法3')
self.algorithm_dropdown.grid(row=1, column=1)
self.confirm_button = tk.Button(self.master, text='确认', command=self.run_program)
self.confirm_button.grid(row=2, column=0)
def run_program(self):
dataset = self.dataset_var.get()
algorithm = self.algorithm_var.get()
if dataset == '数据集1' and algorithm == '算法1':
subprocess.Popen(['python', 'program1.py'])
elif dataset == '数据集1' and algorithm == '算法2':
subprocess.Popen(['python', 'program2.py'])
elif dataset == '数据集1' and algorithm == '算法3':
subprocess.Popen(['python', 'program3.py'])
elif dataset == '数据集2' and algorithm == '算法1':
subprocess.Popen(['python', 'program4.py'])
elif dataset == '数据集2' and algorithm == '算法2':
subprocess.Popen(['python', 'program5.py'])
elif dataset == '数据集2' and algorithm == '算法3':
subprocess.Popen(['python', 'program6.py'])
else:
tk.messagebox.showerror('错误', '请选择正确的数据集和算法!')
```
在这个类中,我们定义了主界面,包括数据集下拉菜单、算法下拉菜单和确认按钮。当用户点击确认按钮时,会根据选择的数据集和算法来运行对应的程序。
### 4. 运行登录系统
```python
if __name__ == '__main__':
root = tk.Tk()
app = LoginFrame(root)
app.mainloop()
```
在程序的最后,我们创建了一个登录窗口并进入登录界面。当用户成功登录后,会进入主界面,否则会提示用户名或密码错误。
现在,我们已经完成了这个登录系统的编写。希望这个例子能够帮助你更好地理解如何使用tkinter库编写GUI程序。如果你有任何问题,请随时在评论区提出。
阅读全文