【问题标题】:Set column width for QTableWidget in designtime在设计时为 QTableWidget 设置列宽
【发布时间】:2013-02-21 13:07:33
【问题描述】:

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

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

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

我在 qtcentre.org 找到的唯一问题是this。但遗憾的是没有答案。

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

附:请不要回答,我可以在运行时这样做:

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

【问题讨论】:

  • 也许horizontalHeaderDefaultSectionSize 是你需要的?
  • @hank 谢谢,但没有。我想调整每一列的大小。当然,我去了运行时......但是......假设在设计时这样做对我来说是一个挑战

标签: qt design-time qtablewidget


【解决方案1】:

这是不可能的,至少在 Qt Designer 2.5.2 中是不可能的。 Designer 仅提供一组有限的定制。

【讨论】:

  • 谢谢。这是可悲的。但也许手动编辑 ui-file 有一个技巧?
【解决方案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

虽然不多,但总比在没有视觉反馈的情况下猜测什么宽度看起来不错。

【讨论】:

    猜你喜欢
    • 2017-01-19
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 2016-06-10
    • 2012-06-23
    • 2014-01-04
    • 1970-01-01
    相关资源
    最近更新 更多