[英]How to run FlashWindow in Linux?
該過程完成后,我需要在任務欄中突出顯示一個窗口。
我叫::FlashWindow((HWND)winId(), false);
在Windows中。
我如何在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);
}
有什么區別?
沒有通用的方法可以完成此操作,因為它取決於桌面環境 。
可能根本沒有“任務欄”(或面板)。 過去,嘗試支持window.getAttention()方法的瀏覽器制造商遇到了類似的問題。
即使Qt標題欄閃爍也不是一件容易的事,因為Qt對窗口裝飾(邊框和標題)沒有任何控制,因此您可能需要使用Xlib手動實現。
如果要在所有目標平台上獲得相同的效果,則可以考慮實現簡單的“閃爍”效果(例如,使用窗口不透明度 )。 請注意,僅當您運行合成器時,X11才支持該窗口不透明度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.