Qt Creator在进入时禁用按钮

时间:2014-11-04 08:39:11

标签: qt

我是新手使用Qt,我遇到了一些麻烦。

我正在做一个简单的终端应用程序,我需要在选择它们几秒后禁用它们。

我正在做这样的事情:

void MainWindow::on_readcard_clicked(){

this->setEnabled(false);

//Send Command
QString commandString = "";

commandString.append('1');
commandString.append("\n");

QByteArray commandArray = commandString.toLocal8Bit();

serial->write(commandArray);

//Read Card
QByteArray data = serial->readLine(12);

QString dataString = 0;
dataString.append(data);
ui->cardnumber->setText(dataString);
dataString.clear();
data.clear();

QByteArray saldo = serial->readAll();

QString saldoString = 0;
saldoString.append(saldo);
ui->balance->setText(saldoString);
saldoString.clear();
saldo.clear();

this->setEnabled(true);}

我需要这个,因为如果有人在完成处理第一次点击之前按两次按钮,我将得到一个带有大量垃圾的“疯狂”阵列。 我也尝试使用“waitForBytesWritten”和“waitForReadyRead”,但是在处理完所有内容之前它没有阻止连接。

此致

1 个答案:

答案 0 :(得分:0)

尝试使用QTimer :: SingleShot():

this->setEnabled(false);
QTimer::singleShot(2000, this, SLOT(enableMyButton()));
// you code
void enableMyButton()
{
    this->setEnabled(true);
}

在通话后启用按钮2秒