Kółko i krzyżyk – problem z funkcją sprawdzajacą

0
void sprawdz()
{
    if( (p1==p2 && p2==p3 && p1!='n') ||
        (p4==p5 && p5==p6 && p4!='n') ||
        (p7==p8 && p8==p9 && p7!='n') ||
        (p1==p4 && p4==p7 && p7!='n') ||
        (p2==p5 && p5==p8 && p2!='n') ||
        (p3==p6 && p6==p9 && p3!='n') ||
        (p1==p5 && p5==p9 && p1!='n') ||
        (p3==p5 && p5==p7 && p3!='n'))
    {
       if (kto=='x') QMessageBox::information(this,QObject::tr("KONIEC GRY"),QObject::tr("WYGRYWA KÓŁKO!!!"));
       else QMessageBox::information(this,QObject::tr("KONIEC GRY"),QObject::tr("WYGRYWA KRZYŻYK!!!"));

Witam, próbuje zrobić coś w QT jest to kółko i krzyżyk , i chciałbym żeby po sprawdzeniu powyższych warunków w tej funkcji pojawiała się informacja o zakonczeniu gry i wygraniu jeden z osob, niestety przy powyższym kodzie wyskakuje mi błąd:

QT Projekty\kolko_krzyzyk\mainwindow.cpp:36: błąd: invalid use of 'this' in non-member function
        if (kto=='x') QMessageBox::information(this,QObject::tr("KONIEC GRY"),QObject::tr("WYGRYWA KĂ“ĹKO!!!"));
                                               ^

Co jest źle lub w jaki też inny sposob moge wyświetlić komunikat o zakonczeniu gry? Pozdro :)

0

To jest wolna funkcja, jakiej wartości spodziewasz się, aby miało this? Tylko niestatyczne funkcje klas mają this

0

W jaki inny sposob w tej funkcji mogę wyswietlic takie powiadomienie?

0

Pełno przykładów jest w dokumentacji, jak rodzica nie ma to go nie przekazuj.

0
void sprawdz()
{
    if( (p1==p2 && p2==p3 && p1!='n') ||
        (p4==p5 && p5==p6 && p4!='n') ||
        (p7==p8 && p8==p9 && p7!='n') ||
        (p1==p4 && p4==p7 && p7!='n') ||
        (p2==p5 && p5==p8 && p2!='n') ||
        (p3==p6 && p6==p9 && p3!='n') ||
        (p1==p5 && p5==p9 && p1!='n') ||
        (p3==p5 && p5==p7 && p3!='n'))
    {
       QMessageBox msgBox;
       if (kto=='x') {msgBox.setText ("Koniec gry. Wygrywa KÓŁKO!!!");
       msgBox.exec();
       }
       else {msgBox.setText ("Koniec gry. Wygrywa KRZYŻYK!!!");
       msgBox.exec();
           }
}
}

Przerobiłem to w taki sposob, kompilator to przyjmuje bez błędu, jednak komunikat się nie wyświetla w razie wygrania... ktoś jest w stanie powiedzieć co jest źle?

1 użytkowników online, w tym zalogowanych: 0, gości: 1