qt中如何去掉主窗口标题栏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt中如何去掉主窗口标题栏相关的知识,希望对你有一定的参考价值。

参考技术A #include <QtGui/QApplication>
#include <qtextcodec.h>
#include <QtGui/QDialog>
#include <QtCore/QTimer>
#include "widget.h"
int main(int argc, char *argv[])

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
QApplication a(argc, argv);
QDialog dialog;
dialog.setStyleSheet(QString::fromUtf8("background-image: url(:/images/1.PNG);/n"
"color: rgb(0, 255, 0);/n"
"font: 75 16pt /"/345/256/213/344/275/223/";"));
dialog.setGeometry(QRect(50, 50, 350, 250)); //可设置窗口显示的方位与大小
dialog.setWindowFlags(Qt::FramelessWindowHint); //也是去掉标题栏的语句
Widget w;
QTimer timer;
QObject::connect(&timer, SIGNAL(timeout()), &w, SLOT(showNormal()));
QObject::connect(&timer, SIGNAL(timeout()), &dialog, SLOT(accept()));
timer.start(5000);
dialog.exec();
w.showNormal(); // 1、可更改的地方。
return a.exec();


Widget::Widget(QWidget *parent)
: QWidget(parent)

QMessageBox::StandardButton message;
QApplication::setStyle(QStyleFactory::create("plastique"));
QApplication::setPalette(QApplication::style()->standardPalette());
ui.setupUi(this);
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(mountMessage()));
connect(ui.pushButton_2, SIGNAL(clicked()), this, SLOT(umountMessage()));
connect(ui.pushButton_3, SIGNAL(clicked()), this, SLOT(saveMessage()));
connect(ui.pushButton_5, SIGNAL(clicked()), this, SLOT(adjustMessage()));
connect(ui.pushButton_7, SIGNAL(clicked()), this, SLOT(about_usMessage()));
connect(ui.pushButton_4, SIGNAL(clicked()), this, SLOT(stop_saveMessage()));
connect(ui.pushButton_6, SIGNAL(clicked()), this, SLOT(touchMessage()));
connect(ui.pushButton_8, SIGNAL(clicked()), this, SLOT(exitMessage()));

mount_u(); //挂载U盘成功!
if( !have_video() ) //if have WebCam?
message = QMessageBox::information(this, tr("摄像头未连接"),
tr("摄像头未连接,请连接摄像头。") );

setWindowFlags(Qt::FramelessWindowHint); /2、可更改的地方
setWindowTitle(tr("欢迎使用迷你监控器!"));


程序中更改两处显示主窗口的样式。
1、该处可设置窗口大小样式,有四种选择
w.show(); 实际大小
w.showEvent() 自定义大小
w.showFullScreen(); 全屏
w.showMaximized(); 最大化
w.showMinimized(); 最小化
w.showNormal(); 正常
2、该处是去掉窗口标题栏的语句本回答被提问者和网友采纳

QT 主窗口 添加滚动条

一.描述

我的程序布局是这样的,主窗口继承自QMainWindows,主窗口中包含一个Widget,Widget下面包含其它界面元素,这个Widget作为继承自QMainWindows的CentralWidget,QMainWindows类型的窗口中还包含默认标题栏和状态栏。我是在主窗口之中添加了一个QScrollArea,然后将Widget放入滚动条区域中,然后在主窗口的resizeEvent事件响应中检测主窗口的变化,实时修改滚动条区域的大小和放置在滚动条区域中Widget的大小,达到了需要的效果。

二.实现步骤

1.在主界面初始化时创建滚动条(QScrollArea类)

//以主界面为父窗口创建滚动条
QScrollArea *pScroll=new QScrollArea(this);

//将包含所有UI信息的Widget放进滚动条区域
pScroll->setWidget(ui.centralWidget);

2.在主窗口的resizeEvent事件响应中实时改变窗口大小

Void MainFram::resizeEvent(QResizeEvent *event)

    if(pScroll)
    
        /*设置滚动条区域大小时,需要减去状态栏那部分的高度(实际高度并非是状态栏的高度,
          本处使用4倍的状态栏高度,可根据实际显示效果调整)否则会覆盖状态栏的显示。
          此处53就是标题栏与任务栏的高度,是centralWidget在整个界面中相对于主界面左上角坐标
          的y值*/
        pScroll->setGeometry(0,53,width(),height()-4*ui.statusBar->height());
        ui.centralWidget->setMinimumSize(width(),height()-4*ui.statusBar->height());
    

3.显示效果

 

以上是关于qt中如何去掉主窗口标题栏的主要内容,如果未能解决你的问题,请参考以下文章

c++ qt的标题栏可以自定义吗

Qt---去掉标题栏后,最大化应用程序窗口时,窗口遮住了任务栏的问题

如何在Android中实现全屏,去掉标题栏效果

qtdialog标题栏颜色

如何永久删除主窗口标题栏?

如何在任务栏中显示 QMainWindow