我在Arch Linux上使用Qt Creator(QtCreator2.6.1& Qt4.8.4 64bit),我在调试时遇到问题。如果我运行调试版本,无论我是否设置了任何断点,Creator(或GDB,我认为)会继续停留在标准Qt函数并说明在线程1中的内部断点2停止。。它始终是相同的信息。
如何停止打破"内部断点"?
我在几个Qt函数上遇到了这个问题,但我唯一记得的是" addWidget"。在我目前的项目中,我有一个QMainWindow,它的中央小部件是一个QGLWidget。我可以通过调用" layout() - > addWidget(m_DlgCur);"来向主窗口添加一个小部件。从主窗口。但是,它始终在那条线上打破。在我的一些大型项目中,它也打破了其他功能!
为了完整起见,我已经包含了主窗口的整个代码:
qrpgWND::qrpgWND( QWidget *Parent )
: QMainWindow( Parent )
, m_CntWgt( QGLFormat(QGL::SampleBuffers|QGL::DoubleBuffer|QGL::AlphaChannel|QGL::HasOverlay), this, 0 )
, m_Layout( NULL ), m_DlgCur( NULL )
{
m_Layout = new QHBoxLayout();
m_CntWgt.setLayout( m_Layout );
setCentralWidget( &m_CntWgt );
m_BtnCls.setText( "Exit" );
Q_ASSERT(
connect( &m_BtnCls, SIGNAL(clicked(bool)),
this, SLOT(btnCls()) )
);
Q_ASSERT(
connect( &m_BtnCraft, SIGNAL(clicked(bool)),
this, SLOT(btnCraft()) )
);
m_Layout->addWidget( &m_BtnCls );
m_BtnCraft.setText( "Craft" );
m_Layout->addWidget( &m_BtnCraft );
return;
}
void qrpgWND::btnCraft()
{
if( m_DlgCur == NULL ) {
m_DlgCur = new qrpgDlgCrafting( &m_DlgCur, &m_CntWgt );
layout()->addWidget( m_DlgCur );
m_DlgCur->show();
}
return;
}