einfache MessageBox?

Post Reply
Message
Author
Blues__

einfache MessageBox?

#1 Post by Blues__ »

gibt es unter Linux einen ähnlich einfachen weg, eine MessageBox darzustellen (d.h. mit nur einem kommando?).

Wen ja, welche Systemfunktion macht sowas?

bakunin
Posts: 597
Joined: 16. Aug 1999 6:44
Location: Lorsch (Südhessen)
Contact:

Re: einfache MessageBox?

#2 Post by bakunin »

Hi!

*System*funktion? Da fällt mir ganz spontan write() ein. Wenn es um X11 geht: Welches Toolkit willst du denn verwenden bzw. verwendest du?

Cheers,
Wolfgang

Blues__

Re: einfache MessageBox?

#3 Post by Blues__ »

Ohoh, das klingt ja recht chaotisch! Die Messagebox sollte auf alle fälle unter jeder Oberfläche (KDE, Gnome, FVWM,...) funktionieren. Wie das letztenendes gelöst wird, ist mir egal - hauptsachem, es ist in C möglich

bakunin
Posts: 597
Joined: 16. Aug 1999 6:44
Location: Lorsch (Südhessen)
Contact:

Re: einfache MessageBox?

#4 Post by bakunin »

Hi!

Garantiert überall laufen (genauer: Überall, wo es X11 gibt <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">) wird es mit der "plain old" Xlib. Da diese Schnittstelle nicht unbedingt den neuesten Trends entspricht, gibt es da keine einzelne Funktion für sowas, aber es spricht ja nichts dagegen, einmal eine zu schreiben und diese die nächsten Jahre zu verwenden.

Cheers,
Wolfgang

Blues__

Re: einfache MessageBox?

#5 Post by Blues__ »

Hm, da muß doch aber schon eine Standard-lösung existieren, oder nicht? Schließlich tauchen solche Messageboxen in jedem Programm auf, z.b. für fehlermeldungen etc.

andib
Posts: 277
Joined: 20. Jun 2000 14:18
Location: Dortmund

Re: einfache MessageBox?

#6 Post by andib »

Um es kurz zu machen:
Unter C existiert ein solcher Befehl nicht. Unter C++ folglich auch nicht, vollkommen unabhängig davon, ob es unter Linux, Windows, BSD, Mac oder was weiss ich läuft.
Du *musst* irgendein Toolkit verwenden. *Überall* läuft es *immer* (solange X11 läuft) wenn du die Xlib verwendest, wie Wolfgang erwähnte. Das willst du aber garantiert nicht (es sei denn du hast zuviel Zeit dich in sowas einzuarbeiten - oder du willst ein eigenes Toolkit programmiere <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle"> ).
Am ehesten ist da QT, GTK oder ähnliches zu empfehlen, wobei QT für KDE verwendet wird (nur C++), GTK für Gnome (auch C). Solange diese beiden Bibliotheken installiert sind, läuft dieses Programm unter jedem Desktop/Windowmanager - d.h. ein KDE Programm auch unter Gnome und fvwm etc.
Da du aber offenbar noch keines dieser Toolkits verwendest, vermute ich, dass du gar kein X11 Programm schreiben willst, also reicht da nicht einfach printf? Oder eine andere Konsole Bibliothek (ncurses o.ä.)?

CU
Andi

Blues__

Re: einfache MessageBox?

#7 Post by Blues__ »

Hm, scheinbar ist das wirklich recht inkonsistent.

Also zu meinem Problem: Das Programm läuft eigentlich komplett im Hintergrund. Allerdings will ich mögliche Fehlermeldungen eben nicht in eine Konsole bringen (wo man sie übersehen kann) sondern gut sichtbar darstellen.

Nehmen wir doch mal GTK: Wie wäre es da zu realisieren?

Vielen Dank!

Sebastian Ude

Re: einfache MessageBox?

#8 Post by Sebastian Ude »

Mit Gtk könnte das z.B. so aussehen:


/* Start */

GtkWidget *window, *hbox, *vbox, *label, *button;

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, TRUE);
gtk_container_set_border_width(GTK_CONTAINER(window), 5);

label = gtk_label_new("Ich bin ein Fehler !");

button = gtk_button_new_with_label(" Ok ");
gtk_signal_connect_object( GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(window) );

hbox = gtk_hbox_new(FALSE, 0);
vbox = gtk_vbox_new(FALSE, 5);

gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
gtk_container_add(GTK_CONTAINER(window), vbox);

gtk_widget_show_all(window);

/* Ende */

Hansi

Re: einfache MessageBox?

#9 Post by Hansi »

Hallo! Welche includefiles und compileroptionen benötige ich denn, damit sich das programm comilieren läßt?

mfg

Hansi

Sebastian Ude

Re: einfache MessageBox?

#10 Post by Sebastian Ude »

Du musst <gtk/gtk.h> includen.

Dann ist noch wichtig, dass du bevor irgendeine gtk*-Funktion benutzt wird gtk_init aufrufst.
Mach das am besten gleich am Anfang in main, schon weil gtk_init argc und argv übergeben werden ist main dafür kein schlechter Ort.

Ausserdem muss die Gtk-Hauptschleife (gtk_main()) gestartet werden nach dem alle Widgets erstellt und alle Callbacks verbunden sind.

Beim compilieren gibst du dem gcc am besten einfach 'gtk-config --cflags --libs' mit an.

Hansi

Re: einfache MessageBox?

#11 Post by Hansi »

Vielen Dank, mal sehen ob es klappt!

Gibt es eigentlich noch andere Programmierer-Foren für Linux?

TTTom

Re: einfache MessageBox?

#12 Post by TTTom »


Post Reply