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 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 ;) |
|
sajmon |
» 2016-12-04 16:39:02 Wystarczy to opakować w funkcję void funkcja( QString p, QTwojWidget * pole ); |
|
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 |
|
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. |
|
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 |
|
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ą
|
|
iGhost Temat założony przez niniejszego użytkownika |
» 2016-12-06 17:45:35 Ej, dobre Tak zrobie, dzięki |
|
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: 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: void MainWindow::on_pole9_clicked() { funkcja( p[ 3 ][ 3 ], ); }
void MainWindow::funkcja( char p, ) { if( p == 'n' ) { if( kto == 'o' ) { QPixmap pix( "C:/Users/Admin/Desktop/QT/kolko_i_krzyrzyk/img/o.bmp" ); QIcon ButtonIcon( pix ); ui->->setIcon( pix ); ui->->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->->setIcon( pix ); ui->->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 |
|
« 1 » |