首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Linux中运行FlashWindow?

问如何在Linux中运行FlashWindow?
EN

Stack Overflow用户
提问于 2018-04-23 06:01:31
回答 1查看 149关注 0票数 2

当进程完成时,我需要高亮显示任务栏中的一个窗口。

我在Windows中调用::FlashWindow((HWND)winId(), false);。

我如何在Linux中做同样的事情呢?

QApplication::alert(this);不适合我。

KDE桌面5

这个代码对我不起作用。

代码语言:javascript
复制
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(ui->pushButton, SIGNAL(released()), this, SLOT(test()));
}

void MainWindow::test()
{
    QThread::msleep(5000);
    QApplication::alert(this);
}

但这个很管用。

代码语言:javascript
复制
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QTimer *timer = new QTimer();

    QObject::connect(timer, SIGNAL(timeout()), this, SLOT(timer_alert()));
    timer->start(5000);
}

void MainWindow::timer_alert() {
    QApplication::alert(this);
}

有什么关系?

EN

回答 1

Stack Overflow用户

发布于 2018-04-23 09:56:16

由于它依赖于桌面环境,因此没有通用的方法来完成这一任务。

可能根本没有“任务栏”(或面板)。过去,浏览器制造商也有类似的问题,试图支持window.getAttention()方法。

即使是闪烁标题栏也不是那么容易,因为Qt对窗口装饰(边框和标题)没有任何控制,因此您可能需要使用Xlib手动实现这一点。

如果您想在所有目标平台上获得相同的效果,您可以考虑实现一个简单的“闪烁”效果(例如,使用窗口不透明)。不过,请注意,只有在运行排序程序时,X11才支持该窗口不透明度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49974326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档