Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tkinter as tk
- import tkinter.messagebox as msg
- import os
- import tkinter.filedialog as fl
- from tkinter.ttk import Notebook
- import sqlite3
- import tkinter as ttk
- class LabelTab(tk.Tk):
- def __init__(self, poor=None):
- super().__init__()
- self.poor = []
- self.menu = tk.Menu(self)
- self.geometry("1200x600")
- self.file = tk.Menu(self.menu, tearoff=0)
- self.file.add_command(label="File", command=lambda: msg.showinfo("About", "Hi"))
- self.file.add_separator()
- self.menu.add_cascade(label="File", menu=self.file)
- self.file.add_command(label="Open", command=self.files)
- self.notebook = Notebook(self, width=200, height=200)
- self.something = tk.Frame(self.notebook)
- self.notebook.add(self.something, text="Registration Page")
- self.something1 = tk.Frame(self.notebook)
- # self.notebook.add(self.canvas_frame, text="Notebook 2")
- self.notebook.pack(fill=tk.BOTH, expand=1)
- self.entry = tk.Text(self.something)
- self.canvas = tk.Canvas(self.something1, bg="lightgrey")
- # self.scroll1 = tk.Scrollbar(self.canvas, orient="horizontal", command=self.canvas.xview)
- # self.canvas.configure(xscrollcommand=self.scroll1.set)
- self.scroll = tk.Scrollbar(self.canvas, orient="vertical", command=self.canvas.yview)
- self.canvas.configure(yscrollcommand=self.scroll.set)
- # self.scroll1.pack(side=tk.BOTTOM, fill=tk.X)
- self.canvas.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=1)
- self.scroll.pack(side=tk.RIGHT, fill=tk.Y)
- self.frame = tk.Frame(self.canvas)
- self.notebook.add(self.something1, text="To Do List")
- self.entry.pack(fill=tk.BOTH, expand=1)
- self.entry.focus_set()
- self.bind("<Return>", self.add)
- self.title("Notebook v4.6")
- self.something2 = tk.Frame(self.notebook)
- self.notebook.add(self.something2, text="Settings")
- self.color = [{"bg": "white", "fg": "black"}, {"bg": "red", "fg": "black"}]
- self.idk = ttk.Button(self.something2, text="Hello", width=20)
- self.idk1 = ttk.Button(self.something2, text="Hello", width=20)
- self.idk.pack(side=tk.LEFT, anchor="n" + "w")
- self.idk1.pack(side=tk.LEFT, anchor="n")
- self.file.add_command(label="Show pop up window", accelerator="Ctrl+L", command=self.toplevel1)
- self.bind("<Control-l>", self.toplevel1)
- self.something1.bind("<MouseWheel>", self.scroll)
- self.canvas.bind("<Button-4>", self.scroll)
- self.canvas.bind("<Button-5>", self.scroll)
- # def width(self, event):
- # task = event.width
- # self.canvas.itemconfig(self.canvas_frame, width=task)
- def scroll(self, event):
- if event.delta:
- self.canvas.yview_scroll(-1*(event.delta/120), "units")
- else:
- if event.num == 5:
- move = -1
- else:
- move = 1
- self.canvas.yview_scroll(move, "units")
- # def scrollmove(self, event):
- # self.canvas.configure(scrollregion=self.canvas.bbox("all"))
- def remove(self, event):
- pop = event.widget
- if msg.askyesno("About", "Are you sure you want to delete " + pop.cget("text") + "?"):
- self.poor.remove(event.widget)
- event.widget.destroy()
- def dont(self, event=None):
- if msg.askyesno("About", "Hello"):
- import time
- time.sleep(1)
- main.destroy()
- def files(self, event=None):
- file5 = fl.askopenfilename(defaultextension=".txt",
- filetypes=[("All Files", "*.*"), ("Text Documents", "*.txt"), ("Batch File", "*.bat")])
- def exit(self, event=None):
- if msg.askyesno("About", "Are you sure you want to quit?"):
- main.destroy()
- def recolor(self):
- for index, value in enumerate(self.another):
- self.set_color(index, value)
- def add(self, event=None):
- text1 = self.entry.get(1.0, tk.END).strip()
- if len(text1) > 0:
- new_label = tk.Label(self.canvas, text=text1, pady=10)
- self.set_color(len(self.poor), new_label)
- new_label.bind("<Button-1>", self.remove)
- new_label.pack(side=tk.TOP, fill=tk.X)
- self.poor.append(new_label)
- self.entry.delete(1.0, tk.END)
- def set_color(self, one, two):
- _, choices = divmod(one, 2)
- my_colors = self.color[choices]
- two.configure(bg=my_colors["bg"])
- two.configure(fg=my_colors["fg"])
- def toplevel1(self, event=None):
- self.string = tk.StringVar(self)
- # self.string.set("Enter a username")
- self.toplevel = tk.Toplevel(self)
- self.toplevel.title("Registation Window")
- self.toplevel.resizable(True, True)
- self.toplevel.iconbitmap("icons/Python.ico")
- self.toplevel.geometry("1200x600")
- self.coconut = tk.Entry(self.toplevel)
- self.coconut.pack(side=tk.LEFT, anchor="n" + "w")
- self.coconut.bind("<Return>", self.toplevelinfo)
- self.coconut1 = tk.Entry(self.toplevel, width=30, textvar=self.string)
- self.coconut1label = tk.Label(self.toplevel, text="Chatbot:")
- self.coconut1.bind("<Return>", self.entryboxes)
- self.coconut1.place(x=5, y=50)
- self.coconut1label.place(x=5, y=25)
- def toplevelinfo(self, event=None):
- if self.coconut.get() == "hi":
- msg.showinfo("Hello", "Hello there!! how are you?")
- self.coconut.delete(0, "end")
- else:
- msg.showerror("About", self.coconut.get() + "." + " Word is unidentified, please try again later!!")
- def entryboxes(self, event=None):
- self.coconut1.get()
- if self.coconut1.get() == "hi":
- msg.showinfo("About", "Hello")
- elif self.coconut1.get() == "hello":
- msg.showinfo("About", "Hi there")
- elif self.coconut1.get() == "what's your name":
- msg.showinfo("About", "I am tkinter, what's yours?")
- self.another_toplevel = tk.Toplevel(self)
- self.another_toplevel.resizable(False, False)
- self.another_toplevel1 = tk.Entry(self.another_toplevel)
- self.another_toplevel1.bind("<Return>", self.namespecifier)
- self.another_toplevel1.pack(side=tk.LEFT, anchor="n" + "w")
- else:
- msg.showinfo("About", "Sorry I can't understand what you just said, maybe my creator will update me next time to handle kind of this questions :)")
- self.coconut1.delete(0, tk.END)
- def namespecifier(self, event):
- if self.another_toplevel1.get():
- msg.showinfo("About", "Oh! hey there " + self.another_toplevel1.get())
- self.destroy()
- if __name__ == "__main__":
- main = LabelTab()
- main.config(menu=main.menu)
- main.iconbitmap("icons/Python.ico")
- main.protocol("WM_DELETE_WINDOW", main.exit)
- main.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement