Ubuntu 10.04 C++ - Konsolen Fenster vergrößern



  • Nun ja, das hört sich abschreckend an.. 😮

    Aber obwohl ich erst an kleineren Projekten arbeite, hätte ich trotzdem Tatendrang es zu wissen 😃

    Wenn jemand einen Beispiel Code oder ähnliches hätte könnte er diesen gerne hier posten, ich wäre darüber sehr dankbar.

    Es ist ganz egal wie, aber ich brauche irgend etwas um das Konsolen Fenster auf eine beliebige Größe zu vergrößern 😉

    Mfg
    Toaster_143



  • Für das Ändern der Fenstergröße ist egtl der Window-Manager verantwortlich.
    In den meisten GUI-Bibliotheken gibt es deshalb Funktionen, um die gewünschte Fenstergröße anzugeben (ob sich die jeweiligen Window-Manager daran halten ist z.T. noch eine andere Sache).
    Um was für eine Art graphische Darstellung handelt es sich?
    Evtl würde sich hier die Beschäftigung mit einer GUI lohnen.

    Willst du bei deiner ursprünglichen Idee bleiben, hilft wohl wirklich nur eine Auseinandersetzung mit Xlib/XCB, was ich einem Anfänger aber absolut nicht empfehlen würde.



  • Wenn das Vergrößern nicht unbedingt von "innen heraus" geschehen muss, kannst du dafür sorgen, dass die Terminalgröße schon beim Starten des Programms stimmt.
    Bei gnome-terminal geht das über den Parameter --geometry=150x40 (als Beispiel). Konsole und xterm haben sicher vergleichbare Parameter.



  • Das bringt dann allerdings das Problem mit sich, dass das Programm

    1. ein neues Terminal öffnet (evtl nicht erwünscht)
    2. nicht mit allen Terminals so wie geplant funktioniert

    @Toaster_143: Wenn du das Programm aber nur für dich schreibst und nicht, um es anderen zur Verfügung zu stellen und dich die o.g. punkte nicht stören, dann wäre das wohl die einfachste Lösung...
    Persönlich würde ich das aber wohl nicht so machen, denn schon beim Terminalwechsel müsstest du dein Programm umschreiben -> nervig



  • Oh danke für die Antworten !

    Also ich schreibe grad an einem Rubikscube Programm.

    Ich schreibe an einer klasse die Bewegungen und eine Grafische Darstellung ermöglich ungefähr so:

    _____________________	
                   	   | WEIß | WEIß | WEIß |
    		      |______|______|______|
    		      | WEIß | WEIß | WEIß |
    		      |______|______|______|
    		      | WEIß | WEIß | WEIß |
                          |______|______|______|
    


  • arrrgh, war noch nicht fertig xD

    Also diese Vorschau dann eben noch für alle Seiten (hab ich jetzt nicht dazu gemacht weil das sonst zu unübersichtlich wäre)

    Naja und weil es wie oben bei einem zu kleinen Fenster zu Absätzen kommen kann, dachte ich ich versuche das Fenster größer zu machen.

    Oder: Es gäbe eine Möglichkeit dass keine ungewollten Absätze gemacht werden so könnte man das Fenster nachher noch mit den scroll-balken vergrößern.

    Ich weiß es ist ein kleines Konsolen Projekt aber immerhin kann man damit wie bei einem rubikscube spielen, eben nur in einer Konsole, wenn diese groß genug wäre :D.

    Danke schon mal für das schnelle Antworten !
    Wenn einer irgendwelche Ideen hat immer her damit 😃

    Mfg

    Toaster_143



  • Wenn du bei der Textbasierten Lösung bleiben willst und nichts gegen die Verwendung externer (C-)Bibliotheken hast, solltest du dir mal ncurses näher anschauen.
    Selbst verwendet habe ich sie zwar noch nicht, aber iirc ist das für Textbasierte GUIs die erste Wahl.



  • Mit ncurses kannst du auch Farbe in die Konsole bringen, dann brauchst du die Namen nicht ausschreiben! Vielleicht kommst du dann automatisch mit den 80*25 der Konsole aus 🙂

    Außerdem sollte jedes Programm so geschrieben werden, dass es sich der Fenstergröße anpasst. Du glaubst gar nicht wieviele kaputte Programme es gibt, die in einem Tiling Window Manager nicht anständig funktionieren (trifft jetzt eher auf nicht-Konsolenanwendungen zu, aber egal :P)...
    Als Konsolenprogramm kannst du natürlich die 80*25 Kästchen des Terminals als Mindestgröße voraussetzen, d.h. wenn der User das Fenster kleiner macht, gibst du ne Fehlermeldung aus bis das Fenster wieder groß genug ist. Aber was größeres als 80*25 würde ich nicht voraussetzen! Hat übrigens auch den Vorteil, dass man in einem echten Terminal (also ohne 😵 spielen kann.



  • Danke für die Vielen antworten das Forum hier ist echt klasse!
    Ok ich werde es versuchen Danke 🙂

    Habe jetzt das Paket : libncurses5-dev
    installiert und es funktioniert.

    Ich hab nur noch eine Frage:

    Wenn ich das Programm kompilieren will muss ich das mit gcc oder g++ mit dem Parameter: -lcurses machen.
    Geht das auch über codeblocks? Bei mir kommen definierungs Fehler wie :

    hallowelt.cpp:(.text+0x5)||undefined reference to `initscr'|
    

    Kann auch sein dass ich von Codeblocks ein wenig verwöhnt bin xD

    PS: Wenn es wirklich keinen etwas ausmacht kann mir jemand noch zeigen wie man mit ncurses Farben anzeigen kann? Das wäre echt nett 🙂

    Mfg
    Toaster



  • Toaster_143 schrieb:

    Kann auch sein dass ich von Codeblocks ein wenig verwöhnt bin xD

    Du musst irgendwo bei den Projekt-Einstellungen und da dann bei den Linker-Flags die Bibliothek "ncurses" hinzufügen. Das sollte gehen.


Anmelden zum Antworten