In einem anderen Beitrag (tcl String Operationen) wurde mit hier bereits bestens geholfen. Nun hänge ich bei folgender Situation: Eine vorhandene GUI möchte ich nun ein wenig umbauen. Ich möchte ein Label und Textfeld zur Laufzeit einblenden, wenn der COM Port zu einem bestimmten Messgerät erfolgreich geöffnet wurde. Wenn der COM Port nicht geöffnet wurde, möchte ich einen Hinweis einblenden. Bietet tcl hier bereits eine Funktion?
kenny schrieb: > Bietet tcl hier bereits eine Funktion? Ev. verwendest du Tcl/Tk? Anyway, der 1. Link in Google "tcl gui" passt schon mal. leo
Du musst ja die Widgets anzeigen lassen. Dafür gibt es verschiedene Funktionen. pack, grid, place fallen mir erstmal ein. Du kannst, je nach Erfolg des Öffnens, an der Stelle die Widgets einbauen. Da gibt es auch Optionen zum löschen.
kenny schrieb: > Eine vorhandene GUI möchte ich nun ein wenig > umbauen. Dumme Frage: Womit ist dieses vorhandene GUI realisiert? Mit Tk? > Ich möchte ein Label und Textfeld zur Laufzeit einblenden, > wenn der COM Port zu einem bestimmten Messgerät erfolgreich > geöffnet wurde. Wenn der COM Port nicht geöffnet wurde, > möchte ich einen Hinweis einblenden. Kein Ding. Machbar. > Bietet tcl hier bereits eine Funktion? Tcl nicht direkt; Tk hingegen schon. Die übliche Methode für Dünnbrettbohrer ist, dem wish ein tcl-Script zu übergeben; von dort aus hat man Zugriff auf alle Tk-Widgets.
Egon D. schrieb: > Dumme Frage: Womit ist dieses vorhandene GUI realisiert? > Mit Tk? Hast du ein Tcl-Script schon mal mit einer anderen GUI gesehen?
Dirk B. schrieb: > Du musst ja die Widgets anzeigen lassen. > > Dafür gibt es verschiedene Funktionen. > pack, grid, place fallen mir erstmal ein. > > Du kannst, je nach Erfolg des Öffnens, an der Stelle die Widgets > einbauen. > > Da gibt es auch Optionen zum löschen. Genau der richtige Denkanstoß :) Die GUI selber konnte ich bisher zwar erweitern; aber so ganz verstanden hatte ich sie noch nicht. Ich denke ich weiß nun wo ich die Abfrage einbauen muss (siehe txt file).
Egon D. schrieb: > Die übliche Methode für Dünnbrettbohrer ist, dem wish ein tcl-Script zu > übergebe Und wie machen es die Dickbrettbohrer?
Dumdi D. schrieb: > Egon D. schrieb: >> Die übliche Methode für Dünnbrettbohrer ist, dem wish >> ein tcl-Script zu übergebe > > Und wie machen es die Dickbrettbohrer? Die rufen die Tk-Funktionen aus ihrer C-Anwendung heraus auf.
Du kannst auch das Entry anzeigen lassen und disablen. Dann kann der Eintrag nicht geändert werden. Es sollte dann auch hellgrau sein. Dann sucht der User nicht die Funktion. Hinweise zum Status kannst du auch im Label(frame) angegeben oder in der Variablen zum Entry.
:
Bearbeitet durch User
...schaue dir auch mal die Beschreibungen zu den jeweiligen Widgets mal genauer an! Es gibt da einen Befehl configure, mit dem man die verschiedensten Eigenschaften zur Laufzeit und während sie angezeigt werden, verändern kann. Mit diesem Befehl plus disable, hidden etc. kann man recht hübsche und variable GUIs aufbauen.
Egon D. schrieb: >> Und wie machen es die Dickbrettbohrer? > > Die rufen die Tk-Funktionen aus ihrer C-Anwendung heraus > auf. Eigentlich macht man es eher so, dass man nur die laufzeitkritischen Funktionen in C implementiert und den Rest als Skript. Da das hier nicht laufzeitkritisch ist, spricht wenig für C und ganz viel für Skript. Skripte kann man zusätzlich zur Laufzeit ändern. Dünnbrettbohrer sind hier die Schlaueren :-) @kenny: Es ist kein Problem, sämtliche Widgets zur Laufzeit zu ändern und aus der Oberfläche herauszunehmen. Der jeweilige Geometriemanager (pack, grid, place) macht das auch "on the fly". Damit sich aber nicht alle Widgets verschieben, würde ich den Label etc. schon von Anfang an mit leerem Textfeld einbauen: label .l -text {} Das wird dann per pack, grid, place eingebaut. Wenn dann das entsprechende Ereignis eintritt, änderst Du einfach das Attribut: .l config -text {COM1 aktiv} Es gibt noch viele weitere Möglichkeiten, bspw. die verknüpfung mit einer Variablen (Attribut -textvar). Dann ändert sich das Label immer dann, wenn sich die Variable ändert.
Vielen Dank für die vielen guten Anregungen. Diese werde ich weiter verfolgen, fürs erste habe ich mir mit einem weiteren Reiter (Auto meas.) beholfen (siehe Foto). Ich möchte nun erstmal den Fokus auf die Funktionalität legen, da noch 2 weitere Geräte eingebunden werden sollen. Sobald alles stabil läuft, wird die GUI verfeinert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.