Classes
, Class A
및 Class B
두 개가 서로 액세스 할 수 있습니다. Class A
에는 이라는 QVBoxLayout
이 있고 다른 모든 레이아웃은 mVLayout
에 추가됩니다. a.cpp
에서 :한 클래스에서 다른 클래스로 레이아웃 추가 Qt에서 작동하지 않는 클래스
A::A(QWidget *parent)
: QMainWindow(parent)
{
B testingB; //Class B object
mWidget = new QWidget(this);
setCentralWidget(mWidget);
mVLayout = new QVBoxLayout(mWidget);
mVLayout->addLayout(testingB.mHLayout); //adding Class B mHLayout to Class A mVLayout;
mWidget->setLayout(mVLayout);
}
및 b.h
의 :
class A;
class B
{
public:
B();
QHBoxLayout *mHLayout;
A *testingA; //Class A object
};
b.cpp
:
B::B()
{
QPushButton *btn1 = new QPushButton("Btn1");
QPushButton *btn2 = new QPushButton("Btn2");
mHLayout = new QHBoxLayout;
mHLayout->addWidget(btn1);
mHLayout->addWidget(btn2);
}
이 지금까지 잘 작동합니다. 하지만 그 두 가지를 만든 이유는 Classes
이 mHLayout
을 mVLayout
에 Class B
에 추가하려는 것입니다. 레이아웃을 추가하는 적절한 방법은 위에서 언급 한 방법 일 수 있습니다. 하지만 Class A mVLayout
에 Class B
에 레이아웃을 추가하려면 어떻게해야합니까?
나는이 시도 : 새 줄을 추가하여, Class B
생성자 (나는 또한 Class A
생성자에서 addlayout 라인 제거) : testingA->mVLayout->addLayout(mHLayout);
을 나는이 시도 :
testingA = new A;
testingA->mVLayout->addLayout(mHLayout);
을하지만 밝혀졌다
The program has unexpectedly finished. The process was ended forcefully.
왜 이런 일이 것 :이 오류가있어? 그리고 누군가 Class A
에 레이아웃을 추가하는 방법을 Class B
에 제공 할 수 있습니까?
감사합니다. 그냥 예를 들어 (이 같은 B의 생성자를 한 경우