Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα. Προσπαθώ να φτιάξω ένα απλό προγραμματάκι μου, σε παραθυρικό περιβάλλον με το tkinter. Πέρα από τα βασικά (τίτλο, label κλπ) δεν μπορώ να κατανοήσω με τίποτα το τρόπο λειτουργίας με τα position. Έψαξα (λίγο) στο ιντερνετ και βρήκα διάσπαρτες απαντήσεις για copy paste κώδικα που δεν με κάλυψαν.

Τέσπα. Η ερωτήσεις μου είναι:

α) Yπάρχει κάποιος builder drag n drop (όπως παλιά με την visual basic) που να φτιάχνω το layout και να μου εξάγει τις εντολές (θα προτιμούσα τις εντολές και όχι ένα σκασμό από αρχεία και φακέλους σαν template)?

β) Επειδή θέλω να "επενδύσω" στον προγραμματισμό της python, πιο πολύ στο λειτουργικό κομμάτι και όχι τόσο στο εμφανισιακό (φυσικά και θέλω όμορφο design), πιστέυετε οτί είναι καλύτερα να ασχοληθώ και στην εκμάθηση και κατανόηση της tkinter αντί να στηρίζομαι σε έτοιμα builder?

Δημοσ.

Τα position στο tkinter μπορούν να υλοποιηθούν με 3 διαφορετικούς τρόπους pack place και grid. To pack είναι χαζό το place είναι σαν position absolute. Πήγαινε κατευθείαν στο grid είναι παρόμοιο με το grid στο css ορίζεις σε ποια γραμμή και ποια στήλη μπαίνει το κάθε widget plus επιτρέπει column span και row span plus  είναι responsive. Εφόσον μόνο αυτό είναι το πρόβλημα σου με το tkinter δεν χρειάζεται να πας αλλού. Το grid είναι τοπ.

Δες αυτό https://realpython.com/python-gui-tkinter/  αν δεν σε καλύψει και θες περισσότερες πηγές πες μου να στείλω

Δημοσ.

Επικεντρώσου στο grid. ίσως σε μπέρδεψαν οι απαντήσεις καθώς οι μισές έχουν pack οι άλλες μισές έχουν grid και ίσως μπερδεύτηκες.

Ένα πλέγμα καθορίζεις, άρα μάθε το grid και τι κάνει κάθε μια παράμετρος: (row=x, column=y, rowspan=, columnspan, padx, pady, sticky=) και επίσης πρόσεξε και το .rowconfigure και columnconfigure τα οποία θα γίνουν απαραίτητα όταν πας σε κάτι παραπάνω απο πρόγραμμα μιας στήλης με πχ 3 rows.

Μόνο με αυτά αν κατανοήσεις τι κάνουν μπορείς να φτιάξεις αρκετά πράγματα.

Αν θες λίγο πιο όμορφα στοιχεία κάνεις import και την βιβλιοθήκη ttk και αντί για tk.button γράφεις ttk.button και είναι ξεκάθαρα πιο όμορφα με μια σειρά απο λίγες επιλογές για themes.

τα πέταξα λίγο χύμα αλλά αυτά είναι τα βασικά. Θα δυσκολευτείς μετά όταν κάνει κάτι πιο σύνθετο ή μάλλον πιο δυναμικό και θα δεις μερικές weird συμπεριφορές.

Αλλά όσο και να τα μάθεις, πάλι θα κταλήξεις απλά να γράφεις κα΄τι να δοκιμάζεις και με δοκιμές θα το βελτιώνεις δεν θέλει τόση σκέψη απο πριν.

Δημοσ. (επεξεργασμένο)
6 ώρες πριν, Lanike71 είπε

Αυτό απαντά στο α μόνο:

https://sourceforge.net/projects/page/

Κατι τετοιο ψαχνω. Δοκιμασα αυτο, εφτιαξα ενα layout και οταν πηγα να κανει gen τον κωδικα, μου τον εβγαζε μαζι με τα νουμερα των lines. Τα εσβησα ολα, περασα των κωδικα στο idle αλλα δεν δουλευε.

ειναι δυνατον να μην υπαρχει ενα δυνατο προγραμμα σε στυλ bootstrap studio, dreamweaver κλπ για python; Εστω και με πληρωμη.

 

5 ώρες πριν, k33theod είπε

Τα position στο tkinter μπορούν να υλοποιηθούν με 3 διαφορετικούς τρόπους pack place και grid. To pack είναι χαζό το place είναι σαν position absolute. Πήγαινε κατευθείαν στο grid είναι παρόμοιο με το grid στο css ορίζεις σε ποια γραμμή και ποια στήλη μπαίνει το κάθε widget plus επιτρέπει column span και row span plus  είναι responsive. Εφόσον μόνο αυτό είναι το πρόβλημα σου με το tkinter δεν χρειάζεται να πας αλλού. Το grid είναι τοπ.

Δες αυτό https://realpython.com/python-gui-tkinter/  αν δεν σε καλύψει και θες περισσότερες πηγές πες μου να στείλω

Τελικα νομιζα οτι μονο αυτο ειναι το προβλημα μου, αλλα τελικα θελει πολλες παραμετροποιησεις για να πετυχω αυτο που θελω (background, fontsize, πλαισια με στοιχεια μεσα κλπ. Στο page που δοκιμασα παραπανω, για να φτιαξω 5 πραγματα μου εβγαλε 300 γραμμες κωδικα. Δεν μπορω να φανταστω αν θα τα καταφερνα να τα εκανα με το χερι. Δεν καταλαβαινα τιποτα. Θα ασχοληθω με το λινκ που μου εβαλες το βραδακι, μπας και...

4 ώρες πριν, flik είπε

Επικεντρώσου στο grid. ίσως σε μπέρδεψαν οι απαντήσεις καθώς οι μισές έχουν pack οι άλλες μισές έχουν grid και ίσως μπερδεύτηκες.

Ένα πλέγμα καθορίζεις, άρα μάθε το grid και τι κάνει κάθε μια παράμετρος: (row=x, column=y, rowspan=, columnspan, padx, pady, sticky=) και επίσης πρόσεξε και το .rowconfigure και columnconfigure τα οποία θα γίνουν απαραίτητα όταν πας σε κάτι παραπάνω απο πρόγραμμα μιας στήλης με πχ 3 rows.

Μόνο με αυτά αν κατανοήσεις τι κάνουν μπορείς να φτιάξεις αρκετά πράγματα.

Αν θες λίγο πιο όμορφα στοιχεία κάνεις import και την βιβλιοθήκη ttk και αντί για tk.button γράφεις ttk.button και είναι ξεκάθαρα πιο όμορφα με μια σειρά απο λίγες επιλογές για themes.

τα πέταξα λίγο χύμα αλλά αυτά είναι τα βασικά. Θα δυσκολευτείς μετά όταν κάνει κάτι πιο σύνθετο ή μάλλον πιο δυναμικό και θα δεις μερικές weird συμπεριφορές.

Αλλά όσο και να τα μάθεις, πάλι θα κταλήξεις απλά να γράφεις κα΄τι να δοκιμάζεις και με δοκιμές θα το βελτιώνεις δεν θέλει τόση σκέψη απο πριν.

Θα δοκιμασω και την ttk αν και δεν νομιζω να τα καταφερω. Ειναι απο τα πιο δυσκολα πραγματα που εχω δει

Επεξ/σία από hdonoblepsias
Δημοσ.

Δεν το κατέχω το θέμα, οπότε δε μπορώ να σε βοηθήσω άλλο. Το μόνο που έκανα ήταν να γκουγκλάρω "gui builder for python".

Από λίγο java που ξέρω και από τις απαντήσεις των άλλων παιδιών περί python, θεωρώ καλύτερο να μάθεις μόνς σου να φτιάχνεις το gui γιατί εσύ ελέγχεις τον κώδικά σου απόλυτα και ξέρεις ανά πάσα στιγμή τι κάνει. Ίσως αυτά τα 300 πράγματα που λες, να μην είναι όλα απαραίτητα στον κώδικα, δεν ξέρω κιόλας. Τα ίδια δημιουργεί και  netbeans στη java και πλέον δεν τα χρησιμοποιώ, τα κάνω με το χέρι.

Δεν το βλέπω και τόσο δύσκολο να φτιάξεις ένα textbox, ένα button και να χρησιμοποιήσεις μία βιβλιοθήκη (?) ως layout manager (αν δεν κάνει η μανίσια). Σαφώς είναι δουλειά-αγγαρεία, αλλά σκέψου ότι είναι απαραίτητη.

  • Like 1
Δημοσ. (επεξεργασμένο)
5 ώρες πριν, Lanike71 είπε

Δεν το κατέχω το θέμα, οπότε δε μπορώ να σε βοηθήσω άλλο. Το μόνο που έκανα ήταν να γκουγκλάρω "gui builder for python".

Από λίγο java που ξέρω και από τις απαντήσεις των άλλων παιδιών περί python, θεωρώ καλύτερο να μάθεις μόνς σου να φτιάχνεις το gui γιατί εσύ ελέγχεις τον κώδικά σου απόλυτα και ξέρεις ανά πάσα στιγμή τι κάνει. Ίσως αυτά τα 300 πράγματα που λες, να μην είναι όλα απαραίτητα στον κώδικα, δεν ξέρω κιόλας. Τα ίδια δημιουργεί και  netbeans στη java και πλέον δεν τα χρησιμοποιώ, τα κάνω με το χέρι.

Δεν το βλέπω και τόσο δύσκολο να φτιάξεις ένα textbox, ένα button και να χρησιμοποιήσεις μία βιβλιοθήκη (?) ως layout manager (αν δεν κάνει η μανίσια). Σαφώς είναι δουλειά-αγγαρεία, αλλά σκέψου ότι είναι απαραίτητη.

Και εγώ έτσι σκοπεύω να συνεχίσω. Όπως και στις σελίδες, προτιμώ να χρησιμοποιώ κατευθείαν css και bootstrap, απλά η tkinter μου έκατσε πολύ βαριά. Για παράδειγμα προσπαθώ να βάλω ένα label σαν τίτλο στην αρχή με grid row=0 col=0 και προσπαθώ να το φέρω στην μέση. Googlara και είδα ολόκληρη function με κατεβατό για να έρθει απλά στην μέση. 

Υ.Γ. Για να μην ανοίγω νέο νήμα... Έφτιαξα ένα προγραμματάκι απλό για δοκιμή, το έκανα .exe και με το inno έφτιαξα και installer. Δουλεύει μια χαρά όπως θέλω. Το πρόβλημα είναι οτί hostara το setup αρχείο στο χώρο μου και έβαλα ένα link για download (πχ site.gr/setup.exe). Όταν όμως πήγα να δοκιμάσω να το κατεβάσω μου χτυπαγε ο chrome για ασφάλεια του αρχείου. Το αρχείο δεν περιέχει κάτι περίεργο (έναν απλό υπολογισμό φπα κάνει). Πως μπορώ να το κάνω "έμπιστο" το setup? Πρέπει υποχρεωτικά να το κάνω .rar ?

Επεξ/σία από hdonoblepsias
Δημοσ.
2 ώρες πριν, hdonoblepsias είπε

Και εγώ έτσι σκοπεύω να συνεχίσω. Όπως και στις σελίδες, προτιμώ να χρησιμοποιώ κατευθείαν css και bootstrap, απλά η tkinter μου έκατσε πολύ βαριά. Για παράδειγμα προσπαθώ να βάλω ένα label σαν τίτλο στην αρχή με grid row=0 col=0 και προσπαθώ να το φέρω στην μέση. Googlara και είδα ολόκληρη function με κατεβατό για να έρθει απλά στην μέση. 

Το google  δεν ειναι η λυση σε ολα. Οταν χρησιμοποιεις μια νεα βιβλιοθηκη διαβαζεις το documentation πρωτα και οχι τι λεει ο καθενας στο google. Συνηθως ολες οι πολυχρησιμοποιουμενες βιβλιοθηκες εχουν καλο documentation

  • Like 1
Δημοσ.

Ψάξε να βρεις την κατάλληλη βιβλιοθήκη.

Εγώ σε java που είχα τα ίδια θέματα, δηλαδή δεν μπορούσα γρήγορα και αποτελεσματικά να τοποθετήσω τα components στο gui, χρησιμοποίησα το miglayout.

Μία βιβλιοθήκη που επιτρέπει να τοποθετήσεις κάτι ακόμα και με ακρίβεια pixel, πχ το "pos 500 200", τοποθετεί το component στο σημείο 500,200.

Όσο για το πρόγραμμα που χτυπάει, μάλλον θα πρέπει να έχει κάποια υπογραφή (χωρίς να έχω πολλές γνώσεις επί του θέματος).

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...