如何在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
相关产品推荐
相关产品推荐

