Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Update: Forum Guidelines & Code of Conduct

    Void nie działa jak powinien.

    Polish
    4
    6
    2260
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      New00 last edited by

      Witam!

      Mam funkcje w: mainwindow.h
      @void w_player();@

      i chce ją wywołać w mainwindow.cpp tylko jest problem ponieważ mam w środku ify:
      @void MainWindow::w_player()
      {
      {
      if(ui->button1->text()=="Exit" && ui->button2->text()=="Exit" )
      {
      ui->label_won->setText("2 Exit");
      }

      }
      

      }@

      że jak w 2 przyciskach text = Exit to żeby w label wyświetlił się ... text .
      I jest problem ponieważ funkcja nie wyrzuca błędu a nie robi tego co trzeba.
      Może coś źle robie :/

      1 Reply Last reply Reply Quote 0
      • G
        guziemic last edited by

        Witam na forum :)

        A sprawdzałeś czy rzeczywiście oba przyciski mają wartość "Exit"?

        Ewentualnie możesz użyć debugera/qDebuga żeby zobaczyć jak wykonywany jest kod.

        1 Reply Last reply Reply Quote 0
        • N
          New00 last edited by

          Dobra podam wam cały projekt pisze gre kółko i krzyżyk i tak to wygląda:

          mainwindow.h
          @#ifndef MAINWINDOW_H
          #define MAINWINDOW_H

          #include <QMainWindow>

          namespace Ui {
          class MainWindow;
          }

          class MainWindow : public QMainWindow
          {
          Q_OBJECT

          public:
          explicit MainWindow(QWidget *parent = 0);
          ~MainWindow();

          private slots:
          void on_button_left_up_clicked();

          void on_button_left_clicked();
          
          void on_button_left_down_clicked();
          
          void on_button_up_clicked();
          
          void on_button_middle_clicked();
          
          void on_button_down_clicked();
          
          void on_button_right_up_clicked();
          
          void on_button_right_clicked();
          
          void on_button_right_down_clicked();
          
          void w_player();
          

          private:
          Ui::MainWindow *ui;
          };

          #endif // MAINWINDOW_H
          @

          mainwindow.cpp

          @#include "mainwindow.h"
          #include "ui_mainwindow.h"

          MainWindow::MainWindow(QWidget *parent) :
          QMainWindow(parent),
          ui(new Ui::MainWindow)
          {
          ui->setupUi(this);
          }

          MainWindow::~MainWindow()
          {
          delete ui;
          }

          void MainWindow::on_button_left_up_clicked()
          {
          if(ui->button_left_up->text()=="")
          {
          ui->button_left_up->setText(ui->label_turn_ox->text());
          }
          if(ui->button_left_up->text()=="O")
          {
          ui->label_turn_ox->setText("X");
          }
          if(ui->button_left_up->text()=="X")
          {
          ui->label_turn_ox->setText("O");
          }
          ui->button_left_up->setEnabled(false);
          }

          void MainWindow::on_button_left_clicked()
          {
          if(ui->button_left->text()=="")
          {
          ui->button_left->setText(ui->label_turn_ox->text());
          }
          if(ui->button_left->text()=="O")
          {
          ui->label_turn_ox->setText("X");
          }
          if(ui->button_left->text()=="X")
          {
          ui->label_turn_ox->setText("O");
          }
          ui->button_left->setEnabled(false);
          }

          void MainWindow::on_button_left_down_clicked()
          {
          if(ui->button_left_down->text()=="")
          {
          ui->button_left_down->setText(ui->label_turn_ox->text());
          }
          if(ui->button_left_down->text()=="O")
          {
          ui->label_turn_ox->setText("X");
          }
          if(ui->button_left_down->text()=="X")
          {
          ui->label_turn_ox->setText("O");
          }
          ui->button_left_down->setEnabled(false);
          }

          void MainWindow::on_button_up_clicked()
          {
          if(ui->button_up->text()=="")
          {
          ui->button_up->setText(ui->label_turn_ox->text());
          }
          if(ui->button_up->text()=="O")
          {
          ui->label_turn_ox->setText("X");
          }
          if(ui->button_up->text()=="X")
          {
          ui->label_turn_ox->setText("O");
          }
          ui->button_up->setEnabled(false);
          }

          void MainWindow::on_button_middle_clicked()
          {
          if(ui->button_middle->text()=="")
          {
          ui->button_middle->setText(ui->label_turn_ox->text());
          }
          if(ui->button_middle->text()=="O")
          {
          ui->label_turn_ox->setText("X");
          }
          if(ui->button_middle->text()=="X")
          {
          ui->label_turn_ox->setText("O");
          }
          ui->button_middle->setEnabled(false);
          }

          void MainWindow::on_button_down_clicked()
          {
          if(ui->button_down->text()=="")
          {
          ui->button_down->setText(ui->label_turn_ox->text());
          }
          if(ui->button_down->text()=="O")
          {
          ui->label_turn_ox->setText("X");
          }
          if(ui->button_down->text()=="X")
          {
          ui->label_turn_ox->setText("O");
          }
          ui->button_down->setEnabled(false);
          }

          void MainWindow::on_button_right_up_clicked()
          {
          if(ui->button_right_up->text()=="")
          {
          ui->button_right_up->setText(ui->label_turn_ox->text());
          }
          if(ui->button_right_up->text()=="O")
          {
          ui->label_turn_ox->setText("X");
          }
          if(ui->button_right_up->text()=="X")
          {
          ui->label_turn_ox->setText("O");
          }
          ui->button_right_up->setEnabled(false);
          }

          void MainWindow::on_button_right_clicked()
          {
          if(ui->button_right->text()=="")
          {
          ui->button_right->setText(ui->label_turn_ox->text());
          }
          if(ui->button_right->text()=="O")
          {
          ui->label_turn_ox->setText("X");
          }
          if(ui->button_right->text()=="X")
          {
          ui->label_turn_ox->setText("O");
          }
          ui->button_right->setEnabled(false);
          }

          void MainWindow::on_button_right_down_clicked()
          {
          if(ui->button_right_down->text()=="")
          {
          ui->button_right_down->setText(ui->label_turn_ox->text());
          }
          if(ui->button_right_down->text()=="O")
          {
          ui->label_turn_ox->setText("X");
          }
          if(ui->button_right_down->text()=="X")
          {
          ui->label_turn_ox->setText("O");
          }
          ui->button_right_down->setEnabled(false);
          }

          void MainWindow::w_player()
          {
          {
          if(ui->button_left_down->text()=="X" && ui->button_left->text()=="X" && ui->button_left_up->text()=="X")
          {
          ui->label_won->setText("Won: X");
          }

          }
          

          }
          @
          main.cpp

          @#include "mainwindow.h"
          #include <QApplication>

          int main(int argc, char *argv[])
          {
          QApplication a(argc, argv);
          MainWindow w;
          w.show();

          return a.exec&#40;&#41;;
          

          }
          @

          1 Reply Last reply Reply Quote 0
          • V
            Vovasty last edited by

            Hi,
            try to call w_player() in each on_button_xxx_clicked() functions or use signals-slots connections.

            1 Reply Last reply Reply Quote 0
            • T
              turaz last edited by

              Jeżeli to jest cały projekt to ja nie widzę w kodzie ani jednego wywołania metody: @w_player()@
              Jeśli jest to SLOT to pod jaki sygnał go podpiąłeś bo tego też nie widzę.

              1 Reply Last reply Reply Quote 0
              • V
                Vovasty last edited by

                [quote author="turaz" date="1413312214"]Jeżeli to jest cały projekt to ja nie widzę w kodzie ani jednego wywołania funkcji: @w_player()@
                Jeśli jest to SLOT to pod jaki sygnał go podpiąłeś bo tego też nie widzę.
                [/quote]
                Your right. For example can write:
                @MainWindow::MainWindow(QWidget *parent) :
                QMainWindow(parent),
                ui(new Ui::MainWindow)
                {
                ui->setupUi(this);

                connect(ui->button_left_up, SIGNAL(clicked()),
                this, SLOT(w_player()));
                ...
                }
                @

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post