小编Noe*_*oel的帖子

QTenu中QActions的QTooltip

我希望能够显示QMenu项目的工具提示QAction.我所取得的最好成绩就是将一个悬停的信号连接QAction到一个QTooltip节目:

connect(action, &QAction::hovered, [=]{
    QToolTip::showText(QCursor::pos(), text, this);
});
Run Code Online (Sandbox Code Playgroud)

问题是有时程序会将工具提示定位在菜单下方,特别是在更改菜单时.

有没有办法强制工具提示显示在顶部?

c++ qt tooltip qmenu qaction

10
推荐指数
2
解决办法
3501
查看次数

无法从静态初始化代码启动CUDA内核

我有一个类在其构造函数中调用内核,如下所示:

"ScalarField.h"

#include <iostream>

    void ERROR_CHECK(cudaError_t err,const char * msg) {
        if(err!=cudaSuccess) {
            std::cout << msg << " : " << cudaGetErrorString(err) << std::endl;
            std::exit(-1);
        }
    }

    class ScalarField {
    public:
        float* array;
        int dimension;

        ScalarField(int dim): dimension(dim) {
            std::cout << "Scalar Field" << std::endl;
            ERROR_CHECK(cudaMalloc(&array, dim*sizeof(float)),"cudaMalloc");
        }
    };
Run Code Online (Sandbox Code Playgroud)

"classA.h"

#include "ScalarField.h"


static __global__ void KernelSetScalarField(ScalarField v) {
    int index = threadIdx.x + blockIdx.x * blockDim.x;
    if (index < v.dimension) v.array[index] = 0.0f;
}

class A {
public:
    ScalarField v; …
Run Code Online (Sandbox Code Playgroud)

c++ cuda global-variables static-initialization

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

struct使用大括号初始化/赋值

我已经定义了一个结构如下:

struct float3 {
float x; 
float y;
float z;

float3 () : x(0), y(0), z(0) {}
float3 (float a, float b, float c) : x(a), y(b), z(c) {}
};
Run Code Online (Sandbox Code Playgroud)

但是,在理解为其成员初始化/赋值的不同方法时,我遇到了麻烦.例如:

//Initialization
float3 3Dvec = {1.0, 1.0, 1.0};
float3 3Dvec2 {1.0, 1.0, 1.0};
float3 3Dvec3 (1.0, 1.0, 1.0);

//Assignment
3Dvec = {2.0, 2.0, 2.0};
3Dvec = float3 (2.0, 2.0, 2.0);
Run Code Online (Sandbox Code Playgroud)

所有这些选项都适用于-std = c ++ 11.但是在使用-std = c ++ 0x的旧编译器上,braces初始化/赋值不起作用.使用是否是一种不好的做法?哪个选项更适合习惯?

c++ initialization variable-assignment

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

cuda共享内存 - 结果不一致

我正在尝试并行缩减以在CUDA中对数组求和.目前我传递一个数组,用于存储每个块中元素的总和.这是我的代码:

#include <cstdlib>
#include <iostream>
#include <cuda.h>
#include <cuda_runtime_api.h>
#include <helper_cuda.h>
#include <host_config.h>
#define THREADS_PER_BLOCK 256
#define CUDA_ERROR_CHECK(ans) { gpuAssert((ans), __FILE__, __LINE__); }

using namespace std;

inline void gpuAssert(cudaError_t code, char *file, int line, bool abort=true)
{
   if (code != cudaSuccess) 
   {
      fprintf(stderr,"GPUassert: %s %s %d\n", cudaGetErrorString(code), file, line);
      if (abort) exit(code);
   }
}

struct double3c {
    double x; 
    double y;
    double z;
    __host__ __device__ double3c() : x(0), y(0), z(0) {}
    __host__ __device__ double3c(int x_, int y_, int z_) : …
Run Code Online (Sandbox Code Playgroud)

c++ memory shared cuda

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