Files
Autodesk-Fusion-360-for-Linux/files/builds/development-branch/install.py

356 lines
25 KiB
Python
Raw Normal View History

2022-07-01 09:09:35 +02:00
#!/usr/bin/env python3
2022-06-27 08:40:42 +02:00
2022-07-01 09:09:35 +02:00
####################################################################################################
# Name: Autodesk Fusion 360 - Setup Wizard (Linux) #
# Description: With this file you can install Autodesk Fusion 360 on Linux. #
# Author: Steve Zabka #
# Author URI: https://cryinkfly.com #
# License: MIT #
# Copyright (c) 2020-2022 #
2022-09-23 12:14:07 +02:00
# Time/Date: xx:xx/xx.xx.2022 #
2022-07-01 09:09:35 +02:00
# Version: 1.8.1 > 1.8.2 #
####################################################################################################
2022-06-27 08:40:42 +02:00
2022-07-01 09:09:35 +02:00
# Path: /$HOME/.fusion360/bin/setup.py
2022-06-29 07:53:43 +02:00
2022-07-01 09:09:35 +02:00
###############################################################################################################################################################
# DESCRIPTION IN DETAIL #
###############################################################################################################################################################
# With the help of my setup wizard, you will be given a way to install Autodesk Fusion 360 with some extensions on #
# Linux so that you don't have to use Windows or macOS for this program in the future! #
# #
# Also, my setup wizard will guides you through the installation step by step and will install some required packages. #
# #
# The next one is you have the option of installing the program directly on your system or you can install it on an external storage medium. #
# #
# But it's important to know, you must to purchase the licenses directly from the manufacturer of Autodesk Fusion 360, when you will work with them on Linux! #
###############################################################################################################################################################
2022-06-27 08:40:42 +02:00
2022-09-23 12:14:07 +02:00
###############################################################################################################################################################
# IMPORT MODULE IN PYTHON FOR THE SETUP WIZARD HERE: #
###############################################################################################################################################################
# Import in python is similar to #include header_file in C/C++.
# Python modules can get access to code from another module by importing the file/function using import.
# The import statement is the most common way of invoking the import machinery, but it is not the only way.
# The tkinter package (“Tk interface”) is the standard Python interface to the Tcl/Tk GUI toolkit.
2022-07-01 09:09:35 +02:00
import tkinter as tk
2022-09-23 12:14:07 +02:00
# The basic idea for tkinter.ttk is to separate, to the extent possible, the code implementing a widgets behavior from the code implementing its appearance.
2022-07-01 09:09:35 +02:00
from tkinter import ttk
2022-09-23 12:14:07 +02:00
# The tkinter.messagebox module provides a template base class as well as a variety of convenience methods for commonly used configurations.
2022-07-04 18:41:07 +02:00
from tkinter.messagebox import askokcancel, showinfo, WARNING
2022-09-23 12:14:07 +02:00
# The ImageTk module contains support to create and modify Tkinter BitmapImage and PhotoImage objects from PIL images.
2022-09-19 20:07:05 +02:00
from PIL import Image, ImageTk
2022-09-23 12:14:07 +02:00
# The OS module in Python gives you access to some functions of the operating system.
2022-07-04 18:41:07 +02:00
import os
2022-06-27 08:40:42 +02:00
2022-07-01 09:09:35 +02:00
###############################################################################################################################################################
2022-09-23 12:14:07 +02:00
# SET UP THE COLOR SHEME FOR THE SETUP WIZARD HERE: #
2022-07-01 09:09:35 +02:00
###############################################################################################################################################################
2022-06-27 08:40:42 +02:00
2022-09-23 12:14:07 +02:00
# Color Palette by SUSE Linux & openSUSE
# Link: https://brand.suse.com/brand-system/color-palette
2022-07-10 10:48:01 +02:00
2022-09-23 12:14:07 +02:00
color1 = "#FE7C3F" # Persimmon
color2 = "#0C322C" # Pine Green
color3 = "#EFEFEF" # Fog
color4 = "#30BA78" # Jungle Green
###############################################################################################################################################################
# SET UP HEIGHT AND WIDTH OF THE SETUP WIZARD WINDOW HERE: #
###############################################################################################################################################################
window_height = 450
window_width = 750
###############################################################################################################################################################
# CREATE A WINDOW FOR THE SETUP WIZARD HERE: #
###############################################################################################################################################################
2022-09-20 17:17:50 +02:00
2022-07-01 09:09:35 +02:00
window = tk.Tk()
window.title('Setup Wizard - Autodesk Fusion 360 for Linux')
2022-09-19 20:07:05 +02:00
window.configure(bg=color1)
2022-09-23 12:14:07 +02:00
window.iconphoto(False, tk.PhotoImage(file='./images/fusion360.png'))
2022-06-29 07:53:43 +02:00
2022-09-23 12:14:07 +02:00
###############################################################################################################################################################
# CONFIGURE THE WINDOW OF THE SETUP WIZARD HERE: #
###############################################################################################################################################################
2022-07-01 09:09:35 +02:00
# Get the screen height and width values:
screen_width = window.winfo_screenwidth()
screen_height = window.winfo_screenheight()
# Write the formula for center this window:
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
# Set the geometry of this window:
window.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
2022-06-29 07:53:43 +02:00
2022-07-10 10:48:01 +02:00
###############################################################################################################################################################
2022-09-23 12:14:07 +02:00
# CREATE A COLOR SHEME FOR THE ROOT-CONTAINER OF THE NOTEBOOK-TABS HERE: #
2022-07-10 10:48:01 +02:00
###############################################################################################################################################################
2022-06-29 07:53:43 +02:00
2022-09-23 12:14:07 +02:00
notebook_style_root = ttk.Style()
notebook_style_root.theme_create( "theme_notebook_tabs_root", parent="alt", settings={
2022-06-29 07:53:43 +02:00
"TNotebook": {"configure": {"tabmargins": [2, 5, 2, 0] } },
"TNotebook.Tab": {
2022-09-19 20:07:05 +02:00
"configure": {"padding": [5, 1], "background": color3 },
2022-09-20 17:17:50 +02:00
"map": {"background": [("selected", color2)], "foreground": [("selected", color3)],
2022-06-29 07:53:43 +02:00
"expand": [("selected", [1, 1, 1, 0])] } } } )
2022-09-23 12:14:07 +02:00
notebook_style_root.theme_use("theme_notebook_tabs_root")
notebook_style_root = ttk.Style(window)
notebook_style_root.configure('lefttab.TNotebook', background=color1, tabposition='nw')
2022-06-29 07:53:43 +02:00
2022-09-23 12:14:07 +02:00
###############################################################################################################################################################
# CREATE A ROOT-CONTAINER FOR THE NOTEBOOK-TABS HERE: #
###############################################################################################################################################################
# The purpose of a Notebook widget is to provide an area where the user can select pages of content by clicking on tabs at the top of the area.
notebook_root = ttk.Notebook(window, style='lefttab.TNotebook')
2022-07-01 09:09:35 +02:00
# Configure the tabs:
2022-09-23 12:14:07 +02:00
notebook_root_tab1 = tk.Frame(notebook_root, width=700, height=400, bg=color3)
notebook_root_tab2 = tk.Frame(notebook_root, width=700, height=400, bg=color3)
notebook_root_tab3 = tk.Frame(notebook_root, width=700, height=400, bg=color3)
notebook_root_tab4 = tk.Frame(notebook_root, width=700, height=400, bg=color3)
notebook_root_tab5 = tk.Frame(notebook_root, width=700, height=400, bg=color3)
notebook_root_tab6 = tk.Frame(notebook_root, width=700, height=400, bg=color3)
2022-07-01 09:09:35 +02:00
# Add the tabs to Notebook widget:
2022-09-23 12:14:07 +02:00
notebook_root.add(notebook_root_tab1, text='Welcome')
notebook_root.add(notebook_root_tab2, text='Installation')
notebook_root.add(notebook_root_tab3, text='Plugins')
notebook_root.add(notebook_root_tab4, text='System Info')
notebook_root.add(notebook_root_tab5, text='About')
notebook_root.add(notebook_root_tab6, text='Help')
notebook_root.pack(pady=20,padx=20, expand=True)
2022-06-29 07:53:43 +02:00
2022-06-29 21:48:09 +02:00
###############################################################################################################################################################
2022-09-23 12:14:07 +02:00
# CREATE ELEMENTS INTO NOTEBOOK_ROOT_TAB1 ARE ARRANGED HERE: #
2022-06-29 21:48:09 +02:00
###############################################################################################################################################################
2022-07-01 20:08:40 +02:00
# Frame 1 - Left-Side:
2022-09-23 12:14:07 +02:00
notebook_root_tab1_frame_photo = tk.PhotoImage(file='./images/welcome.png')
notebook_root_tab1_frame_image_label = ttk.Label(notebook_root_tab1, image=notebook_root_tab1_frame_photo)
notebook_root_tab1_frame_image_label.pack(padx=20, pady=20, side='left', fill='both', expand=True)
2022-06-29 21:48:09 +02:00
2022-07-01 20:08:40 +02:00
# ----------------------------------------------------------------------------------------------- #
# Frame 2 - Right-Side:
2022-09-23 12:14:07 +02:00
notebook_root_tab1_frame_text = tk.Frame(notebook_root_tab1, background=color3)
notebook_root_tab1_frame_text.pack(padx=40)
notebook_root_tab1_frame_title = tk.Label(notebook_root_tab1_frame_text, text="Welcome to the Autodesk Fusion 360 for Linux Setup Wizard", font=(24), background=color3, foreground=color2)
notebook_root_tab1_frame_title.pack(pady=20, anchor="w")
notebook_root_tab1_frame_label1 = tk.Label(notebook_root_tab1_frame_text, text="Many thanks to you for deciding to use my setup wizard to be able to use Autodesk Fusion 360 on your computer.", wraplength=430, justify="left", background=color3, foreground=color2)
notebook_root_tab1_frame_label1.pack(pady=5, anchor="w")
notebook_root_tab1_frame_label2 = tk.Label(notebook_root_tab1_frame_text, text="This quick setup wizard will help you configure the basic settings and install the program. Furthermore, it is possible to install some tested plugins after the installation.", wraplength=430, justify="left", background=color3, foreground=color2)
notebook_root_tab1_frame_label2.pack(pady=5, anchor="w")
notebook_root_tab1_frame_label3 = tk.Label(notebook_root_tab1_frame_text, text="Depending on your current environment, setup may involve:", wraplength=430, background=color3, foreground=color2)
notebook_root_tab1_frame_label3.pack(pady=5, anchor="w")
notebook_root_tab1_frame_label4 = tk.Label(notebook_root_tab1_frame_text, text="- Checking your system for minimum installation requirements.", wraplength=430, background=color3, foreground=color2)
notebook_root_tab1_frame_label4.pack(anchor="w")
notebook_root_tab1_frame_label5 = tk.Label(notebook_root_tab1_frame_text, text="- It is recommended that you close all other applications before continuing.", wraplength=430, background=color3, foreground=color2)
notebook_root_tab1_frame_label5.pack(anchor="w")
notebook_root_tab1_frame_label6 = tk.Label(notebook_root_tab1_frame_text, text="Click Next to continue, or Cancel to exit the Setup Wizard.", wraplength=430, background=color3, foreground=color2)
notebook_root_tab1_frame_label6.pack(pady=10, anchor="w")
notebook_root_tab1_frame_label7 = ttk.Label(notebook_root_tab1_frame_text, text="Select Language:", background=color3, foreground=color2)
notebook_root_tab1_frame_label7.pack(side='left', pady=5, padx=(0, 10))
# --------------------------------------------------- #
# This function changes the language settings:
def change_language(event):
if selected_language.get() == 'Čeština':
print("Čeština selected!")
elif selected_language.get() == 'English':
print("English selected!")
elif selected_language.get() == 'Deutsch':
print("Deutsch selected!")
elif selected_language.get() == 'Español':
print("Español selected!")
elif selected_language.get() == 'Français':
print("Français selected!")
elif selected_language.get() == 'Italiano':
print("Italiano selected!")
elif selected_language.get() == '日本':
print("日本 selected!")
elif selected_language.get() == '한국인':
print("한국인 selected!")
elif selected_language.get() == '中国人':
print("中国人 selected!")
# --------------------------------------------------- #
# Show a list of supported languages:
selected_language = tk.StringVar()
languages = ['Čeština',
'English',
'Deutsch',
'Español',
'Français',
'Italiano',
'日本',
'한국인',
'中国人']
# --------------------------------------------------- #
combobox = ttk.Style()
combobox.configure("custom.TCombobox", fieldbackground=color3, background=color3, foreground=color2, selectforeground=color2, selectbackground=color3)
# --------------------------------------------------- #
notebook_root_tab1_frame_combobox1 = ttk.Combobox(notebook_root_tab1_frame_text, values=languages, textvariable=selected_language, width=8, justify='center', style="custom.TCombobox")
notebook_root_tab1_frame_combobox1.pack(side='left', fill='x')
notebook_root_tab1_frame_combobox1.set('English') # default selected option
notebook_root_tab1_frame_combobox1['state'] = 'readonly'
notebook_root_tab1_frame_combobox1.bind("<<ComboboxSelected>>", change_language)
2022-07-01 20:08:40 +02:00
# ----------------------------------------------------------------------------------------------- #
# Frame 3 - Right-Side:
2022-09-23 12:14:07 +02:00
notebook_root_tab1_frame_button_area = tk.Frame(notebook_root_tab1, background=color3)
notebook_root_tab1_frame_button_area.pack(padx=15, pady=15, side='bottom', anchor="e")
notebook_root_tab1_frame_button_back = tk.Button(notebook_root_tab1_frame_button_area,text='< Back',width=6,height=1, underline=2, state=tk.DISABLED, background=color2, foreground=color3)
notebook_root_tab1_frame_button_back.grid(row=0, column=0, padx=5, pady=5)
notebook_root_tab1_frame_button_back.grid_rowconfigure(0, weight=1)
notebook_root_tab1_frame_button_cancel = tk.Button(notebook_root_tab1_frame_button_area,text='Cancel',width=6,height=1, underline=0, command=lambda:window.quit(), background=color2, foreground=color3)
notebook_root_tab1_frame_button_cancel.grid(row=0, column=1, padx=5, pady=5)
notebook_root_tab1_frame_button_next = tk.Button(notebook_root_tab1_frame_button_area,text='Next >',width=6,height=1, underline=0, command=lambda:notebook_root.select(notebook_root_tab2), background=color2, foreground=color3)
notebook_root_tab1_frame_button_next.grid(row=0, column=2, padx=5, pady=5)
notebook_root_tab1_frame_button_help = tk.Button(notebook_root_tab1_frame_button_area,text='Help',width=6,height=1, underline=0, command=lambda:notebook_root.select(notebook_root_tab6), background=color2, foreground=color3)
notebook_root_tab1_frame_button_help.grid(row=0, column=3, padx=5, pady=5)
2022-07-10 10:48:01 +02:00
###############################################################################################################################################################
2022-09-23 12:14:07 +02:00
# CREATE ELEMENTS INTO NOTEBOOK_ROOT_TAB2 ARE ARRANGED HERE: #
2022-07-10 10:48:01 +02:00
###############################################################################################################################################################
2022-09-23 12:14:07 +02:00
# Frame 1 - Left-Side:
notebook_root_tab2_frame_photo = tk.PhotoImage(file='./images/welcome.png')
notebook_root_tab2_frame_image_label = ttk.Label(notebook_root_tab2, image=notebook_root_tab2_frame_photo)
notebook_root_tab2_frame_image_label.pack(padx=20, pady=20, side='left', fill='both', expand=True)
# ----------------------------------------------------------------------------------------------- #
2022-07-10 10:48:01 +02:00
2022-09-23 12:14:07 +02:00
# Frame 2 - Right-Side:
notebook_root_tab2_frame_text = tk.Frame(notebook_root_tab2, background=color3)
notebook_root_tab2_frame_text.pack(padx=40, anchor="w")
notebook_root_tab2_frame_title = tk.Label(notebook_root_tab2_frame_text, text="Configure the Autodesk Fusion 360 for Linux Setup Wizard", font=(24), background=color3, foreground=color2)
notebook_root_tab2_frame_title.pack(pady=20, anchor="w")
notebook_root_tab2_frame_label1 = tk.Label(notebook_root_tab2_frame_text, text="In this step you can change some settings to apply your desired configuration of Autodesk Fusion 360 on your computer.", wraplength=430, justify="left", background=color3, foreground=color2)
notebook_root_tab2_frame_label1.pack(pady=5, anchor="w")
2022-06-29 21:48:09 +02:00
2022-07-01 20:08:40 +02:00
###############################################################################################################################################################
2022-09-23 12:14:07 +02:00
# CREATE ELEMENTS INTO NOTEBOOK_ROOT_TAB3 ARE ARRANGED HERE: #
2022-07-01 20:08:40 +02:00
###############################################################################################################################################################
# Frame 1 - Left-Side:
2022-09-23 12:14:07 +02:00
notebook_root_tab3_frame_photo = tk.PhotoImage(file='./images/welcome.png')
notebook_root_tab3_frame_image_label = ttk.Label(notebook_root_tab3, image=notebook_root_tab3_frame_photo)
notebook_root_tab3_frame_image_label.pack(padx=20, pady=20, side='left', fill='both', expand=True)
2022-06-29 21:48:09 +02:00
2022-07-01 20:08:40 +02:00
# ----------------------------------------------------------------------------------------------- #
2022-06-29 21:48:09 +02:00
2022-07-01 20:08:40 +02:00
# Frame 2 - Right-Side:
2022-09-23 12:14:07 +02:00
notebook_root_tab3_frame_text = tk.Frame(notebook_root_tab3, background=color3)
notebook_root_tab3_frame_text.pack(padx=40, anchor="w")
notebook_root_tab3_frame_title = tk.Label(notebook_root_tab3_frame_text, text="Configure the plugins", font=(24), background=color3, foreground=color2)
notebook_root_tab3_frame_title.pack(pady=20, anchor="w")
notebook_root_tab3_frame_label1 = tk.Label(notebook_root_tab3_frame_text, text="In this step you can see a list of available and tested plugins for Autodesk Fusion 360. It is recommended if you want to add additional functionality to your workflow.", wraplength=430, justify="left", background=color3, foreground=color2)
notebook_root_tab3_frame_label1.pack(pady=5, anchor="w")
2022-06-29 21:48:09 +02:00
2022-09-23 12:14:07 +02:00
###############################################################################################################################################################
# CREATE ELEMENTS INTO NOTEBOOK_ROOT_TAB4 ARE ARRANGED HERE: #
###############################################################################################################################################################
2022-06-29 21:48:09 +02:00
2022-09-23 12:14:07 +02:00
# Frame 1 - Left-Side:
notebook_root_tab4_frame_photo = tk.PhotoImage(file='./images/welcome.png')
notebook_root_tab4_frame_image_label = ttk.Label(notebook_root_tab4, image=notebook_root_tab4_frame_photo)
notebook_root_tab4_frame_image_label.pack(padx=20, pady=20, side='left', fill='both', expand=True)
2022-06-29 21:48:09 +02:00
2022-07-01 20:08:40 +02:00
# ----------------------------------------------------------------------------------------------- #
2022-06-29 21:48:09 +02:00
2022-09-23 12:14:07 +02:00
# Frame 2 - Right-Side:
notebook_root_tab4_frame_text = tk.Frame(notebook_root_tab4, background=color3)
notebook_root_tab4_frame_text.pack(padx=40, anchor="w")
notebook_root_tab4_frame_title = tk.Label(notebook_root_tab4_frame_text, text="System Information", font=(24), background=color3, foreground=color2)
notebook_root_tab4_frame_title.pack(pady=20, anchor="w")
notebook_root_tab4_frame_label1 = tk.Label(notebook_root_tab4_frame_text, text="In this step you can see a list of available and tested plugins for Autodesk Fusion 360. It is recommended if you want to add additional functionality to your workflow.", wraplength=430, justify="left", background=color3, foreground=color2)
notebook_root_tab4_frame_label1.pack(pady=5, anchor="w")
2022-07-04 18:41:07 +02:00
# ----------------------------------------------------------------------------------------------- #
2022-07-01 20:08:40 +02:00
2022-09-23 12:14:07 +02:00
system_hostname = os.uname()[1]
2022-09-19 20:07:05 +02:00
2022-09-24 11:58:01 +02:00
system_os = os.popen('source /etc/os-release && echo "$PRETTY_NAME"').read()
2022-09-19 20:07:05 +02:00
2022-09-23 12:14:07 +02:00
system_kernel = os.uname()[2]
2022-09-24 11:58:01 +02:00
system_cpu = os.popen('cat /proc/cpuinfo | grep "model name" | uniq | cut -d":" -f2-').read()
2022-09-23 12:14:07 +02:00
2022-09-24 11:58:01 +02:00
system_gpu = os.popen('glxinfo | grep "Device"').read()
2022-09-20 17:17:50 +02:00
2022-09-24 11:58:01 +02:00
system_shell = os.popen('echo $SHELL && $SHELL --version').read()
2022-09-20 17:17:50 +02:00
2022-09-24 11:58:01 +02:00
system_resolution = os.popen('').read()
2022-09-20 17:17:50 +02:00
2022-09-24 11:58:01 +02:00
system_de = os.popen('').read()
2022-09-20 17:17:50 +02:00
2022-09-24 11:58:01 +02:00
system_wm = os.popen('').read()
2022-09-20 17:17:50 +02:00
2022-09-24 11:58:01 +02:00
system_wm_theme = os.popen('s').read()
2022-09-23 12:14:07 +02:00
2022-09-24 11:58:01 +02:00
system_theme = os.popen('').read()
2022-09-23 12:14:07 +02:00
2022-09-24 11:58:01 +02:00
system_icons = os.popen('').read()
2022-09-20 17:17:50 +02:00
2022-06-29 21:48:09 +02:00
2022-07-01 20:08:40 +02:00
# ----------------------------------------------------------------------------------------------- #
2022-06-29 07:53:43 +02:00
2022-09-23 12:14:07 +02:00
notebook_root_tab4_frame_label2 = tk.Label(notebook_root_tab4_frame_text, text="Hostname: " + system_hostname, wraplength=430, justify="left", background=color3, foreground=color2)
notebook_root_tab4_frame_label2.pack(anchor="w")
2022-09-24 11:58:01 +02:00
notebook_root_tab4_frame_label3 = tk.Label(notebook_root_tab4_frame_text, text="OS: " + str(system_os), wraplength=430, justify="left", background=color3, foreground=color2)
2022-09-23 12:14:07 +02:00
notebook_root_tab4_frame_label3.pack(anchor="w")
notebook_root_tab4_frame_label4 = tk.Label(notebook_root_tab4_frame_text, text="Kernel: " + system_kernel, wraplength=430, justify="left", background=color3, foreground=color2)
notebook_root_tab4_frame_label4.pack(anchor="w")
2022-09-24 11:58:01 +02:00
notebook_root_tab4_frame_label5 = tk.Label(notebook_root_tab4_frame_text, text="CPU:" + system_cpu, wraplength=430, justify="left", background=color3, foreground=color2)
2022-09-23 12:14:07 +02:00
notebook_root_tab4_frame_label5.pack(anchor="w")
2022-09-23 12:16:33 +02:00
notebook_root_tab4_frame_label6 = tk.Label(notebook_root_tab4_frame_text, text="GPU: " + system_gpu, wraplength=430, justify="left", background=color3, foreground=color2)
2022-09-23 12:14:07 +02:00
notebook_root_tab4_frame_label6.pack(anchor="w")
2022-09-23 12:16:33 +02:00
notebook_root_tab4_frame_label7 = tk.Label(notebook_root_tab4_frame_text, text="Shell: " + system_shell, wraplength=430, justify="left", background=color3, foreground=color2)
2022-09-23 12:14:07 +02:00
notebook_root_tab4_frame_label7.pack(anchor="w")
2022-09-23 12:16:33 +02:00
notebook_root_tab4_frame_label8 = tk.Label(notebook_root_tab4_frame_text, text="Resolution: " + system_resolution, wraplength=430, justify="left", background=color3, foreground=color2)
2022-09-23 12:14:07 +02:00
notebook_root_tab4_frame_label8.pack(anchor="w")
2022-09-23 12:16:33 +02:00
notebook_root_tab4_frame_label9 = tk.Label(notebook_root_tab4_frame_text, text="DE: " + system_de, wraplength=430, justify="left", background=color3, foreground=color2)
2022-09-23 12:14:07 +02:00
notebook_root_tab4_frame_label9.pack(anchor="w")
2022-09-23 12:16:33 +02:00
notebook_root_tab4_frame_label10 = tk.Label(notebook_root_tab4_frame_text, text="WM: " + system_wm, wraplength=430, justify="left", background=color3, foreground=color2)
2022-09-23 12:14:07 +02:00
notebook_root_tab4_frame_label10.pack(anchor="w")
2022-09-23 12:16:33 +02:00
notebook_root_tab4_frame_label11 = tk.Label(notebook_root_tab4_frame_text, text="WM-Theme: " + system_wm_theme, wraplength=430, justify="left", background=color3, foreground=color2)
2022-09-23 12:14:07 +02:00
notebook_root_tab4_frame_label11.pack(anchor="w")
2022-09-23 12:16:33 +02:00
notebook_root_tab4_frame_label12 = tk.Label(notebook_root_tab4_frame_text, text="Theme: " + system_theme, wraplength=430, justify="left", background=color3, foreground=color2)
2022-09-23 12:14:07 +02:00
notebook_root_tab4_frame_label12.pack(anchor="w")
2022-09-23 12:16:33 +02:00
notebook_root_tab4_frame_label13 = tk.Label(notebook_root_tab4_frame_text, text="Icons: " + system_icons, wraplength=430, justify="left", background=color3, foreground=color2)
2022-09-23 12:14:07 +02:00
notebook_root_tab4_frame_label13.pack(anchor="w")
###############################################################################################################################################################
# CREATE A TKINTER MAINLOOP FOR THE SETUP WIZARD HERE: #
###############################################################################################################################################################
# The method "mainloop" plays a vital role in Tkinter as it is a core application that waits for events and helps in updating the GUI or in simple terms, we can say it is event-driven programming.
# If no mainloop() is used then nothing will appear on the window Screen.
# This method takes all the objects that were created and have interactions response.
2022-07-09 15:08:09 +02:00
2022-07-01 09:09:35 +02:00
window.mainloop()