【发布时间】:2015-10-20 18:35:20
【问题描述】:
我需要创建一个窗口,它始终保持在顶部,没有边框和控件。所以我这样做了:
MainWindow window;
window.show();
MainWindow 类如下所示:
MainWindow::MainWindow(QWidget *parent) : QWidget(parent,
Qt::Window | Qt::WindowStaysOnTopHint
| Qt::X11BypassWindowManagerHint | Qt::FramelessWindowHint) {
}
void MainWindow::keyPressEvent(QKeyEvent *event){
if(event->key() == Qt::Key_Escape){
QApplication::exit();
} else
QWidget::keyPressEvent(event);
}
这很有效,但并不完美。程序启动后,windows没有焦点,所以你必须先点击它。如果我删除Qt::X11BypassWindowManagerHint,windows会获得焦点,但它不会在所有工作区(桌面)显示。
问题 1:Qt::X11BypassWindowManagerHint 究竟做了什么?
问题 2:我如何让它发挥作用?
【问题讨论】: