我正在編寫一個使用QDialog作爲主窗口的應用程序。在這個應用程序中,我有3個QGroupBox,一個帶有幾個按鈕,第二個帶有一個顯示網絡攝像頭內容的GLWidget(使用OpenCV捕獲和處理並用OpenGL顯示),第三個我試圖用Phonon播放不同的視頻我打算使用QComboBox選擇視頻,但這與我的問題無關)。聲音:: VideoWidget在QDialog中的問題
一切正常,GUI初始化,做我需要的一切...直到我嘗試創建VideoWidget對象。這是我的類的代碼:
GUIT::GUIT(QWidget *parent, Qt::WFlags flags)
{
// Initialization of the different QGroupBox
createVideo();
createButtons();
createScoreFE();
createPhonon();
gbScoreFE->hide();
QHBoxLayout *layout = new QHBoxLayout;
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(gbVideo, 0, 0);
mainLayout->addWidget(gbButtons, 1, 0);
mainLayout->addWidget(gbScoreFE, 0, 0);
layout->addLayout(mainLayout);
layout->addWidget(gbPhonon);
gbPhonon->hide();
this->setLayout(layout);
layout->setSizeConstraint(QLayout::SetFixedSize);
}
這是崩潰的方法:
void GUIT::createPhonon()
{
gbPhonon = new QGroupBox(tr("Test"));
// This line makes the program to stop executing.
Phonon::VideoWidget *_player_video = new Phonon::VideoWidget;
QVBoxLayout *layout = new QVBoxLayout;
gbPhonon->setLayout(layout);
}
它是如何崩潰的?那麼,創建一個新的VideoWidget後,它就會殺死多個線程。它看起來像:
The thread 'Win32 Thread' (0x12e8) has exited with code 1 (0x1).
The thread 'Win32 Thread' (0x1304) has exited with code 1 (0x1).
The thread 'Win32 Thread' (0xf20) has exited with code 1 (0x1).
The thread 'Win32 Thread' (0xdec) has exited with code 1 (0x1).
The thread 'QThread' (0x1e20) has exited with code 1 (0x1).
The thread 'Win32 Thread' (0x19b0) has exited with code 1 (0x1).
The thread 'Win32 Thread' (0x1f58) has exited with code 1 (0x1).
The thread 'Win32 Thread' (0x1794) has exited with code 1 (0x1).
事實是,我對這個問題有點困惑。它出現在我寫一個QWidget的時候,在那裏我將創建VideoWidget及其組件...我檢查了其他Phonon類,並且GUI在初始化時不受影響。例如:
Phonon::MediaObject *mediaObject = new Phonon::MediaObject(this);
我也試圖用簡單的GUI來重現問題,並將其編譯和沒有問題的作品,所以應該有一些與聲子發生衝突。我認爲它可能是GLWidget,但我斷開了GUI的這一部分...並且它仍然會殺死線程。
有人遇到過類似的問題嗎?有人對任何可能出錯或如何檢查線程殺死有任何瞭解嗎?
您是否創建了聲子路徑? – 2011-03-02 10:04:14
嗨卡米爾,我不能。當我包括該行: Phonon :: VideoWidget * _player_video = new Phonon :: VideoWidget; 所有QT線程在代碼1之後立即退出。 PS:我想你是在談論Phonon :: createPath方法。 – sergi 2011-03-02 16:48:16