我在 Arch Linux 上使用 Qt Creator (QtCreator2.6.1 & Qt4.8.4 64bit),调试时出现问题。如果我运行调试版本,无论我是否设置了任何断点,Creator(或 GDB,我想)都会在标准 Qt 函数处停止并说Stopped at internal breakpoint 2 in thread 1 .. 它总是相同的信息。
我怎样才能停止打破“内部断点”?
我在几个 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;
}