You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Qt中实现点击按钮时获取并显示后台应用窗口标题?

Qt实现点击按钮实时显示后台应用窗口标题

我来帮你调整一下这个Qt程序的逻辑,让点击按钮时能实时获取并显示最新的后台应用窗口标题~

首先看你当前的实现,是在窗口构造函数里提前获取了后台窗口标题,这样只能拿到程序启动那一刻的标题,点击按钮时不会更新最新内容。咱们把逻辑调整一下:

第一步:修改构造函数,只初始化UI并连接信号槽

把提前获取标题的代码去掉,先完成UI初始化,再把按钮的点击信号和自定义槽函数关联起来:

MyWindow::MyWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MyWindow) {
    ui->setupUi(this);
    // 连接按钮点击信号到槽函数,这里假设按钮对象是ui->pushButton
    connect(ui->pushButton, &QPushButton::clicked, this, &MyWindow::OnPushbuttonClicked);
}

第二步:实现按钮点击的槽函数,实时获取并显示标题

在槽函数里调用getBackgroundWindowTitle()获取最新标题,再通过UI控件展示出来(比如用标签或者弹窗):

void MyWindow::OnPushbuttonClicked() {
    // 获取当前最新的后台窗口标题
    QString bgWindowTitle = getBackgroundWindowTitle();
    // 示例1:显示在QLabel控件中(假设你有一个名为label的QLabel)
    ui->label->setText(bgWindowTitle);
    // 示例2:用消息弹窗直接展示
    // QMessageBox::information(this, "当前后台窗口标题", bgWindowTitle);
}

逻辑说明

原来的写法是在窗口创建时仅获取一次标题,之后点击按钮只会显示旧内容。现在把获取逻辑移到按钮点击的槽函数里,每次点击都会重新调用getBackgroundWindowTitle(),这样就能拿到当前最新的后台窗口标题了。

如果getBackgroundWindowTitle()是耗时操作(比如需要遍历系统窗口),建议把它放到子线程执行,避免卡住UI界面哦。

内容的提问来源于stack exchange,提问作者GUI-Novice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:48:06