PyQt - 调整父组件大小以适应子组件
这是一个主要的控件,里面有一个标签页控件。
问题是,当我运行它的时候,只有部分标签页显示出来(如附图所示)。所以,你需要调整大小或者滚动标签页才能看到最后一个。
我该怎么设置才能让窗口一开始就显示所有标签页呢?
import sys
from PyQt4.QtGui import *
class MainWindow(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
# making tabs
tabs = QTabWidget()
tabs.addTab(QWidget(), '111111')
tabs.addTab(QWidget(), '222222')
tabs.addTab(QWidget(), '333333')
tabs.addTab(QWidget(), '444444')
# inserting in vbox
vbox = QVBoxLayout(self)
vbox.addWidget(tabs)
app = QApplication(sys.argv)
myapp = MainWindow()
myapp.show()
sys.exit(app.exec_())
我怎么才能让它调整大小以显示所有标签页呢?
问题出在哪里呢?是父控件、标签页,还是垂直盒子(vbox)?
1 个回答
3
你可以使用 QTabWidget.setUsesScrollButtons(bool)
这个方法来设置是否使用滚动按钮。
import sys
from PyQt4.QtGui import *
class MainWindow(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
# making tabs
tabs = QTabWidget()
tabs.setUsesScrollButtons(False) #here is
tabs.addTab(QWidget(), '111111')
tabs.addTab(QWidget(), '222222')
tabs.addTab(QWidget(), '333333')
tabs.addTab(QWidget(), '444444')
# inserting in vbox
vbox = QVBoxLayout(self)
vbox.addWidget(tabs)
app = QApplication(sys.argv)
myapp = MainWindow()
myapp.show()
sys.exit(app.exec_())
http://doc.qt.nokia.com/4.7/qtabwidget.html#usesScrollButtons-prop