Hi,
bin noch neu hier und mache meine ersten Versuche mit Qt (C++).
Ich hab folgende Frage: Ich hab mit dem Qt Designer ein QWidget mit einem QGraphicsView erstellt. Wenn jetzt das Fenster mit der Maus größer/kleiner 'gezogen' wird, oder das Fenster auf Fullscreen geht, soll auch der QGraphicsView immer die Größe des Widgets haben. Wie mach ich das? Es muß doch eine Möglichkeit geben die Inhalte eines Fensters (Widget's) dynamisch vergrößern/verkleinern zu können.
Gruß Tom
Qt: Größe in QWidget dynamich ändern
-
- Beiträge: 30
- Registriert: Fr Nov 09, 2012 10:29 am
Re: Qt: Größe in QWidget dynamich ändern
Wie hast du dein Widget erstellt? Ist dein QGraphicsView in einem Layout, das du auf dein Hauptfenster anwendest?
Etwas Beispielcode wäre nicht schlecht
Etwas Beispielcode wäre nicht schlecht

-
- Beiträge: 30
- Registriert: Fr Nov 09, 2012 10:29 am
Re: Qt: Größe in QWidget dynamich ändern
Erstellt hab ich das mit dem Qt Designer. Also:
Neues Formular / unter "Templates" QWidget ausgewählt / und dann von der WidgedBox den GraphicsView hineingezogen.
Code hab ich noch nicht viel. Nur die Headerdatei und den Quellcode für die Klasse.
Header:
Klasse:
und die Qt Designer xml:
Neues Formular / unter "Templates" QWidget ausgewählt / und dann von der WidgedBox den GraphicsView hineingezogen.
Code hab ich noch nicht viel. Nur die Headerdatei und den Quellcode für die Klasse.
Header:
Code: Alles auswählen
#ifndef TACHO_H
#define TACHO_H
#include <QWidget>
namespace Ui {
class Tacho;
}
class Tacho : public QWidget
{
Q_OBJECT
public:
explicit Tacho(QWidget*parent = 0);
~Tacho();
private:
Ui::Tacho *ui;
private slots:
};
#endif // TACHO_H
Code: Alles auswählen
#include "tacho.h"
#include "ui_tacho.h"
#include <iostream>
Tacho::Tacho(QWidget *parent) :
QWidget(parent),
ui(new Ui::Tacho)
{
ui->setupUi(this);
}
Tacho::~Tacho()
{
delete ui;
}
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Tacho</class>
<widget class="QWidget" name="Tacho">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>843</width>
<height>552</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QGraphicsView" name="graphicsView">
<property name="geometry">
<rect>
<x>150</x>
<y>70</y>
<width>461</width>
<height>311</height>
</rect>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
Re: Qt: Größe in QWidget dynamich ändern
Du hast deinen View einfach auf dein Widget gelegt, ohne ein Layout zu verwenden. Das macht dann natürlich beim Ändern der Größe Probleme. Klick mal mit der rechten Maustaste auf dein äußeres Widget, wähle "Lay out" und dann "Lay Out Horizontically" bzw. "Lay Out Vertically" (wenn nur 1 Widget im Layout ist, dann ist das das gleiche).
-
- Beiträge: 30
- Registriert: Fr Nov 09, 2012 10:29 am
Re: Qt: Größe in QWidget dynamich ändern
Danke! Da hätte ich echt selber drauf kommen müssen.
Wie krieg ich jetzt noch das Widget dazu immer im Fullscreen, ohne Fensterrahmen und ohne Fensterleiste aufzugehen? Das man also nur noch den View sieht.
Gruß Tom

Wie krieg ich jetzt noch das Widget dazu immer im Fullscreen, ohne Fensterrahmen und ohne Fensterleiste aufzugehen? Das man also nur noch den View sieht.
Gruß Tom
Re: Qt: Größe in QWidget dynamich ändern
Dafür ist das Forum dawellnestom hat geschrieben:Danke! Da hätte ich echt selber drauf kommen müssen.![]()

Gute Frage, das dürfte aufwendiger werden... du müsstest die WindowFlags (http://doc.qt.digia.com/qt/qwidget.html ... Flags-prop) anpassen und Margin/Padding des Layouts und des Container-Widgets ändern. Oder du löst deinen View aus dem Layout, versteckst deinen Container und setzt die WindowFlags des Views. Da müsste ich selber herumprobieren. Versuchs mal selbst und wenn du es nicht schaffst, lad doch bitte mal ein vollständiges und gezipptes Qt-Projekt hochwellnestom hat geschrieben:Wie krieg ich jetzt noch das Widget dazu immer im Fullscreen, ohne Fensterrahmen und ohne Fensterleiste aufzugehen? Das man also nur noch den View sieht.

-
- Beiträge: 30
- Registriert: Fr Nov 09, 2012 10:29 am
Re: Qt: Größe in QWidget dynamich ändern
Hat geklappt!
Alle Margin's Padding's auf 0, das ganze nicht mit
instanzname.show();
sondern mit
instanzname.showFullScreen();
dann noch im Qt Designer den View ausgewählt, unter QFrame/frameShape = 'No Frame' ausgewählt, und fertig.
Danke für die schnelle Hilfe!!!!!
Alle Margin's Padding's auf 0, das ganze nicht mit
instanzname.show();
sondern mit
instanzname.showFullScreen();
dann noch im Qt Designer den View ausgewählt, unter QFrame/frameShape = 'No Frame' ausgewählt, und fertig.
Danke für die schnelle Hilfe!!!!!