所以我有一个有趣的问题....我正在尝试编写的程序崩溃了这个错误:
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) 长话短说我试图编写一个可以检查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#.在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#吗?
我有一个通常正常编译的应用程序.它使用两个"非标准"函数(如果我没有记错的话,都在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等),但使用它非常方便.
希望我错过了一些非常简单的东西。根据此文档获取访问令牌,我需要点击以下网址:
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)
为什么他们提供的令牌不起作用?
到目前为止我尝试过的:
需要注意的一件事:我收到的令牌不是JWT 令牌。谷歌搜索错误代码会发现几个堆栈溢出问题,这些问题似乎暗示图形 api 需要 JWT。如果是这种情况,我是否错过了获取它的步骤?
这一直困扰着我.我正在尝试创建一个带有哈希表的函数,并返回所述哈希表.但是我在头文件中收到此错误,
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)
如您所见,已声明字符串.有任何想法吗?我没办法.
我有一个类,它有一个名为_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函数是否只适用?
我真的不知道这里的问题是什么.据我所知,代码很简单,应该可以正常工作.
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
我试图简单地将一个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)