2013-03-08 42 views
1

我有一个QMainWindow。QMainWindow调整大小时QTableView不扩展/减少

在QMainWindow中,我有一个中心部件。

对于中央小部件,我有一个QVBoxLayout。

对于此QVBoxLayout,我添加了3个小部件。一个是带有一些标签的小部件,它有一个QGridLayout。另一个是水平线。

第三个是QTableView。问题是,当我尝试扩展QMainWwindow时,尽管我设置了(或不是)任何调整策略,但TableView不会展开,并且在展开后的QMainWindow的其余部分留下了空白的区域。

任何人都可以告诉我如何使窗口扩大/调整窗口调整大小。

这里是相关的代码。

`

statInfoWidget = new Static_Info(TagN); 
QWidget *widget = new QWidget; 
setCentralWidget(widget); 
QFrame *hor_line = new QFrame(); 
hor_line->setFrameShape(QFrame::HLine); 
QVBoxLayout *layout = new QVBoxLayout(); 
layout->setMargin(2); 

layout->addWidget(statInfoWidget); 
layout->addWidget(hor_line); 
Table = new QTableView(this); 
temp = Table; 
t = new TableLayout(statInfoWidget); 
Table->setModel(t); 
Table->verticalHeader()->hide(); 
Table->horizontalHeader()->hide(); 
Table->setShowGrid(false); 
Table->setContextMenuPolicy(Qt::CustomContextMenu); 
//Table->setColumnWidth(2,290); 
// Table->setColumnWidth(0,25); 
// if(num_version == 1) 
//  Table->setColumnWidth(1,0); 
// else 
// Table->setColumnWidth(1,43); 
// Table->setColumnWidth(3,210); 
// Table->setColumnWidth(4,170); 
// Table->setColumnWidth(5,50); 
statInfoWidget->setStyleSheet("background: rgb(153,185,193);color:rgb(0,0,0); font-family:Tahoma;font-size:19px; border: 0px outset rgb(255,255,255);gridline-color: #669933;" 
         "selection-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #486909, stop: 1 white);"); 
Table->setStyleSheet("background: rgb(153,185,193);color:rgb(0,0,0); font-family:Tahoma;font-size:15px; font-weight:bold; border: 0px outset rgb(255,255,255);gridline-color: #669933;" 
         "selection-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 transparent, stop: 1 white);"); 
// layout->addWidget(button1); 
QSizePolicy policy = Table->sizePolicy(); 
policy.setVerticalStretch(1); 
policy.setHorizontalStretch(1); 
Table->setSizePolicy(policy); 
layout->addWidget(Table); 
widget->setLayout(layout); 

`

+0

有什么想法吗? – user1173240 2013-03-15 10:10:54

回答

2

您可以考虑以下几点:

Table->horizontalHeader()->setResizeMode(QHeaderView::Stretch); 

你也可以在你的表来调整只是一个单一的列,这可以通过将完成列索引:

Table->horizontalHeader()->setResizeMode(columnIndex, QHeaderView::Stretch); 
+0

第一种方法确实拉伸了表格,但它覆盖了我需要为不同列显示的固定列宽度。在应用这个之后,所有列都有相同的大小,与总窗口大小相等,并且整个外观变得凌乱。我需要列的固定最小尺寸才能够显示手头的东西。 – user1173240 2013-03-11 07:04:54

+0

任何解决方案,请? – user1173240 2013-03-14 03:56:32

相关问题