// Qt incldues
#include <QItemDelegate>
#include <QTableWidget>
+#include <QHeaderView>
#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
QStringList labs;
labs << "t" << "f(t)";
setHorizontalHeaderLabels( labs );
+ this->horizontalHeader()->setStretchLastSection(true);
+ this->horizontalHeader()->setDefaultSectionSize(60);
while( rows-- )
addRow();
if( cachedSizeHint().isValid() )
return cachedSizeHint();
- QSize sh = QTableWidget::sizeHint();
- if( sh.width() < 400 )
- sh.setWidth( 400 );
- if( sh.height() < 200 )
- sh.setHeight( 200 );
-
- setCachedSizeHint( sh );
- return sh;
+// QSize sh = QTableWidget::sizeHint();
+// if( sh.width() < 400 )
+// sh.setWidth( 400 );
+// if( sh.height() < 200 )
+// sh.setHeight( 200 );
+//
+// setCachedSizeHint( sh );
+// return sh;
}
void
StdMeshersGUI_DistrTableFrame( QWidget* parent )
: QWidget( parent )
{
- QVBoxLayout* main = new QVBoxLayout( this );
+ QGridLayout* main = new QGridLayout( this );
main->setMargin( 0 );
main->setSpacing( 0 );
// ---
myTable = new Table( this );
connect( myTable, SIGNAL( valueChanged( int, int ) ), this, SIGNAL( valueChanged( int, int ) ) );
-
- // ---
- QWidget* aButFrame = new QWidget( this );
- QHBoxLayout* butLay = new QHBoxLayout( aButFrame );
- butLay->setContentsMargins( 0, SPACING, 0, SPACING );
- butLay->setSpacing( SPACING );
- myButtons[ InsertRowBtn ] = new QPushButton( tr( "SMESH_INSERT_ROW" ), aButFrame );
- myButtons[ RemoveRowBtn ] = new QPushButton( tr( "SMESH_REMOVE_ROW" ), aButFrame );
+ myButtons[ InsertRowBtn ] = new QPushButton( tr( "SMESH_INSERT_ROW" ), this );
+ myButtons[ RemoveRowBtn ] = new QPushButton( tr( "SMESH_REMOVE_ROW" ), this );
- butLay->addWidget( myButtons[ InsertRowBtn ] );
- butLay->addWidget( myButtons[ RemoveRowBtn ] );
- butLay->addStretch();
// ---
- main->addWidget( myTable );
- main->addWidget( aButFrame );
+ main->addWidget( myTable , 0, 0, 1, 3);
+ main->addWidget( myButtons[ InsertRowBtn ] , 1, 0);
+ main->addWidget( myButtons[ RemoveRowBtn ] , 1, 1);
+ main->setColumnStretch(2, 1);
+ main->setSpacing( SPACING );
// ---
connect( myButtons[ InsertRowBtn ], SIGNAL( clicked() ), this, SLOT( onInsert() ) );
QFrame* StdMeshersGUI_NbSegmentsCreator::buildFrame()
{
QFrame* fr = new QFrame();
+ fr->setMinimumWidth(460);
QVBoxLayout* lay = new QVBoxLayout( fr );
lay->setMargin( 0 );
StdMeshers::StdMeshers_NumberOfSegments_var h =
StdMeshers::StdMeshers_NumberOfSegments::_narrow( hypothesis() );
- myPreview = new StdMeshersGUI_DistrPreview( GroupC1, h.in() );
myGroupLayout = new QGridLayout( GroupC1 );
myGroupLayout->setSpacing( SPACING );
row++;
}
+
// 1) number of segments
myGroupLayout->addWidget( new QLabel( tr( "SMESH_NB_SEGMENTS_PARAM" ), GroupC1 ), row, 0 );
myNbSeg = new SalomeApp_IntSpinBox( GroupC1 );
myGroupLayout->addWidget( myNbSeg, row, 1 );
row++;
+
// 2) type of distribution
myGroupLayout->addWidget( new QLabel( tr( "SMESH_DISTR_TYPE" ), GroupC1 ), row, 0 );
myDistr = new QtxComboBox( GroupC1 );
myGroupLayout->addWidget( myDistr, row, 1 );
row++;
+
// 3) scale
myGroupLayout->addWidget( myLScale = new QLabel( tr( "SMESH_NB_SEGMENTS_SCALE_PARAM" ), GroupC1 ), row, 0 );
myScale = new SMESHGUI_SpinBox( GroupC1 );
myGroupLayout->addWidget( myScale, row, 1 );
row++;
- myInfo = new QLabel( tr( "SMESH_FUNC_DOMAIN" ), GroupC1 );
- myGroupLayout->addWidget( myInfo, row, 0, 1, 2 );
- row++;
- // 4) table
- myGroupLayout->addWidget( myLTable = new QLabel( tr( "SMESH_TAB_FUNC" ), GroupC1 ), row, 0 );
- myTable = new StdMeshersGUI_DistrTableFrame( GroupC1 );
- myGroupLayout->addWidget( myTable, row, 1 );
+ // 4) Distribution definition
+ QGridLayout* myDistLayout = new QGridLayout(GroupC1);
+ myGroupLayout->addLayout( myDistLayout, row, 0, 1, 2 );
myGroupLayout->setRowStretch( row, 1 );
- myTableRow = row;
- row++;
+ row ++;
- // 5) expression
- myGroupLayout->addWidget( myLExpr = new QLabel( tr( "SMESH_EXPR_FUNC" ), GroupC1 ), row, 0 );
+ // a) expression
+ QHBoxLayout* myExprLayout = new QHBoxLayout(GroupC1);
+ myExprLayout->addWidget( myLExpr = new QLabel( "f(t)=", GroupC1 ), 0);
myExpr = new QLineEdit( GroupC1 );
- myGroupLayout->addWidget( myExpr, row, 1 );
- row++;
+ myExprLayout->addWidget( myExpr,1);
+ myDistLayout->addLayout(myExprLayout,1 ,0);
+ myDistLayout->setRowStretch(2, 1);
+
+ // b) warning
+ myInfo = new QLabel( tr( "SMESH_FUNC_DOMAIN" ), GroupC1 );
+ myDistLayout->addWidget( myInfo, 0, 0, 1, 2);
+
+ // c) table
+ myTable = new StdMeshersGUI_DistrTableFrame( GroupC1 );
+ myDistLayout->addWidget( myTable, 1, 0, 2, 1 );
- // 6) conversion (radiogroup)
+ // d) preview
+ myPreview = new StdMeshersGUI_DistrPreview( GroupC1, h.in() );
+ myPreview->setMinimumHeight(220);
+ myDistLayout->addWidget( myPreview, 1, 1, 2, 1 );
+
+ // 5) conversion (radiogroup)
myConvBox = new QGroupBox( tr( "SMESH_CONV_MODE" ), GroupC1 );
myConv = new QButtonGroup( GroupC1 );
myGroupLayout->addWidget( myConvBox, row, 0, 1, 2 );
row++;
- // 7) distribution preview
- myGroupLayout->addWidget( myPreview, row, 0, 1, 2 );
- myGroupLayout->setRowStretch( row, 1 );
- myPreviewRow = row;
- row++;
- // 8) reverce edge parameters
+ // 6) reverse edge parameters
myReversedEdgesBox = new QGroupBox(tr( "SMESH_REVERSED_EDGES" ), fr);
QHBoxLayout* edgeLay = new QHBoxLayout( myReversedEdgesBox );
- myDirectionWidget = new StdMeshersGUI_SubShapeSelectorWdg();
+ myDirectionWidget = new StdMeshersGUI_SubShapeSelectorWdg( myReversedEdgesBox );
QString aGeomEntry = getShapeEntry();
QString aMainEntry = getMainShapeEntry();
if ( aGeomEntry == "" )
edgeLay->addWidget( myDirectionWidget );
lay->addWidget( myReversedEdgesBox );
-
+ lay->setStretchFactor( GroupC1, 2);
+ lay->setStretchFactor( myReversedEdgesBox, 1);
+
connect( myNbSeg, SIGNAL( valueChanged( const QString& ) ), this, SLOT( onValueChanged() ) );
connect( myDistr, SIGNAL( activated( int ) ), this, SLOT( onValueChanged() ) );
connect( myTable, SIGNAL( valueChanged( int, int ) ), this, SLOT( onValueChanged() ) );
bool isFunc = distr==2 || distr==3;
myPreview->setShown( isFunc );
- myGroupLayout->setRowStretch( myPreviewRow, isFunc ? 1 : 0 );
-
myConvBox->setShown( isFunc );
-
- if( distr==2 )
- myTable->show();
- else
- myTable->hide();
- myLTable->setShown( distr==2 );
- myGroupLayout->setRowStretch( myTableRow, distr==2 ? 1 : 0 );
-
+
+ myTable->setShown( distr==2 );
myExpr->setShown( distr==3 );
myLExpr->setShown( distr==3 );
- myInfo->setShown( isFunc );
+ myInfo->setShown( distr==3);
//change of preview
int nbSeg = myNbSeg->value();