2013-02-21 108 views
4

我找不到以下問題的任何信息:是否有可能爲QTableWidget的列設置寬度爲designtime。當我在文本編輯器中打開ui -file,我發現,這列聲明如下:在設計時設置QTableWidget的列寬

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

我嘗試添加像width一些屬性,但沒有成功。

我在qtcentre.org發現的唯一問題是this。但不幸的是它沒有答案。

謝謝你的建議(即使它會是「你不能」)。

P.S.請不要回答,我可以在運行時這樣做:

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

也許'horizo​​ntalHeaderDefaultSectionSize'是你需要的嗎? – hank 2013-02-21 13:40:46

+0

@hank謝謝,但沒有。我想調整每列的大小。當然,我去了運行時間...但是...讓我們說,這是我設計時做到的一個挑戰 – borisbn 2013-02-21 15:39:23

回答

3

這是不可能的,至少在Qt Designer 2.5.2中是不可能的。 Designer僅提供有限的一組定製。

+1

謝謝。這是可悲的。但也許有一個手動編輯ui文件的技巧? – borisbn 2013-02-21 15:40:23

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

這並不多,但它比猜測什麼寬度看起來不錯,沒有視覺反饋更好。