我对 Qt Creator 非常陌生,并且有一个关于按钮文本更新没有在我期望的时间发生的原因的问题。下面是显示按钮事件的代码片段。该按钮启动另一个外部进程 (AVRDUDE),该进程依次读取通过 USB 连接的 Arduino 板的 EEPROM 的内容。然后数据被处理并显示在 UI 中。由于读取 EEPROM 的过程需要几秒钟才能执行,因此我想将调用此例程的 UI 按钮从“READ FROM EEPROM”更改为“READING !!” 在执行该例程期间。例程完成后,将按钮标签返回到“READ FROM EEPROM”。这是代码
void MainWindow::on_READ_FROM_EEPROM_clicked() // Read EEPROM into file "fromEEPROM.bin", then output values to UI
{
ui->READ_FROM_EEPROM->setText("READING !!");
call_AVRDUDE_read();
int mBufferLength = 1024; // AVR 1K EEPROM space in 328p
char mBuffer[mBufferLength];
float fB[mBufferLength/4];
QString filename = "fromEEPROM.bin";
QFile mFile(filename);
ui->fileCurrentlyDisplayed->setText(filename); // make this filename visable in UI
if (mFile.exists())
{
if (mFile.open(QFile::ReadOnly))
while (!mFile.atEnd())
mFile.read(mBuffer,sizeof(mBuffer));
mFile.close();
memcpy(&fB, &mBuffer, …Run Code Online (Sandbox Code Playgroud)