2022-09-27 11:07:32 +02:00
#!/usr/bin/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-10-04 11:34:24 +02:00
# Version: 1.8.1 > 1.8.2 #
2022-07-01 09:09:35 +02:00
####################################################################################################
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 widget’ s 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-10-04 11:34:24 +02:00
# Python can very easily use an Internet browser installed on the system via the webbrowser module and transfer it a URL.
2022-09-28 15:43:28 +02:00
import webbrowser
2022-10-04 11:34:24 +02:00
# The linecache module allows one to get any line from a Python source file, while attempting to optimize internally, using a cache, the common case where many lines are read from a single file.
import linecache
2022-09-28 15:43:28 +02:00
2022-10-04 11:34:24 +02:00
###############################################################################################################################################################
# CONFIGURE THE LANGUAGE OF THE SETUP WIZARD HERE: #
###############################################################################################################################################################
# Reading lines from a file includes the newline newline character. It can be easily subtracted with this extension:
# linecache.getline('../textfile.txt', 1) + .rstrip('\n')
label_window_title = linecache . getline ( ' ../locale/en-EN/en-locale.txt ' , 1 ) . rstrip ( ' \n ' )
label_root_tab_name0 = linecache . getline ( ' ../locale/en-EN/en-locale.txt ' , 2 ) . rstrip ( ' \n ' )
label_root_tab_name1 = linecache . getline ( ' ../locale/en-EN/en-locale.txt ' , 3 ) . rstrip ( ' \n ' )
label_root_tab_name2 = linecache . getline ( ' ../locale/en-EN/en-locale.txt ' , 4 ) . rstrip ( ' \n ' )
label_root_tab_name3 = linecache . getline ( ' ../locale/en-EN/en-locale.txt ' , 5 ) . rstrip ( ' \n ' )
label_root_tab_name4 = linecache . getline ( ' ../locale/en-EN/en-locale.txt ' , 6 ) . rstrip ( ' \n ' )
label_root_tab_name5 = linecache . getline ( ' ../locale/en-EN/en-locale.txt ' , 7 ) . rstrip ( ' \n ' )
2022-09-28 15:43:28 +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 ( )
2022-10-04 11:34:24 +02:00
window . title ( label_window_title )
2022-09-19 20:07:05 +02:00
window . configure ( bg = color1 )
2022-09-28 11:40:39 +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-10-04 11:34:24 +02:00
notebook_root . add ( notebook_root_tab1 , text = label_root_tab_name0 )
notebook_root . add ( notebook_root_tab2 , text = label_root_tab_name1 )
notebook_root . add ( notebook_root_tab3 , text = label_root_tab_name2 )
notebook_root . add ( notebook_root_tab4 , text = label_root_tab_name3 )
notebook_root . add ( notebook_root_tab5 , text = label_root_tab_name4 )
notebook_root . add ( notebook_root_tab6 , text = label_root_tab_name5 )
2022-09-23 12:14:07 +02:00
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-28 11:40:39 +02:00
notebook_root_tab1_frame_photo = tk . PhotoImage ( file = ' ../images/welcome.png ' )
2022-10-04 11:34:24 +02:00
notebook_root_tab1_frame_image_label = ttk . Label ( notebook_root_tab1 , image = notebook_root_tab1_frame_photo , background = color3 )
notebook_root_tab1_frame_image_label . pack ( padx = 20 , side = ' left ' , expand = False )
2022-06-29 21:48:09 +02:00
2022-07-01 20:08:40 +02:00
# ----------------------------------------------------------------------------------------------- #
2022-09-25 12:31:09 +02:00
# Frame 1 - 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 )
2022-10-04 11:34:24 +02:00
notebook_root_tab1_frame_title = tk . Label ( notebook_root_tab1_frame_text , text = " Welcome to the Autodesk Fusion 360 for Linux Setup Wizard " , wraplength = 430 , justify = " left " , font = ( 24 ) , background = color3 , foreground = color2 )
2022-09-23 12:14:07 +02:00
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 " )
2022-10-04 11:34:24 +02:00
notebook_root_tab1_frame_label3 = tk . Label ( notebook_root_tab1_frame_text , text = " Depending on your current environment, setup may involve: " , wraplength = 430 , justify = " left " , background = color3 , foreground = color2 )
2022-09-23 12:14:07 +02:00
notebook_root_tab1_frame_label3 . pack ( pady = 5 , anchor = " w " )
2022-10-04 11:34:24 +02:00
notebook_root_tab1_frame_label4 = tk . Label ( notebook_root_tab1_frame_text , text = " - Checking your system for minimum installation requirements. " , wraplength = 430 , justify = " left " , background = color3 , foreground = color2 )
2022-09-23 12:14:07 +02:00
notebook_root_tab1_frame_label4 . pack ( anchor = " w " )
2022-10-04 11:34:24 +02:00
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 , justify = " left " , background = color3 , foreground = color2 )
2022-09-23 12:14:07 +02:00
notebook_root_tab1_frame_label5 . pack ( anchor = " w " )
2022-10-04 11:34:24 +02:00
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 , justify = " left " , background = color3 , foreground = color2 )
2022-09-23 12:14:07 +02:00
notebook_root_tab1_frame_label6 . pack ( pady = 10 , anchor = " w " )
2022-10-04 11:34:24 +02:00
notebook_root_tab1_frame_label7 = ttk . Label ( notebook_root_tab1_frame_text , text = " Select Language: " , justify = " left " , background = color3 , foreground = color2 )
2022-09-23 12:14:07 +02:00
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! " )
2022-10-04 11:34:24 +02:00
#label_root_tab_name1['text'] = linecache.getline('../locale/de-DE/de-locale.txt', 2).rstrip('\n')
#label_root_tab_name1 = linecache.getline('../locale/de-DE/de-locale.txt', 3).rstrip('\n')
#label_root_tab_name2 = linecache.getline('../locale/de-DE/de-locale.txt', 4).rstrip('\n')
#label_root_tab_name3 = linecache.getline('../locale/de-DE/de-locale.txt', 5).rstrip('\n')
#label_root_tab_name4 = linecache.getline('../locale/de-DE/de-locale.txt', 6).rstrip('\n')
#label_root_tab_name5 = linecache.getline('../locale/de-DE/de-locale.txt', 7).rstrip('\n')
# Content of Tab1:
notebook_root_tab1_frame_title [ ' text ' ] = linecache . getline ( ' ../locale/de-DE/de-locale.txt ' , 8 ) . rstrip ( ' \n ' )
notebook_root_tab1_frame_label1 [ ' text ' ] = linecache . getline ( ' ../locale/de-DE/de-locale.txt ' , 9 ) . rstrip ( ' \n ' )
notebook_root_tab1_frame_label2 [ ' text ' ] = linecache . getline ( ' ../locale/de-DE/de-locale.txt ' , 10 ) . rstrip ( ' \n ' )
notebook_root_tab1_frame_label3 [ ' text ' ] = linecache . getline ( ' ../locale/de-DE/de-locale.txt ' , 11 ) . rstrip ( ' \n ' )
notebook_root_tab1_frame_label4 [ ' text ' ] = linecache . getline ( ' ../locale/de-DE/de-locale.txt ' , 12 ) . rstrip ( ' \n ' )
notebook_root_tab1_frame_label5 [ ' text ' ] = linecache . getline ( ' ../locale/de-DE/de-locale.txt ' , 13 ) . rstrip ( ' \n ' )
notebook_root_tab1_frame_label6 [ ' text ' ] = linecache . getline ( ' ../locale/de-DE/de-locale.txt ' , 14 ) . rstrip ( ' \n ' )
notebook_root_tab1_frame_label7 [ ' text ' ] = linecache . getline ( ' ../locale/de-DE/de-locale.txt ' , 15 ) . rstrip ( ' \n ' )
2022-09-23 12:14:07 +02:00
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
# ----------------------------------------------------------------------------------------------- #
2022-09-25 12:31:09 +02:00
# Frame 2 - 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:
2022-09-28 11:40:39 +02:00
notebook_root_tab2_frame_photo = tk . PhotoImage ( file = ' ../images/welcome.png ' )
2022-09-23 12:14:07 +02:00
notebook_root_tab2_frame_image_label = ttk . Label ( notebook_root_tab2 , image = notebook_root_tab2_frame_photo )
2022-09-25 12:31:09 +02:00
notebook_root_tab2_frame_image_label . pack ( padx = 20 , pady = 20 , side = ' left ' , fill = ' both ' , expand = False )
2022-09-23 12:14:07 +02:00
# ----------------------------------------------------------------------------------------------- #
2022-07-10 10:48:01 +02:00
2022-09-25 12:31:09 +02:00
# Frame 1 - Right-Side:
2022-09-23 12:14:07 +02:00
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-09-25 12:31:09 +02:00
# ----------------------------------------------------------------------------------------------- #
2022-09-28 15:43:28 +02:00
# Change the logo of the selected Linux Distro:
def change_distro_logo ( event ) :
if selected_linux_distro . get ( ) == ' Arch Linux ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/archlinux.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
elif selected_linux_distro . get ( ) == ' Debian ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/debian.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
elif selected_linux_distro . get ( ) == ' Fedora ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/fedora.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
elif selected_linux_distro . get ( ) == ' MX Linux ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/mxlinux.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
elif selected_linux_distro . get ( ) == ' Manjaro ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/manjaro.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
elif selected_linux_distro . get ( ) == ' Linux Mint ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/linuxmint.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
elif selected_linux_distro . get ( ) == ' openSUSE ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/opensuse.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
elif selected_linux_distro . get ( ) == ' Pop!_OS ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/popos.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
elif selected_linux_distro . get ( ) == ' RPi Desktop ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/rpios.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
elif selected_linux_distro . get ( ) == ' Red Hat ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/redhat.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
elif selected_linux_distro . get ( ) == ' Solus ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/solus.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
elif selected_linux_distro . get ( ) == ' Ubuntu ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/ubuntu.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
elif selected_linux_distro . get ( ) == ' Void Linux ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/void.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
elif selected_linux_distro . get ( ) == ' Gentoo ' :
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/gentoo.png " ) )
notebook_root_tab2_frame_image_label1 . configure ( image = notebook_root_tab2_frame_photo1 )
notebook_root_tab2_frame_image_label1 . image = notebook_root_tab2_frame_photo1
# ----------------------------------------------------------------------------------------------- #
# Show a list of supported Linux Distro's
selected_linux_distro = tk . StringVar ( )
linux_distros = [ ' Arch Linux ' ,
' Debian ' ,
' Fedora ' ,
' Linux Mint ' ,
' MX Linux ' ,
' Manjaro ' ,
' openSUSE ' ,
' Pop!_OS ' ,
' RPi Desktop ' ,
' Red Hat ' ,
' Solus ' ,
' Ubuntu ' ,
' Void Linux ' ,
' Gentoo ' ]
style_missed_combobox = ttk . Style ( )
style_missed_combobox . configure ( " Red.TCombobox " , fieldbackground = color3 , background = color1 , foreground = color2 , selectforeground = color2 , selectbackground = color3 )
notebook_root_tab2_frame_label2 = ttk . Label ( notebook_root_tab2_frame_text , text = " 1.) Select your installed Linux distro: " , background = color3 )
notebook_root_tab2_frame_label2 . pack ( fill = ' x ' , padx = 5 , pady = 5 )
notebook_root_tab2_frame_photo1 = ImageTk . PhotoImage ( Image . open ( " ../images/opensuse.png " ) )
notebook_root_tab2_frame_image_label1 = ttk . Label ( notebook_root_tab2_frame_text , image = notebook_root_tab2_frame_photo1 , background = color3 )
notebook_root_tab2_frame_image_label1 . pack ( side = ' left ' , padx = ( 20 , 10 ) )
notebook_root_tab2_frame_combobox1 = ttk . Combobox ( notebook_root_tab2_frame_text , values = linux_distros , textvariable = selected_linux_distro , width = 15 , justify = ' center ' , style = " Red.TCombobox " )
notebook_root_tab2_frame_combobox1 . pack ( side = ' left ' , fill = ' x ' )
notebook_root_tab2_frame_combobox1 . set ( ' openSUSE ' ) # default selected option
notebook_root_tab2_frame_combobox1 [ ' state ' ] = ' readonly '
notebook_root_tab2_frame_combobox1 . bind ( " <<ComboboxSelected>> " , change_distro_logo )
# ----------------------------------------------------------------------------------------------- #
2022-09-25 12:31:09 +02:00
# Frame 2 - Right-Side:
notebook_root_tab2_frame_button_area = tk . Frame ( notebook_root_tab2 , background = color3 )
notebook_root_tab2_frame_button_area . pack ( padx = 15 , pady = 15 , side = ' bottom ' , anchor = " e " )
notebook_root_tab2_frame_button_back = tk . Button ( notebook_root_tab2_frame_button_area , text = ' < Back ' , width = 6 , height = 1 , underline = 2 , command = lambda : notebook_root . select ( notebook_root_tab1 ) , background = color2 , foreground = color3 )
notebook_root_tab2_frame_button_back . grid ( row = 0 , column = 0 , padx = 5 , pady = 5 )
notebook_root_tab2_frame_button_back . grid_rowconfigure ( 0 , weight = 1 )
notebook_root_tab2_frame_button_cancel = tk . Button ( notebook_root_tab2_frame_button_area , text = ' Cancel ' , width = 6 , height = 1 , underline = 0 , command = lambda : window . quit ( ) , background = color2 , foreground = color3 )
notebook_root_tab2_frame_button_cancel . grid ( row = 0 , column = 1 , padx = 5 , pady = 5 )
notebook_root_tab2_frame_button_next = tk . Button ( notebook_root_tab2_frame_button_area , text = ' Next > ' , width = 6 , height = 1 , underline = 0 , command = lambda : notebook_root . select ( notebook_root_tab3 ) , background = color2 , foreground = color3 )
notebook_root_tab2_frame_button_next . grid ( row = 0 , column = 2 , padx = 5 , pady = 5 )
notebook_root_tab2_frame_button_help = tk . Button ( notebook_root_tab2_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_tab2_frame_button_help . grid ( row = 0 , column = 3 , padx = 5 , pady = 5 )
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-28 11:40:39 +02:00
notebook_root_tab3_frame_photo = tk . PhotoImage ( file = ' ../images/welcome.png ' )
2022-09-23 12:14:07 +02:00
notebook_root_tab3_frame_image_label = ttk . Label ( notebook_root_tab3 , image = notebook_root_tab3_frame_photo )
2022-09-25 12:31:09 +02:00
notebook_root_tab3_frame_image_label . pack ( padx = 20 , pady = 20 , side = ' left ' , fill = ' both ' , expand = False )
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-25 12:31:09 +02:00
# Frame 1 - 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-25 12:31:09 +02:00
# ----------------------------------------------------------------------------------------------- #
2022-09-28 15:43:28 +02:00
notebook_root_tab3_frame_plugins = tk . Frame ( notebook_root_tab3 , background = color3 )
notebook_root_tab3_frame_plugins . pack ( pady = 15 , padx = 43 , anchor = " w " )
2022-09-25 12:31:09 +02:00
# Frame 2 - Right-Side:
2022-09-27 11:07:32 +02:00
plugins = ( ' Airfoil Tools ' ,
' Additive Assistant (FFF) ' ,
' HP 3D Printers for Autodesk® Fusion 360™ ' ,
' Helical Gear Generator ' ,
' OctoPrint for Autodesk® Fusion 360™ ' ,
' Parameter I/O ' ,
' RoboDK ' ,
' Ultimaker Digital Factory for Autodesk Fusion 360™ ' )
var_plugins = tk . Variable ( value = plugins )
listbox_plugins = tk . Listbox (
2022-09-28 15:43:28 +02:00
notebook_root_tab3_frame_plugins ,
2022-09-27 11:07:32 +02:00
listvariable = var_plugins ,
width = 50 ,
height = 6 ,
selectmode = tk . MULTIPLE )
listbox_plugins . pack ( expand = True , fill = tk . BOTH , side = tk . LEFT )
2022-09-28 15:43:28 +02:00
scrollbar_plugins = ttk . Scrollbar ( notebook_root_tab3_frame_plugins , orient = tk . VERTICAL , command = listbox_plugins . yview )
2022-09-27 11:07:32 +02:00
listbox_plugins [ ' yscrollcommand ' ] = scrollbar_plugins . set
scrollbar_plugins . pack ( side = tk . LEFT , expand = True , fill = tk . Y )
def add_selected_plugins ( event ) :
selected_indices = listbox_plugins . curselection ( )
selected_plugins = " , " . join ( [ listbox_plugins . get ( i ) for i in selected_indices ] )
if selected_plugins == ' Airfoil Tools ' :
print ( " Airfoil Tools selected! " )
plugin_0 = 1 # 0=disabled/1=activated
if selected_plugins == ' Additive Assistant (FFF) ' :
print ( " Additive Assistant (FFF) selected! " )
plugin_1 = 1 # 0=disabled/1=activated
if selected_plugins == ' HP 3D Printers for Autodesk® Fusion 360™ ' :
print ( " HP 3D Printers for Autodesk® Fusion 360™ selected! " )
plugin_2 = 1 # 0=disabled/1=activated
if selected_plugins == ' Helical Gear Generator ' :
print ( " Helical Gear Generator selected! " )
plugin_3 = 1 # 0=disabled/1=activated
if selected_plugins == ' OctoPrint for Autodesk® Fusion 360™ ' :
print ( " OctoPrint for Autodesk® Fusion 360™ selected! " )
plugin_4 = 1 # 0=disabled/1=activated
if selected_plugins == ' Parameter I/O ' :
print ( " Parameter I/O selected! " )
plugin_5 = 1 # 0=disabled/1=activated
if selected_plugins == ' RoboDK ' :
print ( " RoboDK selected! " )
plugin_6 = 1 # 0=disabled/1=activated
if selected_plugins == ' Ultimaker Digital Factory for Autodesk Fusion 360™ ' :
print ( " Ultimaker Digital Factory for Autodesk Fusion 360™ selected! " )
plugin_7 = 1 # 0=disabled/1=activated
listbox_plugins . bind ( ' <<ListboxSelect>> ' , add_selected_plugins )
# --> Create a text element for the description of the last selected plugin:
# Next ...
2022-09-28 15:43:28 +02:00
notebook_root_tab3_frame_text_notice = tk . Frame ( notebook_root_tab3 , background = color3 )
notebook_root_tab3_frame_text_notice . pack ( padx = 40 , anchor = " w " )
notebook_root_tab4_frame_label2 = tk . Label ( notebook_root_tab3_frame_text_notice , text = " More information can be found here: " , wraplength = 430 , justify = " left " , background = color3 , foreground = color2 )
notebook_root_tab4_frame_label2 . pack ( side = tk . LEFT )
# Open the documentation:
def plugins_callback ( url ) :
webbrowser . open_new ( url )
notebook_root_tab4_frame_label3 = tk . Label ( notebook_root_tab3_frame_text_notice , text = " Extensions for Autodesk Fusion 360 " , fg = color4 , bg = color3 , cursor = " hand2 " )
notebook_root_tab4_frame_label3 . pack ( side = tk . LEFT )
notebook_root_tab4_frame_label3 . bind ( " <Button-1> " , lambda e : plugins_callback ( " https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/tree/main/files/docs/en-US/extensions " ) )
2022-09-27 11:07:32 +02:00
# ----------------------------------------------------------------------------------------------- #
# Frame 3 - Right-Side:
2022-09-25 12:31:09 +02:00
notebook_root_tab3_frame_button_area = tk . Frame ( notebook_root_tab3 , background = color3 )
notebook_root_tab3_frame_button_area . pack ( padx = 15 , pady = 15 , side = ' bottom ' , anchor = " e " )
notebook_root_tab3_frame_button_back = tk . Button ( notebook_root_tab3_frame_button_area , text = ' < Back ' , width = 6 , height = 1 , underline = 2 , command = lambda : notebook_root . select ( notebook_root_tab2 ) , background = color2 , foreground = color3 )
notebook_root_tab3_frame_button_back . grid ( row = 0 , column = 0 , padx = 5 , pady = 5 )
notebook_root_tab3_frame_button_back . grid_rowconfigure ( 0 , weight = 1 )
notebook_root_tab3_frame_button_cancel = tk . Button ( notebook_root_tab3_frame_button_area , text = ' Cancel ' , width = 6 , height = 1 , underline = 0 , command = lambda : window . quit ( ) , background = color2 , foreground = color3 )
notebook_root_tab3_frame_button_cancel . grid ( row = 0 , column = 1 , padx = 5 , pady = 5 )
notebook_root_tab3_frame_button_next = tk . Button ( notebook_root_tab3_frame_button_area , text = ' Next > ' , width = 6 , height = 1 , underline = 0 , command = lambda : notebook_root . select ( notebook_root_tab4 ) , background = color2 , foreground = color3 )
notebook_root_tab3_frame_button_next . grid ( row = 0 , column = 2 , padx = 5 , pady = 5 )
notebook_root_tab3_frame_button_help = tk . Button ( notebook_root_tab3_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_tab3_frame_button_help . grid ( row = 0 , column = 3 , padx = 5 , pady = 5 )
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:
2022-09-28 11:40:39 +02:00
notebook_root_tab4_frame_photo = tk . PhotoImage ( file = ' ../images/welcome.png ' )
2022-09-23 12:14:07 +02:00
notebook_root_tab4_frame_image_label = ttk . Label ( notebook_root_tab4 , image = notebook_root_tab4_frame_photo )
2022-09-25 12:31:09 +02:00
notebook_root_tab4_frame_image_label . pack ( padx = 20 , pady = 20 , side = ' left ' , fill = ' both ' , expand = False )
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-25 12:31:09 +02:00
# Frame 1 - Right-Side:
2022-09-23 12:14:07 +02:00
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-28 11:40:39 +02:00
system_hostname_get = os . popen ( ' hostname=$(hostname) && echo " Hostname: $hostname " > " ../logs/system-info.txt " ' ) . read ( )
2022-09-28 15:43:28 +02:00
system_os_get = os . popen ( ' system_os=$(source /etc/os-release && echo " $PRETTY_NAME " ) && system_de=$(echo $XDG_CURRENT_DESKTOP) && echo " OS: $system_os ($system_de) " >> " ../logs/system-info.txt " ' ) . read ( )
2022-09-28 11:40:39 +02:00
system_kernel_get = os . popen ( ' system_kernel=$(uname -r) && echo " Kernel: $system_kernel " >> " ../logs/system-info.txt " ' ) . read ( )
system_cpu_get = os . popen ( ' system_cpu=$(cat /proc/cpuinfo | grep " model name " | uniq | cut -d " : " -f2-) && echo " CPU: $system_cpu " >> " ../logs/system-info.txt " ' ) . read ( )
2022-09-28 15:43:28 +02:00
system_gpu_get = os . popen ( ' system_gpu=$(glxinfo | grep " Device " | sed s/ " " // | sed s/ " Device: " //) && echo " GPU:$system_gpu " >> " ../logs/system-info.txt " ' ) . read ( )
system_gpu_ram = os . popen ( ' system_gpu_ram=$(glxinfo | egrep -i " device|memory " | sed s/ " " // | grep " Video memory " | sed s/ " Video memory: " // | sed s/ " MB " //) && echo " GPU (RAM):$system_gpu_ram MB " >> " ../logs/system-info.txt " ' ) . read ( )
system_ram = os . popen ( ' system_ram=$(echo $(($(getconf _AVPHYS_PAGES) * $(getconf PAGE_SIZE) / (1024 * 1024)))) && echo " RAM: $system_ram MB " >> " ../logs/system-info.txt " ' ) . read ( )
2022-09-28 11:40:39 +02:00
system_info_get = open ( ' ../logs/system-info.txt ' , " r " )
system_info = system_info_get . read ( )
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-28 11:40:39 +02:00
notebook_root_tab4_frame_label2 = tk . Label ( notebook_root_tab4_frame_text , text = " " + system_info , wraplength = 430 , justify = " left " , background = color3 , foreground = color2 )
2022-09-28 15:43:28 +02:00
notebook_root_tab4_frame_label2 . pack ( pady = 10 , anchor = " w " )
notebook_root_tab4_frame_label3 = tk . Label ( notebook_root_tab4_frame_text , text = " More information can be found here: " , wraplength = 430 , justify = " left " , background = color3 , foreground = color2 )
notebook_root_tab4_frame_label3 . pack ( side = tk . LEFT )
# Open the documentation:
def documentation_callback ( url ) :
webbrowser . open_new ( url )
notebook_root_tab4_frame_label4 = tk . Label ( notebook_root_tab4_frame_text , text = " Project Documentation " , fg = color4 , bg = color3 , cursor = " hand2 " )
notebook_root_tab4_frame_label4 . pack ( side = tk . LEFT )
notebook_root_tab4_frame_label4 . bind ( " <Button-1> " , lambda e : documentation_callback ( " https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/wiki/Documentation " ) )
2022-09-23 12:14:07 +02:00
2022-09-25 12:31:09 +02:00
# ----------------------------------------------------------------------------------------------- #
# Frame 2 - Right-Side:
notebook_root_tab4_frame_button_area = tk . Frame ( notebook_root_tab4 , background = color3 )
notebook_root_tab4_frame_button_area . pack ( padx = 15 , pady = 15 , side = ' bottom ' , anchor = " e " )
2022-09-28 11:40:39 +02:00
notebook_root_tab4_frame_button_back = tk . Button ( notebook_root_tab4_frame_button_area , text = ' < Back ' , width = 6 , height = 1 , underline = 2 , command = lambda : notebook_root . select ( notebook_root_tab3 ) , background = color2 , foreground = color3 )
2022-09-25 12:31:09 +02:00
notebook_root_tab4_frame_button_back . grid ( row = 0 , column = 0 , padx = 5 , pady = 5 )
notebook_root_tab4_frame_button_back . grid_rowconfigure ( 0 , weight = 1 )
notebook_root_tab4_frame_button_cancel = tk . Button ( notebook_root_tab4_frame_button_area , text = ' Cancel ' , width = 6 , height = 1 , underline = 0 , command = lambda : window . quit ( ) , background = color2 , foreground = color3 )
notebook_root_tab4_frame_button_cancel . grid ( row = 0 , column = 1 , padx = 5 , pady = 5 )
notebook_root_tab4_frame_button_next = tk . Button ( notebook_root_tab4_frame_button_area , text = ' Next > ' , width = 6 , height = 1 , underline = 0 , command = lambda : notebook_root . select ( notebook_root_tab5 ) , background = color2 , foreground = color3 )
notebook_root_tab4_frame_button_next . grid ( row = 0 , column = 2 , padx = 5 , pady = 5 )
notebook_root_tab4_frame_button_help = tk . Button ( notebook_root_tab4_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_tab4_frame_button_help . grid ( row = 0 , column = 3 , padx = 5 , pady = 5 )
2022-09-23 12:14:07 +02:00
2022-09-25 12:31:09 +02:00
###############################################################################################################################################################
# CREATE ELEMENTS INTO NOTEBOOK_ROOT_TAB5 ARE ARRANGED HERE: #
###############################################################################################################################################################
# Frame 1 - Left-Side:
2022-09-28 11:40:39 +02:00
notebook_root_tab5_frame_photo = tk . PhotoImage ( file = ' ../images/welcome.png ' )
2022-09-25 12:31:09 +02:00
notebook_root_tab5_frame_image_label = ttk . Label ( notebook_root_tab5 , image = notebook_root_tab5_frame_photo )
notebook_root_tab5_frame_image_label . pack ( padx = 20 , pady = 20 , side = ' left ' , fill = ' both ' , expand = False )
# ----------------------------------------------------------------------------------------------- #
# Frame 1 - Right-Side:
notebook_root_tab5_frame_text = tk . Frame ( notebook_root_tab5 , background = color3 , width = 100 )
notebook_root_tab5_frame_text . pack ( padx = 40 , anchor = " w " )
notebook_root_tab5_frame_title = tk . Label ( notebook_root_tab5_frame_text , text = " About " , font = ( 24 ) , background = color3 , foreground = color2 )
notebook_root_tab5_frame_title . pack ( pady = 20 , anchor = " w " )
notebook_root_tab5_frame_label1 = tk . Label ( notebook_root_tab5_frame_text , text = " Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. " , wraplength = 430 , justify = " left " , background = color3 , foreground = color2 )
notebook_root_tab5_frame_label1 . pack ( pady = 5 , anchor = " w " )
# ----------------------------------------------------------------------------------------------- #
# Frame 2 - Right-Side:
notebook_root_tab5_frame_button_area = tk . Frame ( notebook_root_tab5 , background = color3 )
notebook_root_tab5_frame_button_area . pack ( padx = 15 , pady = 15 , side = ' bottom ' , anchor = " e " )
notebook_root_tab5_frame_button_back = tk . Button ( notebook_root_tab5_frame_button_area , text = ' < Back ' , width = 6 , height = 1 , underline = 2 , command = lambda : notebook_root . select ( notebook_root_tab4 ) , background = color2 , foreground = color3 )
notebook_root_tab5_frame_button_back . grid ( row = 0 , column = 0 , padx = 5 , pady = 5 )
notebook_root_tab5_frame_button_back . grid_rowconfigure ( 0 , weight = 1 )
notebook_root_tab5_frame_button_cancel = tk . Button ( notebook_root_tab5_frame_button_area , text = ' Cancel ' , width = 6 , height = 1 , underline = 0 , command = lambda : window . quit ( ) , background = color2 , foreground = color3 )
notebook_root_tab5_frame_button_cancel . grid ( row = 0 , column = 1 , padx = 5 , pady = 5 )
notebook_root_tab5_frame_button_next = tk . Button ( notebook_root_tab5_frame_button_area , text = ' Next > ' , width = 6 , height = 1 , underline = 0 , command = lambda : notebook_root . select ( notebook_root_tab6 ) , background = color2 , foreground = color3 )
notebook_root_tab5_frame_button_next . grid ( row = 0 , column = 2 , padx = 5 , pady = 5 )
notebook_root_tab5_frame_button_help = tk . Button ( notebook_root_tab5_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_tab5_frame_button_help . grid ( row = 0 , column = 3 , padx = 5 , pady = 5 )
###############################################################################################################################################################
# CREATE ELEMENTS INTO NOTEBOOK_ROOT_TAB6 ARE ARRANGED HERE: #
###############################################################################################################################################################
# Frame 1 - Left-Side:
2022-09-28 11:40:39 +02:00
notebook_root_tab6_frame_photo = tk . PhotoImage ( file = ' ../images/welcome.png ' )
2022-09-25 12:31:09 +02:00
notebook_root_tab6_frame_image_label = ttk . Label ( notebook_root_tab6 , image = notebook_root_tab2_frame_photo )
notebook_root_tab6_frame_image_label . pack ( padx = 20 , pady = 20 , side = ' left ' , fill = ' both ' , expand = False )
# ----------------------------------------------------------------------------------------------- #
# Frame 1 - Right-Side:
notebook_root_tab6_frame_text = tk . Frame ( notebook_root_tab6 , background = color3 )
notebook_root_tab6_frame_text . pack ( padx = 40 , anchor = " w " )
notebook_root_tab6_frame_title = tk . Label ( notebook_root_tab6_frame_text , text = " Documentation " , font = ( 24 ) , background = color3 , foreground = color2 )
notebook_root_tab6_frame_title . pack ( pady = 20 , anchor = " w " )
notebook_root_tab6_frame_label1 = tk . Label ( notebook_root_tab6_frame_text , text = " Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. " , wraplength = 430 , justify = " left " , background = color3 , foreground = color2 )
notebook_root_tab6_frame_label1 . pack ( pady = 5 , anchor = " w " )
# ----------------------------------------------------------------------------------------------- #
# Frame 2 - Right-Side:
notebook_root_tab6_frame_button_area = tk . Frame ( notebook_root_tab6 , background = color3 )
notebook_root_tab6_frame_button_area . pack ( padx = 15 , pady = 15 , side = ' bottom ' , anchor = " e " )
notebook_root_tab6_frame_button_back = tk . Button ( notebook_root_tab6_frame_button_area , text = ' < Back ' , width = 6 , height = 1 , underline = 2 , command = lambda : notebook_root . select ( notebook_root_tab5 ) , background = color2 , foreground = color3 )
notebook_root_tab6_frame_button_back . grid ( row = 0 , column = 0 , padx = 5 , pady = 5 )
notebook_root_tab6_frame_button_back . grid_rowconfigure ( 0 , weight = 1 )
notebook_root_tab6_frame_button_cancel = tk . Button ( notebook_root_tab6_frame_button_area , text = ' Cancel ' , width = 6 , height = 1 , underline = 0 , command = lambda : window . quit ( ) , background = color2 , foreground = color3 )
notebook_root_tab6_frame_button_cancel . grid ( row = 0 , column = 1 , padx = 5 , pady = 5 )
notebook_root_tab6_frame_button_next = tk . Button ( notebook_root_tab6_frame_button_area , text = ' Next > ' , width = 6 , height = 1 , underline = 0 , command = lambda : notebook_root . select ( notebook_root_tab6 ) , background = color2 , foreground = color3 )
notebook_root_tab6_frame_button_next . grid ( row = 0 , column = 2 , padx = 5 , pady = 5 )
notebook_root_tab6_frame_button_help = tk . Button ( notebook_root_tab6_frame_button_area , text = ' Help ' , width = 6 , height = 1 , underline = 0 , state = tk . DISABLED , background = color2 , foreground = color3 )
notebook_root_tab6_frame_button_help . grid ( row = 0 , column = 3 , padx = 5 , pady = 5 )
2022-09-23 12:14:07 +02:00
###############################################################################################################################################################
# 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 ( )