qt怎么在重写的绘图更新函数中获取ui上控件的信息
时间: 2023-05-26 22:06:42 浏览: 119
Qt 使用QPainter类在子控件上画图
3星 · 编辑精心推荐
在Qt中,可以通过以下方式在重写的绘图更新函数中获取UI上控件的信息:
1. 通过UI文件中生成的控件对象获取信息
在UI文件中定义的控件对象可以通过类似 `ui->controlName` 的方式获取,如:
```
void PaintWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter painter(this);
painter.drawText(50, 50, ui->lineEdit->text());
}
```
在上例中,可以通过 `ui->lineEdit->text()` 获取UI中 `lineEdit` 控件的文本内容。
2. 通过父窗口中的控件对象获取信息
若UI中某个控件是父窗口中的,可以通过父窗口的指针获取该控件的信息。例如:
```
void PaintWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter painter(this);
painter.drawText(50, 50, ((MainWindow*)parent())->ui->lineEdit->text());
}
```
在上例中,通过 `parent()` 获取父窗口的指针,再通过强制类型转换 `((MainWindow*)parent())` 获取到MainWindow类的指针,最后通过 `ui->lineEdit->text()` 获取UI中 `lineEdit` 控件的文本内容。
需要注意的是,在任何情况下,获取UI控件信息的前提是控件已经被创建并显示在了UI界面上。
阅读全文