我有一个问题:
我有一个用户界面类 类 MoveSeries 。从MoveSeries我想要访问我的类userinterface的方法。在这个例子中,我希望能够访问userinterface的方法get_MoveCurve_Delta()。 如何从创建的类中访问创建类(userinterface)(MoveSeries?我尝试了Signal-Slot-Approach,但由于我必须多次使用多种用户界面方法,因此信号时隙...
这是我的代码:
Userinterface.h:
class UserInterface : public QMainWindow
{
Q_OBJECT
public:
UserInterface(QWidget *parent = 0, Qt::WFlags flags = 0);
~UserInterface();
...
private:
double MoveCurve_Delta;
MoveSeries *MOVE_SERIES ;
public:
void set_MoveCurve_Delta( double val) { MoveCurve_Delta = val;}
double get_MoveCurve_Delta() { return MoveCurve_Delta ;}
}
Userinterface.cpp:
UserInterface::UserInterface(QWidget *parent, Qt::WFlags flags) :
QMainWindow(parent, flags)
{
ui.setupUi(this);
...
MOVE_SERIES = new MoveSeries( this);
}
MoveSeries.h:
class MoveSeries : public QDialog
{
Q_OBJECT
public:
explicit MoveSeries(QWidget *parent = 0);
~MoveSeries();
...
MoveSeries.cpp:
MoveSeries::MoveSeries(QWidget *parent) :
QDialog(parent),ui(new Ui::MoveSeries)
{
ui->setupUi(this);
this->parent = parent;
parent->set-MoveSeries_Delta_Val();
}
答案 0 :(得分:2)
不要假设MoveSeries中的父QWidget是UserInterface,您也可以要求它。
MoveSeries.h:
#include "Userinterface.h" // include the header where it is required
MoveSeries::MoveSeries(UserInterface *parent) :
QDialog(parent), ui(new Ui::MoveSeries), uiparent(parent)
{
ui->setupUi(this);
uiparent->set-MoveSeries_Delta_Val();
}
MoveSeries.cpp:
jQuery.ajax({
type:"post",
dataType:"json",
async: false,
url: myAjax.ajaxurl,
data: {action: 'submit_data', info: info},
success: function(data) {
alert("Data was succesfully captured");
},
});
答案 1 :(得分:1)
看起来您想将父级转换为您想要的类:
static_cast<UserInterface *>(parent)->get_MoveCurve_Delta();
请记住,这可能是危险的,因为它会对父母的类型做出假设。
答案 2 :(得分:1)
如果您只想UserInterface
成为MoveSeries
的父母,请说明:
explicit MoveSeries(UserInterface *parent = 0);
如果您希望任何小部件能够充当父级,则无法访问UserInterface
方法,因为父级不一定拥有它们。