0

私は2年前に尋ねられたこの質問を見ていました:すべてのタブを同じ幅にして拡張可能にする

解決策は、私にとってはうまくいかないことを除いて、まさに私が探しているものです。私のコードにはいくつかの要素が欠けていると思います。

ウィンドウのデザインには QtDesigner を使用しました。作成した をインポートし.pyます。このファイルには、QTabWidgetサイズを変更して利用可能なすべての幅を使用したい が含まれています。横に Frame がある HBoxLayout に挿入されます。

次に、次のように進めますcontroller_file.py

クラスを上書きしますTabBar

class tabBar(QTabBar):

       def __init__(self, parent=None):
           QTabBar.__init__(self, parent)

       def tabSizeHint(self, index):
           size = QTabBar.tabSizeHint(self, index)
           w = int(self.width()/self.count())
           return QSize(w, size.height())

次に、.setTabBar(tabBar())QTabWidget__ init__ に移動しcontroller_file.pyます。

class flex_ctrl(QObject):

    def __init__(self, model, view, parent=None):
        super().__init__(parent)
        self._model = model
        self._view = view
        self.is_save = True
        self.file_name = ''

        self._view.graph_tot_tab.setTabBar(tabBar())

        self._get_file_menu()
        self._connect_signals()
        self.view.installEventFilter(self)

問題は、これを行うとバーが消えることです。タブを切り替えることができません:

元のタブ

これになります:

変更されたタブ

私たちを手伝ってくれますか?

PS: 申し訳ありませんが、コード全体を提供しないと、問題の完全に再現可能な例を示すことができませんでした。この「エラー」を再現する方法が見つかりませんでした

4

1 に答える 1