使用Qt将linux子窗口保存在父窗口的顶部

时间:2013-02-14 12:55:11

标签: linux qt

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

1 个答案:

答案 0 :(得分:0)

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

<强> 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();
}

<强>的main.cpp

#include "MainWindow.h"
#include <QApplication>

int main(int argc, char **argv)
{
    QApplication a(argc, argv);
    MainWindow w;
    w.showFullScreen();

    return a.exec();
}