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

ΘΕΜΑ: δημιουργία κώδικα με τη βιβλιοθήκη tkinter

δημιουργία κώδικα με τη βιβλιοθήκη tkinter 9 Χρόνια 1 Μήνας πριν #3195

  • cps
  • Το Άβαταρ του/της cps
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 56
Καλησπέρα,
Είμαι καινούργιος στο φόρουμ και στην python και θα ήθελα να εκφράσω τις ευχαριστίες μου για την πολύτιμη βοήθεια που προσφέρετε!

Θέλω να φτιάξω ένα πρόγραμμα στο οποίο να δημιουργείται ένα αρχείο και να αποθηκεύονται εκεί οι εγγραφές. Οταν το φτιάχνω να τρέχει στο τερματικό το πράγμα είναι πολύ απλό. Οταν όμως εισάγω την tkinter, ώστε να του δώσω μία εμφάνιση, τότε νομίζω ότι το πράγμα γίνεται πιο πολύπλοκο. Τη φόρμα μπορώ να τη φτιάξω, όμως δεν έχω καταλάβει πώς θα κάνω να δουλέψει ο κώδικας που μεταφέρει τα δεδομένα στο αρχείο. Για να γίνω πιο κατανοητός παραθέτω αυτό που έχω φτιάξει.
#Κλήση της βιβλιοθήκης Tkinter
from tkinter import*
root = Tk()
root.title('ΑΡΧΕΙΟΝ')
 
#Δημιουργία επιπέδων
logoFrame=Frame(root, width=500, height=100)
logoFrame.grid(row=0, column=0, padx=0, pady=2, sticky=S)
 
egrafiFrame=Frame(root, width=500, height = 200)
egrafiFrame.grid(row=1, column=0, padx=0, pady=2, sticky=NE)
 
photoFrame=Frame(root, width=150, height = 100)
photoFrame.grid(row=0, column=2, padx=0, pady=2)
 
ergaliaFrame=Frame(root, width=150, height=400)
ergaliaFrame.grid(row=1, column=2, padx=0, pady=2, sticky=W)
 
#Δημιουργία Σκελετών
#kenoCanvas = Canvas(kenoFrame, width=500, height=100)
#kenoCanvas.grid(row=0, column=0, padx=0, pady=2)
 
ergaliaCanvas=Canvas(ergaliaFrame, width=150, height=280, bg='#f8f1c3')
ergaliaCanvas.grid(row=0, column=0, padx=0, pady=2)
 
#Εισαγωγή εικόνων
 
#imagePx = PhotoImage(file = 'images/1.png', width=150, height=100)
#Label(photoFrame, image=imagePx).grid(row=0, column=3, padx=0, pady=2)
 
#imageLx = PhotoImage(file = 'images/2.png', width=150, height=74)
#Label(logoFrame, image=imageLx).grid(row=0, column=0, padx=0, pady=2, sticky=S)
 
#Εισαγωγή εργαλείων
exodos=Button(ergaliaFrame, text='Εξοδος',command=root.quit)
exodos.grid(row=0, column=0, padx=5, pady=15, sticky=N)
 
entaxi=Button(ergaliaFrame, text='Εντάξει')
entaxi.grid(row=0, column=0, padx=5, pady=55, sticky=N)
#Δημιουργία κειμένων
 
#Στήλη 1
onoma = Label(egrafiFrame, text='Ονομα')
onoma.grid(row=0, column=0, padx=5, pady=5,sticky=E)
 
#Στήλη 2
epitheto = Label(egrafiFrame, text='Επίθετο')
epitheto.grid(row=0, column=2, padx=5, pady=5, sticky=E)
 
 
#Εισαγωγή δεδομένων
#Στήλη 1
onomaInput = Entry(egrafiFrame, width = 20) 
onomaInput.grid(row=0, column=1, padx=5, pady=5)
onomaInput.get()
 
#Στήλη 2
epithetoInput = Entry(egrafiFrame, width = 20) 
epithetoInput.grid(row=0, column=3, padx=5, pady=5)
epithetoInput.get()
 
#Άνοιγμα αρχείου
def dedom():
    dedomena_file = open('dedomena.txt', 'a')
    dedomena_file.close
dedom()
 
#Κλήση της συνάρτησης
 
root.mainloop()

Τις εικόνες τις έχω βάλει ως σημείωση. Τον κώδικα για την εγγραφή των δεδομένων στο αρχείο δεν τον έχω γράψει γιατί δεν ξέρω πώς να τον συντάξω. Επίσης θα ήθελα να μου πείτε μήπως αντί της tkinter Πρέπει να χρησιμοποιώ άλλη βιβλιοθήκη.

Ευχαριστώ εκ των προτέρων
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

δημιουργία κώδικα με τη βιβλιοθήκη tkinter 9 Χρόνια 1 Μήνας πριν #3197

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Καλησπέρα και καλώς ήλθες στο forum.
Ο κώδικας πρέπει να γραφεί όπως παρακάτω:

#Κλήση της βιβλιοθήκης Tkinter
from tkinter import*
root = Tk()
root.title('ΑΡΧΕΙΟΝ')
 
# Άνοιγμα αρχείου
# Οι συναρτήσεις που καλούνται απ' το tkinter, μπαίνουν στην αρχή του κώδικα,
# εκτός αν έχεις δημιουργήσει κλάση.
 
 
def dedom():
    dedomena = "{0} {1}\n".format(onomaInput.get(), epithetoInput.get())
 
    dedomena_file = open('dedomena.txt', 'a')
    dedomena_file.write(dedomena)
    dedomena_file.close()
 
#Δημιουργία επιπέδων
logoFrame=Frame(root, width=500, height=100)
logoFrame.grid(row=0, column=0, padx=0, pady=2, sticky=S)
 
egrafiFrame=Frame(root, width=500, height = 200)
egrafiFrame.grid(row=1, column=0, padx=0, pady=2, sticky=NE)
 
photoFrame=Frame(root, width=150, height = 100)
photoFrame.grid(row=0, column=2, padx=0, pady=2)
 
ergaliaFrame=Frame(root, width=150, height=400)
ergaliaFrame.grid(row=1, column=2, padx=0, pady=2, sticky=W)
 
#Δημιουργία Σκελετών
#kenoCanvas = Canvas(kenoFrame, width=500, height=100)
#kenoCanvas.grid(row=0, column=0, padx=0, pady=2)
 
ergaliaCanvas=Canvas(ergaliaFrame, width=150, height=280, bg='#f8f1c3')
ergaliaCanvas.grid(row=0, column=0, padx=0, pady=2)
 
#Εισαγωγή εικόνων
 
#imagePx = PhotoImage(file = 'images/1.png', width=150, height=100)
#Label(photoFrame, image=imagePx).grid(row=0, column=3, padx=0, pady=2)
 
#imageLx = PhotoImage(file = 'images/2.png', width=150, height=74)
#Label(logoFrame, image=imageLx).grid(row=0, column=0, padx=0, pady=2, sticky=S)
 
#Εισαγωγή εργαλείων
exodos=Button(ergaliaFrame, text='Εξοδος',command=root.quit)
exodos.grid(row=0, column=0, padx=5, pady=15, sticky=N)
 
entaxi=Button(ergaliaFrame, text='Εντάξει', command=dedom)
entaxi.grid(row=0, column=0, padx=5, pady=55, sticky=N)
#Δημιουργία κειμένων
 
#Στήλη 1
onoma = Label(egrafiFrame, text='Ονομα')
onoma.grid(row=0, column=0, padx=5, pady=5,sticky=E)
 
#Στήλη 2
epitheto = Label(egrafiFrame, text='Επίθετο')
epitheto.grid(row=0, column=2, padx=5, pady=5, sticky=E)
 
 
#Εισαγωγή δεδομένων
#Στήλη 1
onomaInput = Entry(egrafiFrame, width = 20) 
onomaInput.grid(row=0, column=1, padx=5, pady=5)
onomaInput.get()
 
#Στήλη 2
epithetoInput = Entry(egrafiFrame, width = 20) 
epithetoInput.grid(row=0, column=3, padx=5, pady=5)
epithetoInput.get()
 
 
 
#Κλήση της συνάρτησης
 
root.mainloop()
 


Όσο για πιο Gui πρέπει να χρησιμοποιήσεις, αυτό είναι καθαρά προσωπικό θέμα. Κάθε βιβλιοθήκη έχει τα υπέρ και τα κατά της.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

δημιουργία κώδικα με τη βιβλιοθήκη tkinter 9 Χρόνια 1 Μήνας πριν #3198

  • cps
  • Το Άβαταρ του/της cps
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 56
Ευχαριστώ και πάλυ.
Κατάλαβα το λάθος μου εγώ έβαζα
print ("{0} {1}\n".format(onomaInput.get(), epithetoInput.get()))

Τώρα δουλεύει κανονικά.
Για την tkinter ρώτησα, γιατί από ότι έχω διαβάσει δε θεωρείται η καλύτερη, εκτός κι αν κάνω λάθος.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

δημιουργία κώδικα με τη βιβλιοθήκη tkinter 9 Χρόνια 1 Μήνας πριν #3199

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Δεν θεωρείται η καλύτερη, όχι γιατί έχει κάποια προβλήματα, αλλά γιατί απλώς διαθέτει τα απαραίτητα widgets. Δηλαδή απουσιάζουν σύνθετα widgets. Όμως μπορείς να στήσεις κανονική εφαρμογή μ' αυτό.
Γράφω σε Python 3
Τελευταία διόρθωση: 9 Χρόνια 1 Μήνας πριν από kamar. Αιτία: Προσθήκη κειμένου.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": cps

δημιουργία κώδικα με τη βιβλιοθήκη tkinter 9 Χρόνια 1 Μήνας πριν #3200

  • cps
  • Το Άβαταρ του/της cps
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 56
Ευχαριστώ για τις πληροφορίες
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

δημιουργία κώδικα με τη βιβλιοθήκη tkinter 9 Χρόνια 3 Εβδομάδες πριν #3220

  • Tassos
  • Το Άβαταρ του/της Tassos
  • Αποσυνδεμένος
  • pyth__
  • g-lts.info
  • Δημοσιεύσεις: 78
  • Ληφθείσες Ευχαριστίες 5
kamar έγραψε:
Δεν θεωρείται η καλύτερη, όχι γιατί έχει κάποια προβλήματα, αλλά γιατί απλώς διαθέτει τα απαραίτητα widgets. Δηλαδή απουσιάζουν σύνθετα widgets. Όμως μπορείς να στήσεις κανονική εφαρμογή μ' αυτό.

Όντως τα λες ωραία φίλε... αλλά μετά σε Qt θα του έλεγες να πάει; :/
Ομάδα Ελληνικής - Μακροχρόνιας υποστήριξη.

Greek - Long Term Support Team.

Επισκεφθείτε μας εδώ : g-lts.info
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

δημιουργία κώδικα με τη βιβλιοθήκη tkinter 9 Χρόνια 3 Εβδομάδες πριν #3221

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Tassos έγραψε:
kamar έγραψε:
Δεν θεωρείται η καλύτερη, όχι γιατί έχει κάποια προβλήματα, αλλά γιατί απλώς διαθέτει τα απαραίτητα widgets. Δηλαδή απουσιάζουν σύνθετα widgets. Όμως μπορείς να στήσεις κανονική εφαρμογή μ' αυτό.

Όντως τα λες ωραία φίλε... αλλά μετά σε Qt θα του έλεγες να πάει; :/

Προφανώς, δεν διάβασες όλα τα posts του θέματος. Επιμένω στο ότι η χρήση GUI, είναι προσωπικό θέμα.

Η ευθεία απάντηση, στην ερώτησή σου, είναι ναι, εφόσον τον ενδιαφέρει.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

δημιουργία κώδικα με τη βιβλιοθήκη tkinter 9 Χρόνια 3 Εβδομάδες πριν #3224

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Εγώ πάλι, κοιτώντας και τον κώδικα σου, θα σου πρότεινα να αφήσεις τον σχεδιασμό GUI για αρκετά αργότερα. Όποιοδήποτε non-trivial GUI θέλει αρκετό (ως πολύ) χρόνο· χρόνο τον οποίο θα εκμεταλλευτείς καλύτερα γράφοντας περισσότερα προγράμματα.

Για full blown GUI library και εγώ προτείνω PyQt. Για απλά πράγματα η Tk σε καλύπτει.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.547 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

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