0 / 0 / 0
Регистрация: 10.10.2021
Сообщений: 1
1
PyQt5

Линии получаются ужасно пиксельными

10.10.2021, 13:44. Показов 1164. Ответов 3

Author24 — интернет-сервис помощи студентам
Здравствуйте. Я не программист, в свободное время я люблю рисовать в html canvas, но хочу начать рисовать в QPixmap, PyQt5, но линии получаются ужасно пиксельными. Подскажите как это исправить если это возможно. Я хочу рисовать в окне а не в браузере, может быть нужно выбрать не PyQt5, а что-то другое.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2021, 13:44
Ответы с готовыми решениями:

Пользователь вводит с клавиатуры длину линии и символ для заполнения линии
Помогите пожалуйста с заданием, у меня выводится горизонтальная линия Пользователь вводит с...

Рисование линии мышью на BufferedImage и отрисовка нарисованной линии в JPanel
Здравствуйте. Вопрос: как рисовать линию мышью на BufferedImage (или Image), а потом всё...

Форма делится на сектора. Курсором мыши можно рисовать линии. Цвет линии зависит
Народ спасайте. Задача такова " Форма делится на сектора (их количество задает пользователь)....

Рисование дополнительной линии под углом к основной линии
Доброго времени суток, всем. Помогите решить вопрос. Есть макрос рисующий линию между двумя...

Рассчитать коэффициент отражения и изобразить распределение тока и напряжения в линии при разомкнутом конце линии
3)Рассчитать коэффициент отражения и изобразить распределение тока и напряжения в линии при...

3
923 / 686 / 268
Регистрация: 10.12.2016
Сообщений: 1,689
10.10.2021, 18:29 2
если через QPainter - попробуйте setRenderHint
https://doc.qt.io/qt-5/qpainte... rHint-enum
2
5158 / 2770 / 465
Регистрация: 05.10.2013
Сообщений: 7,321
Записей в блоге: 147
11.10.2021, 17:14 3
Первый скриншот без применения setRenderHint, второй скриншот с применением setRenderHint. Правда, пример я написал на Qt5 C++, но на PyQt5 будет тоже самое:

Название: 26e365c8-62ab-49c4-9468-bbaa254be8ef.png
Просмотров: 28

Размер: 367 байт Название: ef19500d-8aca-4c97-8940-88189eec1792.png
Просмотров: 28

Размер: 451 байт

Демка для Windows собранная в Release: setRenderHint.rar (6.92 Мб)

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <QtGui/QPainter>
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
 
 
class Widget : public QWidget
{
public:
    Widget()
    {
        setWindowTitle("Line");
        resize(400, 400);
    }
 
private:
    void paintEvent(QPaintEvent *event)
    {
        QPainter painter(this);
        painter.setRenderHint(QPainter::Antialiasing);
        painter.setRenderHint(QPainter::HighQualityAntialiasing);
 
        painter.setPen(QPen(Qt::black, 5));
        painter.drawLine(0, 0, 100, 50);
    }
};
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}
Вложения
Тип файла: rar setRenderHint.rar (6.92 Мб, 0 просмотров)
2
1538 / 719 / 313
Регистрация: 02.05.2020
Сообщений: 1,604
12.10.2021, 09:13 4
Лучший ответ Сообщение было отмечено 8Observer8 как решение

Решение

перевёл на python:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui     import QPainter, QPen
 
class Widget(QWidget):
  def __init__(self):
    super().__init__(None)
    self.setWindowTitle("Line")
    self.resize(400, 400)
  def paintEvent(self, event):
    painter = QPainter(self)
    painter.setRenderHint(QPainter.Antialiasing)
    painter.setRenderHint(QPainter.HighQualityAntialiasing)
    painter.setPen(QPen(Qt.black, 5))
    painter.drawLine(0, 0, 100, 50)
 
app = QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
2
12.10.2021, 09:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2021, 09:13
Помогаю со студенческими работами здесь

Рассчитать коэффициент отражения и изобразить распределение тока и напряжения в линии при короткозамкнутом конце линии
4)Рассчитать коэффициент отражения и изобразить распределение тока и напряжения в линии при...

Какая максимальная битовая скорость (в кбит/с) доступна в телефонной линии при полосе пропускания линии 3 кГц
1)Какая максимальная битовая скорость (в кбит/с) доступна в телефонной линии при полосе пропускания...

В элементе Image создать рисунок с помощью рисования произвольной линии. Цвет и толщина линии выбирается из меню.
В элементе Image создать рисунок с помощью рисования произвольной линии. Цвет и толщина линии...

Построить линии равного уровня (линии контура)
Ребята нужна строчная помощь нужно построить линии уровня функции Z=100*(x2-x1^3)^2+(1-x1)^2; в...

Найти точку на линии наиближайшую к другой линии
Здравствуйте, есть задача: Есть две линии и надо на первой линии найти ближайшую точку к второй...

Ужасно скрипит бп
купил новый бп,ужасно скрепит при этом появляются помехи на экране в такт звукам из бп.Подскажите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru