QT 继承QWidget && 继承QDialog

这篇博客介绍了如何在Qt项目中,针对需要继承自QWidget和QDialog的窗体,进行代码复用的封装。通过创建模板类,实现了去除标题栏图标并允许自由拖动的功能,从而避免了重复代码。作者分享了实现这一功能的头文件和源文件内容,并提到在本地应用中运行正常。
摘要由CSDN通过智能技术生成

工作项目中,利用到Qt对话框,场景需求:

1. 一部分窗体需要继承自QWidget

2. 一部分窗体需要继承自QDialog

3. 两者均需要去掉标题栏图标,同时能够自由拖动。

如果两者分开继承实现,会造成设置windowFlags、拖动功能部分代码重复冗余,为了达到代码复用的目的,利用模板类进行了封装。

本地使用效果正常,特此备录。

【1】头文件

  #ifndef _UPC_DIALOG_BASE_H
  #define _UPC_DIALOG_BASE_H
  
  #include <QDialog>
  #include <QWidget>
  #include <QPoint>
  #include <QMouseEvent>
  
  template <typename T>
 class UPCBaseWidget : public T
 {
 public:
     UPCBaseWidget(QWidget *parent = Q_NULLPTR);
     virtual ~UPCBaseWidget();
 
     virtual int initialze() = 0;
 
 protected:
     void mousePressEvent(QMouseEvent *event);
     void mouseMoveEvent(QMouseEvent *event);
     void mouseReleaseEvent(QMouseEvent *event);
 
 private:
     bool m_bMoving;         // 移动标志
     QPoint m_pointPosition; // 移动位置
 };
 
 /**
 * @brief: 窗体基类。主要用于统一窗体风格和操作
 * @author: Liuy
 */
 
 class UPCComm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值