Wie programmiert man denn eine kleinere GUI für irgendwelche CLI-Funktionen? Was muss man dafür können? C++? Oder fängt man mit GTK bzw. QT an? Gibt es vielleicht irgendein Einsteiger-Tutorial zum Thema?
Gehört zwar nicht zum Thread-Thema, aber ich antworte mal trotzdem und hoffe mit blauem Auge davon zu kommen. :-)
Üblicherweise sind ja Kommandozeilentools auch nur Frontends irgendwelcher Funktionen bzw. Softwarebibliotheken. Wenn man ein GUI-Tool schreibt, benutzt man dann die entsprechenden Bibliotheksfunktionen (APIs) direkt und geht üblicherweise nicht über die korrespondierenden Kommandozeilentools.
Das macht aus zwei Gründen Sinn. Erstens hat man halt nicht den Aufruf von Kommandozeilentools, was zeitraubend ist. Man muss auch nicht irgendwelche Ausgaben parsen (was fehleranfällig ist), sondern kriegt den Kram gleich in einem Format, mit dem sich besser weiter arbeiten lässt. Außerdem kriegt man meist mehr Informationen darüber, was dann z.B. auch spezielle Funktionen und Fehlerbehandlung erleichtert.
Aber es ist natürlich nicht verboten mit Hilfe der Kommandozeilentools entsprechende GUI-Tools zu schreiben. Du hast dort einfachen Text der sich auch überall und in jeder Programmiersprache verarbeiten lässt. Im Prinzip kannst Du auf dem Wege sogar GUIs via Shell-Skript erstellen.
Softwarebibliotheken sind dagegen häufig an bestimmte Programmiersprachen gebunden. Es gibt zwar teilweise Bridges (Bindings), die die auch für andere Programmiersprachen verfügbar machen. Aber das ist eben nicht immer und für die selbst benutzte Sprache so.
Über Kommandozeilentools zu gehen ist also irgendwo auch eine sehr niedrigschwellige Variante.
Dann braucht man, wie Du richtig bemerkst, natürlich ein GUI-Toolkit.
Qt und
Gtk sind sicher die Bekanntesten. Die haben auch Bindings zu allen möglichen Sprachen und man ist da nicht unbedingt auf C++ respektive C festgelegt. Eine weitere Möglichkeit ist
wxWidgets. Dann gibts da natürlich noch andere Lösungen. , wie z.B.
Tk welche zusammen mit der Programmiersprache Tcl eingesetzt wird und eine Zeitlang sehr beliebt für einfache GUIs war, da Tcl auch eine recht einfache Sprache ist. Daher auch recht beliebt war (ist?).
Womit wir schon mitten in der Thematik sind, welche Programmiersprache am besten eingesetzt wird. Die natürliche Wahl wäre C, da die entsprechenden Bluetooth-Bibliotheken/Kernel-APIs i.d.R. C sind und sich auch Gtk damit benutzen lässt. Allerdings ist C als Sprache nicht besonders Gelegenheitsprogrammiererfreundlich, ums mal vorsichtig auszudrücken. I.d.R. benutzt man dann doch häufig Skriptsprachen wie
Python (auch unter Linux gehen Tools wie
blueman diesen Weg). Da gibts auch viel Krams zu, womit man sich zu allem möglichen connecten kann. Und falls man doch mal nicht weiter kommt, gibts ne C-Schnittstelle wo man sich dann auch an benötigte C-Bibliotheken ranhängen kann.
Ein Einsteiger-Tutorial im Sinne von "Wie bau ich eine Bluetooth-GUI" wirds vielleicht nicht geben, aber natürliuch zu den jeweiligen Teilaspekten.
Vermutlich macht es ja auch Sinn "from scratch" etwas Neues zu schreiben, sondern etwas Vorhandenes (wie
blueman oder was es sonst noch gibt) zu nehmen und für FreeBSD anzupassen.