QGridLayout spinnt!
Verfasst: 8. Dezember 2008 17:28
Hallo @Everyone!
Ich bin gerade dabei, unser Wahlsystem zu automatisieren
Beim Erstellen einer Oberfläche zur Eingabe der versch. Parteien und deren Daten unterlief mir wohl ein Fehler, welchen ich einfach nicht zu beheben schaffe!!
Mein QGridLayout sorgt nicht für die Ordung, die ich will, sprich: Es lässt einfach Elemente weg und somit verrückt jede weitere Zeile in die vorherige...
Hier der Code:
HareNiemeyer.h
HareNiemeyer.cpp
Mir ist schon aufgefallen, dass sich das QGridLayout beim Verschieben einzelner "Erstellungsbefehle" im Konstruktor verändert, d.h wenn ich zum Beispiel die GroupBoxen erst später erstelle, dann fehlen eben nicht die ersten Elemente, sondern die letzten...
Also irgendwas stimmt einfach nicht!
Hoffe auf Antwort!
PS:
Vielleicht könnte mir hier jemand einen Tipp geben, nach welcher Reihenfolge man normalerweise so ein Fenster erstellt:
Entweder so wie ich es mache (von außen nach innen):
Zuerst die Hauptkontainer alle deklarieren und definieren, dann die Inhalte deklarieren und definieren, dann die Inhalte zum Kontainer hinzufügen
Oder (von innen nach außen):
Zuerst mit den Inhalten anfangen, und am Schluss die Container erstellen und sie mit den Inhalten füllen
Oder (Mix):
Vielleicht ein Mix??
Viele Grüße
Gapa
Ich bin gerade dabei, unser Wahlsystem zu automatisieren
Beim Erstellen einer Oberfläche zur Eingabe der versch. Parteien und deren Daten unterlief mir wohl ein Fehler, welchen ich einfach nicht zu beheben schaffe!!
Mein QGridLayout sorgt nicht für die Ordung, die ich will, sprich: Es lässt einfach Elemente weg und somit verrückt jede weitere Zeile in die vorherige...
Hier der Code:
HareNiemeyer.h
Code: Alles auswählen
//HareNiemeyer.h
#ifndef HARENIEMEYER_H
#define HARENIEMEYER_H
#include <iostream>
#include <QObject>
#include <QWidget>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QGroupBox>
#include <QLabel>
#include <QString>
#include <QLineEdit>
#include <QComboBox>
#include <QPushButton>
#include <QMessageBox>
class Gui_HareNiemeyer : public QWidget
{
Q_OBJECT
private:
QVBoxLayout *vbl_main;
QHBoxLayout *hbl_parties;
QGridLayout *gl_parties;
QGroupBox *gb_parties1, *gb_parties2;
QLabel *l_parties, *l_party[4], *l_votes[4], *l_seats[4];
QComboBox *cb_parties;
QLineEdit *le_party[4], *le_votes[4], *le_seats[4];
QPushButton *pb_calculate;
public:
Gui_HareNiemeyer();
~Gui_HareNiemeyer();
public slots:
QString Calculate(QString seats, QString parties, QString votes, QString misc);
};
#endifCode: Alles auswählen
//HareNiemeyer.cpp
#include "HareNiemeyer.h"
Gui_HareNiemeyer::Gui_HareNiemeyer()
{
//////
vbl_main = new QVBoxLayout(this);
hbl_parties = new QHBoxLayout;
gl_parties = new QGridLayout;
gb_parties1 = new QGroupBox("Anzahl");
gb_parties2 = new QGroupBox("Definition");
//////
///
l_parties = new QLabel("Anzahl Parteien:");
cb_parties = new QComboBox;
cb_parties->addItem("1");
cb_parties->addItem("2");
cb_parties->addItem("3");
cb_parties->addItem("4");
cb_parties->addItem("5");
hbl_parties->addWidget(l_parties);
hbl_parties->addWidget(cb_parties);
///
l_party[0] = new QLabel("Partei 1");
le_party[0] = new QLineEdit;
l_party[1] = new QLabel("Partei 2");
le_party[1] = new QLineEdit;
l_party[2] = new QLabel("Partei 3");
le_party[2] = new QLineEdit;
l_party[3] = new QLabel("Partei 4");
le_party[3] = new QLineEdit;
l_party[4] = new QLabel("Partei 5");
le_party[4] = new QLineEdit;
l_votes[0] = new QLabel("Stimmen 1");
le_votes[0] = new QLineEdit;
l_votes[1] = new QLabel("Stimmen 2");
le_votes[1] = new QLineEdit;
l_votes[2] = new QLabel("Stimmen 3");
le_votes[2] = new QLineEdit;
l_votes[3] = new QLabel("Stimmen 4");
le_votes[3] = new QLineEdit;
l_votes[4] = new QLabel("Stimmen 5");
le_votes[4] = new QLineEdit;
l_seats[0] = new QLabel("Sitze 1");
le_seats[0] = new QLineEdit;
l_seats[1] = new QLabel("Sitze 2");
le_seats[1] = new QLineEdit;
l_seats[2] = new QLabel("Sitze 3");
le_seats[2] = new QLineEdit;
l_seats[3] = new QLabel("Sitze 4");
le_seats[3] = new QLineEdit;
l_seats[4] = new QLabel("Sitze 5");
le_seats[4] = new QLineEdit;
gl_parties->addWidget(l_party[0], 0, 0);
gl_parties->addWidget(l_party[1], 0, 1);
gl_parties->addWidget(l_party[2], 0, 2);
gl_parties->addWidget(l_party[3], 0, 3);
gl_parties->addWidget(l_party[4], 0, 4);
gl_parties->addWidget(le_party[0], 1, 0);
gl_parties->addWidget(le_party[1], 1, 1);
gl_parties->addWidget(le_party[2], 1, 2);
gl_parties->addWidget(le_party[3], 1, 3);
gl_parties->addWidget(le_party[4], 1, 4);
gl_parties->addWidget(l_votes[0], 2, 0);
gl_parties->addWidget(l_votes[1], 2, 1);
gl_parties->addWidget(l_votes[2], 2, 2);
gl_parties->addWidget(l_votes[3], 2, 3);
gl_parties->addWidget(l_votes[4], 2, 4);
gl_parties->addWidget(le_votes[0], 3, 0);
gl_parties->addWidget(le_votes[1], 3, 1);
gl_parties->addWidget(le_votes[2], 3, 2);
gl_parties->addWidget(le_votes[3], 3, 3);
gl_parties->addWidget(le_votes[4], 3, 4);
gl_parties->addWidget(l_seats[0], 4, 0);
gl_parties->addWidget(l_seats[1], 4, 1);
gl_parties->addWidget(l_seats[2], 4, 2);
gl_parties->addWidget(l_seats[3], 4, 3);
gl_parties->addWidget(l_seats[4], 4, 4);
gl_parties->addWidget(le_seats[0], 5, 0);
gl_parties->addWidget(le_seats[1], 5, 1);
gl_parties->addWidget(le_seats[2], 5, 2);
gl_parties->addWidget(le_seats[3], 5, 3);
gl_parties->addWidget(le_seats[4], 5, 4);
///
gb_parties1->setLayout(hbl_parties);
gb_parties2->setLayout(gl_parties);
///
vbl_main->addWidget(gb_parties1);
vbl_main->addWidget(gb_parties2);
}
Gui_HareNiemeyer::~Gui_HareNiemeyer()
{
}
QString Gui_HareNiemeyer::Calculate(QString seats, QString parties, QString votes, QString misc)
{
}Also irgendwas stimmt einfach nicht!
Hoffe auf Antwort!
PS:
Vielleicht könnte mir hier jemand einen Tipp geben, nach welcher Reihenfolge man normalerweise so ein Fenster erstellt:
Entweder so wie ich es mache (von außen nach innen):
Zuerst die Hauptkontainer alle deklarieren und definieren, dann die Inhalte deklarieren und definieren, dann die Inhalte zum Kontainer hinzufügen
Oder (von innen nach außen):
Zuerst mit den Inhalten anfangen, und am Schluss die Container erstellen und sie mit den Inhalten füllen
Oder (Mix):
Vielleicht ein Mix??
Viele Grüße
Gapa