Я хочу сделать простую шахматную программу. До сих пор я сделал доску с помощью QTableWidget и загрузил картинки в ячейки таблицы. Теперь я хочу использовать сигнал и слот, чтобы, когда пользователь щелкает ячейку, а затем щелкает другую ячейку, фрагмент изображения из первой ячейки переходил во вторую ячейку, но я не знаю, как это сделать.
Обратите внимание, что я не хочу, чтобы эти «ходы фигур» подчинялись правилам настоящих шахмат. Я только хочу сделать замену изображения между двумя ячейками. Позже я заставлю их подчиняться правилам.
вот код. в этом коде только элемент таблицы (0,0) имеет изображение. Кто-нибудь может сказать, как написать код, чтобы, когда я нажимаю на этот элемент, затем нажимаю на элемент (1,1), изображение «1.bmp» переходило на фон элемента (1,1)?
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QHBoxLayout>
#include <QTableWidget>
#include <QHeaderView>
class Table : public QWidget
{
Q_OBJECT
public:
Table(QWidget *parent = 0);
slots:
//??????
};
Table::Table(QWidget *parent)
: QWidget(parent)
{
QHBoxLayout *hbox = new QHBoxLayout(this);
QTableWidget *table = new QTableWidget(8 , 8 , this);
table->setFixedSize(900,900);
table->horizontalHeader()->setDefaultSectionSize(100);
table->verticalHeader()->setDefaultSectionSize(100);
table->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
table->verticalHeader()->setResizeMode(QHeaderView::Fixed);
QString fileName = "/1.bmp";
QPixmap pic(fileName);
QBrush brush(pic);
QTableWidgetItem* item = new QTableWidgetItem();
item->setBackground(brush);
table->setItem(0,0,item);
hbox->addWidget(table);
setLayout(hbox);
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Table table;
table.show();
return app.exec();
}