Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [C++] GTK+ image  (gelezen 2453 keer)

Offline niekn

  • Lid
    • omega-xis
[C++] GTK+ image
« Gepost op: 2010/06/22, 19:11:44 »
beste forum

sinds korte tijd ben ik ook bezig in C++ te programmeren.
ik vond het een heel gedoe om überhoupt een schermpje tevoorschijn te toveren.
dus GTK+ is voor mij een uitkomst. nu wil ik (als leerervaring) proberen ene programma te schrijven waarmee je een verkeerslicht kan bedienen.
ik heb ene scherm met knoppen (en de bijbehorende callbacks) en een 2e scherm dat leeg is
nu wil ik in dat 2e scherm een verkeerslicht tekenen. dit kan op de volgende manieren:
1    JPEG (of andere formaten) afbeeldingen
2    drawing area

nu ben ik bij beide manieren vastgelopen, de documentatie hierover is vrij slecht dus

HELP!!


notitie:
ookal is dit programma misschien niets inventiefs, het is om te leren. als mij dit lukt, dan zouden er in de toekomst misschien ingewikkeldere programma's komen. verder ben ik altijd van mening dat de "probeersels" nergens anders thuis horen dan op JOUW harddrive. het internet is namelijk al vol genoeg.

Re: [C++] GTK+ image
« Reactie #1 Gepost op: 2010/06/22, 20:13:28 »
Een gtk_image() is precies wat ge zoekt. Een drawing area is al meer geavanceerd omdat ge dan zelf het verkeerslicht moet gaan tekenen met cairo. Wel leuk, en misschien zelfs handig in de toekomst, maar voor dit is een image voldoende.

Kijk in de reference manual voor info over de image widget: http://library.gnome.org/devel/gtk/unstable/GtkImage.html

Vooral de gtk_image_new_from_file() methode: http://library.gnome.org/devel/gtk/unstable/GtkImage.html#gtk-image-new-from-file

Re: [C++] GTK+ image
« Reactie #2 Gepost op: 2010/06/23, 08:36:08 »
sinds korte tijd ben ik ook bezig in C++ te programmeren.
ik vond het een heel gedoe om überhoupt een schermpje tevoorschijn te toveren.

#include <QtGui/QApplication>
#include <QtGui/QWidget>

#define SYLPH_MAIN_CLASSIC_PARAMS
#include <Sylph.h>

int SylphMain(int argc, char** argv) {
    QApplication app(argc, argv);

    QWidget* w = newgc<QWidget>();
    w->show();
   
    return app.exec();
}
At your service :)
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline niekn

  • Lid
    • omega-xis
Re: [C++] GTK+ image
« Reactie #3 Gepost op: 2010/06/23, 10:39:45 »
ik zal gtkimage() dan nogmaals proberen
er staat wel duidelijk hoe ik een image moet maken, maar niet hoe ik deze in mijn schermpje moet importeren

en euuhh SeySayux?
ik heb al via:
GtkWidget* window
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "besturing");
 g_signal_connect (window, "delete-event",
                      G_CALLBACK (delete_event), NULL);
gtk_widget_show (window);

een schermpje op kunnen roepen, er staan ook al knoppen in.
jouw versie is in QT en niet in GTK...

Re: [C++] GTK+ image
« Reactie #4 Gepost op: 2010/06/23, 11:58:33 »
jouw versie is in QT en niet in GTK...
En daar is een reden voor... ;)
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: [C++] GTK+ image
« Reactie #5 Gepost op: 2010/06/23, 13:14:32 »
Ik heb alleen ervaring met PyGTK, maar gtk.Window is een subclass van gtk.Container waar widgets in geplaatst kunnen worden. Dus gebruik de add() methode van gtk.Container om widgets toe te voegen.

Offline niekn

  • Lid
    • omega-xis
Re: [C++] GTK+ image
« Reactie #6 Gepost op: 2010/06/26, 18:16:32 »
oke ik heb t geprobeerd (ik ben er in ieder geval mee verder gekomen dus bedankt!), nu krijg ik dit:



goed nieuws: hij weet dat t een image moet zijn!
slecht nieuws: hij weet het image NIET te vinden. zelfs niet als ik het pad absoluut maak!
ik heb png en jpg gebruikt, maar dit moet eigenlijk niet zoveel uitmaken

misschien ligt het aan code::blocks???

in ieder geval.. ik ben nu zo dichtbij!!! ik wil graag dat het werkt

de code (alleen van het image) is als volgt: (en ja ik heb bovenaan een widget image gedeclareert, ik krijg namelijk 0 errors)

create_image (void)
{

  image = gtk_image_new_from_file ("red.jpg");

  gtk_container_add (GTK_CONTAINER (drawing), image);

  g_signal_connect (G_OBJECT (drawing),
                    "button_press_event",
                    G_CALLBACK (button_red_pressed),
                    image);

  return image;

hij zit dus gekoppeld aan drawing (mijn schermpje)
vervolgens stant in main()

drawing = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 g_signal_connect (drawing, "delete-event",
                      G_CALLBACK (delete_event), NULL);
 gtk_container_set_border_width (GTK_CONTAINER (drawing), 80);

gtk_widget_show_all (drawing);


en daarna de gebruikelijke gtk commando's die er hier niet toe doen....
« Laatst bewerkt op: 2010/06/28, 10:17:39 door niekn »

Offline niekn

  • Lid
    • omega-xis
Re: [C++] GTK+ image
« Reactie #7 Gepost op: 2010/06/29, 10:26:32 »
...

Re: [C++] GTK+ image
« Reactie #8 Gepost op: 2010/07/01, 22:14:22 »
sinds korte tijd ben ik ook bezig in C++ te programmeren.
ik vond het een heel gedoe om überhoupt een schermpje tevoorschijn te toveren.

#include QtGui/QApplication>
#include QtGui/QWidget>

#define SYLPH_MAIN_CLASSIC_PARAMS
#include <Sylph.h>

int SylphMain(int argc, char** argv) {
    QApplication app(argc, argv);

    QWidget* w = newgc<QWidget>();
    w->show();
    
    return app.exec();
}

At your service :)

AAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!

LOL  :evil:
« Laatst bewerkt op: 2010/07/01, 22:17:46 door Glenn nl »

Re: [C++] GTK+ image
« Reactie #9 Gepost op: 2010/07/03, 21:05:13 »
AAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!

LOL  :evil:
Iemand hier die niet tegen een goed gestructureerde toolkit kan en dus maar brol gebruikt? :P
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline niekn

  • Lid
    • omega-xis
Re: [C++] GTK+ image
« Reactie #10 Gepost op: 2010/07/04, 09:42:19 »
bljikbaar wel, maar hij had de regel eronder niet gelezen... een schermpje was mij al gelukt via GTK