2013-02-21 109 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

这并不多,但它比猜测什么宽度看起来不错,没有视觉反馈更好。