遇一次弹窗显示控件后隐藏控件,窗口大小被显示控件占用无法恢复到未显示控件之前的窗口大小。
# 创建一个Icon的窗口,继承来自QWidget类
class WinMain(QWidget):
def __init__(self, parent = None):
super(WinMain ,self).__init__(parent)
self.initUI()
# 初始化窗口
def initUI(self):
layout = QVBoxLayout()
layout.setSpacing(20)
layout.setSizeConstraint(QLayout.SetFixedSize) #关键点
date_qc = MyQCalendarWidget(self)
date_qc.setFixedHeight(200)
button = QPushButton('隐藏按钮')
button.setMaximumSize(60, 30)
button.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
def btnEventQc():
if date_qc.isVisible():
date_qc.setVisible(False)
else:
date_qc.setVisible(True)
button.clicked.connect(btnEventQc)
self.resize(100, 100)
self.setFixedHeight(200)
layout.addWidget(button)
layout.addWidget(date_qc)
self.setLayout(layout)
self.setWindowTitle("窗口自适应")
if __name__ == '__main__':
app = QApplication(sys.argv)
winMain = WinMain()
winMain.show()
sys.exit(app.exec_())