2016-06-12 4 views
-1

ich eine App c zu üben gemacht ++ und qt (Anfänger)Ankreuzfelder QPushButton Funktionen Makeln (anhängen Strings + benutzerdefinierte Symbole zeigen)

sieht wie folgt aus: (! Mahjong-Thema) enter image description here

Atm, alles was es tut ist das: http://imgur.com/cnXfWZh

Ziemlich einfach, aber ich möchte einige Funktionen hinzufügen.

Problem ist, ich hätte nicht gedacht, dass das Hinzufügen so schwierig wäre (zumindest für mich).

"Spieler 1" Checkbox

  • nur durch die "Spieler 1" Checkbox tickt sollte die Aktion in der gif erlaubt zu sehen. (Jetzt ist es immer erlaubt, keine Notwendigkeit, das Kästchen)

  • Während das Kästchen aktiviert ist, sollte es auch jede Fliese Symbol auf den „graphicsView“ Bereich hinzufügen, da jede Fliese angeklickt werden, in der gleichen Reihenfolge wie in der Ausgabe in "textEdit box 1" zu sehen.

    (auf der Oberseite der Zeichenfolge append Merkmal „textEdit Box 1“, die bereits im Augenblick arbeitet)

  • maximal 13 Kacheln sollte

    in „textEdit“ -Box und „graphicsView“ Bereich zugelassen werden

Wie so: http://imgur.com/SUWHJSK

ich spare, was die "Wall" Checkbox für später tun sollte :)

Mein Code ist wahrscheinlich katastrophal, tut mir leid. < - immer noch sehr Anfänger, aber hier geht:

.proDatei:

QT  += core gui 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 

TARGET = HandBuilder_Mahjong 
TEMPLATE = app 


SOURCES += main.cpp\ 
     mainwindow.cpp 

HEADERS += mainwindow.h 

FORMS += mainwindow.ui 

RESOURCES += \ 
    tiles.qrc 

mainwindow.h:

private slots: 
    void addTextToLabel(); 
    void addTextToLabel2(); 
    void addTextToLabel3(); 
    void addTextToLabel4(); 
    void addTextToLabel5(); 
    void addTextToLabel6(); 
    void addTextToLabel7(); 
    void addTextToLabel8(); 
    void addTextToLabel9(); 
    void addTextToLabel10(); 
    void addTextToLabel11(); 
    void addTextToLabel12(); 
    void addTextToLabel13(); 
    void addTextToLabel14(); 
    void addTextToLabel15(); 
    void addTextToLabel16(); 
    void addTextToLabel17(); 
    void addTextToLabel18(); 
    void addTextToLabel19(); 
    void addTextToLabel20(); 
    void addTextToLabel21(); 
    void addTextToLabel22(); 
    void addTextToLabel23(); 
    void addTextToLabel24(); 
    void addTextToLabel25(); 
    void addTextToLabel26(); 
    void addTextToLabel27(); 

    void addTextToLabel28(); 
    void addTextToLabel29(); 
    void addTextToLabel30(); 
    void addTextToLabel31(); 
    void addTextToLabel32(); 
    void addTextToLabel33(); 
    void addTextToLabel34(); 





private: 
    Ui::MainWindow *ui; 
}; 

#endif // MAINWINDOW_H 

main.cpp:

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

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

    return a.exec(); 
} 

mainwindow.cpp:

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

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 
    connect(ui->Bamboo_1, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel())); 
    connect(ui->Bamboo_2, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel2())); 
    connect(ui->Bamboo_3, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel3())); 
    connect(ui->Bamboo_4, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel4())); 
    connect(ui->Bamboo_5, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel5())); 
    connect(ui->Bamboo_6, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel6())); 
    connect(ui->Bamboo_7, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel7())); 
    connect(ui->Bamboo_8, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel8())); 
    connect(ui->Bamboo_9, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel9())); 

    connect(ui->Man_1, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel10())); 
    connect(ui->Man_2, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel11())); 
    connect(ui->Man_3, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel12())); 
    connect(ui->Man_4, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel13())); 
    connect(ui->Man_5, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel14())); 
    connect(ui->Man_6, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel15())); 
    connect(ui->Man_7, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel16())); 
    connect(ui->Man_8, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel17())); 
    connect(ui->Man_9, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel18())); 

    connect(ui->Pin_1, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel19())); 
    connect(ui->Pin_2, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel20())); 
    connect(ui->Pin_3, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel21())); 
    connect(ui->Pin_4, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel22())); 
    connect(ui->Pin_5, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel23())); 
    connect(ui->Pin_6, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel24())); 
    connect(ui->Pin_7, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel25())); 
    connect(ui->Pin_8, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel26())); 
    connect(ui->Pin_9, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel27())); 

    connect(ui->Wind_East, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel28())); 
    connect(ui->Wind_North, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel29())); 
    connect(ui->Wind_South, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel30())); 
    connect(ui->Wind_West, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel31())); 
    connect(ui->Dragon_Red, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel32())); 
    connect(ui->Dragon_Green, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel33())); 
    connect(ui->Dragon_White, SIGNAL(clicked(bool)), this, SLOT(addTextToLabel34())); 


} 



//Bamboo tiles 

void MainWindow::addTextToLabel() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";b1"); 
} 

void MainWindow::addTextToLabel2() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";b2"); 
} 

void MainWindow::addTextToLabel3() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";b3"); 
} 

void MainWindow::addTextToLabel4() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";b4"); 
} 

void MainWindow::addTextToLabel5() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";b5"); 
} 

void MainWindow::addTextToLabel6() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";b6"); 
} 

void MainWindow::addTextToLabel7() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";b7"); 
} 

void MainWindow::addTextToLabel8() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";b8"); 
} 

void MainWindow::addTextToLabel9() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";b9"); 
} 

//Man tiles 

void MainWindow::addTextToLabel10() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";n1"); 
} 

void MainWindow::addTextToLabel11() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";n2"); 
} 

void MainWindow::addTextToLabel12() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";n3"); 
} 

void MainWindow::addTextToLabel13() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";n4"); 
} 

void MainWindow::addTextToLabel14() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";n5"); 
} 

void MainWindow::addTextToLabel15() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";n6"); 
} 

void MainWindow::addTextToLabel16() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";n7"); 
} 

void MainWindow::addTextToLabel17() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";n8"); 
} 

void MainWindow::addTextToLabel18() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";n9"); 
} 


// Pin tiles 
void MainWindow::addTextToLabel19() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";p1"); 
} 

void MainWindow::addTextToLabel20() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";p2"); 
} 

void MainWindow::addTextToLabel21() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";p3"); 
} 

void MainWindow::addTextToLabel22() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";p4"); 
} 

void MainWindow::addTextToLabel23() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";p5"); 
} 

void MainWindow::addTextToLabel24() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";p6"); 
} 

void MainWindow::addTextToLabel25() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";p7"); 
} 

void MainWindow::addTextToLabel26() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";p8"); 
} 

void MainWindow::addTextToLabel27() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";p9"); 
} 



//Wind tiles 
void MainWindow::addTextToLabel28() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";e"); 
} 

void MainWindow::addTextToLabel29() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";n"); 
} 

void MainWindow::addTextToLabel30() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";s"); 
} 

void MainWindow::addTextToLabel31() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";w"); 
} 




//Dragon tiles 
void MainWindow::addTextToLabel32() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";rd"); 
} 

void MainWindow::addTextToLabel33() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";gd"); 
} 

void MainWindow::addTextToLabel34() 
{ 
    ui->textEdit->setText(ui->textEdit->toPlainText() + ";wd"); 
} 



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

Ich würde wirklich lieben und etwas Hilfe zu schätzen, auch wenn es in I beschrieben nicht für die ganze Zeug.

(hoffentlich frage ich bin nicht zu viel)

Antwort

1

Nun, ich sehe kein Signal/Slot-Verbindung für Ihren Checkbox, so dass es den Standard gerade den Fall ist, dass überprüft wird und unkontrolliert Zustand.Wenn Sie auf die textedit verknüpfen Ihre Checkbox möchten, sollten

connect(ui->player1_checkbox, SIGNAL(stateChanged(int)), this, SLOT(toggleTextEdit())); 

Und toggleTextEdit()

void MainWindow::toggleTextEdit() 
     { 
     if(ui->player1_checkbox->isChecked()) 
      ui->textEdit->setEnabled(true); 
     else 
      ui->textEdit->setEnabled(false); 
     } 

sein könnte und für die graphicsview, können Sie eine Reihe von 13er und aktualisieren die erstellen müssen Array, wann immer Sie auf die Schaltfläche unter Mausfokus ändern, die Array-Content-Updates in einer ähnlichen Weise wie

array[counter%13] = currentButtonNumber; 
counter = counter+1; 

können Sie dann aktualisieren Sie Ihre graphicsview mit Icons auf dem Array entspricht Elemente. Die Variable counter dient lediglich dazu, die angeklickten Schaltflächen zu verfolgen und das Array entsprechend zu aktualisieren, beginnend bei 0 für jeden 13. Klick. Hoffe, das funktioniert.

+0

Dies hilft. Ich werde es versuchen und dann das Grafik-Update betrachten. – Shamon

Verwandte Themen