2

のテーブルの下にステータス バーを追加する必要がありますQVBoxLayout。問題は、ステータス バーが表示されない理由がわからないことです。にQBoxLayouttableView を追加しました。テーブルの下にステータス バーが必要です。ここに私のコードの一部があります:

  self.setGeometry(200,200,600,600)
  if self._model.productName()!='':
    self.setWindowTitle('TITLE')
  QVBoxLayout(self).addWidget(self.tv)

  # add staus bar
  statusBar = QStatusBar()
  statusLabel = QLabel("Here comes the status bar message!!")
  statusBar.addWidget(statusLabel)
  QVBoxLayout(self).addWidget(statusBar)
4

3 に答える 3

3

ステータス バーを表示する理想的な方法は、最初にQtGui.QMainWindowクラスから継承し、次にstatusBarメソッドを使用してステータス バーを作成することです。

GUIを作成するメインクラス内で、これを行うことができます:

class Window(QtGui.QMainWindow):
    def __init__(self, parent):
       super(Window, self).__init__()
       self.statusbar = self.statusBar()

次に、次の方法でステータス バーにメッセージを表示できます。

self.statusbar.showMessage('This message will be shown in the status bar')

QLabelステータス バー メッセージを表示するために使用する必要はありません。

または、QtGui.QWidgetクラスから継承して次のようにすることもできます。

self.statusbar = QStatusBar()
self.statusbar.showMessage('Some status bar message')

また、他の回答の1つが指摘しているように、レイアウトの作成方法が間違っています。

self.layout = QVBoxLayout(self)
self.layout.addWidget(self.tv)

これは正しい方法です。

于 2014-02-10T10:06:43.730 に答える
2

QLabelinを追加する必要はありませんQStatusBar。次のようにするだけです。

self.statusBar = QStatusBar()
self.statusBar.showMessage("Some message")
...
于 2014-02-10T10:07:05.277 に答える