3

正方形のセル(チェス盤)で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);
4

2 に答える 2

7

セルを正方形にするには、次のようにします。

  // 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のアイコン属性を設定します。

于 2010-07-08T19:00:37.743 に答える
1

検索して検索して検索した後....私はついに答えを得ました。最初にQBrushオブジェクトを作成し、それをQtableWidgetItemの背景として設定してから、table->setItemを使用する必要があります。

QString fileName = "/1.bmp";
QPixmap pic (fileName);

QBrush brush(pic);

QTableWidgetItem* item = new QTableWidgetItem();
item->setBackground(brush);

table->setItem(0,0,item);
于 2010-07-09T10:10:16.290 に答える