小编Nik*_*ika的帖子

Qt信号(QueuedConnection和DirectConnection)

我在使用Qt信号时遇到问题.

我不明白怎么做DirectConnectionQueuedConnection有效?

如果有人会解释何时使用其中的哪一个(示例代码将被赞赏),我将感激不尽.

c++ qt qthread qt-signals

44
推荐指数
2
解决办法
6万
查看次数

QByteArray到QString

QByteArray和他有问题QString.

我正在读取文件并将其信息存储在一个文件中QByteArray.该文件是unicode,因此它包含以下内容:t\0 e\0 s\0 t\0 \0 \0

我试图将此值与我的指定值进行比较,但它失败了,因为在调试器中我看到它不是unicode字符串.

代码将解释一切:

QByteArray Data; //contains unicode string "t\0 e\0 s\0 t\0 \0 \0"
QString myValue = "test"; //value to compare.
if(Data.contains(myValue))
    //do some stuff.
else
    //do other stuff.
Run Code Online (Sandbox Code Playgroud)

在调试器中,它向我显示变量Data具有值"t\0 e\0 s\0 t\0 \0 \0"myValue具有值"test".我该如何解决?

c++ qstring qt qbytearray qtcore

35
推荐指数
6
解决办法
9万
查看次数

原始数据到QImage

我是图形编程的新手(像素,图像等).我正在尝试将原始数据转换为QImage并将其显示在QLabel上.问题是,原始数据可以是任何数据(它实际上不是图像原始数据,它是二进制文件.)如果是这样的原因,要深入了解像素和像这样的东西是如何工作的,我知道我会随机图像有奇怪的结果,但它会工作.我正在做这样的事,但我想我做错了!

QImage *img = new QImage(640, 480, QImage::Format_RGB16); //640,480 size picture.
//here I'm trying to fill newly created QImage with random pixels and display it.
for(int i = 0; i < 640; i++)
{
    for(int u = 0; u < 480; u++)
    {
        img->setPixel(i, u, rawData[i]);
    }
}
ui->label->setPixmap(QPixmap::fromImage(*img));
Run Code Online (Sandbox Code Playgroud)

我做得对吗?顺便问一下,你能指出我应该在哪里学习这些东西吗?谢谢!

qt qimage

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

Socket.IO 确认与事件发出

我正在尝试构建基于房间管理(大厅、配对、房间等)的应用程序(更准确地说是我个人项目的库)。

我设法用 socket.io 做到了。

现在,我的问题是,我不知道应该使用什么样的设计模式。

我注意到 socket.io 有 ack 回调,这让我感到惊讶并认为它很好,但我不确定发送回带参数的 ack 或发出带参数的事件有什么区别。

那么,问题是,使用 ack 相对于发出事件有什么优缺点,反之亦然?

让我们说一下,使用以下代码有什么优点和缺点:

假设处理程序回调是fn(err, res);

致谢方式:

socket.on('join', function (data, ack) {
  // do the joining stuff here.
  return ack(null, { response: 'goes_here' });
});
Run Code Online (Sandbox Code Playgroud)

相对

事件发出风格:

socket.on('join', function (data, ack) {
  // do the joining stuff here.
  io.to(client_sid).emit('join_response', null, { response: 'goes_here' });
});
Run Code Online (Sandbox Code Playgroud)

socket.io

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

QTcpSocket接收转移

我收到转账时遇到问题.

当我发送它时,QTcpSocket-> readAll()没有读取足够的字节.当我发送像15k字节时,它只读取它的一部分,然后什么都不做.我做错了什么?

QByteArray array;

array = socket->readAll(); //just reads some part, not fully.
Run Code Online (Sandbox Code Playgroud)

为什么?

对不起我的英语不好.

问候.

c++ qt qtcpsocket

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

让系统正常运行

我无法确定系统运行的时间.我现在太累了,但无所事事.我使用GetTickCount()来获得毫秒数,但我必须将它们转换为人类可读的格式.我试过这样的事情,但结果很奇怪.

void GetUpTime(DWORD Tick) //GetTickCount() argument.
{
    wchar_t temp[256] = {0};
    ZeroMemory(tmpBuff, sizeof(tmpBuff));

    wsprintfW(temp, L"%uh %um %us", Tick/60, Tick/60*60, Tick/60*60*60);
    lstrcpyW(Time, tmpBuff);
}
Run Code Online (Sandbox Code Playgroud)

正如我猜这里,Tick/60 =秒,Tick/60*60 =分钟和Tick/60*60*60 =小时.但是我需要这样的事情:1小时5分36秒而不是整个谈话.问候.

c c++ windows

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

C检查指针是否有效?

我在使用C++中的有效指针时遇到问题.我在不同的线程中使用一个对象,所以我不能只将指针设置为NULL并返回.这是我正在尝试的:

int main()
{
    char *ptr = new char[1024]; //assume PTR = 0x12345678
    changePtr(ptr);  //after calling this,
                     //ptr is not NULL here.
    return 0;
}

void changePtr(char *ptr)
{
    delete [] ptr; //ptr = 0x12345678
    ptr = NULL; //ptr = NULL
}
Run Code Online (Sandbox Code Playgroud)

如何ptr为两个函数更改为NULL?

c++ pointers

0
推荐指数
2
解决办法
1646
查看次数

用malloc替换operator new

我正在尝试用malloc和free替换operator new和delete(我有理由).问题显示在下面的代码中:

std::string *temp = (std::string *)malloc(sizeof(std::string) * 2); // allocate space for two string objects.
temp[0] = "hello!";
temp[1] = "world!";
for(int i = 0; i < 2; i++)
{
    printf("%s\n", temp[i].c_str());
}
free(temp);
return 0; // causes SIGSEGV.
Run Code Online (Sandbox Code Playgroud)

然而..

std::string *temp = new std::string[2];
temp[0] = "hello!";
temp[1] = "world!";
for(int i = 0; i < 2; i++)
{
    printf("%s\n", temp[i].c_str());
}
delete [] temp;
return 0; // works fine
Run Code Online (Sandbox Code Playgroud)

为什么?并且有人可以建议我用malloc和free替换这些运算符的正确方法是什么?

问候.

编辑:这只是一个例子,我没有使用标准的C++库.

编辑:这样的事情怎么样?

class myclass
{
    public: …
Run Code Online (Sandbox Code Playgroud)

c++ memory operator-overloading

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