From: SnickerSun Date: Thu, 4 Dec 2025 08:20:56 +0000 (+0800) Subject: UI优化 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=4905103c58b3763ad9cb17bd1e3a9b8561c48060;p=mirrors%2Ffactory_tool.git UI优化 --- diff --git a/mainwindow.cpp b/mainwindow.cpp index 6143792..d7e7963 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -17,13 +17,16 @@ #include #include #include +#include +#include +#include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); - setWindowTitle("雷鸟产测工具"); + setWindowTitle("雷鸟产测工具 V1.1"); // 确保控制台输出使用UTF-8编码 QTextCodec *utf8Codec = QTextCodec::codecForName("UTF-8"); @@ -94,6 +97,10 @@ MainWindow::MainWindow(QWidget *parent) currentAudioStep = AUDIO_PLAYING_1KHZ; currentModemVersion = ""; currentSimStatus = -1; + // 初始化日志文件相关变量 + testLogFile = nullptr; + testLogStream = nullptr; + testLogFilePath = ""; // 初始化按键测试状态 for (int i = 0; i < 4; i++) { @@ -114,6 +121,9 @@ MainWindow::MainWindow(QWidget *parent) MainWindow::~MainWindow() { + // 关闭日志文件 + closeTestLogFile(); + delete ui; if (serial->isOpen()) { serial->close(); @@ -133,8 +143,24 @@ void MainWindow::updateSerialPorts() ui->portNameBox->clear(); // 获取所有可用串口 const auto infos = QSerialPortInfo::availablePorts(); + int maxWidth = 0; + QFontMetrics fm(ui->portNameBox->font()); for (const QSerialPortInfo &info : infos) { - ui->portNameBox->addItem(info.portName() + " (" + info.description() + ")"); + QString itemText = info.portName() + " (" + info.description() + ")"; + ui->portNameBox->addItem(itemText); + // 计算文本宽度,找出最长的项 + #if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + int textWidth = fm.horizontalAdvance(itemText); + #else + int textWidth = fm.width(itemText); + #endif + if (textWidth > maxWidth) { + maxWidth = textWidth; + } + } + // 设置下拉列表的最小宽度,确保所有选项都能完整显示 + if (maxWidth > 0) { + ui->portNameBox->view()->setMinimumWidth(maxWidth + 20); // 加20像素作为边距 } } @@ -485,6 +511,8 @@ void MainWindow::ShowPppInfoIMEI(const QString& data) // 显示到IMEI文本框 ui->IMEIlineEdit->setText(imeiInfo); qDebug() << "最终提取的IMEI:" << imeiInfo; + // 尝试重命名日志文件(如果ICCID也已获取) + renameLogFileWithDeviceInfo(); } else { if (imeiInfo.isEmpty()) { qDebug() << "IMEI信息为空,数据:" << data.trimmed(); @@ -543,6 +571,8 @@ void MainWindow::ShowPppInfoICCID(const QString& data) // 显示到ICCID文本框 ui->ICCIDlineEdit->setText(iccidInfo); qDebug() << "提取的ICCID:" << iccidInfo; + // 尝试重命名日志文件(如果IMEI也已获取) + renameLogFileWithDeviceInfo(); } else { qDebug() << "ICCID格式不正确,不显示到界面,ICCID:" << iccidInfo; ui->statusbar->showMessage("ICCID格式不正确: " + iccidInfo, 3000); @@ -827,7 +857,7 @@ void MainWindow::parseNetworkStatChanged(const QString& data) qDebug() << "解析到signal值:" << signalValue; // 将signal值显示到界面 - ui->recvTextEdit->append(QString("Network Stat Signal值: %1").arg(signalValue)); + appendToLogFile(QString("Network Stat Signal值: %1\n").arg(signalValue)); ui->statusbar->showMessage(QString("检测到Network Stat Signal值: %1").arg(signalValue), 2000); // 如果正在进行4G测试,处理signal值 @@ -934,8 +964,7 @@ void MainWindow::readSerialData() // 显示到接收区(如果是fac:开头的行) if (line.startsWith("fac:")) { - ui->recvTextEdit->insertPlainText(processLine); - ui->recvTextEdit->moveCursor(QTextCursor::End); + appendToLogFile(processLine); } // 处理所有数据提取(不管是否以fac:开头)(大小写不敏感) @@ -951,8 +980,7 @@ void MainWindow::readSerialData() // 检测wstp_print格式的BTMAC和CyweeChipInfo数据(不需要fac:开头) if (line.contains("^^^^ BTMAC=") && line.contains("^^^^ CyweeChipInfo=")) { // 显示到接收区 - ui->recvTextEdit->insertPlainText(line); - ui->recvTextEdit->moveCursor(QTextCursor::End); + appendToLogFile(line); parseWstpPrintData(line); } @@ -2670,6 +2698,15 @@ QString MainWindow::saveTestRecord() // 显示保存成功消息 ui->statusbar->showMessage(QString("测试记录已保存: %1").arg(csvFileName), 3000); + // 关闭测试日志文件(测试完成) + if (testLogFile && testLogStream) { + QDateTime endTime = QDateTime::currentDateTime(); + *testLogStream << QString("=== 测试结束时间: %1 ===\n").arg(endTime.toString("yyyy-MM-dd hh:mm:ss")); + *testLogStream << QString("测试记录已保存: %1\n").arg(csvFileName); + testLogStream->flush(); + } + closeTestLogFile(); + // 返回文件名供外部使用 return csvFileName; } @@ -2712,7 +2749,7 @@ void MainWindow::checkSignalAndSimValues(const QString& data) qDebug() << "解析到signal值:" << signalValue; // 将signal值显示到界面 - ui->recvTextEdit->append(QString("Signal值: %1").arg(signalValue)); + appendToLogFile(QString("Signal值: %1\n").arg(signalValue)); ui->statusbar->showMessage(QString("检测到Signal值: %1").arg(signalValue), 2000); } else { qDebug() << "未找到signal值"; @@ -2945,6 +2982,14 @@ void MainWindow::on_openButton_2_clicked() testTimeoutTimer->stop(); isProductionTestRunning = false; currentTestStep = TEST_IDLE; + + // 关闭测试日志文件 + if (testLogFile && testLogStream) { + *testLogStream << QString("=== 测试被用户停止: %1 ===\n").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")); + testLogStream->flush(); + } + closeTestLogFile(); + ui->statusbar->showMessage("产测已停止", 2000); qDebug() << "产测被用户停止"; @@ -2969,6 +3014,9 @@ void MainWindow::on_openButton_2_clicked() hasReceivedSignalSim = false; hasReceivedPppInfo = false; + // 创建测试日志文件 + createTestLogFile(); + // 清空所有UI内容 ui->recvTextEdit->clear(); // 清空串口接收文本框 ui->sendTextEdit->clear(); // 清空发送文本框 @@ -3986,7 +4034,7 @@ void MainWindow::checkCat1SignalResult(const QString& data) qDebug() << "CAT1信号测试解析到signal值:" << signalValue << ",接收次数:" << cat1SignalReceivedCount << "/5"; // 将CAT1 signal值显示到界面 - ui->recvTextEdit->append(QString("CAT1 Signal值: %1 (%2/5)").arg(signalValue).arg(cat1SignalReceivedCount)); + appendToLogFile(QString("CAT1 Signal值: %1 (%2/5)\n").arg(signalValue).arg(cat1SignalReceivedCount)); // 统计信号值(用于计算平均值) if (signalValue == 99) { @@ -4223,8 +4271,7 @@ void MainWindow::check4GSignalResult(const QString& data) QString rsrqGrade = getRsrqGrade(currentRsrq); QString rsrqOutput = QString("RSRQ: %1 (%2 dB:%3)").arg(rsrqRaw).arg(currentRsrq).arg(rsrqGrade); qDebug() << rsrqOutput; - ui->recvTextEdit->insertPlainText(rsrqOutput + "\n"); - ui->recvTextEdit->moveCursor(QTextCursor::End); + appendToLogFile(rsrqOutput + "\n"); return; // 每行单独处理 } @@ -4240,8 +4287,7 @@ void MainWindow::check4GSignalResult(const QString& data) QString rsrpGrade = getRsrpGrade(currentRsrp); QString rsrpOutput = QString("RSRP: %1 (%2 dBm:%3)").arg(rsrpRaw).arg(currentRsrp).arg(rsrpGrade); qDebug() << rsrpOutput; - ui->recvTextEdit->insertPlainText(rsrpOutput + "\n"); - ui->recvTextEdit->moveCursor(QTextCursor::End); + appendToLogFile(rsrpOutput + "\n"); return; // 每行单独处理 } @@ -4272,8 +4318,7 @@ void MainWindow::check4GSignalResult(const QString& data) QString overallAssessment = getOverallSignalAssessment(currentRsrp, currentRsrq); QString overallOutput = QString("总体评级:%1").arg(overallAssessment); qDebug() << overallOutput; - ui->recvTextEdit->insertPlainText(overallOutput + "\n"); - ui->recvTextEdit->moveCursor(QTextCursor::End); + appendToLogFile(overallOutput + "\n"); // 检查信号质量是否良好以上 bool rsrpGood = data.contains("覆盖极好") || data.contains("覆盖良好") || @@ -5036,3 +5081,165 @@ void MainWindow::on_openButton_4_clicked() { serial->write("AT^FACTORY=3\r\n"); } + +// 创建测试日志文件 +void MainWindow::createTestLogFile() +{ + // 如果日志文件已打开,先关闭 + closeTestLogFile(); + + // 获取当前时间 + QDateTime now = QDateTime::currentDateTime(); + + // 获取IMEI和ICCID(可能还没有,使用"未知"作为占位符) + QString imei = ui->IMEIlineEdit->text().trimmed(); + QString iccid = ui->ICCIDlineEdit->text().trimmed(); + + if (imei.isEmpty()) { + imei = "未知"; + } + if (iccid.isEmpty()) { + iccid = "未知"; + } + + // 创建日志目录(在CSV记录目录下的logs子目录) + QString appPath = QCoreApplication::applicationDirPath(); + QString logsDir = appPath + "/产测记录/logs"; + QDir dir; + if (!dir.exists(logsDir)) { + dir.mkpath(logsDir); + } + + // 生成文件名:yyyymmdd_hhmmss_imei_iccid.log + QString fileName = QString("%1_%2_%3_%4.log") + .arg(now.toString("yyyyMMdd")) + .arg(now.toString("hhmmss")) + .arg(imei) + .arg(iccid); + + testLogFilePath = logsDir + "/" + fileName; + + // 创建并打开日志文件 + testLogFile = new QFile(testLogFilePath); + if (!testLogFile->open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { + qDebug() << "无法创建日志文件:" << testLogFilePath << "错误:" << testLogFile->errorString(); + delete testLogFile; + testLogFile = nullptr; + return; + } + + testLogStream = new QTextStream(testLogFile); + testLogStream->setCodec("UTF-8"); + + // 写入日志文件头 + *testLogStream << QString("=== 测试开始时间: %1 ===\n").arg(now.toString("yyyy-MM-dd hh:mm:ss")); + *testLogStream << QString("IMEI: %1\n").arg(imei); + *testLogStream << QString("ICCID: %1\n").arg(iccid); + *testLogStream << "========================================\n"; + testLogStream->flush(); + + qDebug() << "测试日志文件已创建:" << testLogFilePath; +} + +// 追加内容到日志文件(同时显示到recvTextEdit) +void MainWindow::appendToLogFile(const QString& text) +{ + // 显示到recvTextEdit + ui->recvTextEdit->insertPlainText(text); + ui->recvTextEdit->moveCursor(QTextCursor::End); + + // 如果日志文件已打开,写入日志文件 + if (testLogFile && testLogStream && testLogFile->isOpen()) { + *testLogStream << text; + testLogStream->flush(); + } +} + +// 关闭测试日志文件 +void MainWindow::closeTestLogFile() +{ + if (testLogStream) { + delete testLogStream; + testLogStream = nullptr; + } + + if (testLogFile) { + if (testLogFile->isOpen()) { + testLogFile->close(); + } + delete testLogFile; + testLogFile = nullptr; + } + + testLogFilePath = ""; +} + +// 使用设备信息重命名日志文件 +void MainWindow::renameLogFileWithDeviceInfo() +{ + // 如果日志文件未打开或路径为空,不处理 + if (!testLogFile || testLogFilePath.isEmpty()) { + return; + } + + // 获取IMEI和ICCID + QString imei = ui->IMEIlineEdit->text().trimmed(); + QString iccid = ui->ICCIDlineEdit->text().trimmed(); + + // 如果IMEI和ICCID都还是"未知"或为空,不重命名 + if (imei.isEmpty() || imei == "未知" || iccid.isEmpty() || iccid == "未知") { + return; + } + + // 从当前文件名中提取时间部分 + QFileInfo fileInfo(testLogFilePath); + QString baseName = fileInfo.baseName(); + QStringList parts = baseName.split("_"); + + if (parts.size() >= 2) { + QString datePart = parts[0]; // yyyymmdd + QString timePart = parts[1]; // hhmmss + + // 生成新文件名 + QString newFileName = QString("%1_%2_%3_%4.log") + .arg(datePart) + .arg(timePart) + .arg(imei) + .arg(iccid); + + QString newFilePath = fileInfo.absolutePath() + "/" + newFileName; + + // 如果新文件名与当前文件名不同,重命名 + if (newFilePath != testLogFilePath) { + // 先关闭文件 + if (testLogFile->isOpen()) { + testLogFile->close(); + } + + // 重命名文件 + QFile oldFile(testLogFilePath); + if (oldFile.rename(newFilePath)) { + testLogFilePath = newFilePath; + qDebug() << "日志文件已重命名:" << newFilePath; + + // 重新打开文件(追加模式) + if (testLogFile->open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { + testLogStream = new QTextStream(testLogFile); + testLogStream->setCodec("UTF-8"); + } else { + qDebug() << "重命名后无法重新打开日志文件:" << newFilePath; + delete testLogFile; + testLogFile = nullptr; + testLogStream = nullptr; + } + } else { + qDebug() << "无法重命名日志文件:" << oldFile.errorString(); + // 重新打开原文件 + if (testLogFile->open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { + testLogStream = new QTextStream(testLogFile); + testLogStream->setCodec("UTF-8"); + } + } + } + } +} diff --git a/mainwindow.h b/mainwindow.h index 44e904d..df94d91 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -17,6 +17,8 @@ #include #include #include +#include +#include QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } @@ -90,6 +92,11 @@ private slots: void updateTestStatus(const QString& testName, TestStatus status); void updateOverallStatus(); QString saveTestRecord(); // 保存测试记录到Excel(静默保存) + // 日志记录相关函数 + void createTestLogFile(); // 创建测试日志文件 + void appendToLogFile(const QString& text); // 追加内容到日志文件(同时显示到recvTextEdit) + void closeTestLogFile(); // 关闭测试日志文件 + void renameLogFileWithDeviceInfo(); // 使用设备信息重命名日志文件 void checkSignalAndSimValues(const QString& data); // 检查signal和sim值进行4G测试判断 void on_openButton_4_clicked(); @@ -167,6 +174,10 @@ private: bool bluetoothTestFinished; // 蓝牙测试是否已完成(成功或失败) QString detectedBluetoothAddress; // 检测到的指定蓝牙地址 int detectedBluetoothRSSI; // 检测到的指定蓝牙地址的RSSI值 + // 日志文件相关变量 + QFile *testLogFile; // 测试日志文件对象 + QTextStream *testLogStream; // 测试日志文件流 + QString testLogFilePath; // 测试日志文件路径 enum AudioTestStep { AUDIO_STARTING_RECORD, // 开始录音 diff --git a/mainwindow.ui b/mainwindow.ui index 6b2243e..b0ecb5e 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -12,222 +12,129 @@ - 10 + 14 MainWindow - - - - 10 - 30 - 231 - 31 - + + + 6 - - - - - 260 - 20 - 741 - 401 - + + 6 - - - - - 260 - 460 - 741 - 71 - + + 6 - - - - - 10 - 90 - 101 - 51 - + + 6 - - 打开串口 + + 6 - - - - - 120 - 90 - 101 - 51 - - - - 清空数据 - - - - - - 930 - 540 - 75 - 23 - - - - 发送 - - - - - - 1010 - 30 - 21 - 16 - - - - Ver: - - - - - - 1050 - 30 - 181 - 20 - - - - - - - 1010 - 60 - 31 - 20 - - - - IMEI: - - - - - - 1050 - 60 - 181 - 20 - - - - - - - 1010 - 90 - 41 - 20 - - - - ICCID - - - - - - 1050 - 90 - 181 - 20 - - - - - - - 1050 - 120 - 251 - 20 - - - - - - - 1010 - 120 - 41 - 21 - - - - Modem: - - - - - - 10 - 160 - 101 - 51 - - - - 开始产测 - - - - - - 120 - 160 - 101 - 51 - - - - QPushButton { -background-color: #FF9800; + + + + + 280 + 16777215 + + + + + 0 + 0 + + + + + 6 + + + + + + Arial + 14 + + + + QComboBox::AdjustToContentsOnFirstShow + + + + + + + 6 + + + + + + Agra + 14 + + + + 开始产测 + + + + + + + + Agra + 14 + + + + 打开串口 + + + + + + + + Agra + 14 + 75 + true + + + + QPushButton { +background-color: #9C27B0; color: white; border-radius: 4px; font-weight: bold; } QPushButton:hover { -background-color: #F57C00; +background-color: #7B1FA2; } - - - 打开记录 - - - - - - 10 - 220 - 101 - 51 - - - - QPushButton { + + + 恢复出厂 + + + + + + + + Agra + 14 + 75 + true + + + + QPushButton { background-color: #9C27B0; color: white; border-radius: 4px; @@ -236,669 +143,869 @@ font-weight: bold; QPushButton:hover { background-color: #7B1FA2; } - - - 老化测试 - - - - - - 1010 - 180 - 61 - 20 - - - - 最新VER: - - - - - - 1070 - 180 - 231 - 20 - - - - - - - 1010 - 210 - 81 - 20 - - - - 最新MODEM: - - - - - - 1090 - 210 - 231 - 20 - - - - - - - 1010 - 330 - 261 - 271 - - - - 产测状态 - - - - - 10 - 25 - 60 - 20 - - - - LCD测试: - - - - - - 80 - 25 - 20 - 20 - - - - color: #888888; font-size: 18px; font-weight: bold; - - - ○ - - - Qt::AlignCenter - - - - - - 110 - 25 - 60 - 20 - - - - color: #888888; - - - 未测试 - - - - - - 10 - 55 - 60 - 20 - - - - 马达测试: - - - - - - 80 - 55 - 20 - 20 - - - - color: #888888; font-size: 18px; font-weight: bold; - - - ○ - - - Qt::AlignCenter - - - - - - 110 - 55 - 60 - 20 - - - - color: #888888; - - - 未测试 - - - - - - 10 - 85 - 60 - 20 - - - - 按键测试: - - - - - - 80 - 85 - 20 - 20 - - - - color: #888888; font-size: 18px; font-weight: bold; - - - ○ - - - Qt::AlignCenter - - - - - - 110 - 85 - 60 - 20 - - - - color: #888888; - - - 未测试 - - - - - - 10 - 115 - 60 - 20 - - - - 录音测试: - - - - - - 80 - 115 - 20 - 20 - - - - color: #888888; font-size: 18px; font-weight: bold; - - - ○ - - - Qt::AlignCenter - - - - - - 110 - 115 - 60 - 20 - - - - color: #888888; - - - 未测试 - - - - - - 10 - 145 - 60 - 20 - - - - 电池测试: - - - - - - 80 - 145 - 20 - 20 - - - - color: #888888; font-size: 18px; font-weight: bold; - - - ○ - - - Qt::AlignCenter - - - - - - 110 - 145 - 60 - 20 - - - - color: #888888; - - - 未测试 - - - - - - 10 - 175 - 60 - 20 - - - - G-sensor: - - - - - - 80 - 175 - 20 - 20 - - - - color: #888888; font-size: 18px; font-weight: bold; - - - ○ - - - Qt::AlignCenter - - - - - - 110 - 175 - 60 - 20 - - - - color: #888888; - - - 未测试 - - - - - - 10 - 205 - 60 - 20 - - - - 蓝牙测试: - - - - - - 80 - 205 - 20 - 20 - - - - color: #888888; font-size: 18px; font-weight: bold; - - - ○ - - - Qt::AlignCenter - - - - - - 110 - 205 - 60 - 20 - - - - color: #888888; - - - 未测试 - - - - - - 10 - 235 - 60 - 20 - - - - 4G测试: - - - - - - 80 - 235 - 20 - 20 - - - - color: #888888; font-size: 18px; font-weight: bold; - - - ○ - - - Qt::AlignCenter - - - - - - 110 - 235 - 60 - 20 - - - - color: #888888; - - - 未测试 - - - - - - 10 - 265 - 60 - 20 - - - - 整体状态: - - - - - - 80 - 265 - 20 - 20 - - - - color: #888888; font-size: 18px; font-weight: bold; - - - ○ - - - Qt::AlignCenter - - - - - - 110 - 265 - 80 - 20 - - - - color: #888888; - - - 等待开始 - - - - - - - 120 - 220 - 101 - 51 - - - - QPushButton { -background-color: #9C27B0; + + + 老化测试 + + + + + + + + Agra + 14 + + + + 清空数据 + + + + + + + + Agra + 14 + + + + 老化结果 + + + + + + + + Agra + 14 + 75 + true + + + + QPushButton { +background-color: #FF9800; color: white; border-radius: 4px; font-weight: bold; } QPushButton:hover { -background-color: #7B1FA2; +background-color: #F57C00; } - - - 恢复出厂 - - - - - - 10 - 280 - 101 - 51 - - - - 老化结果 - - - - - - 1050 - 150 - 251 - 20 - - - - - - - - - - 1010 - 150 - 41 - 21 - - - - PYVER - - - - - - 1010 - 240 - 81 - 20 - - - - 最新PY: - - - - - - 1090 - 240 - 231 - 20 - - - - - - - 1010 - 270 - 71 - 20 - - - - 蓝牙地址: - - - - - - 1090 - 270 - 231 - 20 - - - - 例如: 1C:1D:2B:68:82:68 - - - - - - 1010 - 300 - 71 - 20 - - - - RSSI阈值: - - - - - - 1090 - 300 - 231 - 20 - - - - 例如: -80 - - - - - - 110 - 360 - 101 - 20 - - - - 2 - - - 例如: 2 - - - - - - 10 - 360 - 121 - 20 - - - - 音频测试音量: - - + + + 打开记录 + + + + + + + + + 6 + + + + + + Agra + 14 + + + + + 0 + 0 + + + + 音频测试音量 + + + + + + + + Agra + 14 + + + + Qt::AlignLeft|Qt::AlignVCenter + + + 2 + + + 例如: 2 + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + 5 + 0 + + + + + 6 + + + + + + 0 + 1 + + + + + + + + 6 + + + + + + 0 + 71 + + + + + 16777215 + 100 + + + + + + + + 发送 + + + + + + + + + + + + + 380 + 0 + + + + + 2 + 0 + + + + + 6 + + + + + 6 + + + 4 + + + + + Ver: + + + + + + + Qt::AlignLeft|Qt::AlignVCenter + + + + + + + IMEI: + + + + + + + Qt::AlignLeft|Qt::AlignVCenter + + + + + + + ICCID + + + + + + + Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Modem: + + + + + + + Qt::AlignLeft|Qt::AlignVCenter + + + + + + + PYVER + + + + + + + Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + + + 最新VER: + + + + + + + Qt::AlignLeft|Qt::AlignVCenter + + + + + + + 最新MODEM: + + + + + + + Qt::AlignLeft|Qt::AlignVCenter + + + + + + + 最新PY: + + + + + + + Qt::AlignLeft|Qt::AlignVCenter + + + + + + + 蓝牙地址: + + + + + + + Qt::AlignLeft|Qt::AlignVCenter + + + 例如: 1C:1D:2B:68:82:68 + + + + + + + RSSI阈值: + + + + + + + Qt::AlignLeft|Qt::AlignVCenter + + + 例如: -80 + + + + + + + + + + 0 + 1 + + + + true + + + + + 0 + 0 + 424 + 318 + + + + 产测状态 + + + + 4 + + + 11 + + + 11 + + + 11 + + + 15 + + + + + 4 + + + + + LCD测试: + + + + + + + color: #888888; font-size: 18px; font-weight: bold; + + + ○ + + + Qt::AlignCenter + + + + + + + color: #888888; + + + 未测试 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 4 + + + + + 马达测试: + + + + + + + color: #888888; font-size: 18px; font-weight: bold; + + + ○ + + + Qt::AlignCenter + + + + + + + color: #888888; + + + 未测试 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 4 + + + + + 按键测试: + + + + + + + color: #888888; font-size: 18px; font-weight: bold; + + + ○ + + + Qt::AlignCenter + + + + + + + color: #888888; + + + 未测试 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 4 + + + + + 录音测试: + + + + + + + color: #888888; font-size: 18px; font-weight: bold; + + + ○ + + + Qt::AlignCenter + + + + + + + color: #888888; + + + 未测试 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 4 + + + + + 电池测试: + + + + + + + color: #888888; font-size: 18px; font-weight: bold; + + + ○ + + + Qt::AlignCenter + + + + + + + color: #888888; + + + 未测试 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 4 + + + + + G-sensor: + + + + + + + color: #888888; font-size: 18px; font-weight: bold; + + + ○ + + + Qt::AlignCenter + + + + + + + color: #888888; + + + 未测试 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 4 + + + + + 蓝牙测试: + + + + + + + color: #888888; font-size: 18px; font-weight: bold; + + + ○ + + + Qt::AlignCenter + + + + + + + color: #888888; + + + 未测试 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 4 + + + + + 4G测试: + + + + + + + color: #888888; font-size: 18px; font-weight: bold; + + + ○ + + + Qt::AlignCenter + + + + + + + color: #888888; + + + 未测试 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 4 + + + + + 整体状态: + + + + + + + color: #888888; font-size: 18px; font-weight: bold; + + + ○ + + + Qt::AlignCenter + + + + + + + color: #888888; + + + 等待开始 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Vertical + + + + 20 + 10 + + + + + + + + + + + + @@ -906,7 +1013,7 @@ background-color: #7B1FA2; 0 0 1309 - 23 + 21