Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[QT] Zmiana argumantów w funkcji

Ostatnio zmodyfikowano 2016-12-11 11:47
Autor Wiadomość
iGhost
Temat założony przez niniejszego użytkownika
[QT] Zmiana argumantów w funkcji
» 2016-12-04 13:13:43
Witam
Zaczynam się uczyć biblioteki QT i mam pewną funkcję ktora bedzie sie powtarzać w 9 miejscach ze zmienionymi argumentami
C/C++
if( p1 == 'n' )
{
    if( kto == 'o' )
    {
        QPixmap pix( "sciezka" );
        QIcon ButtonIcon( pix );
        ui->pole1->setIcon( pix );
        ui->pole1->setIconSize( QSize( 100, 100 ) );
        p1 = 'o';
        kto = 'x';
        QPixmap pix2( "sciezka" );
        ui->miniatura->setPixmap( pix2 );
       
       
       
       
       
    }
    else
    {
        QPixmap pix( "sciezka" );
        QIcon ButtonIcon( pix );
        ui->pole1->setIcon( pix );
        ui->pole1->setIconSize( QSize( 100, 100 ) );
        p1 = 'x';
        kto = 'o';
        QPixmap pix2( "sciezka" );
        ui->miniatura->setPixmap( pix2 );
       
       
    }
    QApplication::setOverrideCursor( Qt::ArrowCursor );
    void sprawdz();
   
   
}

p1 musi sie zmieniac na p2, pole1 na pole2 itd. Pole1, Pole2 to nazwy obiektów, a p1, p2 to nazwy zmiennych
Mam nadzieje, że ktoś zrozumie o co mi chodzi :D
Z góry dziekuje za pomoc ;)
P-154467
sajmon
» 2016-12-04 16:39:02
Wystarczy to opakować w funkcję
void funkcja( QString p, QTwojWidget * pole );

P-154483
iGhost
Temat założony przez niniejszego użytkownika
» 2016-12-04 18:07:22
dzieki wielkie za odzew
Mógłbyś mi jeszcze podać w jaki sposob ma wygladać wtedy funkcja, bo nie do konca rozumiem jak powinienem uzyc QString skoro chcę zamienić zmienną
O a Widget którego używam to PushButton
P-154487
mateczek
» 2016-12-05 15:08:35
napisz lepiej co chcesz aby program robił. Bo z tego kodu, przynajmniej jak dla mnie, nie za wiele wynika.
P-154536
iGhost
Temat założony przez niniejszego użytkownika
» 2016-12-06 17:14:22
Ogólnie ten program to zwyczajne kółko i krzyzyk xD
Ta funkcja sprawdza czy dane pole jest puste (w załączonym kodzie sprawdza dla pola 1), sprawdza czy teraz jest tura gracza "o", a następnie wykonuje zmiany w obiekcie i zmienia turę gracza . Zmienna "kto" jest to tura gracza
P-154587
mateczek
» 2016-12-06 17:42:27
zrób sobie tablice 3X3
w slocie przycisku wpisuj coś do tablicy "x" lub "o" i wywołaj funnkcje sprawdzającą wygraną
P-154592
iGhost
Temat założony przez niniejszego użytkownika
» 2016-12-06 17:45:35
Ej, dobre
Tak zrobie, dzięki
P-154593
iGhost
Temat założony przez niniejszego użytkownika
» 2016-12-11 11:47:06
Ciągle mam problem. Przerobiłem kod na tablice i jest niby wszystko ok, ale nie wiem jak zmienić obiekt w funkcji
Wyglądało to tak:
C/C++
void MainWindow::on_pole9_clicked()
{
    if( p9 == 'n' )
    {
        if( kto == 'o' )
        {
            QPixmap pix( "sciezka" );
            QIcon ButtonIcon( pix );
            ui->pole9->setIcon( pix );
            ui->pole9->setIconSize( QSize( 100, 100 ) );
            p9 = 'o';
            kto = 'x';
            QPixmap pix2( "sciezka" );
            ui->miniatura->setPixmap( pix2 );
           
           
           
           
           
        }
        else
        {
            QPixmap pix( "sciezka" );
            QIcon ButtonIcon( pix );
            ui->pole9->setIcon( pix );
            ui->pole9->setIconSize( QSize( 100, 100 ) );
            p9 = 'x';
            kto = 'o';
            QPixmap pix2( "sciezka" );
            ui->miniatura->setPixmap( pix2 );
           
           
        }
        sprawdz();
       
       
    }
}
A teraz tak:


C/C++
void MainWindow::on_pole9_clicked()
{
   
   
    funkcja( p[ 3 ][ 3 ], /*W tym miejscu nie wiem co wstawić, ale powinienem przekazac tu pole9 do funkcji*/ );
   
   
}



C/C++
void MainWindow::funkcja( char p, /*Tutaj nie wiem co wpisać*/ )
{
    if( p == 'n' )
    {
        if( kto == 'o' )
        {
            QPixmap pix( "C:/Users/Admin/Desktop/QT/kolko_i_krzyrzyk/img/o.bmp" );
            QIcon ButtonIcon( pix );
            ui->/*tutaj ma być obiekt, w zaleznosci od tego jaki przycisk zostal klikniety(np.pole9)*/->setIcon( pix );
            ui->/*tutaj też*/->setIconSize( QSize( 100, 100 ) );
            p = 'o';
            kto = 'x';
            QPixmap pix2( "C:/Users/Admin/Desktop/QT/kolko_i_krzyrzyk/img/xsmall.bmp" );
            ui->miniatura->setPixmap( pix2 );
           
           
           
           
           
        }
        else
        {
            QPixmap pix( "C:/Users/Admin/Desktop/QT/kolko_i_krzyrzyk/img/x.bmp" );
            QIcon ButtonIcon( pix );
            ui->/*tutaj tez obiekt*/->setIcon( pix );
            ui->/*tutaj tez obiekt*/->setIconSize( QSize( 100, 100 ) );
            p = 'x';
            kto = 'o';
            QPixmap pix2( "C:/Users/Admin/Desktop/QT/kolko_i_krzyrzyk/img/osmall.bmp" );
            ui->miniatura->setPixmap( pix2 );
           
           
        }
       
       
       
        sprawdz();
       
    }
   
}

Wybaczcie, że tak chaotycznie, ale nie potrafię tego inaczej wytłumaczyc
P-154772
« 1 »
  Strona 1 z 1