1

setGeometry()用来设置的坐标widget。但是当我删除一些widget并将其从主布局中删除时,它无法正确设置几何。我正在使用KeyReleaseEvent()ie,当我按下键 D 时,应该删除某些小部件,并且它应该将几何图形设置为特定位置。当我第一次按下它时,看不到效果,但小部件被移除,当我第二次按下它时,它被正确设置。

void mywindow::popUpWindow()
{
    if(stack1->currentIndex()==0){
        stack3->hide();
        mainLayout->addWidget(stack2);
        stack2->show();
        stack2->setFixedSize(400,200);
        this->setGeometry(100,400,900,200);
    }

    if(stack1->currentIndex()==1){
        stack2->hide();
        mainLayout->addWidget(stack3);
        stack3->show();
        stack3->setFixedSize(400,200);
        this->setGeometry(100,400,900,200);
    }
}

void mywindow::deleteWindow()
{
    mainLayout->removeWidget(stack2);
    mainLayout->removeWidget(stack3);
    stack2->hide();
    stack3->hide();
    this->setGeometry(100,400,500,200);

}

popUpWindow()与一个键相连,KeyReleasedEvent()deleteWindow()与另一个键相连。

原始窗口

按下 I 键并调用 popWindow()

按下 D 键并调用 deleteWindow()第二次按下 D 键并第二次调用 deleteWindow 后

Fig 1: Original WIndow
Fig 2: After calling popUpWindow() by pressing key I
Fig 3: After calling deleteWindow() by pressing key D for the first time
Fug 4: After calling again deleteWindow() for 2nd time
4

1 回答 1

1

删除小部件后,如果您希望所有内容都能很好地调整大小,您应该调用adjustSize().

此外,堆叠小部件的小部件尺寸也会影响窗口最终的宽度和高度。

希望有帮助。

于 2014-02-17T06:54:43.083 回答