我现在用designer在窗口上画了一些界面,代码如下
m_glayout = new QGridLayout;
//m_glayout->setObjectName(QString::fromUtf8("m_glayout"));
m_hlayout = new QHBoxLayout;
m_hlayout->addWidget(config_treeWidget); //config_treeWidget是一个QTreeWidget控件
m_hlayout->addWidget( class_frame); //class_frame是QFrame控件,里面是一些我需要的控件,在designer里面画的
class_frame->show();
prop_frame->hide(); //prop_frame是QFrame控件,里面是一些我需要的控件,在designer里面画的
left_spacer = new QSpacerItem( 103, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
middle_spacer = new QSpacerItem( 104, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
right_spacer = new QSpacerItem( 103, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
//将按钮按照水平方向排列
m_buttonlayout = new QHBoxLayout;
m_buttonlayout->addSpacerItem (left_spacer);
m_buttonlayout->addWidget(save_Btn);
m_buttonlayout->addSpacerItem(middle_spacer);
m_buttonlayout->addWidget(read_Btn);
m_buttonlayout->addSpacerItem(middle_spacer);
m_buttonlayout->addWidget(quit_Btn);
m_buttonlayout->addSpacerItem(right_spacer);
m_vlayout = new QVBoxLayout(0);
m_vlayout->addLayout(m_hlayout);
m_vlayout->addLayout(m_buttonlayout);
m_vlayout->addLayout(m_glayout);
//m_glayout->addLayout( m_vlayout, 0,1 );
setLayout(m_vlayout);
整个意思就是界面起来的的时候,只显示config_treeWidget,class_frame和三个按钮,但是我这样写的话,界面出来的话,这些控件没有将窗口填满,只是prop_frame控件隐藏了。