Visualizzazione dei risultati da 1 a 6 su 6

Hybrid View

  1. #1
    Puoi disabilitare l'interfaccia mentre è in corso la richiesta (e magari impostare il cursore alla clessidra).
    Amaro C++, il gusto pieno dell'undefined behavior.

  2. #2
    Quote Originariamente inviata da MItaly Visualizza il messaggio
    Puoi disabilitare l'interfaccia mentre è in corso la richiesta (e magari impostare il cursore alla clessidra).
    ciao!

    alla fine seguendo diversi tutorial ho fatto questo:
    codice:
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        wsUrl = "http://www.hardstyleitalia.com/blog/api/get_posts/";
        progressDialog = new QProgressDialog(this);
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    void MainWindow::on_btnService_clicked()
    {
        progressDialog->setVisible(true);
        manager = new QNetworkAccessManager(this);
        url = wsUrl;
        progressDialog->setWindowTitle(tr("Loading..."));
        //progressDialog->setLabelText(tr("Downloading %1.").arg("TEST"));
        startRequest(url);
    }
    
    void MainWindow::httpReadyRead()
    {
        qDebug() << reply->readAll();
    }
    
    void MainWindow::startRequest(QUrl url)
    {
        reply = manager->get(QNetworkRequest(url));
        connect(reply, SIGNAL(readyRead()), this, SLOT(httpReadyRead()));
        connect(reply, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(updateProgress(qint64, qint64)));
        connect(reply, SIGNAL(finished()), this, SLOT(httpDownloadFinished()));
    }
    
    void MainWindow::httpDownloadFinished()
    {
        progressDialog->hide();
        reply->deleteLater();
        reply->close();
        manager = 0;
    }
    
    void MainWindow::updateProgress(qint64 bytesRead, qint64 totalBytes)
    {
        progressDialog->setMaximum(totalBytes);
        progressDialog->setValue(bytesRead);
    }
    funziona abbastanza bene, a parte la progress dialog.
    nel senso che si avvia e si chiude.
    ma passa dallo 0 al 100% tutto insieme.
    quindi in sostanza non c'è un "progress".
    da cosa potrebbe dipendere??

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.