PyQt - изменить размер родительского виджета до его дочернего

1

Просто главный виджет с виджетами вкладок.

Проблема заключается в том, что при ее запуске отображается только часть вкладок (как показано на прилагаемом рисунке). Таким образом, вам нужно изменить размер или прокрутить вкладки, чтобы получить последнее.

Изображение 174551

Как я могу установить его так, чтобы окно отображало все вкладки с самого начала?

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?

Теги:
pyqt

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню