建设网站平台的章程,做图片推广的网站,一个微信可以做两个网站支付宝吗,app一键生成平台免费软件提要
鼠标进入窗体后#xff0c;窗体自动置顶#xff0c;鼠标移开窗体后#xff0c;窗体恢复之前的状态。
示例
运行效果如下#xff1a; 程序刚启动的效果如下#xff1a; 鼠标放在某一个窗口上的效果如下#xff1a; 可实现鼠标放在某一个窗口上该窗口置顶#x…提要
鼠标进入窗体后窗体自动置顶鼠标移开窗体后窗体恢复之前的状态。
示例
运行效果如下 程序刚启动的效果如下 鼠标放在某一个窗口上的效果如下 可实现鼠标放在某一个窗口上该窗口置顶且窗口的标题栏显示移开鼠标后窗口恢复之前的大小且标题栏隐藏。 项目的代码结构如下 下面附上实现的代码。 widget.h
#ifndef WIDGET_H
#define WIDGET_H#include QWidget
#include widgetform.hQT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private:Ui::Widget *ui;widgetForm *m_childWidget1;//子窗口1widgetForm *m_childWidget2;//子窗口2
};
#endif // WIDGET_H
widget.cpp
#include widget.h
#include ui_widget.hWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui-setupUi(this);//创建窗口m_childWidget1 new widgetForm(QRect(0,0,200,200),this);m_childWidget1-setWidgetBackground(QColor(0,170,255,255));m_childWidget1-show();m_childWidget2 new widgetForm(QRect(150,20,300,300),this);m_childWidget2-setWidgetBackground(QColor(170,85,127,255));m_childWidget2-show();
}Widget::~Widget()
{delete ui;
}widgetform.h
#ifndef WIDGETFORM_H
#define WIDGETFORM_H#include QWidgetnamespace Ui {
class widgetForm;
}class widgetForm : public QWidget
{Q_OBJECTpublic:explicit widgetForm(QRect rect, QWidget *parent nullptr);~widgetForm();QRect getRect();//获取窗口位置大小void setWidgetBackground(QColor color);//设置窗口的背景色
protected:void paintEvent(QPaintEvent *event);//绘制窗口背景色void enterEvent(QEvent *event);//鼠标进入窗口放大标题栏显示窗口置顶void leaveEvent(QEvent *event);//鼠标离开窗口恢复
private:Ui::widgetForm *ui;QRect m_rect;//窗口位置大小QRect m_rectOld;//窗口原来的大小QColor m_color;//窗口背景颜色
};#endif // WIDGETFORM_H
widgetform.cpp
#include widgetform.h
#include ui_widgetform.hwidgetForm::widgetForm(QRect rect,QWidget *parent) :QWidget(parent),m_rect(rect),ui(new Ui::widgetForm)
{ui-setupUi(this);setWindowFlags(Qt::FramelessWindowHint);ui-widgetTitile-hide();setGeometry(m_rect);
}widgetForm::~widgetForm()
{delete ui;
}QRect widgetForm::getRect()
{return m_rect;
}void widgetForm::setWidgetBackground(QColor color)
{m_color color;
}void widgetForm::paintEvent(QPaintEvent *event)
{Q_UNUSED(event);QPalette pal palette();pal.setColor(QPalette::Background,QColor(m_color));setAutoFillBackground(true);setPalette(pal);QWidget::paintEvent(event);
}void widgetForm::enterEvent(QEvent *event)
{ui-widgetTitile-show();m_rectOld geometry();//获取窗口原来的位置大小setGeometry(m_rectOld.x(),m_rectOld.y(),500,300);raise();//实现窗口置顶
}void widgetForm::leaveEvent(QEvent *event)
{ui-widgetTitile-hide();setGeometry(m_rectOld);
}
main.cpp
#include widget.h#include QApplicationint main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}