Verständnisproblem mit QGridLayout
Verfasst: 7. Januar 2007 15:14
Hallo,
ich hab ein Verständnisproblem mit QGridLayout....
Ich bin QT-Anfänger und wollte eifach mal ein bisschen rumprobieren.
Ich wollte meinem MainWindow zwei QTextEdits zufügen, wobei das erste doppelt so hoch sein soll wie das andere. Ich habe versucht dies mit dem QGridLayout hinzubekommen, bin aber gescheitert. Ich versteh aber absolut nicht was ich falsch mache.
Ich habe eine Klasse MainWindow erzeugt, welche von QMainWindow erbt.
Hier der Code:
Hiermit wollte ich erzwingen, dass edit1 doppelt so hoch ist wie edit2:
Doch wenn ich das Progrämmchen laufen lasse ist edit2 doppelt so hoch wie edit1!!! Das kann ich mir absolut nicht erklären 
Wenn ich die Qt-Dokumentation richtig vertanden habe, müsste doch alles passen:
void addWidget ( QWidget * widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = 0 )
Kann mir bitte jemand helfen?!? Ich versteh die Welt nicht mehr.....
Gruß M@g
ich hab ein Verständnisproblem mit QGridLayout....
Ich bin QT-Anfänger und wollte eifach mal ein bisschen rumprobieren.
Ich wollte meinem MainWindow zwei QTextEdits zufügen, wobei das erste doppelt so hoch sein soll wie das andere. Ich habe versucht dies mit dem QGridLayout hinzubekommen, bin aber gescheitert. Ich versteh aber absolut nicht was ich falsch mache.
Ich habe eine Klasse MainWindow erzeugt, welche von QMainWindow erbt.
Hier der Code:
Code: Alles auswählen
#include "MainWindow.h"
MainWindow::MainWindow(QWidget* parent /* = 0 */, Qt::WindowFlags flags /* = 0 */)
: QMainWindow(parent, flags)
{
initialise();
initSignalsAndSlots();
}
MainWindow::~MainWindow()
{
}
void MainWindow::initialise()
{
this->setObjectName("MainWindow");
this->setWindowTitle("MainWindow v1.0");
this->setFixedSize(800,600);
//init central widget
m_pCentralWidget = new QWidget(this);
m_pCentralWidget->setObjectName("CentralWidget");
this->setCentralWidget(m_pCentralWidget);
//init statusbar
m_pStatusbar = new QStatusBar(this);
m_pStatusbar->setObjectName("Statusbar");
this->setStatusBar(m_pStatusbar);
m_pStatusbar->showMessage("Ready");
//init Layout
m_pMainLayout = new QGridLayout();
QTextEdit *edit1 = new QTextEdit();
edit1->setPlainText("edit1");
QTextEdit *edit2 = new QTextEdit();
edit2->setPlainText("edit2");
m_pMainLayout->addWidget(edit1,0,0,2,1,0);
m_pMainLayout->addWidget(edit2,2,0,1,1,0);
m_pCentralWidget->setLayout(m_pMainLayout);
//init menubar
m_pMenuBar = new QMenuBar();
m_pMenuBar->setObjectName("MenuBar");
m_pFileMenu = new QMenu(tr("&File"),m_pMenuBar);
m_pFileMenu->setObjectName("FileMenu");
m_pHelpMenu = new QMenu(tr("&Help"),m_pMenuBar);
m_pHelpMenu->setObjectName("HelpMenu");
m_pMenuBar->addMenu(m_pFileMenu);
m_pMenuBar->addMenu(m_pHelpMenu);
//init Actions
m_pActionExit = m_pFileMenu->addAction(tr("E&xit"));
m_pActionExit->setObjectName("ActionExit");
m_pActionAbout = m_pHelpMenu->addAction(tr("&About"));
m_pActionAbout->setObjectName("ActionAbout");
this->setMenuBar(m_pMenuBar);
}
void MainWindow::initSignalsAndSlots()
{
QObject::connect(m_pActionExit, SIGNAL(triggered()), this, SLOT(close()));
}
Code: Alles auswählen
QTextEdit *edit1 = new QTextEdit();
edit1->setPlainText("edit1");
QTextEdit *edit2 = new QTextEdit();
edit2->setPlainText("edit2");
m_pMainLayout->addWidget(edit1,0,0,2,1,0);
m_pMainLayout->addWidget(edit2,2,0,1,1,0);
m_pCentralWidget->setLayout(m_pMainLayout);
Wenn ich die Qt-Dokumentation richtig vertanden habe, müsste doch alles passen:
void addWidget ( QWidget * widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = 0 )
Kann mir bitte jemand helfen?!? Ich versteh die Welt nicht mehr.....
Gruß M@g