form.cpp:27:54: No member named 'windowTitle' in 'QWindow'
时间: 2023-07-29 20:09:33 浏览: 96
非常抱歉,我在上一条回答中犯了一个错误。`QWindow` 类确实没有 `windowTitle` 函数,因此需要使用 `QWidget` 类的 `windowTitle` 函数来获取窗口标题。您可以将代码中的 `QWindow` 替换为 `QWidget`,这样就可以使用 `windowTitle` 函数了。同时,由于 `QWidget` 是 `QWindow` 的子类,因此我们仍然可以将窗口转换为 `QWidget` 类型,以便在循环中访问它们的 `windowTitle` 函数。
下面是修改后的代码:
```cpp
#include <QWidget>
#include <QApplication>
void Form::on_pushButton_clicked()
{
auto windows = qApp->allWindows();
for (auto window : windows)
{
auto qwidget = dynamic_cast<QWidget*>(window);
if (qwidget && qwidget->winId())
{
qDebug() << "Window Title: " << qwidget->windowTitle();
}
}
}
```
在这个示例中,我们使用 `QWidget` 类代替了 `QWindow` 类,并使用 `windowTitle` 函数获取窗口标题。然后使用 `qApp->allWindows()` 函数获取所有窗口,并将其存储在 `windows` 变量中。接着遍历所有的窗口,并将其转换为 `QWidget` 类型。如果转换成功并且 `winId()` 属性值不为零,则输出窗口的标题。
阅读全文