使用QWdiget开发时,单独编写一个父类,用于自定义QWidget继承,以便产生语言切换事件时,能进行事件传递进行刷新语言,就不用单独每个自定义的widget都需要编写changeEvent事件。
实例:
编写wwdiget类,用于后续自定义widget的继承。
//hpp:
#ifndef WWIDGET_H
#define WWIDGET_H
#include <QWidget>
class WWidget : public QWidget {
Q_OBJECT
public:
explicit WWidget(QWidget* parent = nullptr);
protected:
virtual void translate() = 0;
void changeEvent(QEvent*) override;
};
#endif // WWIDGET_H
//cpp:
#include "wwidget.h"
WWidget::WWidget(QWidget* parent) : QWidget(parent) { setAttribute(Qt::WA_StyledBackground); }
#include <QEvent>
#include <QPainter>
#include <QStyleOption>
void WWidget::changeEvent(QEvent* event)
{
//当产生语言切换事件时,会进行事件分分发处理
if (event->