在Qt C++中,是否可以创建一个自定义QWidget,然后为项目的所有QWidget (从自定义QWidget继承全部)重用这个自定义QWidget?
发布于 2014-07-24 07:38:48
也许我误解了这个问题,但是您可以创建自定义的QWidget,然后在任何地方使用它。
class derivedQWidget : public QWidget
{
Q_OBJECT
derivedQWidget();
virtual ~derivedQWidget();
}
class myWidget : public derivedQWidget
{
...
}
class myWidget2 : public derivedQWidget
{
...
}如果问题是:我们能重新实现QWidget吗?不,你不能。
发布于 2014-07-24 08:46:49
我已经在这个模式下解决了:
第一类是Widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QPushButton>
#include <QMouseEvent>
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
virtual ~Widget();
QPushButton *getBtn() const;
void setBtn(QPushButton *value);
protected:
void mousePressEvent(QMouseEvent *evt);
void mouseMoveEvent(QMouseEvent *evt);
private:
Ui::Widget *ui;
QPushButton *btn;
QPoint oldPos;
};以及继承自Widget的第二类widExt.h:
#ifndef WIDEXT_H
#define WIDEXT_H
#include "widget.h"
namespace Ui {
class widExt;
}
class widExt : public Widget
{
public:
widExt();
private slots:
void on_dial_2_actionTriggered(int action);
private:
Ui::widExt *ui;
};
#endif // WIDEXT_H与相对widExt.cpp
#include "widext.h"
#include "ui_widext.h"
widExt::widExt() : ui(new Ui::widExt)
{
ui->setupUi(this);
}
void widExt::on_dial_2_actionTriggered(int action)
{
}在这种模式下,我继承了第一个类中的所有类,并且可以独立地自定义其他类。
https://stackoverflow.com/questions/24927423
复制相似问题