2

qt を使用して Linux (ここでは Ubuntu) アプリケーションを作成しています。メイン ウィンドウを一番上に全画面表示にしてから、他の子ウィンドウを作成します。問題は、メイン ウィンドウをクリックするとすぐに、これらのウィンドウがメイン ウィンドウの後ろに移動することです。これを回避し、メイン ウィンドウの上に子ウィンドウを保持する方法はありますか? 事前に感謝

4

1 に答える 1

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();
}
于 2015-04-11T18:44:22.337 に答える