qt; editor



  • Hi,
    ich bin grad dabei mit C++ und Qt einen (etwas komplexeren) Texteditor zu programmieren. So sieht er zuzeit aus:
    http://img5.imageshack.us/img5/3512/showk.png
    Ich als unwissender Programmierer 😕 hätte gern eine atwort auf folgende drei Fragen 😃 :

    • Wie kann ich die Breite des Dockfenster (links) "Workspace" setzten (Soll vom Benutzer verändert werden können, also nicht setFixedWidth())?
    • Wie kann ich Zeilennummern zum Dockfenster (rechts) "Editor" hinzufügen"?
    • Wie kann ich Tabs realisieren (zum Dockfenster "Editor")? Mir ist QTabWidget bekannt aber diese Tabs lassen sich ja nicht schließen...

    thx im voraus
    energetic



  • Zu 1: Keine Ahnung.

    Zu 2: Ich weiß nicht genau ob Qt da was hat. Schau mal in der Doku. Ansonsten wirst du dir wohl oder übel die TextView subclassen und erweitern müssen.

    Zu 3: QTabWidget hat die Property "tabsClosable". Ich denke das ist was du willst: http://doc.trolltech.com/4.5/qtabwidget.html#tabsClosable-prop



  • Also der Tipp mit setClosable() ist gut. Aber weiß denn niemand eine Lösung zu den anderen Fragen?
    Zu 1: Ich könnt resize() verwenden, aber als zweites Parameter muss man ja die Höhe übergeben. Gibt es irgendeine Methode um die maximal mögliche Höhe des Docks zu ermitteln?

    Zu 2: In de Doko (4.5) finde ich keine Klasse namens "QTextView" ...

    ⚠ Help ⚠

    energetic



  • energetic schrieb:

    Also der Tipp mit setClosable() ist gut. Aber weiß denn niemand eine Lösung zu den anderen Fragen?
    Zu 1: Ich könnt resize() verwenden, aber als zweites Parameter muss man ja die Höhe übergeben. Gibt es irgendeine Methode um die maximal mögliche Höhe des Docks zu ermitteln?

    Wozu brauchst du den die maximale Höhe, es reicht doch die aktuelle höhe und die bekommst du durch height() des Elements (vorrausgesetzt es ist von QWidget abgeleitet!) und zum setzen der Größe solltest du es mit setGeometry() versuchen.

    energetic schrieb:

    Zu 2: In de Doko (4.5) finde ich keine Klasse namens "QTextView" ...

    In dem Qt-Assistenten gibt es ein Beispiel in dem die Zeilennummern gesetzt werden. Das Bespiel heißt: "Code Editor Example" wenn du danach (im Index) suchst solltest du es schnell finden.

    Gruß
    Rudi G



  • Wenn das ganze nicht nur ne Übung sein soll, wie man nen Texteditor schreibt (für nen Anfänger in jedem Fall SEHR anspruchsvoll) schau dir doch mal QScintilla an:
    http://www.riverbankcomputing.co.uk/software/qscintilla/intro
    Das ist ein fertiges Editor-Widget, komplett mit Undo/Redo, Syntax-Highlighting u.v.m.



  • @ Rudi G:
    thx, das dürfte funktionieren.
    Und das Beispiel mit der Zeilennummerierung werde ich mir mal ansehen.

    @qscintilla
    Nun, das ist keine Übung. Ich bin dabei mit jemand anderem eine IDE zu proggen...
    Läuft aber bis auf ein paar Kleinigkeiten eigentlich ganz gut 😉

    Damit dürften meine Probleme gelöst sein
    MfG
    energetic


Anmelden zum Antworten