Anfängerfragen zu Klassen etc.
Verfasst: 15. September 2009 18:26
Ich habe in C++ ein kleines Schachspiel (Nur 1 gegen 1 ohne Computer) für auf die Konsole programmiert.
Nun möchte ich eine Qt-Grafikoberfläche (bin leider totaler Anfänger in Qt und Klassen verstehe ich auch nicht ganz 100%, da ich aber nur ein kleines GUI machen will, hoffe ich, dass ihr mir trotzdem helfen könnt) machen.
Habe mal hier auf diesem Bild aufgeschrieben, wie das Programm aussehen sollte:

Beim rot angestrichenen habe ich Probleme
Hier mein Code(habe es nur bisher nur bis zum ersten rot Angestrichenem auf dem Blatt geschafft) :
1.Wie kann ich auf On von einer anderen Klasse zugreifen?
-> my_class::nu01.empfangenOn() funktionierte nicht
(1.Rot geschriebene auf dem Bild)
2.Wie kann ich ( meine bereits vorhandene) Funktion ,zur Überprüfung des Zuges, in einer Klasse öffnen?
(2.Rot geschriebene auf dem Bild)
3.Wie kann ich den Ort eines Buttons ändern
-> Zuerst layout->addWidget( n00 , 0, 0); -> aber wie kann man n00 per Slot z.B. nach (0,1) verschieben.
(3.Rot geschriebene auf dem Bild)
4. Kann ich die Buttonnamen durch Bilder ersetzen?
Ich wäre sehr dankbar wen jemand einer dieser Fragen beantworten könnte.
Jetzt schon mal Danke für eure Antworten, andi7
Nun möchte ich eine Qt-Grafikoberfläche (bin leider totaler Anfänger in Qt und Klassen verstehe ich auch nicht ganz 100%, da ich aber nur ein kleines GUI machen will, hoffe ich, dass ihr mir trotzdem helfen könnt) machen.
Habe mal hier auf diesem Bild aufgeschrieben, wie das Programm aussehen sollte:

Beim rot angestrichenen habe ich Probleme
Hier mein Code(habe es nur bisher nur bis zum ersten rot Angestrichenem auf dem Blatt geschafft) :
Code: Alles auswählen
//main.cpp
#include <QtGui/QApplication>
#include "my_class.h"
#include <QApplication>
#include <QPushButton>
#include <QVBoxLayout>
#include <QLabel>
#include <QFont>
#include <QWidget>
#include <QObject>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget* win = new QWidget;
my_class nu00("TS1", 0, 0);
my_class nu01("BS1", 1, 0);
nu01.empfangenOn();
my_class nu02("OOO", 2, 0);
my_class nu03("OOO", 3, 0);
my_class nu04("OOO", 4, 0);
my_class nu05("OOO", 5, 0);
my_class nu06("BW1", 6, 0);
my_class nu07("TW1", 7, 0);
my_class nu10("SS1", 0, 1);
my_class nu11("BS2", 1, 1);
my_class nu12("OOO", 2, 1);
my_class nu13("OOO", 3, 1);
my_class nu14("OOO", 4, 1);
my_class nu15("OOO", 5, 1);
my_class nu16("BW2", 6, 1);
my_class nu17("SW1", 7, 1);
my_class nu20("LS1", 0, 2);
my_class nu21("BS3", 1, 2);
my_class nu22("OOO", 2, 2);
my_class nu23("OOO", 3, 2);
my_class nu24("OOO", 4, 2);
my_class nu25("OOO", 5, 2);
my_class nu26("BW3", 6, 2);
my_class nu27("LW1", 7, 2);
my_class nu30("DS1", 0, 3);
my_class nu31("BS4", 1, 3);
my_class nu32("OOO", 2, 3);
my_class nu33("OOO", 3, 3);
my_class nu34("OOO", 4, 3);
my_class nu35("OOO", 5, 3);
my_class nu36("BW4", 6, 3);
my_class nu37("DW1", 7, 3);
my_class nu40("KS1", 0, 4);
my_class nu41("BS5", 1, 4);
my_class nu42("OOO", 2, 4);
my_class nu43("OOO", 3, 4);
my_class nu44("OOO", 4, 4);
my_class nu45("OOO", 5, 4);
my_class nu46("BW5", 6, 4);
my_class nu47("KW1", 7, 4);
my_class nu50("LS2", 0, 5);
my_class nu51("BS6", 1, 5);
my_class nu52("OOO", 2, 5);
my_class nu53("OOO", 3, 5);
my_class nu54("OOO", 4, 5);
my_class nu55("OOO", 5, 5);
my_class nu56("BW6", 6, 5);
my_class nu57("LW2", 7, 5);
my_class nu60("SS2", 0, 6);
my_class nu61("BS7", 1, 6);
my_class nu62("OOO", 2, 6);
my_class nu63("OOO", 3, 6);
my_class nu64("OOO", 4, 6);
my_class nu65("OOO", 5, 6);
my_class nu66("BW7", 6, 6);
my_class nu67("SW2", 7, 6);
my_class nu70("TS2", 0, 7);
my_class nu71("BS8", 1, 7);
my_class nu72("OOO", 2, 7);
my_class nu73("OOO", 3, 7);
my_class nu74("OOO", 4, 7);
my_class nu75("OOO", 5, 7);
my_class nu76("BW8", 6, 7);
my_class nu77("TW2", 7, 7);
QGridLayout* layout = new QGridLayout(win);
QPushButton* n00= new QPushButton("TS1");
QPushButton* n01= new QPushButton("BS1");
QPushButton* n02= new QPushButton("OOO");
QPushButton* n03= new QPushButton("OOO");
QPushButton* n04= new QPushButton("OOO");
QPushButton* n05= new QPushButton("OOO");
QPushButton* n06= new QPushButton("BW1");
QPushButton* n07= new QPushButton("TW1");
QPushButton* n10= new QPushButton("SS1");
QPushButton* n11= new QPushButton("BS2");
QPushButton* n12= new QPushButton("OOO");
QPushButton* n13= new QPushButton("OOO");
QPushButton* n14= new QPushButton("OOO");
QPushButton* n15= new QPushButton("OOO");
QPushButton* n16= new QPushButton("BW2");
QPushButton* n17= new QPushButton("SW1");
QPushButton* n20= new QPushButton("LS1");
QPushButton* n21= new QPushButton("BS3");
QPushButton* n22= new QPushButton("OOO");
QPushButton* n23= new QPushButton("OOO");
QPushButton* n24= new QPushButton("OOO");
QPushButton* n25= new QPushButton("OOO");
QPushButton* n26= new QPushButton("BW3");
QPushButton* n27= new QPushButton("LW1");
QPushButton* n30= new QPushButton("DS1");
QPushButton* n31= new QPushButton("BS4");
QPushButton* n32= new QPushButton("OOO");
QPushButton* n33= new QPushButton("OOO");
QPushButton* n34= new QPushButton("OOO");
QPushButton* n35= new QPushButton("OOO");
QPushButton* n36= new QPushButton("BW4");
QPushButton* n37= new QPushButton("DW1");
QPushButton* n40= new QPushButton("KS1");
QPushButton* n41= new QPushButton("BS5");
QPushButton* n42= new QPushButton("OOO");
QPushButton* n43= new QPushButton("OOO");
QPushButton* n44= new QPushButton("OOO");
QPushButton* n45= new QPushButton("OOO");
QPushButton* n46= new QPushButton("BW5");
QPushButton* n47= new QPushButton("KW1");
QPushButton* n50= new QPushButton("LS2");
QPushButton* n51= new QPushButton("BS6");
QPushButton* n52= new QPushButton("OOO");
QPushButton* n53= new QPushButton("OOO");
QPushButton* n54= new QPushButton("OOO");
QPushButton* n55= new QPushButton("OOO");
QPushButton* n56= new QPushButton("BW6");
QPushButton* n57= new QPushButton("LW2");
QPushButton* n60= new QPushButton("SS2");
QPushButton* n61= new QPushButton("BS7");
QPushButton* n62= new QPushButton("OOO");
QPushButton* n63= new QPushButton("OOO");
QPushButton* n64= new QPushButton("OOO");
QPushButton* n65= new QPushButton("OOO");
QPushButton* n66= new QPushButton("BW7");
QPushButton* n67= new QPushButton("SW2");
QPushButton* n70= new QPushButton("TS2");
QPushButton* n71= new QPushButton("BS8");
QPushButton* n72= new QPushButton("OOO");
QPushButton* n73= new QPushButton("OOO");
QPushButton* n74= new QPushButton("OOO");
QPushButton* n75= new QPushButton("OOO");
QPushButton* n76= new QPushButton("BW8");
QPushButton* n77= new QPushButton("TW2");
layout->addWidget( n00 , 0, 0);
layout->addWidget( n01 , 1, 0);
layout->addWidget( n02 , 2, 0);
layout->addWidget( n03 , 3, 0);
layout->addWidget( n04 , 4, 0);
layout->addWidget( n05 , 5, 0);
layout->addWidget( n06 , 6, 0);
layout->addWidget( n07 , 7, 0);
layout->addWidget( n10 , 0, 1);
layout->addWidget( n11 , 1, 1);
layout->addWidget( n12 , 2, 1);
layout->addWidget( n13 , 3, 1);
layout->addWidget( n14 , 4, 1);
layout->addWidget( n15 , 5, 1);
layout->addWidget( n16 , 6, 1);
layout->addWidget( n17 , 7, 1);
layout->addWidget( n20 , 0, 2);
layout->addWidget( n21 , 1, 2);
layout->addWidget( n22 , 2, 2);
layout->addWidget( n23 , 3, 2);
layout->addWidget( n24 , 4, 2);
layout->addWidget( n25 , 5, 2);
layout->addWidget( n26 , 6, 2);
layout->addWidget( n27 , 7, 2);
layout->addWidget( n30 , 0, 3);
layout->addWidget( n31 , 1, 3);
layout->addWidget( n32 , 2, 3);
layout->addWidget( n33 , 3, 3);
layout->addWidget( n34 , 4, 3);
layout->addWidget( n35 , 5, 3);
layout->addWidget( n36 , 6, 3);
layout->addWidget( n37 , 7, 3);
layout->addWidget( n40 , 0, 4);
layout->addWidget( n41 , 1, 4);
layout->addWidget( n42 , 2, 4);
layout->addWidget( n43 , 3, 4);
layout->addWidget( n44 , 4, 4);
layout->addWidget( n45 , 5, 4);
layout->addWidget( n46 , 6, 4);
layout->addWidget( n47 , 7, 4);
layout->addWidget( n50 , 0, 5);
layout->addWidget( n51 , 1, 5);
layout->addWidget( n52 , 2, 5);
layout->addWidget( n53 , 3, 5);
layout->addWidget( n54 , 4, 5);
layout->addWidget( n55 , 5, 5);
layout->addWidget( n56 , 6, 5);
layout->addWidget( n57 , 7, 5);
layout->addWidget( n60 , 0, 6);
layout->addWidget( n61 , 1, 6);
layout->addWidget( n62 , 2, 6);
layout->addWidget( n63 , 3, 6);
layout->addWidget( n64 , 4, 6);
layout->addWidget( n65 , 5, 6);
layout->addWidget( n66 , 6, 6);
layout->addWidget( n67 , 7, 6);
layout->addWidget( n70 , 0, 7);
layout->addWidget( n71 , 1, 7);
layout->addWidget( n72 , 2, 7);
layout->addWidget( n73 , 3, 7);
layout->addWidget( n74 , 4, 7);
layout->addWidget( n75 , 5, 7);
layout->addWidget( n76 , 6, 7);
layout->addWidget( n77 , 7, 7);
QObject::connect(n00, SIGNAL(clicked()),
&nu00,SLOT( geklickt() ));
QObject::connect(n01, SIGNAL(clicked()),&nu01, SLOT(geklickt()));
QObject::connect(n02, SIGNAL(clicked()), &nu02, SLOT( geklickt()) );
QObject::connect(n03, SIGNAL(clicked()), &nu03, SLOT( geklickt()) );
QObject::connect(n04, SIGNAL(clicked()), &nu04, SLOT( geklickt()) );
QObject::connect(n05, SIGNAL(clicked() ) , &nu05, SLOT( geklickt()) );
QObject::connect(n06, SIGNAL(clicked()), &nu06, SLOT( geklickt()) );
QObject::connect(n07, SIGNAL(clicked()), &nu07, SLOT( geklickt()) );
QObject::connect(n10, SIGNAL(clicked()), &nu10, SLOT( geklickt()) );
QObject::connect(n11, SIGNAL(clicked()), &nu11, SLOT( geklickt()) );
QObject::connect(n12, SIGNAL(clicked()), &nu12, SLOT( geklickt()) );
QObject::connect(n13, SIGNAL(clicked()), &nu13, SLOT( geklickt()) );
QObject::connect(n14, SIGNAL(clicked()), &nu14, SLOT( geklickt()) );
QObject::connect(n15, SIGNAL(clicked()), &nu15, SLOT( geklickt()) );
QObject::connect(n16, SIGNAL(clicked()), &nu16, SLOT( geklickt()) );
QObject::connect(n17, SIGNAL(clicked()), &nu17, SLOT( geklickt()) );
QObject::connect(n20, SIGNAL(clicked()), &nu20, SLOT( geklickt()) );
QObject::connect(n21, SIGNAL(clicked()), &nu21, SLOT( geklickt()) );
QObject::connect(n22, SIGNAL(clicked()), &nu22, SLOT( geklickt()) );
QObject::connect(n23, SIGNAL(clicked()), &nu23, SLOT( geklickt()) );
QObject::connect(n24, SIGNAL(clicked()), &nu24, SLOT( geklickt()) );
QObject::connect(n25, SIGNAL(clicked()), &nu25, SLOT( geklickt()) );
QObject::connect(n26, SIGNAL(clicked()), &nu26, SLOT( geklickt()) );
QObject::connect(n27, SIGNAL(clicked()), &nu27, SLOT( geklickt()) );
QObject::connect(n30, SIGNAL(clicked()), &nu30, SLOT( geklickt()) );
QObject::connect(n31, SIGNAL(clicked()), &nu31, SLOT( geklickt()) );
QObject::connect(n32, SIGNAL(clicked()), &nu32, SLOT( geklickt()) );
QObject::connect(n33, SIGNAL(clicked()), &nu33, SLOT( geklickt()) );
QObject::connect(n34, SIGNAL(clicked()), &nu34, SLOT( geklickt()) );
QObject::connect(n35, SIGNAL(clicked()), &nu35, SLOT( geklickt()) );
QObject::connect(n36, SIGNAL(clicked()), &nu36, SLOT( geklickt()) );
QObject::connect(n37, SIGNAL(clicked()), &nu37, SLOT( geklickt()) );
QObject::connect(n40, SIGNAL(clicked()), &nu40, SLOT( geklickt()) );
QObject::connect(n41, SIGNAL(clicked()), &nu41, SLOT( geklickt()) );
QObject::connect(n42, SIGNAL(clicked()), &nu42, SLOT( geklickt()) );
QObject::connect(n43, SIGNAL(clicked()), &nu43, SLOT( geklickt()) );
QObject::connect(n44, SIGNAL(clicked()), &nu44, SLOT( geklickt()) );
QObject::connect(n45, SIGNAL(clicked()), &nu45, SLOT( geklickt()) );
QObject::connect(n46, SIGNAL(clicked()), &nu46, SLOT( geklickt()) );
QObject::connect(n47, SIGNAL(clicked()), &nu47, SLOT( geklickt()) );
QObject::connect(n50, SIGNAL(clicked()), &nu50, SLOT( geklickt()) );
QObject::connect(n51, SIGNAL(clicked()), &nu51, SLOT( geklickt()) );
QObject::connect(n52, SIGNAL(clicked()), &nu52, SLOT( geklickt()) );
QObject::connect(n53, SIGNAL(clicked()), &nu53, SLOT( geklickt()) );
QObject::connect(n54, SIGNAL(clicked()), &nu54, SLOT( geklickt()) );
QObject::connect(n55, SIGNAL(clicked()), &nu55, SLOT( geklickt()) );
QObject::connect(n56, SIGNAL(clicked()), &nu56, SLOT( geklickt()) );
QObject::connect(n57, SIGNAL(clicked()), &nu57, SLOT( geklickt()) );
QObject::connect(n60, SIGNAL(clicked()), &nu60, SLOT( geklickt()) );
QObject::connect(n61, SIGNAL(clicked()), &nu61, SLOT( geklickt()) );
QObject::connect(n62, SIGNAL(clicked()), &nu62, SLOT( geklickt()) );
QObject::connect(n63, SIGNAL(clicked()), &nu63, SLOT( geklickt()) );
QObject::connect(n64, SIGNAL(clicked()), &nu64, SLOT( geklickt()) );
QObject::connect(n65, SIGNAL(clicked()), &nu65, SLOT( geklickt()) );
QObject::connect(n66, SIGNAL(clicked()), &nu66, SLOT( geklickt()) );
QObject::connect(n67, SIGNAL(clicked()), &nu67, SLOT( geklickt()) );
QObject::connect(n70, SIGNAL(clicked()), &nu70, SLOT( geklickt()) );
QObject::connect(n71, SIGNAL(clicked()), &nu71, SLOT( geklickt()) );
QObject::connect(n72, SIGNAL(clicked()), &nu72, SLOT( geklickt()) );
QObject::connect(n73, SIGNAL(clicked()), &nu73, SLOT( geklickt()) );
QObject::connect(n74, SIGNAL(clicked()), &nu74, SLOT( geklickt()) );
QObject::connect(n75, SIGNAL(clicked()), &nu75, SLOT( geklickt()) );
QObject::connect(n76, SIGNAL(clicked()), &nu76, SLOT( geklickt()) );
QObject::connect(n77, SIGNAL(clicked()), &nu77, SLOT( geklickt()) );
nu01.On=0;
win->show();
return a.exec();
}
Code: Alles auswählen
//my_class.h
#ifndef MY_CLASS_H
#define MY_CLASS_H
#include <QObject>
#include <iostream>
class my_class : public QObject {
Q_OBJECT
public:
my_class(std::string, int, int); // Konstruktor
~my_class();
void place( int, int);
int On;
int auslesenx();
int ausleseny();
std::string butname;
int empfangenOn();
public slots:
void geklickt();
signals:
//void ausfuehren(int x, int y);
private:
int Placex;
int Placey;
};
#endif
Code: Alles auswählen
//my_class.cpp
#include "my_class.h"
my_class::my_class(std::string a, int b, int c)
{
butname=a;
Placex=b;
Placey=c;
On==1;
}
my_class::~my_class()
{
}
int my_class::auslesenx()
{
return Placex;
}
int my_class::ausleseny()
{
return Placey;
}
void my_class::place(int x, int y)
{
Placex=x;
Placey=y;
}
void my_class::geklickt()
{
int kordx;
int zweite;
if(my_class::nu01.empfangenOn()==0){zweite=0; kordx= my_class::nu01.Placex;}
}
int my_class::empfangenOn()
{
return On;
}
1.Wie kann ich auf On von einer anderen Klasse zugreifen?
-> my_class::nu01.empfangenOn() funktionierte nicht
(1.Rot geschriebene auf dem Bild)
2.Wie kann ich ( meine bereits vorhandene) Funktion ,zur Überprüfung des Zuges, in einer Klasse öffnen?
(2.Rot geschriebene auf dem Bild)
3.Wie kann ich den Ort eines Buttons ändern
-> Zuerst layout->addWidget( n00 , 0, 0); -> aber wie kann man n00 per Slot z.B. nach (0,1) verschieben.
(3.Rot geschriebene auf dem Bild)
4. Kann ich die Buttonnamen durch Bilder ersetzen?
Ich wäre sehr dankbar wen jemand einer dieser Fragen beantworten könnte.
Jetzt schon mal Danke für eure Antworten, andi7

