1)创建一个标题的界面类,重新实现鼠标移动点击等事件
2)设置主界面无边框,创建一个垂直布局管理器,插入标题界面,在标题界面和主界面之间添加一个分割器
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
QtGuiDetailTitle *title = new QtGuiDetailTitle(this);
ui.verticalLayout->setContentsMargins(8, 8, 8, 8);//设置上下左右边距
ui.verticalLayout->insertWidget(0, title);
ui.verticalLayout->insertStretch(1);//插入一个分割器
3)重新实现主界面的nativeEvent时间,使界面可伸缩
#include <Windows.h>
#include <WindowsX.h>
bool QtGuiDirectDetail::nativeEvent(const QByteArray &eventType, void *message, long *result){
MSG* msg = (MSG*)message;
switch (msg->message){
case WM_NCHITTEST:
int xPos = GET_X_LPARAM(msg->lParam) - this->frameGeometry().x()