Как подключить QT StatusBar в Python?

Что вызывает тип ошибки 'TypeError: 'QStatusBar' object is not callable'? Вот мой код:

from PyQt5 import QtWidgets
from PyQt5.QtGui import QPixmap
import design  # Это наш конвертированный файл дизайна

class ExampleApp(QtWidgets.QMainWindow, design.Ui_MainWindow):
    def __init__(self):
        # Это здесь нужно для доступа к переменным, методам
        # и т.д. в файле design.py
        super().__init__()
        self.setupUi(self)  # Это нужно для инициализации нашего дизайна
        self.statusBar().showMessage("Привет")

Текст и код в порядке, но что вызывает ошибку 'TypeError: 'QStatusBar' object is not callable'?
  • 3 февраля 2024 г. 15:29
Ответы на вопрос 2
Ошибка `TypeError: 'QStatusBar' object is not callable` возникает, когда вы пытаетесь вызвать объект, который не является функцией. Скорее всего, ошибка происходит из-за того, что где-то в другой части вашего кода вы пытаетесь вызвать экземпляр `QStatusBar`, как будто это функция.

Судя по приведенному вами фрагменту кода, ошибка не в этом куске. Подключение и использование `QStatusBar` для вывода сообщения выглядят корректными. Но чтобы точно определить источник ошибки, мне было бы необходимо увидеть больше кода, особенно ту часть, где вы получаете или вызываете `self.statusBar()` или любой другой код, связанный со `statusBar`.

Поищите в вашем коде места, где вы что-то делаете вроде `statusBar()`, как будто это функция. Проверьте, не переопределяете ли вы `statusBar` как переменную где-то в вашем коде. Например, такая ситуация может возникнуть, если вы делаете что-то вроде:

```python
statusBar = self.statusBar().showMessage("Сообщение")
```

после чего пытаетесь обратиться к `statusBar` как к функции. Убедитесь, что вы не затираете имя `statusBar` в вашем классе.

Если этот анализ не помогает найти проблему, пожалуйста, предоставьте больше кода, особенно ту часть, где происходит вызов, который приводит к ошибке.
я не эксперт в qt, но мне кажется, что твой statusBar нужно сначала создать, и только потом вызывать showMessage 
может быть он у тебя в design, попробуй импортировать созданный QStatusBar из design, и потом уже вызвать его вместе с .statusBar().showMessage("Привет")
Похожие вопросы