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

Συζήτηση για προγραμματισμό gui σε C++/Qt


greatst

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

Εντελώς λάθος "εκπαιδευτική" προσέγγιση.
 "...κατεβάσατε το Qt για το λειτουργικό σας σύστημα (Mac, GNU/Linux, Windows) και το εγκαταστήσατε..".

Δηλ. για το πιο σημαντικό και δύσκολο για όσους ξεκινάνε δεν γράφεις τίποτε !

 

Το σημαντικότερο και δυσκολότερο για έναν αρχάριο είναι το πώς γίνεται build/compiled η βιβλιοθήκη
ή/και πώς εγκαθίσταται από τα έτοιμα binaries. Eπίσης, πώς χρησιμοποιείται μέσα από το VS καθώς και βασικές
οδηγίες του Qt creator (δημιουργία απλών και πολλαπαλών projects, debugging, προσθήκη άλλων βιβλιοθηκών,
επεξηγήσεις για static building κ.α.).

 

Απο εκεί και πέρα, υπάρχουν εξαιρετικοί και ολοκληρωμένοι οδηγοί (Molkentin, Summerfield, Thelin κ.α.) που
βρίσκονται πανεύκολα και πάμφθηνα αλλού. Το πώς θέτεις μια label που λέει ένα hello είναι μια κοινοτοπία που
δεν προσφέρει απολύτως τίποτε στον αρχάριο διότι, απλούστατα, στο ξεκίνημα δεν είναι εκεί το πρόβλημά του.
Αυτό που συνιστά τη βασική δυσκολία του αρχάριου και δεν εξηγείται επαρκώς είναι το πώς να στήσει και να
χειρίζεται το περιβάλλον. Να το ξέρει στα βασικά του ώστε να μπορεί να το χρησιμοποιήσει και να πειραματιστεί

για να μάθει.

 

Είναι περίεργο που άνθρωποι που υποτίθεται ότι διδάσκουν τέτοια θέματα, συχνά δεν κατανοούν τις βασικές

ανάγκες των επίδοξων χρηστών...

 

-

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 99
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

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

 

Στον ακαδημαϊκό τομέα όπου οι περισσότεροι φοιτητές περνούν ένα πολύ μεγάλο διάστημα ανάπτυξης εφαρμογών σε κονσόλα (text-mode) τέτοια προγραμματάκια είναι ότι πρέπει για αρχή.

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Όχι φίλε DirectX, διαφωνώ τελείως.

 

Τέτοια εισαγωγικά "προγραμματάκια" υπάρχουν αμέτρητα αλλού, η δε παράθεση ενός ακόμη δεν

προσφέρει τίποτε σε κάποιον αρχάριο. Το πρόβλημα για κάποιον που ξεκινά σε ένα api όπως η Qt,

είναι σχεδόν πάντα το στήσιμο του περιβάλλοντος - ακόμη δε περισσότερο αν δεν έχει εμπειρία με

συνδέσεις & χρήση βιβλιοθηκών και ως τώρα χρησιμοποιούσε ένα απλό compile-build-run  σε κάποιο

IDE. Το ξέρω από προσωπική πείρα. Αλλά και εδώ στο insomnia υπάρχουν παραδείγματα.

Π.χ., λίγο καιρό πριν, ο Giorgos3984 που ήθελε να ξεκινήσει την Qt, άνοιξε ένα θέμα και παιδεύτηκε μέρες

για να κάνει το περιβάλλον απλώς να λειτουργήσει στοιχειωδώς (και ήξερε καλά C++).

 

Σε ένα τέτοιο περιβάλλον ο αρχάριος αντιμετωπίζει αμέσως μια σειρά απο ζητήματα.

Ειδικά στα windows
- να χρησιμοποιήσει τα έτοιμα Binaries (και ποιό να διαλέξει) ή να κάνει build την qt ο ίδιος (και γιατί/πότε/πώς) ;
- γιατί δεν μπορεί να πάρει το exe και να το τρέξει σε έναν υπολογιστή που δεν έχει την Qt;
- πώς (και αν) μπορεί να κάνει static building (κάτι που ως τώρα έκανε σχεδόν πάντα, έστω και εν αγνοίαν του)
- εφόσον δεν μπορεί να κάνει static building, πώς ξεχωρίζει ποιά αρχεία lib και dll της qt πρέπει να κουβαλά μαζί με το exe ;
- τι σημαίνει environment variables και πώς τις ορίζει ώστε το exe να τρέχει άμεσα έξω από τον compiler ;
- πώς ρυθμίζεται ο Qt creator ώστε να κάνει στοιχειώδες debugging (breakpoints) ;
- πώς ενσωματώνει στον Qt creator κάποια άλλη βιβλιοθήκη που χρειάζεται (πχ openGL ή boost) ή/και άλλα projects ;

και άλλα παρόμοια ερωτήματα. Αυτά είναι που δυσκολεύουν το ξεκίνημα - και δεν εξηγώνται επαρκώς και

συστηματικά ούτε σε εγχειρίδια..

 

Αν ο αρχάριος δεν έχει γνώση των παραπάνω, δεν μπορεί καν να πειραματιστεί και άρα ούτε και να μάθει.

Όταν δεν έχουν εξηγηθεί αυτά, tutorials του στυλ "πώς  βάζω ένα κουμπί που λέει 'καλημέρα'" απλώς

υποτιμούν την νοημοσύνη μας. Εξάλλου, όποιος ενδιαφέρεται πραγματικά να μάθει qt και απαντήσει

στα παραπάνω έστω και μερικώς, θα πάρει ένα-δυο βιβλία που την παρουσιάζουν με συστηματικό τρόπο,

γραμμένα από ειδικούς και έχουν σαφή και δοκιμασμένη διδακτική γραμμή και εκπαιδευτικό στόχο.

Δεν θα πλατσουρίζει σε tutorials που έγραψε κάποιος για το κέφι του όπως του κάπνισε.
Μιλώ από εμπειρία δική μου και άλλων που ασχοληθήκαμε με την Qt κάπως πιο σοβαρά ξεκινώντας από το μηδέν.

 

Δυστυχώς, πολλοί επιχειρούν να γράψουν κάτι για να ευχαριστήσουν καταρχήν τον εαυτό τους και

δεν σκέπτονται προσεκτικά τι πραγματικά χρειάζεται ο επίδοξος ενδιαφερόμενος.

Αυτό δεν πειράζει βέβαια, καθένας μπορεί να γράψει ότι και όπως θέλει.
Όμως αυτοί που έχουν διδακτικές φιλοδοξίες πρέπει να βλέπουν καταρχήν από τη μεριά του μαθητή τους,

όχι τη δική τους.
Γεμίσαμε προγράμματα που τυπώνουν "καλημέρα"...

 

( η παραπάνω κριτική είναι τελείως καλόπιστη )

 

-
 

Επεξ/σία από V.I.Smirnov
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Φίλε V.I.Smirnov, σεβαστή η άποψη σου αλλά επειδή και εγώ κάποτε μάθαινα τα βασικά στον προγραμματισμό, από προσωπική εμπειρία μπορώ να πω πως ποτέ δεν αντιμετώπισα πρόβλημα στο να στήσω το περιβάλλον προγραμματισμού μου, είτε αυτό συμπεριελάμβανε κάποιο IDE (πχ. PWB) είτε όχι (μάλιστα επί DOS, που πραγματικά είχες να ρυθμίσεις υλικό [βλ. AUTOEXEC.BAT/CONFIG.SYS]).

 

Και αυτά σε μια εποχή που το Internet ήταν επιστημονική φαντασία, στην καλύτερη περίπτωση κανένα περιοδικό.. :-D

 

Αντίθετα αυτό που χρειαζόμουν εκείνα τα χρόνια ήταν έναν δάσκαλο να δείξει τα βασικά, να σε βάλει στην φιλοσοφία, ναι πως θα κάνεις κλικ ένα button, πως θα ανοίξεις ένα παράθυρο, πως θα διαβάσεις το ποντίκι, πως θα φορτώσεις ένα Menu και επειδή Internet όπως είπα δεν υπήρχε, τον ρόλο αυτό σε πρώτη φάση ανέλαβαν τα βιβλία.. και τι είδα εκεί; Α.. από θεωρητικολογίες για να γεμίζουν σελίδες (και να μην καταλαβαίνεις τίποτα) μέχρι μικροί και συνοπτικοί οδηγοί που έδιναν λύση απλά και κατανοητά (και ορισμένοι γραμμένοι μάλιστα από Έλληνες συγγραφείς ! :-D).

 

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

 

Υ.Γ.

Φυσικά ο καθένας έχει την άποψη του και σωστά αφού δεν είναι όλοι οι μαθητές (άνθρωποι) ίδιοι, νομίζω ότι αντιλαμβάνεσαι το πνεύμα μου.

 

Καλή συνέχεια.

 

:)

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Σε ότι αφορά την Qt, εξακολουθώ να διαφωνώ τελείως και έχω επιβεβαιωθεί πολλές φορές

σε όλα αυτά που γράφω παραπάνω.
Κυρίως από αρχάριους που δεν μπορούσαν καν να ξεκινήσουν  αλλά και από τον εαυτό μου.

 

Αλλά πέραν των παραπάνω, η φιλοσοφία tutorial όπως του greatst είναι λάθος και δείχνει
επιπολαιότητα και τσαπατσουλιά και για άλλους λόγους.
Π.χ. η Qt είναι καθαρά αντικειμενοστρεφής.
Συνεπώς θα έπρεπε κατά την παρουσίαση π.χ. του πώς τίθεται ένα κουμπί ή μια label (ή ότι
άλλο) να παρατεθούν κάποια στοιχεία σχετικά με τον αντικειμενοστρεφή τους χαρακτήρα.
Εδώ αυτό το χαρακτηριστικό απουσιάζει τελείως. Ούτε μια λέξη για κλάση και για αντικείμενο.
Π.χ. για την label, σε ποιά κλάση ανήκει και ποιές είναι οι βασικές της ιδιότητες;
ποιό αρχείο κάνεις Include στην αρχή ; γιατί αυτό και όχι κάποια από τις μητρικές κλάσεις ;
θα γίνει delete στο τέλος ή όχι, δηλ. υπάρχει garbage collection και σε ποιές περιπτώσεις ;
(η qt έχει κάποιες ιδιαιτερότητες εδώ)

 

Όποιος ξέρει C++ και ξεκινήσει να γράψει σε qt, ακόμα και το πιο απλό, αυτά είναι τα πρώτα που
θα αναρωτηθεί - και τα πρώτα που πρέπει να μάθει.
Το να δεις πώς μπαίνει μια Label, έτσι ξεκάρφωτα, χωρίς να τα παραπάνω, είναι τελείως μηχανικό και

δεν σου μαθαίνει τίποτε (διότι έτσι δεν κατανοείς τίποτε από τον βασικό μηχανισμό και την φιλοσοφία της qt).

 

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

να υπάρχει η στοιχειώδης αίσθηση για το πώς δουλεύει το πράγμα χειροκίνητα.
Π.χ. πρώτα πρέπει να δείξεις πώς γράφεις χειροκίνητα ένα slot-signal και πώς λειτουργεί στο βασικό επίπεδο

και, αφού κατανοηθεί αυτό, τότε δείχνεις πώς το βάζεις αυτόματα με το IDE.

 

Μπορώ να επιχειρηματολογήσω πολύ αλλά δεν έχει νόημα, οι βασικές απόψεις μου είναι πιστεύω  κατανοητές.

Όποιος θέλει να μάθει Qτ πρέπει καταρχήν να ξακαθαρίσει τα βασικά που αναφέρονται στο στήσιμο και τον

χειρισμό του api και μετά, όπως είπα, να πάρει ένα-δυο βιβλία που έχουν σαφή διδακτική γραμμή και είναι

επιτυχώς δοκιμασμένα στην πράξη. Από την τεκμηρίωση (help) της Qt ο ενδιαφερόμενος μπορεί να δει τυχόν

λεπτομέρειες που δεν μπορούν να αναφερθούν στα εγχειρίδια λόγω χώρου.
Τutorials σαν το παραπανω είναι μόνο για να χαζέψεις μακροσκοπικά, όχι να τα έχεις ως οδηγό ή αφετηρία.
Ξέρω ότι η κριτική μου είναι αυστηρή αλλά επιμένω σ' αυτήν διότι προέρχεται από τις εμπειρίες αρχαρίων που αντιμετώπισαν τα παραπάνω προβλήματα, δεν μπορούσαν καν να ξεκινήσουν ή ξεκίνησαν στραβά και δεν

προχώρησαν επειδή έβλεπαν tutorials όπως το προτεινόμενο.

Δεν είναι όλοι κατάλληλοι για δάσκαλοι - και ακόμη χειρότερα δεν το αντιλαμβάνονται και

αποπροσανατολίζουν τον μαθητή περισσότερο....

 

-

Επεξ/σία από V.I.Smirnov
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εχω ασχοληθει πολυ με WPF αλλα θα ηθελα να δοκιμασω και το QT. Το documentation μου φενεται λιγο χαος. Ειδικα για QT quick μαλλον μαντικες ικανοτητες πρεπει να εχεις μιας και δεν εβρισκα με τπτ οτι ηθελα.Για να γλιτωσω λιγο πονο V.I smirnoff εχεις καποια βιβλια υποψην;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 5 μήνες μετά...

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα

  • Δημιουργία νέου...