私は使用していますQTreeView::resizeColumnToContents(int column)
でもその後も同じようなことをしていたら
if (t->columnWidth(0) > 10) {
t->setColumnWidth(0, 10);
}
動作しません。最大幅を設定するにはどうすればよいですか?
if ステートメントがまったく実行されるかどうか、またはポインターtがオブジェクトを変更できるかどうかを確認する価値があります。
この関数を使用するように Qt のデモ「simpletreemodel 」を変更したところ、正常に動作しました。これにはQt 5.7.0を使用しています。
int main(int argc, char *argv[])
{
Q_INIT_RESOURCE(simpletreemodel);
QApplication app(argc, argv);
QFile file(":/default.txt");
file.open(QIODevice::ReadOnly);
TreeModel model(file.readAll());
file.close();
QTreeView view;
view.setModel(&model);
view.setWindowTitle(QObject::tr("Simple Tree Model"));
std::cout<< view.columnWidth(0) <<std::endl;
if (view.columnWidth(0) <= 100)
{
std::cout<< "resizing column width >> ";
view.resizeColumnToContents(0);
std::cout<< view.columnWidth(0) <<std::endl;
if (view.columnWidth(0) > 250)
{
std::cout<< "oops! This is too much.. (max width = 250)" <<std::endl;
view.setColumnWidth(0,250);
}
}
std::cout<< view.columnWidth(0) <<std::endl;
view.show();
return app.exec();
}
上記の出力は次のとおりです。
100
resizing column width >> 269
oops! This is too much.. (max width = 250)
250
これに関するいくつかの詳細情報があればいいでしょう。