Cześć,
Od pewnego czasu pisze sobie coś tam w Qt Creatorze, czasem wychodzi, czasem mniej. Ale ostatnio natrafiłem na problem którego ni jak nie mogę rozwiązać. Piszę sobie prostą grę w pamięć, plansza 4x4 karty trzeba zapamiętać gdzie która jest i "zrzucić" wszystkie. Okodowanie wszystkiego nie zajeło mi dużo czasu, wszystko działa prócz jednej rzeczy. po kliknięciu na 1 kartę zostaje ona odsłonięta, ale po kliknięciu w 2 powinna ona zostać odsłonięta, a następnie zależnie od rezultatu usunięta lub powrotnie zakryta. Cały problem polega na tym, że zanim karta zdąży zostać odsłonięta i pokazana automatycznie zostaje albo zakryta (wraz ze wcześniejszą kartą) albo usunięta bez pokazania.
I tu rodzi się pytanie: jak zrobić tak aby karta przez moment widniała a następnie znikała? Próbowałem po odsłonięciu urzyć opcji QThreat::sleep(1) (sleep odlicza czas w sekundach, próbowałem też 1000), ale rezultat jest taki że karta nadal nie zostaje odsłonięta tylko program czeka 1s a następnie dopiero zrzuca kartę tak jak poprzednio. Czy ktoś wie jak to naprawić? Dołączam fragmęt kodu, a dokładniej funkcji realizującej pojawianie się i znikanie kart.
void MainWindow::set(int a)
{
switch(card[a])
{
case 0:
cardsbutton[a]->setStyleSheet("width: 86; height: 129; background-image: url('C:/Users/Kacper/Desktop/karty/as_wino.png');");
break;
case 1:
cardsbutton[a]->setStyleSheet("width: 86; height: 129; background-image: url('C:/Users/Kacper/Desktop/karty/as_czerwień.png');");
break;
case 2:
cardsbutton[a]->setStyleSheet("width: 86; height: 129; background-image: url('C:/Users/Kacper/Desktop/karty/as_dzwonek.png');");
break;
case 3:
cardsbutton[a]->setStyleSheet("width: 86; height: 129; background-image: url('C:/Users/Kacper/Desktop/karty/as_żołądź.png');");
break;
case 4:
cardsbutton[a]->setStyleSheet("width: 86; height: 129; background-image: url('C:/Users/Kacper/Desktop/karty/kr_wino.png');");
break;
case 5:
cardsbutton[a]->setStyleSheet("width: 86; height: 129; background-image: url('C:/Users/Kacper/Desktop/karty/kr_czerwień.png');");
break;
case 6:
cardsbutton[a]->setStyleSheet("width: 86; height: 129; background-image: url('C:/Users/Kacper/Desktop/karty/kr_dzwonek.png');");
break;
case 7:
cardsbutton[a]->setStyleSheet("width: 86; height: 129; background-image: url('C:/Users/Kacper/Desktop/karty/kr_żołądź.png');");
break;
}
if (active == true)
{
//tutaj daje sleep
if(card[a] == card[last])
{
cardsbutton[a]->close();
cardsbutton[last]->close();
}
else
{
cardsbutton[a]->setStyleSheet("width: 86; height: 129; background-image: url('C:/Users/Kacper/Desktop/karty/r.jpg');");
cardsbutton[last]->setStyleSheet("width: 86; height: 129; background-image: url('C:/Users/Kacper/Desktop/karty/r.jpg');");
cardsbutton[last]->setEnabled(true);
}
active = false;
}
else
{
last = a;
active = true;
cardsbutton[a]->setDisabled(true);
}
}