在Qt中,我如何在for循环中添加qstring,以相互附加并放入单个消息框中

In Qt, how do I add qstrings within a for loop to be appended to each other and put inside a single message box?

本文关键字:单个 消息 qstring Qt for 添加 循环      更新时间:2023-10-16
for(size_t idx = 0; idx < count; ++idx){
   libusb_device *device = list[idx];
   libusb_device_descriptor desc = {0};
   rc = libusb_get_device_descriptor(device, &desc);
   assert(rc == 0);
   //Print out desc.idVendor, desc.idProduct
   QString VendorID = QString("%1").arg(desc.idVendor, 0, 16).rightJustified(4, '0');
   QString ProductID = QString("%1").arg(desc.idProduct, 0, 16).rightJustified(4, '0');
   QString USB_BUS = QString("%1").arg(libusb_get_bus_number(device)).rightJustified(1, ' ');
   QString USB_DEVICE = QString("%1").arg(libusb_get_device_address(device)).rightJustified(1, ' ');
   QMessageBox::information(this, "USB Connection Status", QString("VendorID:ProductID = %1:%2 | Bus: %3 Device: %4n").arg(VendorID).arg(ProductID).arg(USB_BUS).arg(USB_DEVICE));
}

这是我写的代码。正如你所看到的,我对在for循环中使用QString有点困惑。我理想地想要的是一个单一的对话框,可以包含一个for循环的qstring消息。知道怎么做吗?

for(size_t idx = 0; idx < count; ++idx){
   libusb_device *device = list[idx];
   libusb_device_descriptor desc = {0};
   rc = libusb_get_device_descriptor(device, &desc);
   assert(rc == 0);
   //Print out desc.idVendor, desc.idProduct
   QString VendorID = QString("%1").arg(desc.idVendor, 0, 16).rightJustified(4, '0');
   QString ProductID = QString("%1").arg(desc.idProduct, 0, 16).rightJustified(4, '0');
   QString USB_BUS = QString("%1").arg(libusb_get_bus_number(device)).rightJustified(1, ' ');
   QString USB_DEVICE = QString("%1").arg(libusb_get_device_address(device)).rightJustified(1, ' ');
   USB_STATUS += QString("VendorID:ProductID = %1:%2 | Bus: %3 Device: %4n").arg(VendorID).arg(ProductID).arg(USB_BUS).arg(USB_DEVICE);
}
QMessageBox::information(this, "USB Connection Status", USB_STATUS);

Yup +=为我做了这件事,并将QMessageBox放在循环之外。我只是想把这个贴在这里,以防将来有人发现自己和我有同样的情况。