亮个像吧
当我们想要完全自定义窗口风格时,
总是免不了要移除Windows自带的边框,
去掉了边框也去掉了窗口大小调整功能,
如果不想自己去实现麻烦的鼠标事件时,
不妨试试QSizeGrip。
1 窗口设置无边框
一行代码搞定
this->setWindowFlags(Qt::FramelessWindowHint);2 四个角落添加QSizeGrip
用一个垂直布局和两个水平布局
QHBoxLayout* hBox = new QHBoxLayout; hBox->setSpacing(0); hBox->setMargin(0); hBox->addWidget(new QSizeGrip(this)); hBox->addItem(new QSpacerItem(20,20, QSizePolicy::Expanding)); hBox->addWidget(new QSizeGrip(this)); QHBoxLayout* hBox2 = new QHBoxLayout; hBox2->setSpacing(0); hBox2->setMargin(0); hBox2->addWidget(new QSizeGrip(this)); hBox2->addItem(new QSpacerItem(20,20, QSizePolicy::Expanding)); hBox2->addWidget(new QSizeGrip(this)); QVBoxLayout* vBox = new QVBoxLayout; vBox->setSpacing(0); vBox->setMargin(0); vBox->addLayout(hBox); vBox->addItem(new QSpacerItem(20,20, QSizePolicy::Minimum, QSizePolicy::Expanding)); vBox->addLayout(hBox2); this->setLayout(vBox);此时的情况
3 隐藏QSizeGrip
如果不想让QSizeGrip直接显示出来,
可以通过QSS的方式
QSizeGrip { background-color: transparent; width: 20px; height: 20px; }