Results 1 to 1 of 1

Thread: Frozen Column in QTableView

  1. #1
    Join Date
    Feb 2014
    Posts
    43
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded PyQt3 PyQt4
    Platforms
    Unix/X11 Windows

    Default Frozen Column in QTableView

    Hi All,

    I would like to hide some columns in QTableView , It's working some times and some times it's not working .

    My window desing like Frozen View and QTable View are side by side . in frozen View we only shows Frozen columns , remaining all shows in QTableView .
    The Frozen Columns list is not stable , it will change in different nested levels .

    I am using below code , can you sugest me on this issue . I faced issue mostly , like in 1st level i have 2 frozen columns , 2nd level one column and 3rd level 1 one column . when i go back from 3rd to 2nd it's working fine . when i go back from 2nd to 1st one column showing and other one gonna hide . Please help me .
    Qt Code:
    1. void FreezeTableWidget::init()
    2. {
    3. // <<<<<< Both tables get the same header type
    4. // setHorizontalHeader(new CustomHeader(Qt::Horizontal, this));
    5.  
    6. qDebug()<<"Frozen Columns fcol"<<fcol;
    7. setHorizontalHeader(m_header);
    8. frozenTableView->setHorizontalHeader(m_header1);
    9. //this->model()->reset();//RCHFB19
    10. frozenTableView->rect();
    11.  
    12. frozenTableView->setModel(model());
    13. frozenTableView->setFocusPolicy(Qt::NoFocus);
    14. frozenTableView->verticalHeader()->hide();
    15. // frozenTableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);
    16. frozenTableView->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
    17.  
    18.  
    19. viewport()->stackUnder(frozenTableView);
    20. horizontalHeader()->stackUnder(frozenTableView); // <<<<<< make sure the header goes under the overlaid view too
    21. //! [init part1]
    22.  
    23. //! [init part2]
    24. //SCH frozenTableView->setStyleSheet("QTableView { border: none;" "background-color: #2e5c7f;" "alternate-background-color:#B4CFE4;" "selection-background-color: 2D347B}"); //for demo purposes
    25. frozenTableView->setStyleSheet("QTableView { border: none;" "background-color: #2e5c7f;" "alternate-background-color:gray;" "selection-background-color: 2D347B}"); //for demo purposes
    26.  
    27. //setStyleSheet("background-color:#2e5c7f;" "alternate-background-color:#B4CFE4;" "selection-background-color: 2D347B ;" "color:white;" "border-width:0px;" );
    28. // frozenTableView->setSelectionModel(selectionModel());
    29. updateFrozenTableGeometry();
    30. qDebug()<<"columnCount in Frozen"<<model()->columnCount();
    31. for (int col = 0; col < model()->columnCount(); ++col){ // <<<<<< hide one less column
    32.  
    33. if(col<fcol)
    34. {
    35.  
    36. //feb 18th frozenTableView->setColumnWidth(col, columnWidth(col) );
    37. frozenTableView->setColumnHidden(col, false);
    38. frozenTableView ->showColumn(col);
    39. // qDebug()<<"colllllllllllshow"<<col<< model()->columnCount()<<model()->headerData(col, Qt::Horizontal).toString()<< frozenTableView->isColumnHidden(col);
    40. //m_header1->showSection(col);
    41. }
    42. else
    43. {
    44. // qDebug()<<"colllllllllllhidden else"<<col<< model()->columnCount();
    45. frozenTableView->setColumnHidden(col, true);
    46. }
    47. qDebug()<<"colllllllllllshow"<<col<< model()->columnCount()<<model()->headerData(col, Qt::Horizontal).toString()<< frozenTableView->isColumnHidden(col);
    48. }
    49. frozenTableView->setStyleSheet("QTableView { border: none;" "background-color: #2e5c7f;" "alternate-background-color:gray;" "selection-background-color: 2D347B}"); //for demo purposes
    50.  
    51. // frozenTableView->setColumnWidth(0, columnWidth(0) );
    52. // frozenTableView->setColumnWidth(1, columnWidth(1) ); // <<<<<< match the extra column's width
    53. //
    54. frozenTableView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    55. frozenTableView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    56. frozenTableView->setSortingEnabled(true);
    57. frozenTableView->show();
    58.  
    59. // updateFrozenTableGeometry();
    60.  
    61. setHorizontalScrollMode(ScrollPerPixel);
    62. setVerticalScrollMode(ScrollPerPixel);
    63. frozenTableView->setVerticalScrollMode(ScrollPerPixel);
    64. //feb18th
    65. /*
    66.   verticalHeader()->setUpdatesEnabled(FALSE);
    67.  
    68.   for (unsigned int i = 0; i < numRows(); i++)
    69.   verticalHeader()->resizeSection(i, rowHeight);
    70.  
    71.   verticalHeader()->setUpdatesEnabled(TRUE);*/
    72.  
    73. }
    74. //! [init part2]
    75.  
    76. }
    To copy to clipboard, switch view to plain text mode 
    Last edited by anda_skoa; 27th July 2016 at 18:58. Reason: missing [code] tags

Similar Threads

  1. Problem with Frozen Table Column example
    By jmalicke in forum Qt Programming
    Replies: 0
    Last Post: 1st December 2014, 03:47
  2. how to create frozen footer row in QTableView?
    By 413X in forum Qt Programming
    Replies: 2
    Last Post: 24th April 2014, 17:21
  3. Replies: 4
    Last Post: 27th February 2014, 10:42
  4. QTableWidget frozen Column
    By Qiieha in forum Qt Programming
    Replies: 1
    Last Post: 16th November 2011, 16:55
  5. How to add 2 column of RadioButtons in qtableview ?
    By smichaud in forum Qt Programming
    Replies: 1
    Last Post: 23rd July 2011, 09:52

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.