QGridLayout

Alles rund um die Programmierung mit Qt
Antworten
c++coder
Beiträge: 47
Registriert: 11. Juli 2005 00:20
Kontaktdaten:

QGridLayout

Beitrag von c++coder »

hi,
ich will zischen den wigglyWidget und linEdit mehr abstand haben...
ich habs mit QSpacerItem probiert...aber scheint nicht zu laufen...
mit setRowStretch klappte es auch nicht...
jemand ne idee?
bye

Code: Alles auswählen

WigglyWidget *wigglyWidget = new WigglyWidget; 
QLineEdit *lineEdit = new QLineEdit; 
QLineEdit *lineEdit2 = new QLineEdit; 
QSpacerItem *spacer = new QSpacerItem( 93, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); 

QGridLayout *layout = new QGridLayout;//QVBoxLayout; 
layout->addWidget(wigglyWidget, 0, 0, 0, 2); 
layout->addItem( spacer, 1, 0, 1, 1); 
layout->addWidget(lineEdit, 1, 0); 
layout->addWidget(lineEdit2, 1, 1); 

setLayout(layout); 

connect(lineEdit, SIGNAL(textChanged(QString)), 
        wigglyWidget, SLOT(setText(QString))); 
    
lineEdit->setText(tr("Hello world!")); 

setWindowTitle(tr("Wiggly")); 
resize(360, 345); 
c++coder
Beiträge: 47
Registriert: 11. Juli 2005 00:20
Kontaktdaten:

Layout

Beitrag von c++coder »

jemand ne idee?
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Tausch den Spacer durch ein fixed Widget aus.
c++coder
Beiträge: 47
Registriert: 11. Juli 2005 00:20
Kontaktdaten:

Layout

Beitrag von c++coder »

ja hab ich schon probiert....zeig mal wie du das meinst....please..

bye
siik
Beiträge: 11
Registriert: 24. Juli 2005 12:35

Beitrag von siik »

Du könntest auch mit QGridLayout::setRowMinimumHeight( int row, int minSize ) eine leere Zeile mit festgelegter Höhe dazwischenlegen. Also zB

Code: Alles auswählen

WigglyWidget *wigglyWidget = new WigglyWidget;
QLineEdit *lineEdit = new QLineEdit;
QLineEdit *lineEdit2 = new QLineEdit;

QGridLayout *layout = new QGridLayout;//QVBoxLayout;
layout->setRowMinimumHeight( 1, 10 );
layout->addWidget(wigglyWidget, 0, 0, 0, 2);
layout->addWidget(lineEdit, 2, 0);
layout->addWidget(lineEdit2, 2, 1);
c++coder
Beiträge: 47
Registriert: 11. Juli 2005 00:20
Kontaktdaten:

Layout

Beitrag von c++coder »

perfekt, danke, genau das wollt ich...

Code: Alles auswählen

QGridLayout *layout = new QGridLayout;
 layout->addWidget(Label, 0, 0);
layout->addWidget(Label2, 0, 1);
layout->addWidget(Combo, 1, 0);
layout->addWidget(lineEdit, 1, 1);
layout->setRowMinimumHeight(2, 10); 
layout->addWidget(Label3, 3, 0);
layout->addWidget(textEdit, 4, 0, 3, 2);
layout->addWidget(Button, 7, 1);
kann ich da den Button noch etwas kleiner machen? mit setGeometry vielleicht? und wie kann ich verhindern, dass man das fenster grösser zieht? möchte es fix auf resize(360, 145); haben...

thx
c++coder
Beiträge: 47
Registriert: 11. Juli 2005 00:20
Kontaktdaten:

Layout

Beitrag von c++coder »

hallo,
jemand ne idee?

bye
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Code: Alles auswählen

WigglyWidget *wigglyWidget = new WigglyWidget;
QLineEdit *lineEdit = new QLineEdit;
QLineEdit *lineEdit2 = new QLineEdit;
QWidget *spaceWidget = new QWidget;
spaceWidget -> setMinimumWidth(93);
spaceWidget -> setMaximumWidth(93);
spaceWidget -> setMinimumHeight(20);
spaceWidget -> setMaximumHeight(20);

QGridLayout *layout = new QGridLayout;//QVBoxLayout;
layout->addWidget(wigglyWidget, 0, 0, 0, 2);
layout->addWidget( spaceWidget, 1, 0, 1, 1);
layout->addWidget(lineEdit, 1, 0);
layout->addWidget(lineEdit2, 1, 1);

setLayout(layout);

connect(lineEdit, SIGNAL(textChanged(QString)),
        wigglyWidget, SLOT(setText(QString)));
   
lineEdit->setText(tr("Hello world!"));

setWindowTitle(tr("Wiggly"));
resize(360, 345);
So sollte das gehen.
Antworten