问题
在paintEvent 中的代码较长,update() 放在主循环里, 造成绘图事件占用过多CPU,使键盘和鼠标有明显的延迟
解决方法
把update() 单独放在一个slot 里,定时update()
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 关联定时器的溢出信号到槽上
connect(timer, &QTimer::timeout, this, &MainWindow::timerUpdate);
}
void MainWindow::timerUpdate()
{
system_time++;
ui->lcdNumber->display(system_time);
QWidget :: update();
}
void MainWindow::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QImage image;
……
}