Kategorie: Qt

  • Qt-Standard-Buttons übersetzen

    Wenn man QMessageBox::information oder ähnliches benutzt, sind die Standard-Buttons (z.B. QMessageBox::Yes) englisch beschriftet. Die deutsche Bezeichnung erscheint mit folgendem Code in der Main-Schleife: QTranslator qttr; qttr.load(„qt_de“, „.“); a.installTranslator(&qttr); Wichtig ist dann nur noch, dass sich die mit Qt mitgelieferte Datei qt_de.qm im selben Verzeichnis befindet wie die ausführbare Programmdatei (unter Windows erledigt dies das Hilfsprogramm…

  • Qt-Anwendung für iOS kompilieren

    Wenn man versucht, eine mit Qt und der Qt Creator-IDE erstelle Anwendung in OSX für iPhone oder iPad zu kompilieren, erhält man folgende (verkürzte) Fehlermeldung beim Start der Anwendung im iOS-Simulator: You are creating QApplication before calling UIApplicationMain. Die Lösung für dieses Problem ist überraschend einfach (getestet mit Qt 5.3.1). Einfach den Code der „Main“-Funktion…

  • Qt: In Android per Touch-Geste scrollen

    Wer mit Qt programmiert möchte auch, dass beim Kompilieren für Android die Touch-Gesten aktiviert werden – um zum Beispiel in einem Textfeld auf dem Tablet scrollen zu können. Dies erreicht man mit folgendem Programmtext im Konstruktor des Fensters: #include <QScroller> #if defined(Q_OS_ANDROID)     QScroller::grabGesture(ui->mtv_plainTextEdit,QScroller::TouchGesture); #endif

  • Qt – Android Smartphone verbinden

    Um ein Android-Smartphone zum Testen von Programmen zu verwenden, die mit Qt entwickelt wurden, sind unter Linux folgende Schritte nötig: 1. Erstellen einer Datei /etc/udev/rules.d/51-android.rules mit folgendem Inhalt: SUBSYSTEMS==”usb”, ATTRS{idVendor}==”hersteller_id″, ATTRS{idProduct}==”product_id″, SYMLINK+=”android_adb”, MODE=”0666″, OWNER=”username” Hersteller-ID und Produkt-ID ermittelt man mit Hilfe von lsusb 2. Eingabe folgender Befehele: sudo chmod 644 /etc/udev/rules.d/51-android.rules sudo chown root /etc/udev/rules.d/51-android.rules…

  • Qt – QProcess – mehrfachen Start eines Programms verhindern

    In der Qt-Programmierung gibt es die Klasse QProcess zum starten externer Programme. Das Problem: es wird nicht kontrolliert, ob das externe Programm mehrfach gestartet wird oder nicht. Der folgende Beispiel-Code prüft, ob das QProcess-Objekt gestartet ist und verhindert den mehrfachen Start: //avoid multiple starts of external Process (example: special characters map) QProcess p; bool p_started…