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

时间:2015-04-22 16:09:56

标签: c++ linux qt

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

的main.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标志解决。

1 个答案:

答案 0 :(得分:-1)

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