2013-02-21 6 views
4

Невозможно найти информацию по следующему вопросу: есть ли возможность задать ширину столбцов для QTableWidget в designtime. Когда я открыл ui -файл в текстовом редакторе, я обнаружил, что столбцы объявляются так:Установить ширину столбца для QTableWidget в режиме разработки

<column> 
    <property name="text" > 
     <string>My column name</string> 
    </property> 
</column> 

Я пытался добавить некоторые свойства, как width, но успеха не имел.

Единственный вопрос, который я нашел на qtcentre.org, - this. Но к несчастью это без ответа.

Благодарим вас за консультацию (даже если это будет «Вы не можете»).

P.S. Пожалуйста, не отвечайте, что я могу сделать это во время выполнения, как это:

table->headerView()->resizeSection(columnIdx, width); 
+0

Может быть, 'horizontalHeaderDefaultSectionSize' - это то, что вам нужно? – hank

+0

@ Спасибо спасибо, но нет. Я хотел изменить размер каждого столбца. Конечно, я пошел во время работы ... но ... допустим, для меня было непросто сделать это во время разработки. – borisbn

ответ

3

Это не представляется возможным, по крайней мере, не с помощью Qt Designer 2.5.2. Дизайнер предлагает только ограниченный набор настроек.

+1

Спасибо. Грустно. Но, может быть, есть трюк с ручным редактированием ui-файла? – borisbn

0

Как сказал @UmNyobe, с дизайнером это невозможно, но вы можете использовать этот трюк, чтобы визуально установить ширину в соответствии с тем, что вы хотите.

Добавьте этот код в деструктор диалога, и он распечатает ширину столбца для каждого столбца и ширину виджета дерева и самого диалога.

SettingsDialog::~SettingsDialog() 
{ 
    QHeaderView *header = ui.treeWidget->header(); 
    for (int ii = 0; ii < header->count(); ++ii) { 
     qDebug() << "column" << ii << ":" << header->sectionSize(ii); 
    } 
    qDebug() << "tree widget width: " << ui.treeWidget->width() << ", dialog width:" << width(); 
} 

Итак вы можете запустить программу, настроить ширину столбцов, что вы хотите, и при закрытии диалогового окна будет печататься, какие ширины, что вам нужно, например:

column 0 : 110 
column 1 : 110 
column 2 : 110 
column 3 : 110 
tree widget width: 440 , dialog width: 543

Это не так много, но это лучше, чем пытаться угадать, какая ширина выглядит хорошо без визуальной обратной связи.