2

ボタンをクリックすると単純な HTML ページからデータを取得する単純なアプリから始めようとしていて、QT-Project に関するかなり役立つチュートリアルに出くわし、それを自分のプロジェクトに実装しようとしています。

(チュートリアルにあるように) loadImage 関数を実際に実装しようとするまで、すべてがなんとかコンパイルされます。(実際にはm_pImgCtrlas として初期化する必要がFiledownloader * m_pImgCtrl = new FileDownloader(imageUrl, this);ありましたが、事前のオブジェクト宣言なしでどのように動作するのか正確にはわかりませんか?)

私が得たものから、関数の外部で初期化されているためm_pImgCtrl、実際にはloadImage()関数で定義されていませんか? それとも、connect()関数は私があまり気づいていないことをしますか?

助けてくれてありがとう!

4

1 に答える 1

1

チュートリアルは、すべてを説明しているわけではありません。

セクション使用法のコードは、メイン ウィンドウのコントローラーであるクラスの一部であると想定されていMainWindowます (チュートリアルの最後のスニペットの 1 行目を参照してください)。loadImaged()このクラスには、NetworkReply が終了したときに呼び出されるスロットが含まれています。メンバーもいFileDownloader * m_pImgCtrlます。

たとえば、2 番目の使用法スニペットは、次のMainWindow::buttonClicked()ようなスロットの一部である可能性があります

void MainWindow::buttonClicked()
{
    QUrl imageUrl("http://qt.digia.com/Documents/1/QtLogo.png");
    m_pImgCtrl = new FileDownloader(imageUrl, this);
    connect(m_pImgCtrl, SIGNAL(downloaded()), SLOT(loadImage()));
}
于 2013-10-13T22:08:19.617 に答える