Seite 1 von 1

Problem mit einem SubWindow

Verfasst: 27. Dezember 2007 13:36
von kleineSchildy
Hallo,

wo liegt das Problem.

Ich erzeuge ein Objekt vom Typ "QWidget" als Subwindow. Mein Konstruktur sieht so aus:

Code: Alles auswählen

MyPicture::MyPicture(){

    this->resize(100,100);
}
bzw die Header-Datei:

Code: Alles auswählen

#ifndef MYPICTURE_H
#define MYPICTURE_H

#include <QWidget>


class MyPicture: public QWidget
{
    Q_OBJECT
    
    	
public:
    MyPicture();
    
    void createPicture(int);
    
private slots:
   
private:

};
#endif
und die Einbindung so:

Code: Alles auswählen

		sourcePic = new MyPicture();
		sourcePic->createPicture(source);
		mdiArea->addSubWindow(sourcePic);
		sourcePic->show();
in der Funktion "createPicture" wird nur der Titel des Subwindow gesetzt.

Warum funktioniert das resize nicht? Man sieht nach dem Erzeugen nur die schmale Titelleiste.

Danke für eure Hilfe.

Viele Grüße
Jana

Verfasst: 27. Dezember 2007 18:46
von DeepDiver
Versuch doch mal:

Code: Alles auswählen

MyPicture::MyPicture(QWidget* parent)
:QWidget(parent)
{
    this->resize(100,100);
}
Viel Glück,

Tom

PS: Header natürlich analog anpassen ....

Verfasst: 28. Dezember 2007 10:43
von kleineSchildy
Hallo Tom,

danke erstmal für deine Antwort. Ich habe es entsprechend angepasst:

Code: Alles auswählen

class MyPicture : public QWidget
{
    Q_OBJECT
    
    	
public:
    MyPicture(QWidget *parent = 0);
und

Code: Alles auswählen

MyPicture::MyPicture(QWidget *parent):QWidget(parent){
				   
	this->resize(300,300);
	}
und
Das Widget wird in einem MainWindow erzeugt.

Code: Alles auswählen

MyPicture*sourceModul;
sourceModul = new MyPicture(this);
aber keine Reaktion, das Fenster wird nicht auf die vorgegebene Größe gesetzt.

Woran kann es noch liegen?

Viele Grüße
Jana

Verfasst: 28. Dezember 2007 11:20
von marco
hallo,

klappt es denn, wenn du resize von "außen" aufrufst?

Code: Alles auswählen

sourcePic->resize(300, 300);

Verfasst: 28. Dezember 2007 12:47
von kleineSchildy
Hallo Marco,

nein, es funktioniert nicht :shock: und nun?

Verfasst: 28. Dezember 2007 15:30
von DeepDiver
addSubWidget gibt Dir QMdiSubWindow * zurück.

Mach den resize doch mal darauf.

Tom

Verfasst: 28. Dezember 2007 15:31
von marco
...weiterprobieren :-)

hab gerade mal in die doku geschaut... wirkt manchmal wunder.

Code: Alles auswählen

int n = windowno;
mdiArea->subWindowList()[n]->resize(300, 300);
so wirds wahrscheinlich klappen. also nicht auf das widget im fenster sondern auf das fenster resize anwenden.