我有一个QWidget
,有时可以隐藏。此QWidget
处理外部事件,导致此窗口小部件滚动。问题是:隐藏此窗口小部件时,不会执行滚动操作。简化示例:
QWidget* scrollPanel = new QWidget(parent);
scrollPanel->setGeometry(0, 0, 100, 100);
scrollPanel->setStyleSheet("background: blue");
QWidget* item = new QWidget(scrollPanel);
item->setGeometry(20, 20, 20, 20);
item->setStyleSheet("background: white");
// ... hide or show scrollPanel
scrollPanel->scroll(0, -20);
如果隐藏parent
或隐藏scrollPanel
,则scrollPanel->scroll(0, -20);
不执行任何操作。如果一切都可见,则scrollPanel->scroll(0, -20);
按预期工作:
scrollPanel->show();
scrollPanel->scroll(0, -20); //works
和
scrollPanel->hide();
scrollPanel->scroll(0, -20); //does not work
那么,如果它被隐藏了,有没有办法滚动QWidget
?