在设计时为QTableWidget设置列宽

时间:2013-02-21 13:07:34

标签: qt design-time qtablewidget

我找不到以下问题的任何信息:是否有可能在设计时中为QTableWidget的列设置宽度。当我在文本编辑器中打开ui - 文件时,我发现,列的声明如下:

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

我尝试添加一些属性,例如width,但没有成功。

我在qtcentre.org找到的唯一问题是this。但不幸的是,它没有答案。

感谢您的建议(即使它是“您不能”)。

P.S。请不要回答,我可以在运行时这样做:

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

2 个答案:

答案 0 :(得分:3)

这是不可能的,至少不是Qt Designer 2.5.2。 Designer仅提供有限的自定义设置。

答案 1 :(得分:1)

正如@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

它并不多,但比没有视觉反馈的情况下猜测宽度看起来更好。