[gelöst, danke]Mein Widget wird nicht angezeigt...

Alles rund um die Programmierung mit Qt
Antworten
joebar
Beiträge: 177
Registriert: 3. Oktober 2006 02:04

[gelöst, danke]Mein Widget wird nicht angezeigt...

Beitrag von joebar »

Hallo,

ich habe im Prinzip folgenden Code der einwandfrei läuft:

Code: Alles auswählen

//mainwindow.cpp

MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent) 
{

  QSplitter *splitter = new QSplitter(parent);
  QTextEdit *textedit = new QTextEdit;
  textedit -> setText("bla");
  
  
  treeView = new QTreeWidget();
  // Füge items dem treeView hinzu
 
  splitter->addWidget(treeView);
  splitter->addWidget(textedit);

  setCentralWidget(splitter);

}
Der Übersicht wegen möchte ich jetzt das ganze Coding auslagern in eine eigene Date uiComponent.cpp/.h

Code: Alles auswählen

//uiComponent.h
#ifndef UICOMPONENT_H
#define UICOMPONENT_H



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


  private:


};

#endif
sowie

Code: Alles auswählen

//uiComponent.cpp
#include <QTextEdit>
#include <QDebug>
#include <QVBoxLayout>

#include "uiComponent.h"

uiComponent::uiComponent(QWidget *parent) : QWidget(parent)
{
 QTextEdit* editor  = new QTextEdit(); 
 editor -> setText("test");
 
 QVBoxLayout *layout = new QVBoxLayout;
 layout -> addWidget(editor);
 

}
und natürlich mainwindow.cpp

Code: Alles auswählen

//mainwindow.cpp

MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent) 
{
  uiComponent* mainUI = new uiComponent();
  QSplitter *splitter = new QSplitter(parent);
  QTextEdit *textedit = new QTextEdit;
  textedit -> setText("bla");
  
  
  treeView = new QTreeWidget();
  // Füge items dem treeView hinzu
 
  splitter->addWidget(treeView);
  splitter->addWidget(textedit);
splitter->addWidget(mainUI);

  setCentralWidget(splitter);

}
Statt den dritten Bereich sehe ich nur frei gelassenen Hintergrund, aber nicht das QTextEdit aus dem mainUI.

Ist wahrscheinlich total basic, aber die einschlägigen Qt Tutorials klatschen alles in ein File.

Danke.
Zuletzt geändert von joebar am 8. Januar 2010 08:43, insgesamt 1-mal geändert.
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag von archer »

Im Konstruktor von uiComponent(..) fehlt am Ende ein

Code: Alles auswählen

setLayout(layout);
oder beim Erzeugen des Layouts

Code: Alles auswählen

QVBoxLayout *layout = new QVBoxLayout(this);
Es hängt sonst irgendwo im Raum.
Antworten