小编Mar*_*McC的帖子

为什么我的 QT C++ 应用程序在收到指示时不更新事件例程内的按钮文本?

我对 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)

c++ user-interface qt scope

0
推荐指数
1
解决办法
274
查看次数

标签 统计

c++ ×1

qt ×1

scope ×1

user-interface ×1