【问题标题】:Keep linux child window on top of parent window with Qt使用 Qt 将 linux 子窗口保持在父窗口之上
【发布时间】:2013-01-30 06:50:11
【问题描述】:

我正在使用 qt 编写一个 linux(这里:Ubuntu)应用程序。 我将主窗口设置在顶部并全屏,然后制作其他子窗口。问题是一旦单击主窗口,这些窗口就会在主窗口后面。 有什么办法可以避免这种情况并将子窗口保持在主窗口的顶部? 先谢谢了

【问题讨论】:

    标签: linux qt


    【解决方案1】:

    我试图用一个非常简单的设置来重现你的问题,但我失败了,因为我写的内容似乎完全符合你所描述的行为:全屏打开窗口,然后在我的示例中只有一个按下主窗口中的按钮并单击它时,会生成一个子窗口,但对我来说,即使将焦点放在父窗口上,这个窗口也始终位于父窗口之上。 你能检查一下这是否也有你想要的行为吗?

    MainWindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include "ui_MainWindow.h"
    
    class MainWindow : public QMainWindow, public Ui::MainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
    
    private:
        Ui::MainWindow *ui;
        public slots:
        void on_pushButton_clicked();
    };
    
    #endif // MAINWINDOW_H            
    

    MainWindow.cpp

    #include "MainWindow.h"
    
    #include <QDialog>
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent)
    {
        setupUi(this);
    }
    
    
    void MainWindow::on_pushButton_clicked()
    {
      QDialog *dialog = new QDialog(this);
      dialog->show();
    }
    

    ma​​in.cpp

    #include "MainWindow.h"
    #include <QApplication>
    
    int main(int argc, char **argv)
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.showFullScreen();
    
        return a.exec();
    }
    

    【讨论】:

      猜你喜欢
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      相关资源
      最近更新 更多