簡體   English   中英

Qt LCD顯示屏無法正常工作

[英]Qt LCD display not working

連接后,我試圖將http get連接流的輸出傳遞到LCD屏幕(將來的http股票行情收錄器)。 我的代碼錯誤與“ C:\\ Qt5 \\ Tools \\ QtCreator \\ bin \\ httpGET \\ mainwindow.cpp:16:錯誤:沒有匹配的函數調用'QLCDNumber :: display()ui-> lcdNumber-> display()”我不確定如何正確更新display()

//mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QNetworkAccessManager>
#include <QUrl>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QImageReader>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    nam = new QNetworkAccessManager();
    ui->lcdNumber->display(10);

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::connect()
{
    QObject::connect(nam, SIGNAL(finished(QNetworkReply*)),
    this, SLOT(finishedSlot(QNetworkReply*)));

    //ui->lcdNumber->display(10);
    QObject::connect(nam, SIGNAL(finished(QNetworkReply*)),
    this, SLOT(on_pushButton_clicked()));

}

void MainWindow::requestPage(){
    QUrl url("http://www.google.com");
    QNetworkReply* reply = nam->get(QNetworkRequest(url));
}

void MainWindow::finishedSlot(QNetworkReply* reply){
    QVariant statusCodeV = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
    QVariant redirectionTargetUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
    if (reply->error() == QNetworkReply::NoError)
    {
        QImageReader imageReader(reply);
        QImage pic = imageReader.read();
        QByteArray bytes = reply->readAll();  // bytes
        QString string(bytes); // string
    }

    else
    {

    }

}


void MainWindow::on_pushButton_clicked()
{
    connect();
    requestPage();
}

//mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QObject>
#include <QNetworkAccessManager>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);

    ~MainWindow();

private:
    Ui::MainWindow *ui;

public slots:
    void connect();
    void requestPage();
    void finishedSlot(QNetworkReply* reply);
    void on_pushButton_clicked();
private slots:

private:
    QNetworkAccessManager* nam;

};

#endif // MAINWINDOW_H

//main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MainWindow mConnect;
    mConnect.show();

    return a.exec();
}

移動display()解決了LCD輸出問題。

if (reply->error() == QNetworkReply::NoError)
{
    QImageReader imageReader(reply);
    QImage pic = imageReader.read();
    QByteArray bytes = reply->readAll();  // bytes
    QString string(bytes); // string
    ui->lcdNumber->display(string);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM