QDialog Position Festlegen?
Verfasst: 26. April 2017 00:14
Hallo
Ich möchte gern ein spielbrett erstellen mit pushbutton
bsp 4x4 (sollte so ähnlich wie ein Schachbrett sein, Randlos,lückenlos und mit Pushbutton)
So ungefähr.
_______________
___|___|___|___|
___|___|___|___|
___|___|___|___|
Nun wenn ich reihe und spalte analog in ein konfigurationsfenster(mit Gridlayout) eingebe, sollte 4x4 = 16 button hintereinander in mein QDialog ( Aus QDesigner= .ui file) von oben Links beginnend eingefügt werden. Das Problem ist, dass ich mit Gridlayout arbeiten muss, um manuell die Button mit" layout->addwidget(pushbutton,pos_x,pos_y) einzufügen. Jedoch werden die Button nicht ganz Oben links eingefügt und es entstehen immer zwischen 2 Button eine Lücke
Wie kann ich das realisieren?
Bis jetzt läuft das so ab.
2.te Frage
Im Konfigurationsfenster ist es so, dass ich 2 lineedit habe wo ich n und m (reihe,spalte) eingeben kann . Dazu habe ich ein Restart Button erstellt. Wenn man Restart button drückt, werden alle button im Spielfeld gelöscht, und zusätzlich werden die eingegebene Daten im Lineedit gelöscht.
Bitte um Hilfe
Vielen Dank
Ich möchte gern ein spielbrett erstellen mit pushbutton
bsp 4x4 (sollte so ähnlich wie ein Schachbrett sein, Randlos,lückenlos und mit Pushbutton)
So ungefähr.
_______________
___|___|___|___|
___|___|___|___|
___|___|___|___|
Nun wenn ich reihe und spalte analog in ein konfigurationsfenster(mit Gridlayout) eingebe, sollte 4x4 = 16 button hintereinander in mein QDialog ( Aus QDesigner= .ui file) von oben Links beginnend eingefügt werden. Das Problem ist, dass ich mit Gridlayout arbeiten muss, um manuell die Button mit" layout->addwidget(pushbutton,pos_x,pos_y) einzufügen. Jedoch werden die Button nicht ganz Oben links eingefügt und es entstehen immer zwischen 2 Button eine Lücke
Wie kann ich das realisieren?
Bis jetzt läuft das so ab.
Code: Alles auswählen
int pos = 0;
layout = new QGridLayout(this);
for(int i = 0;i<n;i++){
for(int j = 0;j<m;j++){
//Convert int int QString
QString str = QString::number(matrix[i][j],10); //Hier werden nur nummer in PushButton als Bezeicher eingefügt
this->button.push_back(new QPushButton(str,this));
//button[pos]->setFixedSize(80,80);
layout->addWidget(button[pos],i,j,Qt::AlignLeft); //Hier wird Button aus buttonvektor in Gridlayout von QDesigner eingefügt, jedoch nicht in oben links wie gewünscht
//Weil Gridlayout im hauptwidget befindet => position nicht ganz oben links?
pos++;
}
}
2.te Frage
Im Konfigurationsfenster ist es so, dass ich 2 lineedit habe wo ich n und m (reihe,spalte) eingeben kann . Dazu habe ich ein Restart Button erstellt. Wenn man Restart button drückt, werden alle button im Spielfeld gelöscht, und zusätzlich werden die eingegebene Daten im Lineedit gelöscht.
Code: Alles auswählen
QObject::connect(restart,SIGNAL(clicked()),this,SLOT(restartGame()));
void Klassename::restartGame(){
lineeditN->clear(); //Hier wird Inhalt in lineedit von N gelöscht jedoch bekomme ich immer danach ein Runtime Error Visual c++
// This Application has requested the runtime to terminated it in an usually way
}
Bitte um Hilfe
Vielen Dank