【发布时间】:2018-10-03 02:24:30
【问题描述】:
当该过程完成时,我需要在任务栏中突出显示一个窗口。
我在 Windows 中调用 ::FlashWindow((HWND)winId(), false);。
我怎样才能在 Linux 中做同样的事情?
QApplication::alert(this); 不适合我。
KDE 桌面 5。
此代码对我不起作用。
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);
}
但这一个有效。
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);
}
有什么区别?
【问题讨论】:
-
Unity 启动器入口 API 适用于许多桌面 - 但并非适用于所有桌面。可以试试:wiki.ubuntu.com/Unity/LauncherAPI(不用库,用dbus接口即可)
标签: c++ linux qt user-interface