我想制作一个带方形单元(棋盘)的8 * 8桌子。现在我有了制作表格的代码,但不知道如何将单元格调整为方形。
我还想将片段的图片放入细胞中。我该怎么做?
这是我的代码:
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QHBoxLayout>
#include <QTableWidget>
class Table : public QWidget
{
public:
Table(QWidget *parent = 0);
};
Table::Table(QWidget *parent)
: QWidget(parent)
{
QHBoxLayout *hbox = new QHBoxLayout(this);
QTableWidget *table = new QTableWidget(8 , 8 , this);
hbox->addWidget(table);
setLayout(hbox);
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Table t;
t.show();
return a.exec();
}
修改
如果有人可以帮助我加载图像作为单元格的背景,那将非常感激!
我使用此代码并且编译器不会生成错误但程序无法运行。我认为问题出在table->item(0,0)
上。我应该先把它初始化吗?
QString fileName = "1.bmp";
QPixmap pic (fileName);
QIcon icon (pic);
table->item(0,0)->setIcon(icon);
答案 0 :(得分:5)
要使细胞呈方形,请执行以下操作:
// set the default size, here i've set it to 20px by 20x
table->horizontalHeader()->setDefaultSectionSize(20);
table->verticalHeader()->setDefaultSectionSize(20);
// set the resize mode to fixed, so the user cannot change the height/width
table->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
table->verticalHeader()->setResizeMode(QHeaderView::Fixed);
修改:要设置图片,请在QTableWidgetItem上设置图标属性
答案 1 :(得分:1)
QString fileName = "/1.bmp";
QPixmap pic (fileName);
QBrush brush(pic);
QTableWidgetItem* item = new QTableWidgetItem();
item->setBackground(brush);
table->setItem(0,0,item);