Пишу следующий код, который работает как надо. Проблема в том, что при выходе из программы глубоко в диструкторе QWidget'a вылетает с segmenatation fault :( Исходник создания диалога:
void maskEdit::createKeyboard()
{
  QPushButton* pb,*numbt[10] = {0};
  QHBoxLayout* hbox;
  m_pKeyboard = new QFrame( this , "keyboard" , WType_Popup );
  m_pKeyboard->setFrameStyle( QFrame::WinPanel | QFrame::Raised );
  QVBoxLayout* vbox = new QVBoxLayout( m_pKeyboard , 3 );
  vbox->setResizeMode( QLayout::Fixed );
  //  
  //line edit
  m_pEdit = new QLineEdit( m_pKeyboard );
  vbox->addWidget( m_pEdit );
  hbox = new QHBoxLayout();
  hbox->setResizeMode( QLayout::Fixed );
  //move keyb left
  m_btLeft = new QPushButton( "<<" , m_pKeyboard );
  m_btLeft->setFixedWidth( 30 );
  connect(m_btLeft , SIGNAL( clicked() ) , this , SLOT( OnLeft()));
  hbox->addWidget( m_btLeft );
  //move keyb right
  m_btRight = new QPushButton( ">>" , m_pKeyboard );
  m_btRight->setFixedWidth( 30 );
  connect(m_btRight , SIGNAL( clicked() ) , this , SLOT( OnRight()));
  hbox->addWidget( m_btRight );
  //clear button
  pb = new QPushButton( tr("Clear") , m_pKeyboard );
  pb->setFixedWidth( 60 );
  connect(pb , SIGNAL( clicked() ) , this , SLOT( OnClear()));
  hbox->addWidget( pb );
  vbox->addLayout( hbox );
  QString nm;
  for( int i =0 ; i< 10; i++ )
    {
      if( !(i%4) )
	{
	  if( i )
	    vbox->addLayout( hbox );
	  hbox = new QHBoxLayout();
	  hbox->setResizeMode( QLayout::Fixed );
	}
      nm.setNum( i == 9 ? 0: i + 1 );
      numbt[i] = new QPushButton( nm  , m_pKeyboard );
      numbt[i]->setFixedWidth( 30 );
  
      hbox->addWidget( numbt[i] );
    }
  vbox->addLayout( hbox );
  connect(numbt[0] , SIGNAL( clicked() ) , this , SLOT( OnBut1()));
  connect(numbt[1] , SIGNAL( clicked() ) , this , SLOT( OnBut2()));
  connect(numbt[2] , SIGNAL( clicked() ) , this , SLOT( OnBut3()));
  connect(numbt[3] , SIGNAL( clicked() ) , this , SLOT( OnBut4()));
  connect(numbt[4] , SIGNAL( clicked() ) , this , SLOT( OnBut5()));
  connect(numbt[5] , SIGNAL( clicked() ) , this , SLOT( OnBut6()));
  connect(numbt[6] , SIGNAL( clicked() ) , this , SLOT( OnBut7()));
  connect(numbt[7] , SIGNAL( clicked() ) , this , SLOT( OnBut8()));
  connect(numbt[8] , SIGNAL( clicked() ) , this , SLOT( OnBut9()));
  connect(numbt[9] , SIGNAL( clicked() ) , this , SLOT( OnBut0()));
  vbox->activate();
}
    
        Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
      
Похожие темы
- Форум Диалог авторизации (2013)
 - Форум Qt: передать значение из QLineEdit в глобальную переменную (2012)
 - Форум Object::connect: No such slot QLCDNumber::display(3) (2009)
 - Форум проблема с Qt (2011)
 - Форум Qt3:компоновка+QVLayout (2007)
 
- Форум [решено] QScrollArea не растягивает виждет внутри себя. А хочется. (2015)
 - Форум Пара вопросов по C++ (2014)
 - Форум Помигите с Qt4: Сигналы и Слоты (очень срочно) (2006)
 - Форум Qt, С++, указатели, отчаяние. (2009)
 - Форум QT:: Динамическое размещение кнопок на форме (2018)