去掉Qt窗口的标题边框,重新定义标题栏,可以在标题栏上实现更多的功能,能满足更多的开发需求,可以实现标题栏的拖动,双击,自定义放大缩小。
本文引用自:http://www.devbean.net/2011/10/custom-qt-titlebar/,感谢原作者,本文对其进行了重新整理,并且修改了一些小问题。
运行界面如下:
详细代码如下:
#include <QWidget>
#include <QToolButton>
#include <QPixmap>
class XMainWindowTitle : public QWidget
{
Q_OBJECT
public:
XMainWindowTitle(QWidget *parent);
public slots:
void showSmall();
void showMaxRestore();
protected:
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
void mouseDoubleClickEvent(QMouseEvent *e);
private:
QToolButton *minimize;
QToolButton *maximize;
QToolButton *close;
QPixmap restorePix, maxPix;
bool maxNormal;
QPoint startPos;
QPoint clickPos;
};
#include "XMainWindowTitle.h"
#include <QHBoxLayout>
#include <QMouseEvent>
#include <QStyle>
#include <QLabel>
XMainWindowTitle::XMainWindowTitle(QWidget *parent)
{
// 不继承父组件的