我正在尝试将父项分配给变量(在子类的构造函数中),然后我想使它成为子类的成员变量。我怎么能在Qt中做到这一点?
代码:
PopupServer::PopupServer(QWidget *parent) {
//I need to store the parent in variable Win
//and make it member variable of PopupServer class
}
void PopupServer::showPopup(const QString &text,const int &tim ) {
QLabel qPopup= new QLabel; qPopup.setText(text);
qPopup.setFrameStyle(QLabel::Raised | QLabel::Panel);
qPopup.setAlignment(Qt::AlignCenter);
qPopup.setFixedSize(200,100);
int width;
int height;
width= win.width();
height= win.height();
qPopup.move(width-qPopup.width(),height-qPopup.height());
qPopup.show();
}
答案 0 :(得分:1)
从QObject继承的所有类都可以通过parent()
方法访问父类,在您的情况下,您的类继承自QWidget,而QWidget继承自QObject,因此您的类也具有该方法。所以你不需要创建属性。
QObject * QObject :: parent()const
返回指向父对象的指针。
在你的情况下:
void PopupServer::showPopup(const QString &text,const int &tim ) {
QLabel qPopup= new QLabel; qPopup.setText(text);
qPopup.setFrameStyle(QLabel::Raised | QLabel::Panel);
Popup.setAlignment(Qt::AlignCenter);
qPopup.setFixedSize(200,100);
int width; int height;
QWidget * win = qobject_cast<QWidget *>(parent());
if(win){
width= win->width();
height= win->height();
qPopup.move(width-qPopup.width(),height-qPopup.height());
}
qPopup.show();
}
答案 1 :(得分:0)
要创建子类(Popup Server)的父(主窗口)成员变量,请添加:
在popupserver.h中:
private:
QWidget *win;
在popupserver.cpp中,(构造函数):
PopupServer::PopupServer(QWidget *parent)
{
win=parent; }