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

Σε τι γραφετε Windows GUI


Evgenios1

Ποιο framework χρησιμοποιείτε για κατασκευή GUI σε πλατφόρμα Microsoft Windows;  

5 μέλη έχουν ψηφίσει

  1. 1. Ποιο framework χρησιμοποιείτε για κατασκευή GUI σε πλατφόρμα Microsoft Windows;



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

Δημοσ.

Ως γνωστων υπαρχουν παρα πολλα api για την δημιουργια gui σε windows os. Θα ηθελα να μου πειτε ποιο ή ποια απο αυτα χρησιμοποιειτε και για ποιο λογο.

Δημοσ.

VCL από συνήθεια κυρίος όταν ξεκίνησα υπήρχαν τα VCL & MFC το MFC είναι σε C++ όποτε και δεν με ενδιέφεραι να μάθω.

Δημοσ.

Κοίταξα πριν 2 βδομάδες Qt, πορώθηκα άπειρα. Άμα είναι για κάτι σοβαρό θα μάθω Qt, άμα είναι για κάτι της πλάκας γράφω σε .net (C#)...

Δημοσ.

Σωστός thanos713 !!

Είσαι σε καλό δρόμο...

 

Eγώ είχα μάθει κάποτε το MFC και το win32 (σε ότι αφορά το GUI) αλλά η Qt είναι σαφώς ανώτερη σε πολλά.

Μόλις βρω χρόνο θα την πιάσω στα σοβαρά.

Παραταύτα το win32 κατά περίπτωση χρειάζεται...

 

-

Δημοσ.

Προσωπικά γράφω σε Qt. Πέρα από GUI έχει βιβλιοθήκες σχεδόν για τα πάντα (SQL, XML, scripting, 2D graphics, OpenGL κτλ κτλ). Αυτό που μου αρέσει πολύ είναι ότι είναι απίστευτα οργανωμένο API. Δεν είναι τυχαίο που ο δημιουργός της C++ το έχει ως σημείο αναφοράς.

Δημοσ.

Μήπως είναι καλύτερα να χρησιμοποιούμε την STL αντί της Qt εκεί όπου επικαλύπτονται ;

To ρωτώ επειδή η STL είναι στάνταρ για την C++.

 

-

Δημοσ.
Μήπως είναι καλύτερα να χρησιμοποιούμε την STL αντί της Qt εκεί όπου επικαλύπτονται ;

To ρωτώ επειδή η STL είναι στάνταρ για την C++.

 

-

 

καλύτερο από πλευράς υλοποίησης, μνήμης κτλ?

 

 

το qt πάντως είναι απλά καταπληκτικό. Υπερπλήρες, προσαρμόσιμο, σύγχρονο cross platform και πολλά άλλα. Δεν είναι τυχαίο που έχει γίνει port σε java αντικαθιστώντας το ολοένα και αρχαιότερο swing το οποίο φυσικά και για την εποχή του είχε γίνει σημείο αναφοράς...

Δημοσ.

Καλύτερο ως προς το ότι ανήκει στο standard της ίδιας της γλώσσας.

Το Qt μπορεί να πλεονεκτεί στα κοινά τους θέματα αλλά δεν συγκαταλέγεται στον κορμό της C++.

Εκεί όπου επικαλύπτονται δεν είναι προτιμότερο να εξοικοιωθούμε με αυτό που περιέχει η C++ εγγενώς ;

Αυτό ρωτώ..

 

-

Δημοσ.
Καλύτερο ως προς το ότι ανήκει στο standard της ίδιας της γλώσσας.

Το Qt μπορεί να πλεονεκτεί στα κοινά τους θέματα αλλά δεν συγκαταλέγεται στον κορμό της C++.

Εκεί όπου επικαλύπτονται δεν είναι προτιμότερο να εξοικοιωθούμε με αυτό που περιέχει η C++ εγγενώς ;

Αυτό ρωτώ..

 

-

Δεν αναφερομαι σε γλωσσες, αλλα σε apis (framework,toolkit)

Δημοσ.
Δεν αναφερομαι σε γλωσσες, αλλα σε apis (framework,toolkit)

 

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

 

Δεν προσαρμόζεσαι στην γλώσσα' date=' προσαρμόζεις την γλώσσα...

[/quote']

Συμφωνώ απόλυτα... με την ίδια λογική δεν θα πρεπε να χρησιμοπούμε τα QString του qt αλλά τα Strings της c++, ή αν είμαστε πορωμένοι cstring... Κάτι που πρακτικά όμως μου φαίνεται αδύνατο, γιατί όλες οι συναρτήσεις του qt δέχονται QString. Οπότε σωστά πρέπει να προσαρμόσουμε την γλώσσα... Το Qt θα πρέπει πιστεύω να το αντιλαμβανόμαστε σε "θεωρητικό" επίπεδο όχι σαν επέκταση της c++ αλλά περισσότερο σαν ένα επίπεδο πιο πάνω (και επέκταση φυσικά)...

Δημοσ.

Το Qt πέραν των ειδικών λειτουργιών και των δυνατοτήτων που έχει για την δημιουργία GUI,

περιέχει και μια πληθώρα ευκολιών που εν πολλοίς επικαλύπτονται με αντίστοιχες της STL.

 

Δεδομένου ότι η STL αποτελεί ένα ευρέως αποδεκτό και καθιερωμένο στάνταρ, αναπόσπαστο πλέον

τμήμα της C++, δεν είναι σκοπιμότερο να χρησιμοποιούμε καταρχήν αυτήν αντί για την Qt όταν και

όπου μας παρέχει (η STL) την λειτουργικότητα που χρειαζόμαστε ;

Δεν είναι πιο καλά από την άποψη ότι είμαστε πιο κοντά στην τυπική, εγγενή γλώσσα/στάνταρ ;

Γνώμη επ΄αυτού ζήτησα...

 

 

Eιδικά σε ότι αφορά τα strings, νομίζω κάνεις λάθος :

όλες οι εντολές της Qt που δέχονται τύπο QString δέχονται επίσης και τον τύπο string της STL.

Το QString της Qt και το string της STL μπορούν να αναμιχθούν αδιακρίτως χωρίς σημεία "ραφής".

(Εκτός αν δεν θυμάμαι καλά - διορθώστε με.)

 

Ωστόσο, η QString πλεονεκτεί διότι χειρίζεται ενδογενώς Unicode χαρακτήρες ενώ η string όχι.

Μάλιστα, και πάλι αν θυμάμαι καλά, οι εντολές toStdString και fromStdString μετατρέπουν ένα QString που είναι Unicode σε string ASCII της STL.

 

-

Δημοσ.

 

Eιδικά σε ότι αφορά τα strings, νομίζω κάνεις λάθος :

όλες οι εντολές της Qt που δέχονται τύπο QString δέχονται επίσης και τον τύπο string της STL.

Το QString της Qt και το string της STL μπορούν να αναμιχθούν αδιακρίτως χωρίς σημεία "ραφής".

(Εκτός αν δεν θυμάμαι καλά - διορθώστε με.)

 

 

 

-

 

η αλήθεια είναι ότι ξεφεύγουμε λίγο από το θέμα...

αλλά δοκιμάζοντας στα γρήγορα το QDebug βλέπω ότι πέρνει καμιά 11αριά τύπους αλλά όχι string. Φυσικά και μπορείς να δημιουργίσεις ένα QString από string τόσο με fromStd τόσο με τον αντίστοιχο constructor (ή απλά να χρησιμοποιήσεις το QDebug με .toCstring που το δέχεται). Αλλά επιμένω ότι καθαρά ως string δεν θα λειτουργήσει αυτό σε πανοραμική άποψη. Μπορεί να κάνω και λάθος απλά μου φαίνεται ότι όταν άρχισα τους πειραματισμούς μου, αυτό ήταν το πρώτο μου bug. Έτσι αποφάσισα να στραφώ μόνο στα QString. Κατ' αντιστοιχείαν πιστεύω ότι πρέπει να χρησιμοποιούμε τις αντίστοιχες δομές του framework στους αντίστοιχους τομείς γιατί έτσι ίσως γλιτώνουμε και βήματα ή ακόμα καλύτερα μέσω του subclassing τα φέρνουμαι στα μέτρα μας...

Το framework αυτό, νομίζω αρχής εξαρχής αυτό έχει ως αποτέλεσμα. Ειδικά σε μια γλώσσα όπως η c++ να μην είσαι συνεπής με την υλοποίηση της αλλά να χρησιμοποιείς το δικό του πακέτο με το αντίστοιχο επίπεδο αφαίρεσης.

Σκέψου ότι όντως τo stl έxei ίσως όλα όσα χρειάζεσαι για δομές δεδομένων κτλ, αλλά σε όλους τους άλλους τομείς πως θα μπορούσες να επιτύχεις αυτά που προσφέρει το Qt? αφού λοιπόν και αλλού δεν κάθεσαι να ορίσει από το χαμηλό επίπεδο πως γίνεται ένα http connection αντίστοιχα θα κινηθείς και στο stl. Και ας έχει και αυτό το δικό του επίπεδο αφαίρεσης. Δεν ξέρω ούτε είμαι κατηγορηματικός σε όσα γράφω μπορεί εντέλει να χω και άδικο!!!

Δημοσ.
VCL από συνήθεια κυρίος όταν ξεκίνησα υπήρχαν τα VCL & MFC το MFC είναι σε C++ όποτε και δεν με ενδιέφεραι να μάθω.

 

Ωραίος!! :-)

 

Να υποθέσω και Delphi / Builder / VCL.NET κλπ κλπ??

 

Με συγχωρείς που ρωτάω αλλά, δεν συναντάω συχνά ανθρώπους να παίζουν CodeGear (παύλα) Embarcadero ( πρώην ) Borland ... ;)

Δημοσ.

Για native εφαρμογές εδώ και πολλά χρόνια προτιμώ την VCL σε μορφή C++ Builder (προ αμνημονεύτων ετών είχα ασχοληθεί με το OWL αντί του MFC). Ενίοτε μπορεί να στραφώ στο WinAPI (όλο και λιγότερο για πλήρης εφαρμογές). Το τελευταίο διάστημα χρησιμοποιώ και το .ΝΕΤ WinFοrms το οποίο είναι σε μεγάλο βαθμό η εκδοχή της VCL σε managed κώδικα. Κατά καιρούς μπορεί να ασχοληθώ με το Qt αλλά σε Windows τίποτε δεν νίκα την ταχύτητα ανάπτυξης των VCL & .ΝΕΤ WinFοrms οπότε για αυτό το Λ.Σ. το θέμα προγραμματισμού του για εμένα έχει λυθεί με αυτά τα δυο frameworks και όπου υπάρχει ανάγκη για πιο εξωτικά πράματα WinAPI/COM.

 

Υ.Γ.

1. Σχετικά με τα QT containers. Ευτυχώς τα περισσότερα είναι interchangable με εκείνα της STL οπότε no problem ο προγραμματιστής μπορεί να χρησιμοποιήσει ότι τον εξυπηρετεί δίχως να χάσει τα STL utilities. Προσωπικά όταν έχω να επιλέξω μεταξύ QT container και STL καταλήγω στο πρώτο καθώς προσφέρει περισσότερες δυνατότητες (βλ. QStack το οποίο κληρονομεί επίσης το σύνολο του QVector σε σχέση με το φτωχό STL Stack). Μάλιστα το πράμα πάει πιο μακριά καθώς τα containers υποστηρίζουν δυο μεθόδους iteration: STL iterators και Java-Style iterators.

2.

Το framework αυτό, νομίζω αρχής εξαρχής αυτό έχει ως αποτέλεσμα. Ειδικά σε μια γλώσσα όπως η c++ να μην είσαι συνεπής με την υλοποίηση της αλλά να χρησιμοποιείς το δικό του πακέτο με το αντίστοιχο επίπεδο αφαίρεσης.

Σωστή παρατήρηση. Άλλωστε και μόνο το γεγονός ότι για την υλοποίηση Signals/Slots μεσολαβεί ο MOC (Meta-Object-Compiler) υποδεικνύει ότι πιάσαμε & ξεπεράσαμε τα όρια του C++ Standard το οποίο "per se" δεν ορίζει κάποια message-driven αρχιτεκτονική.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

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