小编air*_*dex的帖子

为什么静态const成员不能出现在像'switch'这样的常量表达式中

我有一些静态const成员的声明

.H

class MyClass : public MyBase
{
public:
    static const unsigned char sInvalid;
    static const unsigned char sOutside;
    static const unsigned char sInside;
    //(41 more ...)
}
Run Code Online (Sandbox Code Playgroud)

的.cpp

const unsigned char MyClass::sInvalid = 0;
const unsigned char MyClass::sOutside = 1;
const unsigned char MyClass::sInside = 2;
//and so on
Run Code Online (Sandbox Code Playgroud)

在某些时候,我想在交换机中使用这些值,如:

unsigned char value;
...
switch(value) {
    case MyClass::sInvalid : /*Do some ;*/ break;
    case MyClass::sOutside : /*Do some ;*/ break;
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是我得到以下编译器错误:错误:'MyClass :: sInvalid'不能出现在常量表达式中.

我已经阅读了其他开关 - …

c++ gcc const switch-statement

13
推荐指数
2
解决办法
1万
查看次数

QDomDocument无法使用<!doctype>标记设置HTML文档的内容

当我使用QDomDocumentHTML内容时,如果<!doctype html>文档开头有,它将无法设置内容。但是为什么呢?例如,考虑以下代码片段:

 QDomDocument doc;
 QString content = "<!doctype html><html><body><a href='bar'>foo</a></body></html>";
 qDebug() << doc.setContent(content,false,0,0);
 QDomElement docElem = doc.documentElement();
 QDomNode a = docElem.firstChild();
 qDebug() << doc.childNodes().size() << docElem.childNodes().size();
Run Code Online (Sandbox Code Playgroud)

false该代码的输出仅是s 的列表!

doctype qt dom html-parsing qtxml

5
推荐指数
2
解决办法
2726
查看次数

Qt QNetworkAccessManager 和多个 QNetworkReply

我有两个获取QNetworkRequest。

我想处理来自不同方法的完成信号。

例如这是代码

  MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    GetUserData();
    connect(nam, SIGNAL(finished(QNetworkReply*)), this, SLOT(GetUserDataCompleted(QNetworkReply*)));

    GetMessages();
    connect(nam, SIGNAL(finished(QNetworkReply*)), this, SLOT(GetMessagesCompleted(QNetworkReply*)));
}
Run Code Online (Sandbox Code Playgroud)

这是我的一个方法

我尝试过 replay->deleteLater(); 但结果相同

请给我一些有用的建议

void MainWindow::GetUserDataCompleted(QNetworkReply *replay)
{
    if(replay->error() == QNetworkReply::NoError)
    {
        QString getData = replay->readAll();
        QMessageBox msg;

        if(getData == "1")
        {
            msg.setText("User Is not Exits");
        }
        else
        {
            QDomDocument doc;

            if(doc.setContent(getData))
            {
                QDomElement domElem = doc.documentElement();

                QDomNode n = domElem.firstChild();
                while(!n.isNull()) {
                    QDomElement e = n.toElement(); // try to convert the node to an element.
                    if(!e.isNull()) …
Run Code Online (Sandbox Code Playgroud)

qt http qnetworkaccessmanager web

4
推荐指数
1
解决办法
4656
查看次数