Qt-Tutorial 029: QSpinBox und QDoubleSpinBox

Eingabefelder für Integer– und Double-Zahlenwerte – wie man diese benutzt, zeigt dieses Video. Die SpinBoxen haben zusätzlich noch die Möglichkeit, dass der Benutzer die Einträge via Buttons bestimmt.

QSpingBox und QDoubleSpinBox
QSpingBox und QDoubleSpinBox

Bei den beiden SpinBoxen kann der Programmierer bestimmen, wie Zahlenwerte inkrementiert und dekrementiert werden, wie hoch und niedrig die Werte gehen dürfen und die Eingaben werden zusätzlich noch automatisch geprüft.

Beispielbild unseres Programms
Beispielbild unseres Programms

Hier geht es zum Video.

Qt-Tutorial 027: QLineEdit, QTextEdit und QPlainTextEdit

Schauen wir uns in diesem Video einmal die einfachsten Möglichkeiten an, mit denen ein Benutzer Text ins System eingeben kann:

QLineEdit, QTextEdit und QPlainTextEdit
QLineEdit, QTextEdit und QPlainTextEdit

Während QLineEdit nur dazu da ist, einzeiligen Text aufzunehmen, können QTextEdit und QPlainTextEdit viele Zeilen Text aufnehmen. Bei QTextEdit ist es weiterhin auch möglich, mit Formatierungen (RTF und HTML) zu arbeiten.

Beispielbild unseres Programms
Beispielbild unseres Programms

Hier geht es zum Video.

Warum ist QtCreator so schlecht?

Immer wieder lese ich zur Zeit, dass Programmierer den QtCreator für eine der schlechtesten IDEs überhaupt halten. Ich konnte das bisher nicht nachvollziehen, bis auf Kleinigkeinten finde ich, dass QtCreator eine recht gut IDE ist.

QtCreator
QtCreator

Ich muss durchaus zugeben, dass ich eher die Kommandozeile (Shell), make oder gmake und vor allem einen vernünftigen Editor – VIM – bevorzuge, um zu entwickeln. Zumindest habe ich das so über Jahre hinweg recht erfolgreich gemacht. Doch neben meinem liebsten Editor kenne ich auch andere Editoren, Pseudo-IDEs (Visual Studio Code zum Beispiel) und einige IDEs (Visual Studio, Eclipse, Netbeans, IntelliJ IDEA, Clion, Delphi, Lazarus, Anjuta, KDevelop, Code::Blocks und was weiß ich, was noch). Die beiden verschrienen IDEs gefallen mir komischerweise am besten: QtCreator und Lazarus IDE.

Warum ist das so? Nehmen wir einmal Visual Studio. Bis das Ding gestartet ist, bis ich ein Projekt angelegt oder, schlimmer noch, geladen habe, dauert es ewig bis drei Tage. Danach ist alles so träge und nervig, die Vorkonfiguration kaum zu benutzen, das Einrückverhalten eine Katastrophe und der Editor eine Art Notepad im modernen Gewand. Gut, das ist jetzt übertrieben. Die Editoren leisten schon eine Menge mehr, als Notepad, allerdings halte ich sie, zumindest in der Standardkonfiguration, für unbenutzbar. Tatsächlich ist das bei QtCreator und Lazarus nicht anders. Vergleicht man die Editoren mit modernen Dinosauriern wie VIM, dann merkt man schnell, was effizient ist und was pseudoeffizient ist.

Dann kommen die ganzen Automatismen, die Automagic dazu. All das nervt mich oftmals, denn tauchen Probleme auf, sind sie oftmals nur schwer behebbar, denn man kennt die Automagic dahinter ja nicht und dann nehmen einem diese Systeme nicht Arbeit ab, sondern machen noch viel mehr.

Natürlich sind die integrierten Debugger toll, auch, dass Referenzenzähler mit drin sind, man im Code hin und her springen kann usw. Aber sie lahmen oftmals so sehr, dass ich meinen Gedankenfluss andauernd unterbrechen muss, warten muss oder irgendwas abstürzt.

QtCreator kann nicht viel. Es handelt sich um einen “schlechten” Editor mit Projektmanagement, GUI-Designer und ein paar Nettigkeiten wie integriertem Debugger. Die Sache ist schon komplexer, aber wenn man es herunterbricht, bleibt eine nicht so hochkomplexe IDE, die sich angenehm betreiben lässt. Denn sie unterstützt mich, macht Automatismen oder sichtbar und einfach handlebar. Genau das ist für mich wichtig: zumeist, nicht immer, weiß ich, was passiert und kann auch händisch recht problemfrei eingreifen. Dabei kann ich aber auch im Code herumspringen, Fenster splitten, den grafischen Debugger starten und Kompilierszenarien auswählen. Mir gefällt das sehr und ich empfinde QtCreator tatsächlich als eine IDE, mit der ich gerne arbeite, auch wenn sie Schwächen hat (Editor – das Problem haben aber alle IDEs, die ich kenne, Refactoring ist nicht schön, Automatismen wie Getter/Setter erstellen sind nicht vorhanden, usw.). Ich finde es schade, dass die IDE so zerissen wird. Das selbe bei Lazarus. Ich finde die IDE schön aufgeräumt und einfach in der Nutzung. Darin liegt für mich die Mächtigkeit des Systems.

Doch freue ich mich auch immer wieder, wenn ich auf der Shell und mit VIM arbeiten kann.

Videoreihe: Entwicklung einer Desktopsoftware für compow mit C++, Qt und SQLite Teil 7

In diesen ca. 20 Minuten machen wir einiges. Wir laden das Logo der Firma im Firmeneintrag und zeigen es an. Dann implementieren wir noch die Funktion, dass man aus der Firmenmaske die Firma direkt auf der compow-Website anzeigen kann und wir machen die Ausgabetabelle der Firmen sortierbar.

Videoreihe: Entwicklung einer Desktopsoftware für compow mit C++, Qt und SQLite Teil 7
Videoreihe: Entwicklung einer Desktopsoftware für compow mit C++, Qt und SQLite – Teil 7

Und so sieht es (auf macOS) aus:

Firmeneintrag mit angezeigtem Logo
Firmeneintrag mit angezeigtem Logo

Hier geht es zum Video.