小编Cou*_*phy的帖子

QTimer只能用于使用QThread启动的线程

所以我有一个有趣的问题....我正在尝试编写的程序崩溃了这个错误:

QObject::startTimer: QTimer can only be used with threads started with QThread 
Run Code Online (Sandbox Code Playgroud)

困扰我的是我的程序是单线程的.有问题的类的目标是将POST数据发送到我在服务器上的php页面.一旦它尝试发送POST,我就会收到该消息.这是我的代码.

#ifndef TRANSMISSIONS_H
#define TRANSMISSIONS_H
#include "name_spawn.h"
#include <QNetworkReply>
#include <QObject>
#include <QNetworkConfigurationManager>

class Transmissions : public QObject
{
    Q_OBJECT
public:
    Transmissions();
    void Send(GeneratedData);
public slots:
    void serviceRequestFinished(QNetworkReply*);
signals:
    void configurationAdded(const QNetworkConfiguration);
    void configurationChanged(const QNetworkConfiguration);
    void configurationRemoved(const QNetworkConfiguration);
    void onlineStateChanged(bool);
    void updateCompleted();
};

#endif // TRANSMISSIONS_H
Run Code Online (Sandbox Code Playgroud)

#include "transmissions.h"
#include "name_spawn.h"
#include <QHttp>
#include <QUrl>
#include <QString>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <iostream>
#include <QNetworkAccessManager>
#include <QNetworkConfigurationManager>
#include …
Run Code Online (Sandbox Code Playgroud)

post qt multithreading

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

有没有人能够正确使用libsensors?

长话短说我试图编写一个可以检查cpu温度的应用程序.使用libsensors(3)手册页我已经能够至少获得libsensors_version数字.截至目前,这是我的代码:

#include <sensors/sensors.h>
#include "SensorData.h"
#include <string>
#include <sstream>


using namespace std;

SensorData::SensorData()
{
   sensors_init(NULL);
}

SensorData::~SensorData()
{
    sensors_cleanup();
}

string SensorData::GetVersion()
{
    ostringstream Converter;
    Converter<<"Version: "<<libsensors_version;
    return Converter.str();
}

void SensorData::FetchTemp()
{
    //sensors_get_value()
}
Run Code Online (Sandbox Code Playgroud)

使用手册页我知道sensors_get_value需要

const sensors_chip_name *name
int subfeat_nr
double *value 
Run Code Online (Sandbox Code Playgroud)

传递给它.问题是我不知道究竟是什么.几乎文档中的每个功能都有这个问题.他们都期望我不知道如何供应模糊的东西.

所以这里有大部分问题:有没有人有我可以看到的这个库的任何工作示例?或者至少有人知道如何为这些功能提供他们需要的价值吗?

编辑:

由于似乎没有人对这个图书馆有太多了解,有没有人知道一种不同的温度变化方法?

c++ linux temperature

8
推荐指数
1
解决办法
5070
查看次数

PHP异常处理与C#

这是一个非常基本的问题(我希望).我所做的大多数异常处理都是使用c#.在c#中,try catch块中出错的任何代码都由catch代码处理.例如

try
{
 int divByZero=45/0;
}
catch(Exception ex)
{
 errorCode.text=ex.message();
}
Run Code Online (Sandbox Code Playgroud)

该错误将显示在errorCode.text中.如果我尝试在php中运行相同的代码但是:

try{
    $divByZero=45/0;
    }
catch(Exception ex)
{
  echo ex->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

捕获代码未运行.根据我的理解,php需要一个抛出.这不是打败错误检查的全部目的吗?这不会减少尝试捕获到if then语句吗?if(除以零)抛出错误请告诉我,我不必预测try中的每个可能的错误.如果我这样做,那么无论如何都要让php的错误处理更像c#吗?

php c# error-handling

3
推荐指数
1
解决办法
483
查看次数

在cstdlib中不再睡觉?

我有一个通常正常编译的应用程序.它使用两个"非标准"函数(如果我没有记错的话,都在cstdlib中):sleep()和daemon().在更新我的系统后,我发现我的程序将不再编译(它仍然在我的旧系统上编译).GCC给了我这样的信息:

error: 'daemon' was not declared in this scope
error: 'sleep' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)

我记得曾经有过一次与sleep()有同样的问题,并且包括cstdlib解决了这个问题.我找不到cstdlib的更改日志,也不知道函数的移动位置(如果没有删除).我也假设daemon()发生了同样的事情.我在谷歌找不到与此相关的任何内容.

有谁知道这些去了哪里,或者更好地知道我将来可以找到的地方,以防我再次遇到这个问题?

我知道daemon()是一种懒惰的做事方式,并且可以自己编写一个正确的方法来守护这个程序(使用fork等),但使用它非常方便.

c++ linux

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

Onedrive API 拒绝访问令牌(CompactToken 解析失败,错误代码:8004920A)

希望我错过了一些非常简单的东西。根据此文档获取访问令牌,我需要点击以下网址:

https://login.live.com/oauth20_authorize.srf?client_id={client_id}&scope={scope}
&response_type=token&redirect_uri={redirect_uri}
Run Code Online (Sandbox Code Playgroud)

到目前为止,这似乎是我得到的返回 url 包含的工作

/#access_token=EwAYA61DBAAUcSSzo.......
Run Code Online (Sandbox Code Playgroud)

根据上面的令牌流文档,

您可以使用 access_token 的值向 OneDrive API 发出请求。

根据这个页面,

您的应用程序通过 HTTP 标头在每个请求中提供访问令牌:

授权:承载 {token}

运行 curl 时,我给了它我之前给定的确切标记,

curl -X GET \
https://graph.microsoft.com/v1.0/drive \
-H 'Authorization: Bearer EwAYA61DBAAUcSSzoTJJs.....

{
"error": {
    "code": "InvalidAuthenticationToken",
    "message": "CompactToken parsing failed with error code: 8004920A",
    "innerError": {
        "request-id": "8780c600-2b7f-45a0-b484-7eca9dfd2697",
        "date": "2019-01-25T19:33:22"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

为什么他们提供的令牌不起作用?

到目前为止我尝试过的:

  • 改变报头中承载的大小写
  • 将所述令牌包装在 {} 中
  • 生成新令牌
  • URL解码表示令牌

需要注意的一件事:我收到的令牌不是JWT 令牌。谷歌搜索错误代码会发现几个堆栈溢出问题,这些问题似乎暗示图形 api 需要 JWT。如果是这种情况,我是否错过了获取它的步骤?

onedrive microsoft-graph-api

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

Qt应用程序将无法编译

这一直困扰着我.我正在尝试创建一个带有哈希表的函数,并返回所述哈希表.但是我在头文件中收到此错误,

error: ‘string’ was not declared in this scope.
error: template argument 1 is invalid
Run Code Online (Sandbox Code Playgroud)

这是头文件本身:

#ifndef NAME_SPAWN_H
#define NAME_SPAWN_H
#include <QString>
#include <QHash>
#include <string>

class Name_Spawn
{
public:
    Name_Spawn();
    void initalize();
private:
    QString int_2_str(int);
    void seed();
    QHash<string,QString> setTable(QHash<string,QString>);
};

#endif // NAME_SPAWN_H
Run Code Online (Sandbox Code Playgroud)

如您所见,已声明字符串.有任何想法吗?我没办法.

c++ qt hashtable

0
推荐指数
1
解决办法
982
查看次数

这个散列表不应该只读吗?

我有一个类,它有一个名为_Parameters的哈希表的getter函数.

private Hashtable _Parameters = new Hashtable();
public Hashtable Parameters { get { return _Parameters; } }
Run Code Online (Sandbox Code Playgroud)

_Parameters未在代码中的任何其他位置引用.现在,由于没有setter函数,我认为这个类之外的任何东西都不能修改_Parameters存储的内容,只能读取它.然而事实并非如此.另一个类调用此代码(其中template是上面提到的类的实例)

template.Parameters[key] = parameters[key];
Run Code Online (Sandbox Code Playgroud)

这最终修改了_Parameters.这怎么可能?如果我们使用'='分配vales,setter函数是否只适用?

c# hashtable getter-setter

0
推荐指数
1
解决办法
875
查看次数

无法获取JavaScript来检查null对象

我真的不知道这里的问题是什么.据我所知,代码很简单,应该可以正常工作.

          var Prices="";
          for (var PriceCount = 1; PriceCount <= 120; PriceCount++) {
              var CurrentPrice = "Price" + PriceCount;
              if (prevDoc.getElementById(CurrentPrice).value != null) {
                  if (Prices == "") {
                      Prices = prevDoc.getElementById(CurrentPrice).value;
                  } else {
                      Prices += "," + prevDoc.getElementById(CurrentPrice).value;
                  }
              } else {
                  break;
              }
          }
Run Code Online (Sandbox Code Playgroud)

表单上最多可以有120个隐藏输入.当我们检查不存在的输入时,循环应该中断.我的测试页面有两个被拉动的输入元素.在第三个(null)我在firebug中得到这个错误:

prevDoc.getElementById(CurrentPrice) is null

 if (prevDoc.getElementById(CurrentPrice).value != null) {
Run Code Online (Sandbox Code Playgroud)

是的它是空的...这就是check_ಠ的检查

有谁知道我做错了什么?这似乎应该是非常直接的.

编辑:为了清楚起见,prevDoc = window.opener.document

javascript

0
推荐指数
1
解决办法
69
查看次数

snprintf在微控制器上打印giberish,但在其他环境中也很好

我试图简单地将一个double转换为C中的字符串

?char printable[9];

snprintf(printable, 9, "%f", 30.356145);
Run Code Online (Sandbox Code Playgroud)

应将printtable设置为"30.35614".当我在在线c编译器上运行此代码时,它正确输出.当我在我的微控制器上输出它时,打印等于这个废话:

"\000\033\000\000\001\000\000\000\024"
Run Code Online (Sandbox Code Playgroud)
  1. 为什么我得到这个垃圾数据?
  2. 什么是垃圾数据?
  3. 如何让snprintf正常运行?

c arm

0
推荐指数
1
解决办法
88
查看次数