YouTubeDownloader v1.1.2
YouTube content downloader
Loading...
Searching...
No Matches
mainwindow_tk_ui.py
Go to the documentation of this file.
1"""!
2*****************************************************************************
3@file mainwindow_tk_ui.py
4@brief Main Window with tkinter
5*****************************************************************************
6"""
7
8from tkinter import IntVar, StringVar
9from customtkinter import CTkLabel, CTkButton, CTkRadioButton, CTkEntry, CTkProgressBar
10
11PADX = 10
12PADY = 2
13
14HIGH_RESOLUTION = 1
15LOW_RESOLUTION = 2
16ONLY_AUDIO = 3
17
18D_FORMAT = {
19 HIGH_RESOLUTION: "Hohe Auflösung",
20 LOW_RESOLUTION: "Niedrige Auflösung",
21 ONLY_AUDIO: "Nur Audio",
22}
23
24class Ui_MainWindow(object):
25 def setupUi(self, MainWindow):
26 MainWindow.geometry("350x360")
27
28 self.o_url_choice = StringVar()
29 self.choice_var = IntVar()
30
31 # Song Title
32 self.title_lbl = CTkLabel(self)
33 self.title_lbl.grid(columnspan=2, padx=PADX, pady=PADY, sticky="ew")
34
35 # progress bar
36 self.progress_bar = CTkProgressBar(self, height=20)
37 self.progress_bar.set(0)
38 self.progress_bar.grid(columnspan=2, padx=PADX, pady=PADY, sticky="ew")
39
40 # Status Message
41 self.status_lbl = CTkLabel(self)
42 self.status_lbl.grid(columnspan=2, padx=PADX, pady=PADY, sticky="ew")
43
44 # Entry Box
45 self.url_input = CTkEntry(self, textvariable=self.o_url_choice)
46 self.url_input.grid(columnspan=2, padx=PADX, pady=PADY, sticky="ew")
47 self.insert_btn = CTkButton(self)
48 self.insert_btn.grid(row=5, column=0, padx=PADX, pady=PADY, sticky="ew")
49 self.direct_btn = CTkButton(self)
50 self.direct_btn.grid(row=5, column=1, padx=PADX, pady=PADY, sticky="ew")
51
52 # format label
53 self.format_lbl = CTkLabel(self)
54 self.format_lbl.grid(columnspan=2, padx=PADX, pady=PADY, sticky="w")
55 # format radio button
56 for val, txt in D_FORMAT.items():
57 format_radio_btn = CTkRadioButton(self, text=txt,
58 variable=self.choice_var, value=val)
59 format_radio_btn.grid(columnspan=2, padx=PADX, pady=PADY, sticky="ew")
60 self.choice_var.set(ONLY_AUDIO) # set first radio button as default
61 # download button
62 self.download_btn = CTkButton(self)
63 self.download_btn.grid(columnspan=2, padx=PADX, pady=PADY, sticky="ew")
64 # folder button
65 self.open_folder_btn = CTkButton(self, command=self.open_download_folder)
66 self.open_folder_btn.grid(columnspan=2, padx=PADX, pady=PADY, sticky="ew")
67 # developer Label
68 self.copyright_lbl = CTkLabel(self)
69 self.copyright_lbl.grid(columnspan=2, padx=PADX, pady=PADY, sticky="ew")