qInputDialog делает видимыми панель задач и заголовок Unity в полноэкранном приложении - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь запросить пароль у пользователя, чтобы получить доступ к определенному разделу, мое приложение полноэкранное. Проблема в том, что, когда появляется qInputDialog, также появляется панель задач Unity и заголовок приложения. Я хочу избежать этого и держать свое приложение в полноэкранном режиме. Я использую Qt 5.12.3 на Ubuntu 16.04

Взгляните на этот простой пример:

main.cpp

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

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

    return a.exec();
}

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QInputDialog>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    bool ok;
    QString text = QInputDialog::getText(this, tr("Restriscted"),
                                         tr("Password:"), QLineEdit::Password,"",&ok, Qt::FramelessWindowHint);
    if (ok && text=="pass")
    {
        ui->label->setText("ok");
    }
}

1 Ответ

0 голосов
/ 09 июня 2019

Кажется, на данный момент нет решения для этого, и проблема зависит от Unity.В конце я заменил qInputDialog страницей qStackedView на qLabel и qButton на ней, затем соответственно скрыл / покажу страницу.

...