Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tkinter as tk
- from tkinter import simpledialog
- def get_number():
- try:
- number = int(simpledialog.askstring("Liczba aktywności", "Podaj liczbę aktywności:"))
- activities = []
- for i in range(number):
- activity = get_activity(i + 1)
- if activity is None:
- # An error occurred or user clicked "Cancel", abort
- return
- activities.append(activity)
- # wszystkie aktywności zostały wczytane, można teraz wykonać obliczenia CPM
- # można tutaj dodać kod do obliczenia CPM
- label.config(text="Wprowadzono wszystkie dane!")
- button.config(text="Zakończ", command=root.quit)
- return activities
- except ValueError:
- # jeśli wprowadzono napis zamiast liczby, wykonaj coś takiego:
- label.config(text="Błąd! Wprowadź liczbę całkowitą.")
- return
- def get_activity(activity_number):
- activity_name = simpledialog.askstring("Nazwa aktywności", f"Podaj nazwę aktywności {activity_number}:")
- if activity_name is None:
- return None
- try:
- activity_duration = int(simpledialog.askstring("Czas trwania", f"Podaj czas trwania aktywności {activity_number}:"))
- activity_predecessors = simpledialog.askstring("Poprzednicy", f"Podaj poprzedników aktywności {activity_number} (oddzielone spacjami):").split()
- activity = {"name": activity_name, "duration": activity_duration, "predecessors": activity_predecessors}
- return activity
- except ValueError:
- # jeśli wprowadzono napis zamiast liczby, wykonaj coś takiego:
- label.config(text=f"Błąd! Wprowadź liczbę całkowitą dla czasu trwania aktywności {activity_number}.")
- return None
- # stwórz okno główne
- root = tk.Tk()
- root.title("Wprowadzanie danych dla CPM")
- # stwórz etykietę z tekstem zachęcającym użytkownika do wprowadzenia liczby
- label = tk.Label(root, text="Witaj w naszym programie! Jest to prosty program na bazie którego obliczysz CPM (critical path method). Początkowo wprowadzisz odpowiednie dane (liczbę aktywności,nazwę aktywności,czas trwania oraz ich poprzedników) Potem obliczona zostanie CPM i zwizializowana na ekranie")
- label.pack()
- # stwórz pole tekstowe do wprowadzania liczby
- # entry = tk.Entry(root)
- # entry.pack()
- # stwórz przycisk do potwierdzenia wprowadzonej liczby i wczytania danych dla CPM
- button = tk.Button(root, text="OK", command=get_number)
- button.pack()
- # wyświetl okno główne
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement