隐藏任务栏

cyldone 2010-03-26 07:51:49
我做了一个全屏的窗体,但在全屏的时候弹出一个对话框时任务栏会出现,当我在全屏状态时如果可以实现隐藏LINUX的任务栏,退出全屏状态时又可以把任务栏显示出来
...全文
957 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
killerkg007 2011-10-18
  • 打赏
  • 举报
回复
告诉你了,我也是做一个差不多的东西,试了很多办法,以下是我成功的.
在main()中
Dialog w;
w.setGeometry(QRect(0,0,1440,900));//刚好是你屏幕的大小
w.setWindowFlags(Qt::FramelessWindowHint);//一定要加上
w.show();
至于原因我也不清楚,自己看首办吧!
canyingwushang 2010-11-07
  • 打赏
  • 举报
回复
你可以在程序中添加键盘事件keyPressEvent(QKeyEvent *event),然后单独处理一下ESC键,
if(event->key() == Qt::Key_Escape)
showNormal();
你個臭鴨蛋 2010-10-29
  • 打赏
  • 举报
回复
使用setWindowFlags(Qt::Window);
showFullScreen();
可以实现整个全部全屏,没有任务栏什么的。
我现在想请教的是全屏了之后如何退出全屏
我在全屏的slot里面加了connect(Qt::Key_Escape,SIGNAL(clicked()),this,SLOT(showNormal()));但是编译就不通过
因此在此请教各位,谢谢大家支招!
你個臭鴨蛋 2010-10-27
  • 打赏
  • 举报
回复
请问一下LZ,我在一个mainwindow中定义了布局,其中包含了多个容器(widget,button,scrollarea等,我也不知道该不该用“容器”一词,姑且这么用吧。)现在的问题是我定义了fullscreen菜单,然后现在该菜单按下的时候其中的widget能够全屏显示,其他的像菜单栏等那些就不显示,该怎么实现呢?
谢谢!
cyldone 2010-03-27
  • 打赏
  • 举报
回复
setWindowFlags(Qt::Widget);
setWindowState(Qt::WindowFullScreen);
我用这个 可以 全屏 就把任务栏 隐藏了
也许我没说清楚 我主要是想实现一个界面 把窗口在任务栏隐藏起来 在全屏时 又能 覆盖掉任务栏
setWindowFlags(Qt::Widget);不能实现窗口在任务栏隐藏起来,能全屏
setWindowFlags(Qt::Dialog);能实现窗口在任务栏隐藏起来,但不能实现全屏
我说的全屏 是在窗口设置一个按纽 当窗口显示后 摁下按纽 使窗口全屏
下面是代码: mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"

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

setWindowFlags(Qt::FramelessWindowHint | Qt::Widget);
}

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

void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}

void MainWindow::on_pushButton_clicked()
{
setWindowState(Qt::WindowFullScreen);
}

void MainWindow::on_pushButton_2_clicked()
{
setWindowState(Qt::WindowNoState);
}

void MainWindow::on_pushButton_3_clicked()
{
exit(0);
}


mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();

protected:
void changeEvent(QEvent *e);

private:
Ui::MainWindow *ui;

private slots:
void on_pushButton_3_clicked();
void on_pushButton_2_clicked();
void on_pushButton_clicked();
};

#endif // MAINWINDOW_H

main.cpp

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

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
cyldone 2010-03-27
  • 打赏
  • 举报
回复
刚又检测一遍 发现了按上述方法 时而不灵 时而灵
cyldone 2010-03-27
  • 打赏
  • 举报
回复
解决了 对于qt::dialog 要先hide setwindowstate(); 再show() 才能实现全屏
其余的 可以不这么做
MicroSky2813 2010-03-26
  • 打赏
  • 举报
回复
这种情况在windows也会出现,查下linux有没有现成API可以用,来调任务栏,貌似可能没有吧,Qt库里没有现成的

16,203

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧