在设计时设置QTableWidget的列宽

7

我无法找到以下问题的任何信息:在设计时是否存在将QTableWidget的列宽设置为固定值的可能性。当我用文本编辑器打开ui文件时,我发现列是这样声明的:

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

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

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

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

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

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

也许 horizontalHeaderDefaultSectionSize 是你需要的? - hank
@hank 谢谢你,但不用了。我想要调整每一列的大小。当然,我尝试在运行时进行操作...但是...让我们说在设计时这对我来说是一个挑战。 - borisbn
2个回答

3

很遗憾,至少在Qt Designer 2.5.2中不可能。Designer只提供了有限的自定义功能。


2
谢谢。这很令人难过。但也许有一些手动编辑UI文件的技巧? - borisbn

2

正如@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();
}

那么,您可以运行程序,调整列宽度到您想要的大小,当您关闭对话框时,它将打印出您所需的宽度,如下所示:
列0:110
列1:110
列2:110
列3:110
树状小部件宽度:440,对话框宽度:543
这虽然不多,但比没有视觉反馈猜测宽度要好。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接