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

Προγραμματισμός με γραφικά σε Linux: από πού να αρχίσω;


nikolaos_

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

Δημοσ.

Αρχίζω από το απόλυτο μηδέν. Με ενδιαφέρει να με ειδοποιήσει κάποιος σε όσα θα αναφέρω σε περίπτωση που δεν έχω καταλάβει καλά κάτι. Μάλλον όσοι κάνουν development θα απαντήσουν πάντως.

 

Με ενδιαφέρει να κατασκευάσω μια αυτόνομη εφαρμογή, ένα executable πρόγραμμα, το οποίο να κάνει χρήση γραφικών σε οποιοδήποτε GUI των Linux. Δηλαδή, ένα παράθυρο σε Gnome, KDE, Xfce, ή οτιδήποτε που μέσα θα έχει γραφικά που φυσικά θα προγραμματίσω εγώ. (Θέλω και κάτι σε terminal αλλά πέφτουν πολλά μαζί)

 

Σε πρώτη φάση λοιπόν μάλλον θέλω να μάθω προγραμματισμό πάνω στο X11.

 

Αυτό που θα κάνει το πρόγραμμα είναι να διαβάζει από μια τοπική database δεδομένα (σε μορφή κειμένου) και να κάνει μια γραφική οπτικοποίηση συμβόλων ανάλογα με το τι θα διαβάσει. Πρακτικά οι απεικονίσεις όλες θα είναι διδιάστατες, οπότε δεν θέλω υπολογιστική ισχύ (το αντίθετο). Ωστόσο διδιάστατα διανυσματικά γραφικά θα με ενδιέφεραν.

 

Η database, σημαντικό, είναι σε κατασκευασμένη σε access. Δηλαδή επιπλέον θέλω και καθοδήγηση για το πώς να φτιάξω κώδικα που να διαβάζει από τέτοιο format. Δεν παίζει περίπτωση να μετατρέπω το αρχείο σε access format.

 

Υπόψη οτιδήποτε σε web περιβάλλον ή σε flash δεν με ενδιαφέρουν. Θέλω αυστηρά τοπικά εκτελέσιμο αρχείο, σε μια μηχανή που μπορεί να μην έχει καν σύνδεση στο δίκτυο.

 

Ξέρω καλή C / C++ αλλά δεν ξέρω βιβλιοθήκες. Ξεκινώ από το μηδέν.

 

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

 

Η σχεδιαστική ιδέα προγραμματισμού που έχω γνωρίσει και έχω εξασκηθεί είναι να φτιάχνω ένα τεράστιο κώδικα και να τον κάνω compile με gcc. Είμαι πολύ αρχαιοπρεπής.

 

Το IDE eclipse επίσης, το προτείνετε ή κάτι άλλο;

Δημοσ.
Η σχεδιαστική ιδέα προγραμματισμού που έχω γνωρίσει και έχω εξασκηθεί είναι να φτιάχνω ένα τεράστιο κώδικα και να τον κάνω compile με gcc. Είμαι πολύ αρχαιοπρεπής.

 

http://en.wikipedia.org/wiki/Xlib

http://tronche.com/gui/x/xlib-tutorial/

http://tronche.com/gui/x/xlib-tutorial/2nd-program-anatomy.html

 

http://en.wikipedia.org/wiki/GTK%2B

http://en.wikipedia.org/wiki/Qt_(toolkit)

http://en.wikipedia.org/wiki/FLTK

http://en.wikipedia.org/wiki/Tk_(framework)

 

δες αυτά

μέχρι να απαντήσουν οι ειδικοί

 

 

έχει απαντηθεί κάτι παρόμοιο πιό παλιά

ψάξε στο forum

 

καλό κουράγιο

 

.

Δημοσ.
Η database, σημαντικό, είναι σε κατασκευασμένη σε access. Δηλαδή επιπλέον θέλω και καθοδήγηση για το πώς να φτιάξω κώδικα που να διαβάζει από τέτοιο format. Δεν παίζει περίπτωση να μετατρέπω το αρχείο σε access format.

 

Για να έχεις πρόσβαση σε access database θα πρέπει να εγκαταστήσεις κάποιον odbc driver manager π.χ.: http://www.unixodbc.org/ . Επίσης θα χρειαστείς και ένας odbc connector. Αυτός χρειάζεται για την επικοινωνία της εφαρμογής με την βάση δεδομένων. Συνήθως ο connector είναι εξαρτημένος απο ποίο toolkit θέλεις να χρησιμοποιήσεις. Στην Qt για παράδειγμα έχεις την δυνατότητα να δημιουργήσεις τον coonector είτε σαν μέρος του αρχικού modul QtSql είτε ξεχωριστά σαν plugin.

 

Για να δείς αν η πρόσβαση είναι επιτυχείς χρειάζονται οι παρακάτω γραμμές κώδικα:

>QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=mydb.mdb");
if(db.open())
{
   // ...
}

 

Περισσότερα δεν μπορώ να σου πω γιατί δεν ασχολούμε με access. Αν αποφασίσεις να ασχοληθείς με Qt να ξέρεις ότι θα δυσκολευτείς αρκετά στην αρχή μέχρι να καταλάβεις την φιλοσοφία της. Αυτό πιστεύω να ισχύει και για τις άλλες βιβλιοθήκες.

 

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

Πόσο παλιοί είναι; Πάντως οι Qt βιβλιοθήκη χρησιμοποιείται και σε embedded linux συστήματα.

 

Το IDE eclipse επίσης, το προτείνετε ή κάτι άλλο;

 

Καλό είναι, αλλά αν θέλεις κάτι πιο ελαφρύ(σε απαιτήσεις και χαρακτηριστικά) κάνε μια αναζήτηση για code::blocks ή χρησιμοποιήσε terminal + text editor :P

Δημοσ.

Μου είναι πιο native το terminal + text editor, αλήθεια. Έτσι έμαθα να προγραμματίζω, δε μπορώ ένα ide με τίποτε... γι' αυτό ψάχνω ένα καλό μπας και μάθω πάνω του.

 

Μέχρι στιγμής διαπιστώνω ότι η χρήση C με Xlib είναι αυτά που χρειάζομαι για τα γραφικά. Για την access βλέπουμε.

 

Οπότε ψάχνω ένα καλό βοήθημα για την xlib... αυτά που έχω βρει ως τώρα είναι ανοικονόμητα user reference όχι πολύ κατατοπιστικά στη χρήση τους.

Δημοσ.
http://tronche.com/gui/x/xlib-tutorial/prog-2.cc

http://tronche.com/gui/x/all-request.cc

http://tronche.com/gui/x/xlib/

 

ο tronche είναι μια καλή πηγή

νομίζω

δεν είμαι προγραμματιστής

 

καλό κουράγιο

 

.

 

Εντόπισα και αυτό, να είσαι καλά.

 

Διαβάζοντας, τώρα, μου έχουν δημιουργηθεί ήδη απορίες,

 

(1) Τι διαφέρουν τα πακέτα libxt-dev, libxaw7-dev, xlib ?

 

(2) Άλλα προγράμματα σε C ξεκινούν με

 

>#include <X11/Xlib.h>

 

κι άλλα με

 

>#include <X11/Intrinsic.h>
#include <X11/StringDefs.h>
#include <X11/Shell.h>
#include <X11/Xaw/Form.h>
#include <X11/Xaw/Command.h>

 

και φυσικά το ένα σετ δε τρέχει κώδικα του άλλου.

 

(3) Δεν έχει τρόπο να φορτώσω μια δική μου εικόνα σαν background σε παράθυρο, από τα λίγα που διάβασα. Ή θα πρέπει να βρω/φτιάξω πρόγραμμα C που να διαβάζει ένα .bmp (τέτοια έχω) και να το μετατρέπει σε "εντολές" των X, ή θα πρέπει να μπω σε διαδικασία να κάνω developing με πιο abstract εργαλεία, GTK+, Qt κλπ. Έτσι διάβασα.

 

Αυτά τα ολίγα, κουράγιο... γιοκ.

Δημοσ.

Φίλε nikolaos_ γράφουμε με τον ίδιο τρόπο: λέφτερα πηγαία αρχεία C (ύφος K&R) και εκτελέσιμα που τρέχουν σαν νυχτερίδες απ' την κόλαση; :-)

 

Ενίοτε με πιάνει το "γραφικό" μου και ψιλοψάχνω τι παίζεται με βάση τις ακόλουθες προδιαγραφές:

- Ελεύθερο λογισμικό

- Μεταφερσημότητα

- Διάρκεια στο χρόνο

- Αποδοχή απ' την κοινότητα

 

Προ πενταετίας και με την βοήθεια αυτής της ιστοσελίδας http://www.free-soft.org/guitool

κατέληξα σε http://wxwidgets.org/ (το είδα και μια ευκαιρία για C++ αλλά μόνο στα θέματα διεπαφής με το περιβάλλον :) ) Έκτοτε δεν έχει αλλάξει η προτίμησή μου και δεν διαψεύστηκα...

 

Προτείνω απλά ρίξε μια ολιγόλεπτη ματιά και εκεί.

Δημοσ.
Εντόπισα και αυτό, να είσαι καλά.

 

Φίλε nikolaos_

όπως έγραψα

δεν είμαι προγραμματιστής

απλά μ' ενδιαφέρουν τα γραφικά και ο προγραμματισμός

 

τα λίγα και απλοϊκά προβλήματα μου

τα λύνω με tcl/tk

και με άκομψο τρόπο:mrgreen:

 

είσαι τυχερός που εμφανίστηκε ο chiossif

 

.

Δημοσ.

η Τcl είναι interpreted γλώσσα προγραμματισμού ή scripting γλώσσα αν προτιμάς (όπως η Perl, Ruby, Python, κλπ) και η Τκ είναι το GUI toolkit το οποίο γίνεται port και σε άλλες γλώσσες φυσικά. :-)

Δημοσ.
Φίλε nikolaos_ γράφουμε με τον ίδιο τρόπο: λέφτερα πηγαία αρχεία C (ύφος K&R) και εκτελέσιμα που τρέχουν σαν νυχτερίδες απ' την κόλαση; :-)

 

Ενίοτε με πιάνει το "γραφικό" μου και ψιλοψάχνω τι παίζεται με βάση τις ακόλουθες προδιαγραφές:

- Ελεύθερο λογισμικό

- Μεταφερσημότητα

- Διάρκεια στο χρόνο

- Αποδοχή απ' την κοινότητα

 

Προ πενταετίας και με την βοήθεια αυτής της ιστοσελίδας http://www.free-soft.org/guitool

κατέληξα σε http://wxwidgets.org/ (το είδα και μια ευκαιρία για C++ αλλά μόνο στα θέματα διεπαφής με το περιβάλλον :) ) Έκτοτε δεν έχει αλλάξει η προτίμησή μου και δεν διαψεύστηκα...

 

Προτείνω απλά ρίξε μια ολιγόλεπτη ματιά και εκεί.

 

Tcl είναι πιο παλιά κι από την επανάσταση μου φαίνεται...

 

Δεν έχω κοιτάξει ακόμη τα wxwidgets. Σε πρώτη ματιά δείχνουν καλά.

 

Με ενδιαφέρει η "στιβαρότητα" μιας εφαρμογής. Σβέλτα γραφικά, για να κουβαλούν πληροφορία, όχι αισθητικά eye candy.

Δημοσ.
Tcl είναι πιο παλιά κι από την επανάσταση μου φαίνεται...

 

είναι η επανάσταση ! :mrgreen:

μη δίνεις σημασία είμαι άσχετος

 

.

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

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

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