我正在开发通过USB与Tektronix TDS2002示波器交互的C ++ / Qt应用程序。示波器显示为“ USB测试和测量设备(IVI)”。
当前,我使用示波器供应商提供的TekVISA库。它可以工作,但是它庞大,古老,越野车且维护不善。因此,我想绕过该库并直接连接设备。
到目前为止,我已经找到了这个简单的库:https : //github.com/xyphro/WinUsbTmc正是我在寻找的东西,但是它使用libusb,它需要安装一些设备过滤器,并且建议进行更多开发工具比客户解决方案。您对此有经验吗?
与Windows / C ++ / Qt中的USB测试和测量设备交互的最简单方法是什么?
谢谢您的建议 :)
我有一个 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)
我有两个想法如何实现这一目标:
使用data()模型中的方法并响应Qt::BackgroundColorRole。不幸的是,当我这样做时,背景颜色将被忽略,直到我border: 0px;从样式表中删除背景颜色,并且当我删除边框时,styleshhet 的填充将被忽略。奇怪的...
为每种类型的行设置 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++ 开发一个非常小的 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)