如何在任务栏上隐藏应用程序

How to hide application on taskbar?

本文关键字:隐藏 应用程序 任务栏      更新时间:2023-10-16

我正在尝试从任务栏中隐藏我的 QT 应用程序?我在谷歌上找不到任何东西,所以我在这里问。Qt隐藏任务栏项目(Qt隐藏任务栏项目)和this->hide()的解决方案没有帮助。

主.cpp

#include "status_bar.h"
#include <QApplication>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    status_bar w;
    w.show();
    return a.exec();
}

status_bar.cpp:

    #include "status_bar.h"
    #include "ui_status_bar.h"
    #include <stdlib.h>
    #include <QTime>
    #include <QTimer>
    #include <QApplication>
    #include <QDesktopWidget>
    status_bar::status_bar(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::status_bar)
    {
        ui->setupUi(this);
        setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
        resize(QApplication::desktop()->width(),36);
        ui->time->move(QApplication::desktop()->width()-ui->time->size().width(),10);
        ui->username->setText(getenv("USER"));
        timeupdate = new QTimer(this);
        connect(timeupdate, SIGNAL(timeout()),
                  this, SLOT(UpdateClock()));
        timeupdate->start(100);
    }
    void status_bar::UpdateClock()
    {
        ui->time->setText(QTime::currentTime().toString("HH:mm"));
    }
    status_bar::~status_bar()
    {
        delete ui;
    }

编辑:像这样的代码,这个窗口是空的。

class MyWindowWidget : public QWidget
{
public:
    MyWindowWidget(QWidget *parent)
        : QWidget(parent, Qt::Dialog)
    {
    }
};
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    status_bar window;
    MyWindowWidget widget(&window);
    widget.show();
    return app.exec();
}

通过使用 Qt::Tool 标志解决。

Qt::tool标志对我来说还有其他问题,比如当它的状态变为非活动状态时,这个小部件/窗口被隐藏了。我建议您使用Qt::ToolTip