Я новичок в Qt, но не слишком C ++.Я пытаюсь создать шахматную доску, где каждый квадрат - это объект.Я пытаюсь понять, как каждый квадратный объект должен быть частью объекта доски, который я объявляю, и отображать его на экране.Я могу отобразить виджет на экране, используя MyWidget.show () в основном классе.Но я хочу сделать что-то вроде Board.show () и показать все квадратные объекты, которые являются членами этого класса (имеют высоту, ширину и цвет).С кодом, который я пробовал, ничего не показывалось, хотя я смог найти квадрат, который НЕ был в классе доски.
main.cpp
#include <qtgui>
#include "square.h"
#include "board.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
//Square square;
//square.show();
Board board;
board.show();
return app.exec();
}
board.h иboard.cpp
#ifndef BOARD_H
#define BOARD_H
#include <QWidget>
class Board : public QWidget
{
public:
Board();
};
#endif // BOARD_H
#include "board.h"
#include "square.h"
Board::Board()
{
Square square;
//square.show();
}
square.h и square.cpp
#ifndef SQUARE_H
#define SQUARE_H
#include <QWidget>
class Square : public QWidget
{
public:
Square();
protected:
void paintEvent(QPaintEvent *);
};
#endif // SQUARE_H
#include "square.h"
#include <QtGui>
Square::Square()
{
QPalette palette(Square::palette());
palette.setColor(backgroundRole(), Qt::white);
setPalette(palette);
}
void Square::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setBrush(QBrush("#c56c00"));
painter.drawRect(10, 15, 90, 60);
}
Опять же, я новичок в Qt, так что большая часть моего кода была предполагаемой работой и что яможно найти в Google.