我是 Qt 和 C++ 的新手。我正在尝试创建一个棋盘,其中每个方块都是一个对象。我想弄清楚的是如何让每个方形对象成为我要声明的板对象的一部分并将其显示在屏幕上。我可以在主类中使用 MyWidget.show() 在屏幕上显示一个小部件。但我想做类似 Board.show() 的事情,并让所有属于该类成员的方形对象(具有高度、宽度和颜色)显示出来。使用该代码,我尝试了没有任何显示,尽管我能够显示一个不在棋盘类中的方块。
主文件
#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);
}