PyQt изменяет размер QSplitter до большего, чем QScrollArea
Я хотел бы иметь возможность перетаскивать первый или второй разделители в приведенном ниже коде вправо, и чтобы виджет внутри области прокрутки выдвигался вправо при достижении предела ширины каждого виджета (например, когда окно уменьшается в размере и виджет внутри области прокрутки постепенно скрывается). В настоящее время, если я перетаскиваю разделитель вправо, прокрутка прекращается, когда достигается предел ширины виджетов. Есть идеи как это сделать.
import sys
from PyQt4 import QtGui, QtCore
from PyQt4.QtGui import QScrollArea
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
hbox = QtGui.QHBoxLayout(self)
first = QtGui.QFrame(self)
first.setFrameShape(QtGui.QFrame.StyledPanel)
first.setMinimumWidth(50)
second = QtGui.QFrame(self)
second.setFrameShape(QtGui.QFrame.StyledPanel)
second.setMinimumWidth(50)
third = QtGui.QFrame(self)
third.setFrameShape(QtGui.QFrame.StyledPanel)
third.setMinimumWidth(50)
splitter = QtGui.QSplitter(QtCore.Qt.Horizontal)
splitter.addWidget(first)
splitter.addWidget(second)
splitter.addWidget(third)
scrollArea = QScrollArea()
scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
scrollArea.setWidgetResizable(True)
scrollArea.setWidget(splitter)
hbox.addWidget(scrollArea)
self.setLayout(hbox)
QtGui.QApplication.setStyle(QtGui.QStyleFactory.create('Cleanlooks'))
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('QtGui.QSplitter')
self.show()
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()