Alles rund um die Programmierung mit Qt
-
kleineSchildy
- Beiträge: 76
- Registriert: 16. September 2004 18:29
- Wohnort: Dresden
Beitrag
von kleineSchildy »
Hallo,
wo liegt das Problem.
Ich erzeuge ein Objekt vom Typ "QWidget" als Subwindow. Mein Konstruktur sieht so aus:
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
-
DeepDiver
- Beiträge: 34
- Registriert: 7. November 2007 10:10
- Wohnort: Fürstenfeldbruck
-
Kontaktdaten:
Beitrag
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 ....
-
kleineSchildy
- Beiträge: 76
- Registriert: 16. September 2004 18:29
- Wohnort: Dresden
Beitrag
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
-
marco
- Beiträge: 41
- Registriert: 6. Dezember 2006 23:46
- Wohnort: Niederrhein
Beitrag
von marco »
hallo,
klappt es denn, wenn du resize von "außen" aufrufst?
Gruß, Marco
-
kleineSchildy
- Beiträge: 76
- Registriert: 16. September 2004 18:29
- Wohnort: Dresden
Beitrag
von kleineSchildy »
Hallo Marco,
nein, es funktioniert nicht

und nun?
-
DeepDiver
- Beiträge: 34
- Registriert: 7. November 2007 10:10
- Wohnort: Fürstenfeldbruck
-
Kontaktdaten:
Beitrag
von DeepDiver »
addSubWidget gibt Dir QMdiSubWindow * zurück.
Mach den resize doch mal darauf.
Tom
-
marco
- Beiträge: 41
- Registriert: 6. Dezember 2006 23:46
- Wohnort: Niederrhein
Beitrag
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.
Gruß, Marco