我一直在尝试从一个简单的应用程序开始,该应用程序在单击按钮时从简单的HTML页面检索数据,并在QT项目上偶然发现了一个非常有帮助的tutorial并且一直试图为我实现它自己的项目。
一切都设法编译,直到我尝试实际尝试实现loadImage函数(如教程中所示)。 (我实际上必须将m_pImgCtrl
初始化为Filedownloader * m_pImgCtrl = new FileDownloader(imageUrl, this);
并且我不确定它是如何在没有事先对象声明的情况下工作的?)
从我得到的m_pImgCtrl
实际上并没有在loadImage()
函数中定义,因为它是在函数之外初始化的?或connect()
函数做了一些我不太了解的事情?
感谢您的帮助!
答案 0 :(得分:1)
本教程并没有告诉你整个故事。
用法部分中的代码应该是类MainWindow
的一部分 - 主窗口的控制器(请参阅教程最后一个代码段的第1行)。此类包含在NetworkReply完成时调用的插槽loadImaged()
。它还有一个成员FileDownloader * m_pImgCtrl
。
例如,第二个“使用情况”代码段可能是插槽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()));
}