import time
import sys
from qwt.qt.QtGui import QApplication, QPen, QBrush, QFont, QFontDatabase
from qwt.qt.QtCore import QSize
from qwt.qt.QtCore import Qt
from qwt.tests import CurveBenchmark as cb
if cb.USE_PYQWT5:
from PyQt4.Qwt5 import QwtSymbol
else:
from qwt import QwtSymbol # analysis:ignore
class CSWidget(cb.BMWidget):
def params(self, *args, **kwargs):
symbols, = args
symb1 = QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.yellow),
QPen(Qt.blue), QSize(5, 5))
symb2 = QwtSymbol(QwtSymbol.XCross, QBrush(),
QPen(Qt.darkMagenta), QSize(5, 5))
if symbols:
if kwargs.get('only_lines', False):
return (('Lines', symb1), ('Lines', symb1), ('Lines', symb2),
('Lines', symb2),)
else:
return (('Sticks', symb1), ('Lines', symb1),
('Steps', symb2), ('Dots', symb2),)
else:
if kwargs.get('only_lines', False):
return (('Lines', None), ('Lines', None), ('Lines', None),
('Lines', None),)
else:
return (('Sticks', None), ('Lines', None), ('Steps', None),
('Dots', None),)
class BMDemo(cb.BMDemo):
TITLE = 'Curve styles'
SIZE = (1000, 800)
def run_benchmark(self, max_n, **kwargs):
for points, symbols in zip((max_n/10, max_n/10, max_n, max_n),
(True, False)*2):
t0 = time.time()
symtext = "with%s symbols" % ("" if symbols else "out")
title = '%d points, %s' % (points, symtext)
widget = CSWidget(points, symbols, **kwargs)
self.process_iteration(title, widget, t0)
if __name__ == '__main__':
app = QApplication([])
for name in ('Calibri', 'Verdana', 'Arial'):
if name in QFontDatabase().families():
app.setFont(QFont(name))
break
kwargs = {}
for arg in sys.argv[1:]:
kwargs[arg] = True
demo = BMDemo(1000, **kwargs)
app.exec_()