Portál AbcLinuxu, 5. května 2025 13:08
QT += webkit SOURCES = browser.cppbrowser.cpp
#include <QtGui> #include <QtWebKit> int main(int argc, char** argv) { QApplication app(argc, argv); QWebView view; view.show(); view.setUrl(QUrl("http://localhost:10000/")); return app.exec(); }Všetko funguje perfektne až na jednu vec - sťahovanie súboru. Tá aplikácia ktorá bude v tom browseri bežať totižto generuje CSV súbor, ktorý ponúkne na stiahnutie. Zaujímavé je, že upload funguje úplne v pohode, ale pri downloade sa nedeje absolútne nič. Za pomoc vám vopred veľmi pekne ďakujem.
Řešení dotazu:
QT += gui network webkit HEADERS = mainwindow.h SOURCES = main.cpp \ mainwindow.cppmain.cpp
#include <QtGui> #include <QtNetwork> #include <QtWebKit> #include "mainwindow.h" int main(int argc, char * argv[]) { QApplication app(argc, argv); MainWindow browser; browser.setWindowTitle("Data"); browser.show(); return app.exec(); }mainwindow.cpp
#include <QtGui> #include <QtNetwork> #include <QtWebKit> #include "mainwindow.h" MainWindow::MainWindow() { QWebView * view = new QWebView(this); view->load(QUrl("http://localhost:10000/")); view->page()->setForwardUnsupportedContent(true); connect(view->page(),SIGNAL(unsupportedContent(QNetworkReply*)),this,SLOT(unsupportedContent(QNetworkReply*))); setCentralWidget(view); } void MainWindow::unsupportedContent(QNetworkReply * reply) { qDebug("Download Requested"); }mainwindow.h
#include <QtGui> #include <QtNetwork> #include <QtWebKit> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); public slots: void unsupportedContent(QNetworkReply * reply); };Po kliknutí na odkaz, ktorý má spustiť sťahovanie mi qDebug do konzoli vypíše "Download Request", čiže to znamená, že slot ako taký funguje. Teraz už len potrebujem poriešiť samotné stiahnutie súboru, ale zatial sa mi nedarí nájsť žiaden príklad. Ak ma niekto navedie, tak mu budem veľmi zaviazaný. Apropo, S Qt a C++ teraz robím úplne po prvý krát, tak poprosím pomaly na mna.
reply
slotu unsupportedContent
. Zkus si vypsat reply->readAll()
, mělo by to vrátit obsah staženého souboru. Více viz dokumentace.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.