witam, mam problem z tą funkcją:
void MainWindow::CreateChessBoard()
{
ChessboardFrame = new QLabel(this);
ChessboardFrame->resize(700,700);
ChessboardFrame->move(0,0);
ChessboardFrame->setAlignment(Qt::AlignVCenter);
int x=75;
int y=75;
int c=75;
Chessboard = new QLabel *[8];
for(int i=0; i<8; ++i)
{
Chessboard[i] = new QLabel[8];
}
for(int i=0; i<8; ++i)
{
for(int j=0; j<8; ++j)
{
if(i%2==0)
{
if(j%2==0)
{
Chessboard[i][j].setParent(ChessboardFrame);
Chessboard[i][j].setStyleSheet("QLabel { background-color : black; }");
Chessboard[i][j].resize(c,c);
Chessboard[i][j].move(x,y);
Chessboard[i][j].setText("Czarne");
//Chessboard[i][j].;
}
else
{
Chessboard[i][j].setParent(ChessboardFrame);
Chessboard[i][j].setStyleSheet("QLabel { background-color : white; }");
Chessboard[i][j].resize(c,c);
Chessboard[i][j].move(x,y);
Chessboard[i][j].setText("Biale");
//Chessboard[i][j].;
}
}
else
{
if(j%2==0)
{
Chessboard[i][j].setParent(ChessboardFrame);
Chessboard[i][j].setStyleSheet("QLabel { background-color : white; }");
Chessboard[i][j].resize(c,c);
Chessboard[i][j].move(x,y);
Chessboard[i][j].setText("Biale");
//Chessboard[i][j].;
}
else
{
Chessboard[i][j].setParent(ChessboardFrame);
Chessboard[i][j].setStyleSheet("QLabel { background-color : black; }");
Chessboard[i][j].resize(c,c);
Chessboard[i][j].move(x,y);
Chessboard[i][j].setText("Czarne");
//Chessboard[i][j].;
}
}
x+=c;
}
x=c;
y+=c;
}
}
1/chodzi o to, że program uruchamia się poprawnie (w trybie debug) ale wyrzuca info "invalid pointer".
2/Potrzebuję wyśrodkować QLabel w którego środku znajdują się czarno-białe prostokąciki :). Myślałem nad tym żeby pobrać rozmiar okna i przeliczyć sobie gdzie powinno znajdować się chessBoardFrame jednak nie umiem znaleźć klasy odpowiedzialnej za to działanie.
3/Jak sprawić aby okno dopasowywało się do wielkości szachownicy. W tej chwili zachowuje się tak jakby wielkość miało wpisaną na stałe. Może znów powinienem pobierać wielkość ChessBoardFrame i po odpowiedniej modyfikacji jakoś ustawiać wielkość tego okna(tylko jak?).