Было бы стоит проверить ли ваш Условный оператор запускается на выполнение на всех или, если указатель т способен изменять объект.
Я изменил демо 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
Некоторые больше информации об этом было бы неплохо.
Здесь вы устанавливаете максимальные ширины столбцов. это предназначено? «f (t-> columnWidth (0) <10) {//...}wod--beaminiμmwidth.Anyway.youcansimplysettheminiμmsectionSize∈theheaderfortpurpose:wodbeaminiμmwidth.Anyway.youcansimplysettheminiμmsectionSize∈theheaderfortp_urpose: должно быть минимальной ширины. В любом случае, вы можете просто установить для этой цели минимальное значение SizeSize: t-> header() -> setMinimumSectionSize (10); 'будет делать то, что вы ищете, без условного выражения – Lifeisabug