Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Tkinter, Πόσο κακογραμμένο θα θεωρούσατε αυτό το πρόγραμμα;

Tkinter, Πόσο κακογραμμένο θα θεωρούσατε αυτό το πρόγραμμα; 10 Χρόνια 6 Μήνες πριν #2423

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
To πρόγραμμα : Δείτε το εδώ



Κώδικας:
from tkinter import *
 
screen = Tk()
 
do = "+"
 
 
#----------------------------------Do_It Function----------------------------------#
def Do_It():
    global num1, num2, value
 
    #See if there are numbers in the entrys  field#
    try:
        number1 = int(num1.get())
        number2 = int(num2.get())
        pass
 
    except:
        pass
    #See if there are numbers in the entrys  field#
 
    if do == "+":
        value.set(str(number1 + number2))
        pass
 
    elif do == "-":
        value.set(str(number1 - number2))
        pass
 
    elif do == "x":
        value.set(str(number1 * number2))
        pass
 
    elif do == "/":
        value.set(str(number1 / number2))
        pass
 
 
    pass
#----------------------------------Do_It Function----------------------------------#
 
 
 
#-----------------------------------Plus Function----------------------------------#
def Plus():
    global text, do
 
    text.set("+")
    do = text.get()
    pass
#-----------------------------------Plus Function----------------------------------#
 
 
 
#---------------------------------Negative Function--------------------------------#
def Negative():
    global text, do
 
    text.set("-")
    do = text.get()
    pass
#---------------------------------Negative Function--------------------------------#
 
 
 
#----------------------------------Multy Function----------------------------------#
def Multy():
    global text, do
 
    text.set("x")
    do = text.get()
    pass
#----------------------------------Multy Function----------------------------------#
 
 
 
#-----------------------------------Div Function-----------------------------------#
def Div():
    global text, do
 
    text.set("/")
    do = text.get()
    pass
#-----------------------------------Div Function-----------------------------------#
 
 
 
#_____Variables_____#
 
num1 = StringVar()
num2 = StringVar()
 
text = StringVar()
text.set("+")
 
value = StringVar()
value.set("0")
 
#_____Variables_____#
 
#Creating the Window
screen.geometry("500x500+400+200")
screen.title("Αριθμομηχανή")
 
#Building the Entrys.
entry1 = Entry(textvariable = num1).place(x = 10 , y = 25)
label1 = Label(textvariable = text).place(x = 150, y = 25)
label2 = Label(text = "=", fg = "black").place(x = 310, y = 25)
label3 = Label(textvariable = value).place(x = 330, y = 25)
entry2 = Entry(textvariable = num2).place(x = 180, y = 25)
 
#Buttons.
doit   = Button(text = "Υπολόγισε", command = Do_It).place(x = 120, y = 80)
 
label4 = Label(text = "Διάλεξε Την Πράξη", fg = "black").place(x = 10, y = 125)
plus   = Button(text = "+", command = Plus).place(x = 25, y = 150)
nega   = Button(text = "-", command = Negative).place(x = 25, y = 180)
mult   = Button(text = "x", command = Multy).place(x = 25, y = 210)
div    = Button(text = "/", command = Div).place(x = 25, y = 240)
 
#Credits
CreditsTitle = Label(text = "Credits", fg = "red").place(x = 225, y = 300)
Credits      = Label(text = "Made by Nick Babaliaris", fg = "red").place(x = 180, y = 330)
Comment      = Label(text = "Crazy program right?", fg = "red").place(x = 190, y = 360)
 
#####THE END#####
 
screen.mainloop()


To πρώτο μου πρόγραμμα με γραφικά. :P
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Tkinter, Πόσο κακογραμμένο θα θεωρούσατε αυτό το πρόγραμμα; 10 Χρόνια 5 Μήνες πριν #2424

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Με μια «γρήγορη ματιά» και χωρίς λεπτομερή έλεγχο:
  • Κατάχρηση της pass. Χρησιμοποιείται συνήθως για να προσπεράσεις κάποιο σφάλμα.
  • Κατάχρηση της global. Δημιουργεί κενά ασφαλείας.
  • num1, num2 και λοιπές μεταβλητές που αποθηκεύουν αριθμούς, θα έπρεπε να τις δώσεις ως IntVar ή DoubleVar
  • Για την τοποθέτηση των widgets χρησιμοποιείς την place ενώ θα ήταν πιο πρακτικό να χρησιμοποιήσεις την grid ή την pack, με την grid να πλεονεκτεί γιατί «χτίζεις» σε πλέγμα. Βέβαια αυτό είναι καθαρά προσωπικό θέμα.
  • Αφού κάνεις έλεγχο για τις μεταβλητές, με την try, στην except καλό θα ήταν να δίνεις ένα περιγραφικό μήνυμα του σφάλματος.

Τέλος αν εσένα σε ικανοποιεί το προγραμματάκι και δεν σκοπεύεις να το πουλήσεις :), οι παραπάνω παρατηρήσεις μου είναι υπερβολικές.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": babaliaris1

Tkinter, Πόσο κακογραμμένο θα θεωρούσατε αυτό το πρόγραμμα; 10 Χρόνια 5 Μήνες πριν #2425

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
Αλήθεια μόνο αυτά;
Νόμιζα ότι ήταν αρκετά κακογραμμένο.
Ασφαλώς και δεν πρόκειται να το πουλήσω :P
Το IntVar και DoubleVar δεν ήξερα καν ότι υπάρχουν :lol:
Ευχαριστώ πολύ για την απάντηση.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Tkinter, Πόσο κακογραμμένο θα θεωρούσατε αυτό το πρόγραμμα; 10 Χρόνια 5 Μήνες πριν #2426

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
babaliaris1 έγραψε:
Αλήθεια μόνο αυτά;

Γράφω ότι έριξα μια γρήγορη ματιά. Να έχεις υπόψη σου ότι ο προγραμματισμός είναι σαν την έκθεση. Ένα πράγμα μπορεί να εκφραστεί με διαφορετικούς τρόπους. Προσωπικά θα το έγραφα τελείως διαφορετικά.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": babaliaris1

Tkinter, Πόσο κακογραμμένο θα θεωρούσατε αυτό το πρόγραμμα; 10 Χρόνια 5 Μήνες πριν #2427

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
@babaliaris
Αν θεωρείς ότι είναι κακός ο κώδικας γιατί δεν τον βελτιώνεις;
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": babaliaris1

Tkinter, Πόσο κακογραμμένο θα θεωρούσατε αυτό το πρόγραμμα; 10 Χρόνια 5 Μήνες πριν #2428

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
pmav99 έγραψε:
@babaliaris
Αν θεωρείς ότι είναι κακός ο κώδικας γιατί δεν τον βελτιώνεις;

Διότι τώρα άρχισα να μαθαίνω την βιβλιοθήκη tkinter
στην ουσία μέχρι τώρα έχω ρίξει διάβασμα μίας ώρας
πάνω σ'αυτήν, και δεν ξέρω πολλά πράματα ακόμα.
Αλλά δίκαιο έχεις, θα κάτσω να σκευτώ μήπως μπορώ να
το βελτιώσω (κυρίως σε μέγεθος).
Τελευταία διόρθωση: 10 Χρόνια 5 Μήνες πριν από babaliaris1.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Tkinter, Πόσο κακογραμμένο θα θεωρούσατε αυτό το πρόγραμμα; 10 Χρόνια 5 Μήνες πριν #2433

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
@babaliaris
Δες αυτό. Μια άλλη άποψη.

Μέρος του μηνύματος είναι κρυμμένο για τους επισκέπτες. Παρακαλούμε συνδεθείτε ή εγγραφείτε για να το δείτε.

Δεν ασχολήθηκα καθόλου με την γεωμετρία του γραφικού. Δηλαδή διαστάσεις και κεντράρισμα στην οθόνη.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.516 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου