小编kla*_*syc的帖子

在Windows / C ++上控制USB TMC设备的最简单方法

我正在开发通过USB与Tektronix TDS2002示波器交互的C ++ / Qt应用程序。示波器显示为“ USB测试和测量设备(IVI)”。

当前,我使用示波器供应商提供的TekVISA库。它可以工作,但是它庞大,古老,越野车且维护不善。因此,我想绕过该库并直接连接设备。

到目前为止,我已经找到了这个简单的库:https : //github.com/xyphro/WinUsbTmc正是我在寻找的东西,但是它使用libusb,它需要安装一些设备过滤器,并且建议进行更多开发工具比客户解决方案。您对此有经验吗?

与Windows / C ++ / Qt中的USB测试和测量设备交互的最简单方法是什么?

谢谢您的建议 :)

c++ windows usb

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

QTableView 行样式

我有一个 QTableView 组件,在行中显示多种类型的数据。我需要的是用不同的颜色显示每种类型的行。我的样式表如下所示:

RecordSheet::item {
        border: 0px;
        color: black;
        padding: 1px 0px 0px 3px;
}
RecordSheet::item:selected, RecordSheet::item:selected:!active {
        background-color: #e8b417;
        color: black;
}
Run Code Online (Sandbox Code Playgroud)

我有两个想法如何实现这一目标:

  1. 使用data()模型中的方法并响应Qt::BackgroundColorRole。不幸的是,当我这样做时,背景颜色将被忽略,直到我border: 0px;从样式表中删除背景颜色,并且当我删除边框时,styleshhet 的填充将被忽略。奇怪的...

  2. 为每种类型的行设置 CSS/QSS 类,并在样式表中设置它们的颜色。然后使用模型为每种类型的行分配适当的类。所以样式表看起来像这样:

    RecordSheet::item {
        border: 0px;
        color: black;
        padding: 1px 0px 0px 3px;
    }
    RecordSheet::item[class=green_row] {
            background-color: green;
    }
    RecordSheet::item[class=red_row] {
            background-color: red;
    }
    
    Run Code Online (Sandbox Code Playgroud)

    我更喜欢这种方法,因为它将内容与外观分开,但我不知道该怎么做。也许使用 ItemDelegate?

请问,有人知道一个好的简单的解决方案吗?

亲切的问候和非常感谢。

c++ qt qtableview qtstylesheets qt5.2

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

在C++中调用任意函数

我正在用 C++ 开发一个非常小的 RPC 库。我想像这样注册 RPC 函数:

void foo(int a, int b) {
    std::cout << "foo - a: " << a << ", b: " << b << std::endl;
}

myCoolRpcServer->registerFnc("foo", foo(int,int))
Run Code Online (Sandbox Code Playgroud)

客户端请求将以函数名称和参数数组的形式到达。服务器会检查是否注册了相应的函数,如果有,则执行该函数。

MyCoolRpcServer::handleRequest(string fnc, vector<FncArg> args)
{
    // Check if we have the function requested by the client:
    if (!this->hasFunction(fnc)) {
        throw ...
    }

    if (!this->function(fnc).argCnt != args.count()) {
        throw ...
    }

    // I think this is the hardest part - call an arbitrary function:
    this->function(fnc)->exec(args); // Calls the …
Run Code Online (Sandbox Code Playgroud)

c++ rpc

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

标签 统计

c++ ×3

qt ×1

qt5.2 ×1

qtableview ×1

qtstylesheets ×1

rpc ×1

usb ×1

windows ×1