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, leute
ich hab ein kleines problem mit QGridLayout,
ich will der combobox und der lineEdit mehr abstand und beide sollen gleich gross sein, den Button will ich auch kleiner machen!
leider bekomm ich das mit setGeometry nicht hin;-(
aktueller screen liegt mit bei...

Code: Alles auswählen

  
QLineEdit *lineEdit = new QLineEdit("1111111");
QTextEdit *textEdit = new QTextEdit;
QLabel *Label = new QLabel("GSM Netz");
QLabel *Label2 = new QLabel("Handynummer");
QLabel *Label3 = new QLabel("Ihre Nachricht");
QComboBox *Combo = new QComboBox;
QPushButton *Button = new QPushButton("SMS Senden");
    
Combo->addItem("T-Mobile (676)");
Combo->addItem("A1 (664)");
Combo->addItem("One (699)");
Combo->addItem("Telering (650)");
Combo->addItem("Drei (660)");
Combo->addItem("Tele2 (668)");

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);

setLayout(layout);  

setWindowTitle(tr("SMS-Sender"));
resize(300, 240);
bye
Dateianhänge
SMS-Project.zip
Source
(26.84 KiB) 163-mal heruntergeladen
screen.jpg
screen.jpg (13.67 KiB) 6254 mal betrachtet
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: QGridLayout

Beitrag von macman »

c++coder hat geschrieben:leider bekomm ich das mit setGeometry nicht hin;-(
Guck Dir mal die Doku zu QGridLayout an, vor allem setColumnStretch, setRowStretch und setMargin. Wenn Dir setMargin nicht zusagt, weil es die Abstände rundrum definiert, dann muß eben ein Spacer dazwischen.
c++coder
Beiträge: 47
Registriert: 11. Juli 2005 00:20
Kontaktdaten:

hm

Beitrag von c++coder »

hab mit QSpacerItem probiert...aber das schaut schrecklich aus....alles kreuz und quer..;-(

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

Beitrag von FlorianBecker »

Nimm ein QWidget mit fester breite.
c++coder
Beiträge: 47
Registriert: 11. Juli 2005 00:20
Kontaktdaten:

hm

Beitrag von c++coder »

hm...zeig mal wie du das meinst...
ich will jetzt nur mal ne combobox und eine lineedit die gleich gross ist machen....und dazwischen einen abstand....
mir kommt vor ich hab das falsche layout...das sind sehr eigenartig aus..;-(
cu
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

| COMBO | <-- WIDGET (Feste Breite) --> | LINEEDIT |

??? Das ist ein KDE Hack für z.B. Abstände mit ToolBars usw.
siik
Beiträge: 11
Registriert: 24. Juli 2005 12:35

Re: QGridLayout

Beitrag von siik »

c++coder hat geschrieben: ich will der combobox und der lineEdit mehr abstand
Sag mal ... du hast doch hier schonmal genau das selbe gefragt, nur dass du diesmal keinen horizontalen sondern einen vertikalen Abstand haben möchtest. Da hab ich dich auf QGridLayout::setRowMinimumHeight( int row, int minSize ) hingewiesen, und wie ich sehe, hast du das in deinem Code auch verwendet. Wenn du jetzt einfach mal einen Blick in die Doku wirfst, wirst du sehen, dass es sowas auch für Spalten gibt.
und beide sollen gleich gross sein, den Button will ich auch kleiner machen!
leider bekomm ich das mit setGeometry nicht hin;-(
Nimm doch einfach setSize( int, int ), oder, falls die Größe fest bleiben soll, setFixedSize( int, int ).
c++coder
Beiträge: 47
Registriert: 11. Juli 2005 00:20
Kontaktdaten:

Button etwas grösser machen

Beitrag von c++coder »

hi,
ich habs nun geschafft, bis auf die button grösse schauts schon mal gut aus...
mit das layout hat aber leider kein setSize !?
und so klappts auch nicht: Button->resize(100, 100);
lg g+thx

Code: Alles auswählen

    QLineEdit *lineEdit = new QLineEdit("1111111");
    QTextEdit *textEdit = new QTextEdit;
    QLabel *Label = new QLabel("GSM Netz");
    QLabel *Label2 = new QLabel("Handynummer");
    QLabel *Label3 = new QLabel("Ihre Nachricht");
    QComboBox *Combo = new QComboBox;
    Combo->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); 
    QPushButton *Button = new QPushButton("SMS Senden");
    QVBoxLayout *layout = new QVBoxLayout;
    QGridLayout *layout1 = new QGridLayout;
    QHBoxLayout *layout2 = new QHBoxLayout;
    QSpacerItem *spacer1 = new QSpacerItem(23, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
    QSpacerItem *spacer2 = new QSpacerItem(23, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
    QSpacerItem *spacer3 = new QSpacerItem(23, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
    
    Combo->addItem("T-Mobile (676)");
    Combo->addItem("A1 (664)");
    Combo->addItem("One (699)");
    Combo->addItem("Telering (650)");
    Combo->addItem("Drei (660)");
    Combo->addItem("Tele2 (668)");

    layout1->addWidget(Label, 0, 0);
    layout1->addItem(spacer1, 0, 1);
    layout1->addWidget(Label2, 0, 2);
    layout1->addWidget(Combo, 1, 0);
    layout1->addItem(spacer2, 1, 1);
    layout1->addWidget(lineEdit, 1, 2);
    
    layout2->addItem(spacer3);
    layout2->addWidget(Button);
    
    layout->addLayout(layout1);
    layout->addWidget(textEdit);
    layout->addLayout(layout2);
    
    setLayout(layout);
Dateianhänge
screen.jpg
screen.jpg (54.02 KiB) 6182 mal betrachtet
siik
Beiträge: 11
Registriert: 24. Juli 2005 12:35

Re: Button etwas grösser machen

Beitrag von siik »

c++coder hat geschrieben:hi,
ich habs nun geschafft, bis auf die button grösse schauts schon mal gut aus...
mit das layout hat aber leider kein setSize !?
Hä? Du willst doch das Line Edit und die Combo Box gleich groß machen, was hat das mit dem Layout zu tun? Natürlich kannst du einem Layout keine Größe geben.
c++coder
Beiträge: 47
Registriert: 11. Juli 2005 00:20
Kontaktdaten:

button

Beitrag von c++coder »

hm will nur button etwas grösser machen! cu
siik
Beiträge: 11
Registriert: 24. Juli 2005 12:35

Beitrag von siik »

Ok, setSize( int, int ) gibts tatsächlich nicht, aber es gibt genügend Slots um die Größe festzulegen: http://doc.trolltech.com/4.0/qpushbutton-members.html
Antworten