首页 > 解决方案 > qInputDialog 在全屏应用程序中使 Unity 任务栏和标题栏可见

问题描述

我正在尝试向用户询问密码以访问特定部分,我的应用程序是全屏的。问题是当 qInputDialog 出现时,统一任务栏和应用程序标题栏也会出现。我想避免这种情况并让我的应用程序全屏显示。我在 Ubuntu 16.04 上使用 Qt 5.12.3

看看这个简单的例子:

主文件

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

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

    return a.exec();
}

主窗口.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");
    }
}

标签: c++qtubuntu-16.04fullscreenqinputdialog

解决方案


似乎目前没有解决方案,问题取决于 Unity。最后,我将页面替换为qInputDialog带有a和 a的页面,然后相应地隐藏/显示页面。qStackedViewqLabelqButton


推荐阅读