我正在尝试要求用户输入密码以访问特定部分,我的应用程序是全屏显示。问题在于,当qInputDialog出现时,也会出现统一的任务栏和应用程序标题栏。我想避免这种情况并使我的应用程序保持全屏显示。 我在Ubuntu 16.04上使用Qt 5.12.3
看看这个简单的例子:
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");
}
}
答案 0 :(得分:0)
似乎目前尚无解决方案,问题取决于Unity。最后,我用qInputDialog
和qStackedView
上的qLabel
页面替换了qButton
,然后相应地隐藏/显示该页面。