GTK-frage



  • Guten Morgen aller seits

    ich bin gerade dabei ein GUI-Prog in C mit gtk zu schreiben hab eigentlich auch alles so hin bekommen wie ich es wollte jetz hab ich nur noch ein Problem.
    Und zwar ich will das mein Programm mir den status anzeigt also so ein kleines Protokoll macht so wie dieses
    hier: http://img13.imageshack.us/i/forumfrage.png/

    kann mir da jemand helfen
    ich benutze Codeblocks mit dem GNU GCC Compiler

    schon mal danke
    mfg Fragili

    ps: wer eine Schreibfehler findet darf ihn behalten



  • ... Du schreibst das ganz normal in eine sequentielle Datei, wenn ein Êvent auftritt oder Du benutzt die Glib Funktion

    g_log_set_handler

    http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html
    für Systemereignisse - oder ich habe Deine Frage nicht richtig verstanden.. 😕



  • Falls du das Widget meinst, welches dafür verwendet wird; das ist ein ganz normales TextView.



  • @hijklmnop danke für deine Antwort habs jetz mit TextView hinbekommen danke



  • guten morgen

    also sorry wenn ich das jetz noch hier rein schreibe aber ich hab da noch ne frage

    also ich hab jetz mein GUI prog mit gtk vollendet
    jetz hab ich nurn och ein problemm
    ich kann kliocken und machen was ich will es öffnet auch immer genau die fenster die ich haben möchte
    nur ich brauche eine schleife im gtk die das datum und uhrzeit einliest wie das geht weiß ich schon nur das soll solange gemacht werden bis ne bestimte zeit erreicht ist also muss ich in einer schleife das machen das prob is jetzt nur das
    wenn ich in gtk was klicke führt er einfach die schleife aus und reagiert nicht auf meine gedrückten button das is ja auch logisch da ja das prog mit der schleife beschäftigt ist. nur wie mach ich das der die schleife zwar abarbeitet aber gleichzeitig auch die buttons abfragt. weil wenn uch das mit einer großen ober schleife über das ganze gtk zeug mach dann erstellt er mir unentlich fenster ich komm irgend wie nicht weiter kann mir jemand helfen

    mfg fragili



  • Threads oder etwas vergleichbares brauchst du.



  • kannst du mir ein beispiel prog geben ??
    oder an eine einfachen beispiel erklären ??



  • fragili schrieb:

    guten morgen

    also sorry wenn ich das jetz noch hier rein schreibe aber ich hab da noch ne frage

    also ich hab jetz mein GUI prog mit gtk vollendet
    jetz hab ich nurn och ein problemm
    ich kann kliocken und machen was ich will es öffnet auch immer genau die fenster die ich haben möchte
    nur ich brauche eine schleife im gtk die das datum und uhrzeit einliest wie das geht weiß ich schon nur das soll solange gemacht werden bis ne bestimte zeit erreicht ist also muss ich in einer schleife das machen das prob is jetzt nur das
    wenn ich in gtk was klicke führt er einfach die schleife aus und reagiert nicht auf meine gedrückten button das is ja auch logisch da ja das prog mit der schleife beschäftigt ist. nur wie mach ich das der die schleife zwar abarbeitet aber gleichzeitig auch die buttons abfragt. weil wenn uch das mit einer großen ober schleife über das ganze gtk zeug mach dann erstellt er mir unentlich fenster ich komm irgend wie nicht weiter kann mir jemand helfen

    mfg fragili

    Ich habe Deine Frage schon wieder nicht richtig verstanden....
    Ich versuche es mal wiederzugeben: Also Du hast den normalen gtk_main Loop. Dazwischen möchtest Du einen Timer "kontrollieren", etwa runterzählen (?); Wie Du ja sicher weisst, werden Deine Buttons im gtk_main abgefragt und dadurch Deine Callback Funktionen aufgerufen. Das sollte eigentlich klar sein. - oder?
    Wenn Du einen Timer zusätzlich benötigst schau Dir doch mal folgenden Link an:
    http://www.gtk.org/api/2.6/glib/glib-The-Main-Event-Loop.html
    insbesondere

    g_timeout_add

    Vielleicht hilfts



  • also ich hab das so gemeint:

    ich hab meine schleife die ja die buttons abfrägt
    so nun will ich aber eine schleife haben die andauernt die zeit enliest
    das prob is ja das die schleife eine entlos schleife sein muss da ich
    das ergebnis immer abfrage und wenn ne bestimmte zeit ereicht ist macht es hald
    was. nun hab ich aber merere zeiten bei denen was gemacht wirt aslo muss die
    schleife immer weiter laufen und das soll lonage gemacht werden bis man den bestimmten butto drückt nun start ich die schleife mit einen button und der
    bleit ja solange gedrück bis die funktion beendent ist also kann ich es nict mit
    meinen ende button beenden
    ich hoffe ich hab es jetzt besser erklären können



  • fragili schrieb:

    ich hab meine schleife die ja die buttons abfrägt

    Das sollte doch die gtk_main sein - oder??
    Welche Programmiersprache verwendest Du??



  • äm ja des machts ja ich habs nur ein bischen besser ausführen wollen



  • Gut - also kommen wir zum nächsten Punkt

    fragili schrieb:

    so nun will ich aber eine schleife haben die andauernt die zeit enliest
    das prob is ja das die schleife eine entlos schleife sein muss da ich
    das ergebnis immer abfrage und wenn ne bestimmte zeit ereicht ist macht es hald
    was.

    Hier greift genau mein Vorschlag in meinem oberen Beitrag:

    g_timeout_add

    Mit dieser Funktion kannst Du festlegen, dass eine bestimmte Funktion (Callback) in einem bestimmten Intervall aufgerufen wird (völlig unabhängig, was der Benutzer macht). Ich denke das trifft Deine obige Angabe...

    fragili schrieb:

    nun hab ich aber merere zeiten bei denen was gemacht wirt aslo muss die
    schleife immer weiter laufen und das soll lonage gemacht werden bis man den bestimmten butto drückt

    Das sollte mit dieser Funktion auch abgedeckt sein....

    fragili schrieb:

    nun start ich die schleife mit einen button und der
    bleit ja solange gedrück bis die funktion beendent ist also kann ich es nict mit
    meinen ende button beenden

    Hier weiss ich wieder nicht, was Du meinst....



  • also das mit den timeout hört sich gut an
    das probier ich mal aus
    was ich mit dem anderen meite ist das die funktion solange leuft bis ich den ende button klicke wie verbinde ich das mit dem timeout



  • fragili schrieb:

    also das mit den timeout hört sich gut an
    das probier ich mal aus
    was ich mit dem anderen meite ist das die funktion solange leuft bis ich den ende button klicke wie verbinde ich das mit dem timeout

    Das ist jetzt eher ein Programmierproblem... ich würde in der Funktion abfragen, ob das Fenster geschlossen wurde - etwa so (ich kenne ja Dein Programm nicht):

    if (widget->window == NULL) return FALSE;
    // return FALSE in der Callbackfunktion beendet die g_timeout_add settings (beachte auch die Doku im Link)
    

    Man kann natürlich auch irgendein Flag setzen... wie auch immer...



  • ok das probier ich jetzt mal
    danke für deine hilfe



  • hey danke das mit dem timeout funktioniert perfekt
    danke (mal wieder)



  • noch mal ne frage

    also wenn ich über einen butoon oder über ein bild oder label fahre und dann drauf bleibe aber nicht drücke dann soll so eine kleine info kommen die dann beim maus zeiger auf blendet so wie es eigentlich bei jeden prog ist hier mal ein bild was ich meine

    http://img836.imageshack.us/i/fasdfdsfds.png/

    mfg fragili



  • Mach doch für jede Frage einen eigenen Thread auf... Benutzer, die nach einer Antwort auf ein spezielles Thema suchen, haben es dann wesentlich einfacher...
    Versuche es mal damit:

    gtk_widget_set_tooltip_text (widget, "Some tips");
    


  • ok erst mal danke
    das mit dem Thread werd ich mir zu herzen nehmen


Log in to reply