自定义标题栏
要想做出好看的界面,qt自带的标题栏必须抛弃掉。
如何去掉qt窗口的标题栏
只需添加this->setWindowFlags(Qt::FramelessWindowHint)
以下是去掉标题栏的例子:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint);//去掉窗口标题栏
}
MainWindow::~MainWindow()
{
delete ui;
}
修改centralWidget布局
Qt的布局有4种
四种布局方法:
水平布局类QHBoxLayout
垂直布局类QVBoxLayout
网格布局类QGridLayout
表单布局类QFormLayout
centralWidget默认布局是不可修改的
要在centralWidget,需要对ui文件进行修改,但是在qt编辑模式里面提示mainwindow.ui这个文件只能在design模式下修改。
要对qt的ui文件进行自定义修改,我们可以使用vim、sublime等文本编辑器直接打开ui文件
在对应的位置上添加布局(4选1):
<layout class="QVBoxLayout" name="verticalLayout"/>
<layout class="QHBoxLayout" name="horizontalLayout"/>
<layout class="QGridLayout" name="gridLayout"/>
<layout class="QFormLayout" name="formLayout"/>
修改前:
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle" >
<string>MainWindow</string>
</property>
<widget class="QMenuBar" name="menuBar" />
<widget class="QToolBar" name="mainToolBar" />
<widget class="QWidget" name="centralWidget" />
<widget class="QStatusBar" name="statusBar" />
</widget>
<layoutDefault spacing="6" margin="11" />
<pixmapfunction></pixmapfunction>
<resources/>
<connections/>
</ui>
修改后(例子:centralWidget添加垂直布局):
<ui