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);
}