首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整QVBoxLayout的大小

调整QVBoxLayout的大小
EN

Stack Overflow用户
提问于 2013-01-27 00:31:58
回答 1查看 2.7K关注 0票数 1

我有一个QVBoxLayout,我把一些按钮放在那里。我写了一个删除按钮的函数,但是当我这样做的时候,框的大小并不适合内容。下面是删除函数的一部分:

代码语言:javascript
复制
for each_difference in differences_remove:

    old_index = self.all_tags.index(each_difference) 
    print("old" + str(old_index))
    self.vbox_all_tags.removeWidget(self.liste_pressoirs[old_index])
    del self.liste_pressoirs[old_index]

我想让self.vbox_all_tags在我移除按钮后根据新的内容调整它的大小。你会怎么做呢?

太好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-27 01:31:51

移除按钮后,只需在小部件上调用adjustSize,下面是一个演示:

代码语言:javascript
复制
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from PyQt4 import QtCore, QtGui

class MyWindow(QtGui.QWidget):
    _buttons = []

    def __init__(self, parent=None):
        super(MyWindow, self).__init__(parent)

        self.pushButtonRemove = QtGui.QPushButton(self)
        self.pushButtonRemove.setText("Remove A Button!")
        self.pushButtonRemove.clicked.connect(self.on_pushButtonRemove_clicked)

        self.widgetButtons = QtGui.QWidget(self)

        self.layoutButtons = QtGui.QHBoxLayout(self.widgetButtons)

        self.layout = QtGui.QVBoxLayout(self)
        self.layout.addWidget(self.pushButtonRemove)
        self.layout.addWidget(self.widgetButtons)

        for buttonNumber in range(3):
            pushButton = QtGui.QPushButton()
            pushButton.setText("Button {0}".format(buttonNumber))

            self._buttons.append(pushButton)
            self.layoutButtons.addWidget(pushButton)

    @QtCore.pyqtSlot()
    def on_pushButtonRemove_clicked(self):
        if self._buttons:
            pushButton = self._buttons[-1]

            self._buttons.pop()
            self.layoutButtons.removeWidget(pushButton)

            pushButton.deleteLater()

            self.widgetButtons.adjustSize()
            self.adjustSize()

if __name__ == "__main__":
    import sys

    app = QtGui.QApplication(sys.argv)
    app.setApplicationName('MyWindow')

    main = MyWindow()
    main.show()

    sys.exit(app.exec_())
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14538985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档