Перевести на PyQt
31.07.2019, 00:43. Показов 1312. Ответов 1
Здравствуйте, подскажите, как можно перевести на питон(PyQt) такие строки:
C++ (Qt) | 1
2
3
4
| *series0 << QPointF(1, 5) << QPointF(3, 7) << QPointF(7, 6) << QPointF(9, 7) << QPointF(12, 6)
<< QPointF(16, 7) << QPointF(18, 5);
*series1 << QPointF(1, 3) << QPointF(3, 4) << QPointF(7, 3) << QPointF(8, 2) << QPointF(12, 3)
<< QPointF(16, 4) << QPointF(18, 3); |
|
Взято от сюда: https://doc.qt.io/qt-5/qtchart... ample.html
Добавлено через 32 минуты
Пытаюсь перевести пример из доков, пока вот наваял(но чет сомневаюсь):
Python | 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
| import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtChart import QChartView, QLineSeries,QAreaSeries
import AreaChart # Форма с виджетом из дизайнера
from PyQt5 import QtCore
from PyQt5.QtGui import QPainter, QColor, QPen
from PyQt5.QtCore import Qt
class ExampleApp(QMainWindow,AreaChart.Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.series0 = QLineSeries() #Для создания диаграмм области нам понадобятся два экземпляра QLineSeries
self.series1 = QLineSeries() #Они собираются определить верхнюю и нижнюю границу области
self.series0.append(QtCore.QPointF(1, 5))
self.series0.append(QtCore.QPointF(2, 4))
self.series = QAreaSeries(self.series0, self.series1)
self.series.setName("Batman")
self.pen = QPen(Qt.black)
self.pen.setWidth(3)
self.series.setPen(self.pen)
def main():
app = QApplication(sys.argv)
window = ExampleApp()
window.show()
app.exec_()
if __name__ == '__main__':
main() |
|
Добавлено через 1 час 29 минут
Обновил код:
Python | 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
34
35
36
37
38
39
40
41
42
43
44
45
46
| import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtChart import QChartView, QLineSeries,QAreaSeries,QChart
import AreaChart # Форма с виджетом из дизайнера
from PyQt5 import QtCore
from PyQt5.QtGui import QPainter, QColor, QPen,QLinearGradient,QGradient
from PyQt5.QtCore import Qt
class ExampleApp(QMainWindow,AreaChart.Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.series0 = QLineSeries()
self.series1 = QLineSeries()
self.series0.append(QtCore.QPointF(1, 5))#Здесь судя по всему должен быть массив(не понимаю, урезал)
self.series0.append(QtCore.QPointF(2, 4))#Здесь судя по всему должен быть массив(не понимаю, урезал)
self.series = QAreaSeries(self.series0, self.series1)
self.series.setName("Batman")
self.pen = QPen(Qt.black)
self.pen.setWidth(3)
self.series.setPen(self.pen)
self.gradient=QLinearGradient(QtCore.QPointF(0, 0), QtCore.QPointF(0, 1))
self.gradient.setColorAt(0, QColor(28, 28, 28))
self.gradient.setColorAt(1, QColor(90, 60, 28))
self.gradient.setCoordinateMode(QGradient.ObjectBoundingMode)
self.series.setBrush(self.gradient)
self.chart = QChart()
self.chart.addSeries(self.series)
self.chart.setTitle("Simple areachart example")
self.chart.createDefaultAxes()
self.chart.axes(Qt.Horizontal)#Здесь так и не понял что происходит,неменого урезал
self.chart.axes(Qt.Vertical)#Здесь так и не понял что происходит,неменого урезал
self.chartView =QChartView(self.chart)
self.chartView.setRenderHint(QPainter.Antialiasing)
self.setCentralWidget(self.chartView)
self.resize(400, 300)
def main():
app = QApplication(sys.argv)
window = ExampleApp()
window.show()
app.exec_()
if __name__ == '__main__':
main() |
|
Не знаю как выделять "не по теме" Может вопрос нужно в ветку с питоном?
Добавлено через 1 минуту
На плюсах:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
| #include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QAreaSeries>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//![1]
QLineSeries *series0 = new QLineSeries();
QLineSeries *series1 = new QLineSeries();
//![1]
//![2]
*series0 << QPointF(1, 5) << QPointF(3, 7) << QPointF(7, 6) << QPointF(9, 7) << QPointF(12, 6)
<< QPointF(16, 7) << QPointF(18, 5);
*series1 << QPointF(1, 3) << QPointF(3, 4) << QPointF(7, 3) << QPointF(8, 2) << QPointF(12, 3)
<< QPointF(16, 4) << QPointF(18, 3);
//![2]
//![3]
QAreaSeries *series = new QAreaSeries(series0, series1);
series->setName("Batman");
QPen pen(0x059605);
pen.setWidth(3);
series->setPen(pen);
QLinearGradient gradient(QPointF(0, 0), QPointF(0, 1));
gradient.setColorAt(0.0, 0x3cc63c);
gradient.setColorAt(1.0, 0x26f626);
gradient.setCoordinateMode(QGradient::ObjectBoundingMode);
series->setBrush(gradient);
//![3]
//![4]
QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("Simple areachart example");
chart->createDefaultAxes();
chart->axes(Qt::Horizontal).first()->setRange(0, 20);
chart->axes(Qt::Vertical).first()->setRange(0, 10);
//![4]
//![5]
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
//![5]
//![6]
QMainWindow window;
window.setCentralWidget(chartView);
window.resize(400, 300);
window.show();
//![6]
return a.exec();
} |
|
0
|