2016-11-14 6 views
0

Я использую QTreeView::resizeColumnToContents(int column)Как установить максимальную ширину для QTreeView resizeColumnToContents?

, но если даже после того, что я делаю что-то, так

if (t->columnWidth(0) > 10) { 
    t->setColumnWidth(0, 10); 
    } 

он не работает, как я могу установить максимальную ширину там?

+1

Здесь вы устанавливаете максимальные ширины столбцов. это предназначено? «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

ответ

2

Было бы стоит проверить ли ваш Условный оператор запускается на выполнение на всех или, если указатель т способен изменять объект.

Я изменил демо 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 

Некоторые больше информации об этом было бы неплохо.

Смежные вопросы