2010-11-19 23 views
0

Görüntülenen formun doğru form olup olmadığını sınayacak bir test uygulaması yazıyorum. Bu, menüdeki bir tuşa basıldıktan sonra. İşte bölümleme hatası alıyorum bir kod bloğu.QT birim testi: qtestlib Segmentasyon hatası

std::auto_ptr<MyForm> pForm(new MyForm(3,3)); 
QTest::keyPress(pForm.get(), Qt::Key_0); 
QWidget *pWin = QApplication::activeWindow(); 
QCOMPARE(pWin->windowTitle(), QString("My Second Menu")); 

Sorular:

  • o sadece tuşa basma simüle edildiğinde şu anda etkin pencereyi almak gerçekten mümkün mü?
  • ActiveWindow'u kullanırken boş bir işaretçi alıyorum, bir tuşa basıldığında ekranda görünmesi gereken pencerenin tutamacını bulabilir misiniz?

Teşekkür ...

+1

İki fikir: 1. Key_0 üzerinde hareket etmeyi beklediğiniz kodun gerçekten tetiklendiğini ve menünün oluşturulduğunu kontrol edin. Değilse, formu() göstermeye çalışın. 2. Pencere eşzamanlı olarak etkinleştirilmemiş, ancak gecikmeli olabilir, kodunuz işe yaramaz. –

+0

Teşekkürler dostum ... haklıydın ... keyPress'de bir gecikme ekledim ve işe yaradı! : D – Owen

cevap

0

Frank haklıydı. Pencere eşzamanlı olarak etkinleştirilmemiş. Bir keyPress parametresi olan bir gecikme eklemek sorunu çözdü. Teşekkürler Frank!