Qt 进动时禁用按钮
我是新使用Qt的,我有一些问题 我正在做一个简单的终端应用程序,我需要禁用按钮几秒钟后,他们被选中 我在做这样的事情:Qt 进动时禁用按钮,qt,Qt,我是新使用Qt的,我有一些问题 我正在做一个简单的终端应用程序,我需要禁用按钮几秒钟后,他们被选中 我在做这样的事情: void MainWindow::on_readcard_clicked(){ this->setEnabled(false); //Send Command QString commandString = ""; commandString.append('1'); commandString.append("\n"); QByteArray commandAr
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);}
我需要这个,因为如果有人在完成第一次点击之前按下按钮两次,我会得到一个包含大量垃圾的“疯狂”数组。
我也尝试过使用“WaitForBytesWrite”和“waitForReadyRead”,但在处理完所有内容之前,它并没有阻止连接
关于尝试使用QTimer::SingleShot():
它会在通话后2秒启用按钮我试过了,但还是发生了同样的事情。如果我按下按钮2次,它将执行功能2次,我想在第一次点击后“阻止”按钮,直到几秒钟过去(以确认所有内容都已收到)。@JoseRafael等待。你的按钮叫什么名字?
this->setEnabled(false);
QTimer::singleShot(2000, this, SLOT(enableMyButton()));
// you code
void enableMyButton()
{
this->setEnabled(true);
}