@Andreyyyyyyyyy

Почему не импортируются PyQt5 модули, такие как: QPainter, QColor, QFont из PyQt5.QtGui?

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QPainter, QColor, QFont
from PyQt5.QtCore import Qt
import sys

При импорте QPainter, QColor, QFont. Qt (2-3 строчка кода) получаю ошибку: No name "QPainter" in module "PyQt5.QtGui".
С остальными модулями аналогичная ошибка.
  • Вопрос задан
  • 1751 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Andy_U
Убедитесь, что у вас нет кириллицы в имени пользователя, компьютера, etc. Переустановите PyQt5. Я вот только что проверил:

1) Создал virtual environment (Python 3.8.1, 64-bit Windows)
2) Установил туда pip'ом PyQt5 (5.14.0)
3) Взял пример со странички zetcode.com/gui/pyqt5/painting пример
drawingtext.py ...

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
ZetCode PyQt5 tutorial

In this example, we draw text in Russian Cylliric.

Author: Jan Bodnar
Website: zetcode.com
Last edited: August 2017
"""

import sys
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QColor, QFont
from PyQt5.QtCore import Qt


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.text = "Лев Николаевич Толстой\nАнна Каренина"

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('Drawing text')
        self.show()

    def paintEvent(self, event):

        qp = QPainter()
        qp.begin(self)
        self.drawText(event, qp)
        qp.end()

    def drawText(self, event, qp):

        qp.setPen(QColor(168, 34, 3))
        qp.setFont(QFont('Decorative', 10))
        qp.drawText(event.rect(), Qt.AlignCenter, self.text)


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


4) Запустил (из Pycharm)

Все работает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы