Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Jun 16, 2024 21:41

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Zwei QWidgets übereinander legen.
BeitragVerfasst: Do Aug 18, 2011 18:04 
Offline
DGL Member

Registriert: Mo Apr 27, 2009 11:19
Beiträge: 35
Hallo alle miteinander,

ich habe folgende Frage. Ich habe in Qt ein großes widget, welches OpenGL-Code enthält. In dieses möchte ich ein anderes widget mit meinen Gui-Elementen platzieren. Das ganze soll ungefähr so aussehen, dass in dem rot markierten Rechteck dann meine GUI ist. Leider wird die Gui immer am Rand des Fensters platziert. Nun hat mir coolcat ja schon beim letzten Mal gesagt, dass das (was ich gerne hätte) wohl unter Mac nicht geht. (Siehe hier (beim 4. Eintrag)) Ich bin mir aber nicht sicher, ob das jetzt für mein Beispiel gilt, da ja in dem roten Rechteck-bereich nichts mehr gezeichnet werden soll.
Also so wie ich das verstanden habe, muss ich irgendwie ein widget als parent setzen und dann im Layout es wohl auch anpassen.
Aber mir wird irgendwie nicht klar wie.
Code:
  1.  
  2. #include "ui_untitled.h"
  3. #include "untitled.h"
  4. #include <iostream>
  5. #include <stdio.h>
  6. using namespace std;
  7.  
  8. Window::Window()
  9. {
  10.     glWidget = new GLWidget; //das große Fenster
  11.     untitled = new Untitled; // die GUI dazu
  12.  
  13.     QVBoxLayout *mainLayout = new QVBoxLayout;
  14.     mainLayout->addWidget(untitled);
  15.     mainLayout->addWidget(glWidget);
  16.  
  17.     setLayout(mainLayout);
  18.  
  19.     setWindowTitle("Qt window");
  20. }
  21.  


Ich danke euch...


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 19, 2011 22:23 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Du benutzt ein Layout. Das sorgt dafür das die Widgets nebeneinander angeordnet werden.

Um ein Widget als Parent zu setzen einfach das Parent Widget im Konstruktor mit angeben:
Code:
  1. glWidget = new GLWidget; //das große Fenster
  2. untitled = new Untitled(glWidget); // die GUI dazu
  3. untitled->setGeometry(x,y,width,height); // relativ zum Parent
  4.  
  5. QVBoxLayout *mainLayout = new QVBoxLayout;
  6. mainLayout->addWidget(glWidget);
  7. setLayout(mainLayout);
  8. setWindowTitle("Qt window");


Aber genau das funktioniert so unter MacOS nicht, zumindest nicht mit einem GLWidget. Das Untitled-Widget würde dann einfach nicht gerendert.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Aug 22, 2011 12:29 
Offline
DGL Member

Registriert: Mo Apr 27, 2009 11:19
Beiträge: 35
Hm..ok. Danke dir! Aber es würde doch gehen, wenn ich dann 3 Widgets anlegen würde. Also eins für das große Fenster, eins für das kleine (als QGLWidgets) und eins für die GUI. Diese könnte ich doch dann so anlegen, wie auf dem bild zu sehen,oder?
Oder wäre es eventuell möglich auf einem großen GUI-Widget die OpenGL-Fenster zu legen? Das müsste doch aufm Mac gehen...
Oder gebe es da noch ne bessere Lösung?

Danke nochmal..


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 26, 2011 20:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Es mit zwei QGLWidgets zu machen würde gehen. Was nicht geht wäre ein großes welches dann vom Menü rechts oben überdeckt wird.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 34 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.148s | 17 Queries | GZIP : On ]