【问题标题】:Qt: how to get the size of QTableView?Qt:如何获取 QTableView 的大小?
【发布时间】:2011-04-20 05:46:35
【问题描述】:

我有一个模型绑定到的 QTableView。我填充模型(使用模型->setItem),然后想调整表格上列的宽度。我想使用相对大小,所以第一列应该是整个宽度的 60%,第二列应该是 40%。

int tableWidthEffective = ui->tablePackages->width();
ui->tablePackages->setColumnWidth(0, tableWidthEffective * 0.6);

问题是当我第一次打开对话框时,表格的宽度比实际要小得多,它只在第二次起作用。该表在布局中。删除布局后,一切正常,但我需要使用布局。仍然使用布局如何获得合适大小的表格?

谢谢

【问题讨论】:

    标签: qt qtableview


    【解决方案1】:

    在 Qt 中,小部件通过向其父母和孩子发出信号来调整自己的大小。这需要一个消息循环。所以在你第一次显示它之前,从你的对话框代码中试试这个:

    setAttribute (Qt::WA_DontShowOnScreen, true) ; // Prevent screen flicker
    show() ;
    
    QEventLoop EventLoop (this) ;
    for ( ; ; )
      if (!EventLoop.processEvents()) break ;
    
    hide() ;
    setAttribute (Qt::WA_DontShowOnScreen, false) ;
    

    【讨论】:

    • 谢谢,我今晚试试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多