PyQt - изменить размер родительского виджета до его дочернего - PullRequest
1 голос
/ 27 мая 2011

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

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

enter image description here

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

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 голосов
/ 27 мая 2011

Вы можете использовать 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...