4

QTtableview内でQStandardItemModelを使用しています。

提案してください、

  1. 行と列のヘッダー名を変更する方法。現在、1,2,3,4を示しています
  2. QStandardItemModel を完全な Qtableview に占有させる方法。現在、左上隅に表示されています。


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    model= new QStandardItemModel(4, 4);
    for (int row = 0; row < 4; ++row) {
        for (int column = 0; column < 4; ++column) {
            QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column));
            model->setItem(row, column, item);
        }
    }

    ui->tableView->setModel(model);

}
4

3 に答える 3

4

1 >model->setHorizontalHeaderItem(0, new QStandardItem(tr("Time")));

2 > このように:

for (int row = 0; row < 4; ++row)
{
    QList<QStandardItem *> rowData;
    rowData << new QStandardItem(QString("row %1, column %2").arg(row).arg(0))
    rowData << new QStandardItem(QString("row %1, column %2").arg(row).arg(1))
    rowData << new QStandardItem(QString("row %1, column %2").arg(row).arg(2))
    rowData << new QStandardItem(QString("row %1, column %2").arg(row).arg(3))
    model->appendRow(rowData);
}
于 2013-05-17T08:53:58.827 に答える
2

1- ビューにヘッダーを入力する方法は複数あります。私はこのようにするのが好きです:

QStandardItem *infoItem = new QStandardItem("Info");
infoItem ->setFont(heading);
infoItem ->setToolTip("Scene Object Name and Type");

QStandardItem *fileStatus = new QStandardItem();
fileStatus->setIcon(QIcon( ":/icons/fileStatus" ));
fileStatus->setToolTip("File Status displayed by ...");

QStandardItem *fileDirectory = new QStandardItem();
fileDirectory->setIcon( QIcon( ":/icons/directory" ) );
fileDirectory->setToolTip("File directory");

m_model->setHorizontalHeaderItem( 0, infoItem );
m_model->setHorizontalHeaderItem( 1, fileStatus);
m_model->setHorizontalHeaderItem( 2, fileDirectory );

2-最後のセクションのストレッチをtrueに設定できます。これにより、テーブル自体のサイズを変更するたびに、最後の列がテーブルを埋めるように引き伸ばされます。

myView->horizontalHeader()->setStretchLastSection(true);

または、目的の列を設定して、テーブルを埋めるのに十分な長さにすることもできます。これを行うには、setStretchLastSection が false に設定されていることを確認してください。

myView->horizontalHeader()->setStretchLastSection(false);
myView->horizontalHeader()->setResizeMode(yourDesiredCol, QHeaderView::Stretch);
于 2016-06-24T10:01:28.873 に答える
0

setHorizo​​ntalHeaderLabels() および setVerticalHeaderLabels() または setHorizo​​ntalHeaderItem() および setVerticalHeaderItem() メソッドを使用します。

縦のヘッダーは列の名前で、横のヘッダーは行の名前です。

setVerticalHeaderItem は、単純なテキスト (アイコンや色付きのテキストなど) よりも多くの情報を表示する場合に便利です。

于 2013-05-17T08:53:17.580 に答える