void MainWindow::updateTemperature(double temperature) { ui->temperatureLabel->setText(QString::number(temperature)); if (temperature > m_threshold){ QMessageBox::critical(this,tr("Warning"),tr("警告:温度超高!!!")); } }这段代码怎么改可以使其显示后不覆盖之前的按钮
时间: 2023-12-10 10:37:53 浏览: 133
Brackets-MainWindow:永远不会忘记主窗口!
你可以将温度标签(temperatureLabel)放置在按钮下方,而不是覆盖按钮。这样,当你更新温度时,标签将会更新,但是按钮仍然可以看到。
另一种方法是你可以使用布局管理器,例如QVBoxLayout或QHBoxLayout,将按钮和标签放在同一个布局中。这样,当标签更新时,布局将自动调整大小,以便按钮和标签仍然可以看到。
下面是一个使用QVBoxLayout的例子:
```c++
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(ui->button);
layout->addWidget(ui->temperatureLabel);
setLayout(layout);
```
这将创建一个垂直布局,将按钮和标签添加到该布局中,并将布局设置为窗口的布局。当你更新温度时,标签将被更新,但按钮将保持在其原来的位置上。
阅读全文