があり、QScrollArea
それに他のウィジェットを追加します。私が欲しいのは、そのQScrollArea
中のウィジェットがそのサイズを拡張したときにスクロールを開始することです。
しかし、代わりにスクロール領域が拡大し始めます。
使用したコードは次のとおりです。
import sys
from PyQt4 import QtGui, QtCore
class Widget(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.vbox = QtGui.QVBoxLayout()
self.setLayout(self.vbox)
def add_button(self):
tmp = QtGui.QPushButton("...", self)
self.vbox.addWidget(tmp)
class ScrollArea(QtGui.QScrollArea):
def __init__(self, parent=None):
QtGui.QScrollArea.__init__(self, parent)
self.vbox = QtGui.QVBoxLayout()
self.w = Widget(self)
self.setWidget(self.w) #set the widget to provide scrolling for here
self.vbox.addWidget(self.w)
self.plus = QtGui.QPushButton("button", self)
self.connect(self.plus, QtCore.SIGNAL("clicked()"), self.add_button)
self.vbox.addWidget(self.plus)
self.setLayout(self.vbox)
def add_button(self):
self.w.add_button()
app = QtGui.QApplication(sys.argv)
main = ScrollArea()
main.show()
sys.exit(app.exec_())
また、独自のクラスではなくself.w
クラスで子ウィジェットのレイアウトを設定しようとしましたが、同じ効果がありました。ScrollArea