Diff of the two buildlogs: -- --- b1/build.log 2025-01-20 05:46:43.777763829 +0000 +++ b2/build.log 2025-01-20 05:53:54.610341364 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Jan 19 17:10:57 -12 2025 -I: pbuilder-time-stamp: 1737349857 +I: Current time: Mon Feb 23 02:09:44 +14 2026 +I: pbuilder-time-stamp: 1771762184 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -22,52 +22,84 @@ dpkg-source: info: unpacking python-qwt_0.12.7-3.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/882674/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2843525/tmp/hooks/D01_modify_environment starting +debug: Running on ionos15-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Feb 22 12:09 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/2843525/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2843525/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=20 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='ee4d6aaf2a944c0e8a6e7cc21fe353c0' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='882674' - PS1='# ' - PS2='> ' + INVOCATION_ID=d273511b971043cc8182ff59d8674789 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=2843525 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.sZBRZw8u/pbuilderrc_yaXH --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.sZBRZw8u/b1 --logfile b1/build.log python-qwt_0.12.7-3.dsc' - SUDO_GID='111' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.sZBRZw8u/pbuilderrc_XRrc --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.sZBRZw8u/b2 --logfile b2/build.log python-qwt_0.12.7-3.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos11-amd64 6.1.0-30-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.124-1 (2025-01-12) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.11.10+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.11.10-1~bpo12+1 (2024-12-19) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/882674/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2843525/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -436,7 +468,7 @@ Get: 283 http://deb.debian.org/debian unstable/main amd64 xauth amd64 1:1.1.2-1.1 [35.9 kB] Get: 284 http://deb.debian.org/debian unstable/main amd64 xserver-common all 2:21.1.15-2 [2399 kB] Get: 285 http://deb.debian.org/debian unstable/main amd64 xvfb amd64 2:21.1.15-2 [3179 kB] -Fetched 170 MB in 16s (10.8 MB/s) +Fetched 170 MB in 11s (15.9 MB/s) Preconfiguring packages ... Selecting previously unselected package libdbus-1-3:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19851 files and directories currently installed.) @@ -1364,8 +1396,8 @@ Setting up tzdata (2025a-1) ... Current default time zone: 'Etc/UTC' -Local time is now: Mon Jan 20 05:15:31 UTC 2025. -Universal Time is now: Mon Jan 20 05:15:31 UTC 2025. +Local time is now: Sun Feb 22 12:11:18 UTC 2026. +Universal Time is now: Sun Feb 22 12:11:18 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libxcb-present0:amd64 (1.17.0-2+b1) ... @@ -1629,7 +1661,11 @@ fakeroot is already the newest version (1.36.2-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/python-qwt-0.12.7/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../python-qwt_0.12.7-3_source.changes +I: user script /srv/workspace/pbuilder/2843525/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/2843525/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/python-qwt-0.12.7/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../python-qwt_0.12.7-3_source.changes dpkg-buildpackage: info: source package python-qwt dpkg-buildpackage: info: source version 0.12.7-3 dpkg-buildpackage: info: source distribution unstable @@ -1675,62 +1711,62 @@ running build running build_py creating build/lib/qwt -copying qwt/scale_map.py -> build/lib/qwt -copying qwt/interval.py -> build/lib/qwt -copying qwt/__init__.py -> build/lib/qwt -copying qwt/color_map.py -> build/lib/qwt -copying qwt/symbol.py -> build/lib/qwt +copying qwt/plot_marker.py -> build/lib/qwt copying qwt/plot_directpainter.py -> build/lib/qwt -copying qwt/scale_widget.py -> build/lib/qwt -copying qwt/plot_canvas.py -> build/lib/qwt -copying qwt/plot_renderer.py -> build/lib/qwt -copying qwt/dyngrid_layout.py -> build/lib/qwt +copying qwt/toqimage.py -> build/lib/qwt +copying qwt/symbol.py -> build/lib/qwt +copying qwt/plot_layout.py -> build/lib/qwt copying qwt/column_symbol.py -> build/lib/qwt +copying qwt/scale_div.py -> build/lib/qwt +copying qwt/dyngrid_layout.py -> build/lib/qwt copying qwt/graphic.py -> build/lib/qwt -copying qwt/scale_engine.py -> build/lib/qwt +copying qwt/color_map.py -> build/lib/qwt +copying qwt/text.py -> build/lib/qwt +copying qwt/null_paintdevice.py -> build/lib/qwt +copying qwt/plot_renderer.py -> build/lib/qwt +copying qwt/legend.py -> build/lib/qwt copying qwt/plot.py -> build/lib/qwt -copying qwt/scale_div.py -> build/lib/qwt -copying qwt/painter_command.py -> build/lib/qwt -copying qwt/plot_marker.py -> build/lib/qwt copying qwt/transform.py -> build/lib/qwt +copying qwt/plot_series.py -> build/lib/qwt copying qwt/scale_draw.py -> build/lib/qwt -copying qwt/qthelpers.py -> build/lib/qwt -copying qwt/legend.py -> build/lib/qwt -copying qwt/plot_grid.py -> build/lib/qwt -copying qwt/null_paintdevice.py -> build/lib/qwt copying qwt/_math.py -> build/lib/qwt -copying qwt/plot_layout.py -> build/lib/qwt -copying qwt/text.py -> build/lib/qwt -copying qwt/plot_series.py -> build/lib/qwt copying qwt/plot_curve.py -> build/lib/qwt -copying qwt/toqimage.py -> build/lib/qwt +copying qwt/scale_engine.py -> build/lib/qwt +copying qwt/__init__.py -> build/lib/qwt +copying qwt/scale_map.py -> build/lib/qwt +copying qwt/qthelpers.py -> build/lib/qwt copying qwt/painter.py -> build/lib/qwt +copying qwt/painter_command.py -> build/lib/qwt +copying qwt/scale_widget.py -> build/lib/qwt +copying qwt/plot_canvas.py -> build/lib/qwt +copying qwt/plot_grid.py -> build/lib/qwt +copying qwt/interval.py -> build/lib/qwt creating build/lib/qwt/tests -copying qwt/tests/__init__.py -> build/lib/qwt/tests -copying qwt/tests/test_vertical.py -> build/lib/qwt/tests -copying qwt/tests/test_backingstore.py -> build/lib/qwt/tests +copying qwt/tests/test_curvedemo1.py -> build/lib/qwt/tests copying qwt/tests/test_loadtest.py -> build/lib/qwt/tests -copying qwt/tests/conftest.py -> build/lib/qwt/tests -copying qwt/tests/test_mapdemo.py -> build/lib/qwt/tests -copying qwt/tests/test_data.py -> build/lib/qwt/tests -copying qwt/tests/test_multidemo.py -> build/lib/qwt/tests -copying qwt/tests/test_bodedemo.py -> build/lib/qwt/tests -copying qwt/tests/test_cartesian.py -> build/lib/qwt/tests -copying qwt/tests/test_eventfilter.py -> build/lib/qwt/tests -copying qwt/tests/test_symbols.py -> build/lib/qwt/tests +copying qwt/tests/test_highdpi.py -> build/lib/qwt/tests +copying qwt/tests/test_errorbar.py -> build/lib/qwt/tests copying qwt/tests/test_curvedemo2.py -> build/lib/qwt/tests -copying qwt/tests/test_curvebenchmark1.py -> build/lib/qwt/tests -copying qwt/tests/test_cpudemo.py -> build/lib/qwt/tests +copying qwt/tests/test_data.py -> build/lib/qwt/tests +copying qwt/tests/test_vertical.py -> build/lib/qwt/tests copying qwt/tests/test_curvebenchmark2.py -> build/lib/qwt/tests -copying qwt/tests/test_image.py -> build/lib/qwt/tests +copying qwt/tests/utils.py -> build/lib/qwt/tests +copying qwt/tests/test_curvebenchmark1.py -> build/lib/qwt/tests +copying qwt/tests/comparative_benchmarks.py -> build/lib/qwt/tests +copying qwt/tests/test_mapdemo.py -> build/lib/qwt/tests +copying qwt/tests/test_bodedemo.py -> build/lib/qwt/tests copying qwt/tests/test_logcurve.py -> build/lib/qwt/tests copying qwt/tests/test_stylesheet.py -> build/lib/qwt/tests -copying qwt/tests/test_errorbar.py -> build/lib/qwt/tests -copying qwt/tests/utils.py -> build/lib/qwt/tests -copying qwt/tests/test_highdpi.py -> build/lib/qwt/tests +copying qwt/tests/test_cpudemo.py -> build/lib/qwt/tests +copying qwt/tests/test_backingstore.py -> build/lib/qwt/tests +copying qwt/tests/__init__.py -> build/lib/qwt/tests +copying qwt/tests/test_multidemo.py -> build/lib/qwt/tests copying qwt/tests/test_simple.py -> build/lib/qwt/tests -copying qwt/tests/test_curvedemo1.py -> build/lib/qwt/tests -copying qwt/tests/comparative_benchmarks.py -> build/lib/qwt/tests +copying qwt/tests/test_image.py -> build/lib/qwt/tests +copying qwt/tests/test_eventfilter.py -> build/lib/qwt/tests +copying qwt/tests/test_cartesian.py -> build/lib/qwt/tests +copying qwt/tests/conftest.py -> build/lib/qwt/tests +copying qwt/tests/test_symbols.py -> build/lib/qwt/tests running egg_info creating PythonQwt.egg-info writing PythonQwt.egg-info/PKG-INFO @@ -1771,90 +1807,90 @@ running install_lib creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/qwt -copying build/lib/qwt/scale_map.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/interval.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/__init__.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/color_map.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/symbol.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/plot_marker.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/plot_directpainter.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/scale_widget.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/plot_canvas.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/plot_renderer.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/dyngrid_layout.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/toqimage.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/symbol.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/plot_layout.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/column_symbol.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/scale_div.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/dyngrid_layout.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/graphic.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/color_map.py -> build/bdist.linux-x86_64/wheel/./qwt creating build/bdist.linux-x86_64/wheel/qwt/tests -copying build/lib/qwt/tests/__init__.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_vertical.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_backingstore.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_curvedemo1.py -> build/bdist.linux-x86_64/wheel/./qwt/tests copying build/lib/qwt/tests/test_loadtest.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/conftest.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_mapdemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_data.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_multidemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_bodedemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_cartesian.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_eventfilter.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_symbols.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_highdpi.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_errorbar.py -> build/bdist.linux-x86_64/wheel/./qwt/tests copying build/lib/qwt/tests/test_curvedemo2.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_curvebenchmark1.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_cpudemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_curvebenchmark2.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_image.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_data.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_vertical.py -> build/bdist.linux-x86_64/wheel/./qwt/tests creating build/bdist.linux-x86_64/wheel/qwt/tests/data -copying build/lib/qwt/tests/data/mapdemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/multidemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/cartesian.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/bodedemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data copying build/lib/qwt/tests/data/eventfilter.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/curvebenchmark2.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/cpudemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/symbols.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data copying build/lib/qwt/tests/data/symbol.svg -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/stylesheet.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/curvebenchmark1.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/symbols.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/cartesian.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/data.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/cpudemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data copying build/lib/qwt/tests/data/image.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/curvedemo1.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/simple.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/PythonQwt.svg -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/logcurve.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/errorbar.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/stylesheet.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/curvedemo2.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data copying build/lib/qwt/tests/data/loadtest.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/data.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data copying build/lib/qwt/tests/data/testlauncher.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/mapdemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/PythonQwt.svg -> build/bdist.linux-x86_64/wheel/./qwt/tests/data copying build/lib/qwt/tests/data/vertical.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/curvedemo2.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/curvebenchmark1.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/bodedemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/multidemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/simple.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/curvedemo1.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/errorbar.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/logcurve.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/curvebenchmark2.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/test_curvebenchmark2.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/utils.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_curvebenchmark1.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/comparative_benchmarks.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_mapdemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_bodedemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests copying build/lib/qwt/tests/test_logcurve.py -> build/bdist.linux-x86_64/wheel/./qwt/tests copying build/lib/qwt/tests/test_stylesheet.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_errorbar.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/utils.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_highdpi.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_cpudemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_backingstore.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/__init__.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_multidemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests copying build/lib/qwt/tests/test_simple.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_curvedemo1.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/comparative_benchmarks.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/scale_engine.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/tests/test_image.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_eventfilter.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_cartesian.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/conftest.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_symbols.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/text.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/null_paintdevice.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/plot_renderer.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/legend.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/plot.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/scale_div.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/painter_command.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/plot_marker.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/transform.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/plot_series.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/scale_draw.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/qthelpers.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/legend.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/plot_grid.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/null_paintdevice.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/_math.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/plot_layout.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/text.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/plot_series.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/plot_curve.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/toqimage.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/scale_engine.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/__init__.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/scale_map.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/qthelpers.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/painter.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/painter_command.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/scale_widget.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/plot_canvas.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/plot_grid.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/interval.py -> build/bdist.linux-x86_64/wheel/./qwt running install_egg_info Copying PythonQwt.egg-info to build/bdist.linux-x86_64/wheel/./PythonQwt-0.12.7.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/PythonQwt-0.12.7.dist-info/WHEEL -creating '/build/reproducible-path/python-qwt-0.12.7/.pybuild/cpython3_3.12_qwt/.tmp-nlkfjuq6/PythonQwt-0.12.7-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it +creating '/build/reproducible-path/python-qwt-0.12.7/.pybuild/cpython3_3.12_qwt/.tmp-qu9z0ke4/PythonQwt-0.12.7-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'qwt/__init__.py' adding 'qwt/_math.py' adding 'qwt/color_map.py' @@ -1962,90 +1998,90 @@ running install_lib creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/qwt -copying build/lib/qwt/scale_map.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/interval.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/__init__.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/color_map.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/symbol.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/plot_marker.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/plot_directpainter.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/scale_widget.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/plot_canvas.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/plot_renderer.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/dyngrid_layout.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/toqimage.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/symbol.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/plot_layout.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/column_symbol.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/scale_div.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/dyngrid_layout.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/graphic.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/color_map.py -> build/bdist.linux-x86_64/wheel/./qwt creating build/bdist.linux-x86_64/wheel/qwt/tests -copying build/lib/qwt/tests/__init__.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_vertical.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_backingstore.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_curvedemo1.py -> build/bdist.linux-x86_64/wheel/./qwt/tests copying build/lib/qwt/tests/test_loadtest.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/conftest.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_mapdemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_data.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_multidemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_bodedemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_cartesian.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_eventfilter.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_symbols.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_highdpi.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_errorbar.py -> build/bdist.linux-x86_64/wheel/./qwt/tests copying build/lib/qwt/tests/test_curvedemo2.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_curvebenchmark1.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_cpudemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_curvebenchmark2.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_image.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_data.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_vertical.py -> build/bdist.linux-x86_64/wheel/./qwt/tests creating build/bdist.linux-x86_64/wheel/qwt/tests/data -copying build/lib/qwt/tests/data/mapdemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/multidemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/cartesian.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/bodedemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data copying build/lib/qwt/tests/data/eventfilter.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/curvebenchmark2.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/cpudemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/symbols.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data copying build/lib/qwt/tests/data/symbol.svg -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/stylesheet.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/curvebenchmark1.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/symbols.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/cartesian.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/data.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/cpudemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data copying build/lib/qwt/tests/data/image.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/curvedemo1.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/simple.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/PythonQwt.svg -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/logcurve.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/errorbar.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/stylesheet.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/curvedemo2.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data copying build/lib/qwt/tests/data/loadtest.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/data.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data copying build/lib/qwt/tests/data/testlauncher.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/mapdemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/PythonQwt.svg -> build/bdist.linux-x86_64/wheel/./qwt/tests/data copying build/lib/qwt/tests/data/vertical.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/curvedemo2.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data -copying build/lib/qwt/tests/data/curvebenchmark1.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/bodedemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/multidemo.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/simple.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/curvedemo1.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/errorbar.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/logcurve.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/data/curvebenchmark2.png -> build/bdist.linux-x86_64/wheel/./qwt/tests/data +copying build/lib/qwt/tests/test_curvebenchmark2.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/utils.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_curvebenchmark1.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/comparative_benchmarks.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_mapdemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_bodedemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests copying build/lib/qwt/tests/test_logcurve.py -> build/bdist.linux-x86_64/wheel/./qwt/tests copying build/lib/qwt/tests/test_stylesheet.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_errorbar.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/utils.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_highdpi.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_cpudemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_backingstore.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/__init__.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_multidemo.py -> build/bdist.linux-x86_64/wheel/./qwt/tests copying build/lib/qwt/tests/test_simple.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/test_curvedemo1.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/tests/comparative_benchmarks.py -> build/bdist.linux-x86_64/wheel/./qwt/tests -copying build/lib/qwt/scale_engine.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/tests/test_image.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_eventfilter.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_cartesian.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/conftest.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/tests/test_symbols.py -> build/bdist.linux-x86_64/wheel/./qwt/tests +copying build/lib/qwt/text.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/null_paintdevice.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/plot_renderer.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/legend.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/plot.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/scale_div.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/painter_command.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/plot_marker.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/transform.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/plot_series.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/scale_draw.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/qthelpers.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/legend.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/plot_grid.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/null_paintdevice.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/_math.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/plot_layout.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/text.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/plot_series.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/plot_curve.py -> build/bdist.linux-x86_64/wheel/./qwt -copying build/lib/qwt/toqimage.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/scale_engine.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/__init__.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/scale_map.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/qthelpers.py -> build/bdist.linux-x86_64/wheel/./qwt copying build/lib/qwt/painter.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/painter_command.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/scale_widget.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/plot_canvas.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/plot_grid.py -> build/bdist.linux-x86_64/wheel/./qwt +copying build/lib/qwt/interval.py -> build/bdist.linux-x86_64/wheel/./qwt running install_egg_info Copying PythonQwt.egg-info to build/bdist.linux-x86_64/wheel/./PythonQwt-0.12.7.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/PythonQwt-0.12.7.dist-info/WHEEL -creating '/build/reproducible-path/python-qwt-0.12.7/.pybuild/cpython3_3.13_qwt/.tmp-5ouwfs5_/PythonQwt-0.12.7-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it +creating '/build/reproducible-path/python-qwt-0.12.7/.pybuild/cpython3_3.13_qwt/.tmp-ki0n_uxt/PythonQwt-0.12.7-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'qwt/__init__.py' adding 'qwt/_math.py' adding 'qwt/color_map.py' @@ -2172,8 +2208,6 @@ [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} -[app] adding node: (, {}) -[app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) @@ -2190,6 +2224,8 @@ [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} +[app] adding node: (, {}) +[app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) @@ -2236,15 +2272,15 @@ [app] adding builder: [app] setting up extension: 'sphinx.builders.epub3' [app] adding builder: -[app] adding config value: ('epub_basename', . at 0x7fc7e02582c0>, '', ()) +[app] adding config value: ('epub_basename', . at 0x7f3d435d02c0>, '', ()) [app] adding config value: ('epub_version', 3.0, 'epub', ()) [app] adding config value: ('epub_theme', 'epub', 'epub', ()) [app] adding config value: ('epub_theme_options', {}, 'epub', ()) -[app] adding config value: ('epub_title', . at 0x7fc7d97def20>, 'epub', ()) -[app] adding config value: ('epub_author', . at 0x7fc7d97df060>, 'epub', ()) -[app] adding config value: ('epub_language', . at 0x7fc7d97df1a0>, 'epub', ()) -[app] adding config value: ('epub_publisher', . at 0x7fc7d97df2e0>, 'epub', ()) -[app] adding config value: ('epub_copyright', . at 0x7fc7d97df380>, 'epub', ()) +[app] adding config value: ('epub_title', . at 0x7f3d3cadef20>, 'epub', ()) +[app] adding config value: ('epub_author', . at 0x7f3d3cadf060>, 'epub', ()) +[app] adding config value: ('epub_language', . at 0x7f3d3cadf1a0>, 'epub', ()) +[app] adding config value: ('epub_publisher', . at 0x7f3d3cadf2e0>, 'epub', ()) +[app] adding config value: ('epub_copyright', . at 0x7f3d3cadf380>, 'epub', ()) [app] adding config value: ('epub_identifier', 'unknown', 'epub', ()) [app] adding config value: ('epub_scheme', 'unknown', 'epub', ()) [app] adding config value: ('epub_uid', 'unknown', 'env', ()) @@ -2252,7 +2288,7 @@ [app] adding config value: ('epub_guide', (), 'env', ()) [app] adding config value: ('epub_pre_files', [], 'env', ()) [app] adding config value: ('epub_post_files', [], 'env', ()) -[app] adding config value: ('epub_css_files', . at 0x7fc7d9757ec0>, 'epub', ()) +[app] adding config value: ('epub_css_files', . at 0x7f3d3ca1bec0>, 'epub', ()) [app] adding config value: ('epub_exclude_files', [], 'env', ()) [app] adding config value: ('epub_tocdepth', 3, 'env', ()) [app] adding config value: ('epub_tocdup', True, 'env', ()) @@ -2260,20 +2296,20 @@ [app] adding config value: ('epub_fix_images', False, 'env', ()) [app] adding config value: ('epub_max_image_width', 0, 'env', ()) [app] adding config value: ('epub_show_urls', 'inline', 'epub', ()) -[app] adding config value: ('epub_use_index', . at 0x7fc7d97df560>, 'epub', ()) +[app] adding config value: ('epub_use_index', . at 0x7f3d3cadf560>, 'epub', ()) [app] adding config value: ('epub_description', 'unknown', 'epub', ()) [app] adding config value: ('epub_contributor', 'unknown', 'epub', ()) -[app] adding config value: ('epub_writing_mode', 'horizontal', 'epub', ) -[app] connecting event 'config-inited' (800): [id=0] -[app] connecting event 'builder-inited' (500): [id=1] +[app] adding config value: ('epub_writing_mode', 'horizontal', 'epub', ) +[app] connecting event 'config-inited' (800): [id=0] +[app] connecting event 'builder-inited' (500): [id=1] [app] setting up extension: 'sphinx.builders.dirhtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: [app] adding config value: ('html_theme', 'alabaster', 'html', ()) [app] adding config value: ('html_theme_path', [], 'html', ()) [app] adding config value: ('html_theme_options', {}, 'html', ()) -[app] adding config value: ('html_title', . at 0x7fc7d97df240>, 'html', ) -[app] adding config value: ('html_short_title', . at 0x7fc7d97df4c0>, 'html', ()) +[app] adding config value: ('html_title', . at 0x7f3d3cadf240>, 'html', ) +[app] adding config value: ('html_short_title', . at 0x7f3d3cadf4c0>, 'html', ()) [app] adding config value: ('html_style', None, 'html', {, }) [app] adding config value: ('html_logo', None, 'html', ) [app] adding config value: ('html_favicon', None, 'html', ) @@ -2308,31 +2344,31 @@ [app] adding config value: ('html_search_scorer', '', '', ()) [app] adding config value: ('html_scaled_image_link', True, 'html', ()) [app] adding config value: ('html_baseurl', '', 'html', ()) -[app] adding config value: ('html_codeblock_linenos_style', 'inline', 'html', ) +[app] adding config value: ('html_codeblock_linenos_style', 'inline', 'html', ) [app] adding config value: ('html_math_renderer', None, 'env', ()) [app] adding config value: ('html4_writer', False, 'html', ()) [app] adding event: 'html-collect-pages' [app] adding event: 'html-page-context' -[app] connecting event 'config-inited' (800): [id=2] -[app] connecting event 'config-inited' (800): [id=3] -[app] connecting event 'config-inited' (800): [id=4] -[app] connecting event 'config-inited' (800): [id=5] -[app] connecting event 'config-inited' (800): [id=6] -[app] connecting event 'config-inited' (800): [id=7] -[app] connecting event 'config-inited' (800): [id=8] -[app] connecting event 'config-inited' (800): [id=9] -[app] connecting event 'builder-inited' (500): [id=10] -[app] connecting event 'html-page-context' (500): [id=11] +[app] connecting event 'config-inited' (800): [id=2] +[app] connecting event 'config-inited' (800): [id=3] +[app] connecting event 'config-inited' (800): [id=4] +[app] connecting event 'config-inited' (800): [id=5] +[app] connecting event 'config-inited' (800): [id=6] +[app] connecting event 'config-inited' (800): [id=7] +[app] connecting event 'config-inited' (800): [id=8] +[app] connecting event 'config-inited' (800): [id=9] +[app] connecting event 'builder-inited' (500): [id=10] +[app] connecting event 'html-page-context' (500): [id=11] [app] setting up extension: 'sphinx.ext.mathjax' -[app] adding html_math_renderer: mathjax, (, None), (, None) +[app] adding html_math_renderer: mathjax, (, None), (, None) [app] adding config value: ('mathjax_path', 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js', 'html', ()) [app] adding config value: ('mathjax_options', {}, 'html', ()) [app] adding config value: ('mathjax_inline', ['\\(', '\\)'], 'html', ()) [app] adding config value: ('mathjax_display', ['\\[', '\\]'], 'html', ()) [app] adding config value: ('mathjax_config', None, 'html', ()) -[app] adding config value: ('mathjax2_config', . at 0x7fc7d97dfba0>, 'html', ()) +[app] adding config value: ('mathjax2_config', . at 0x7f3d3cadfba0>, 'html', ()) [app] adding config value: ('mathjax3_config', None, 'html', ()) -[app] connecting event 'html-page-context' (500): [id=12] +[app] connecting event 'html-page-context' (500): [id=12] [app] setting up extension: 'sphinx.builders.html.transforms' [app] adding post transform: [app] adding builder: @@ -2347,7 +2383,7 @@ [app] adding config value: ('gettext_additional_targets', [], 'env', {, }) [app] adding config value: ('gettext_last_translator', 'FULL NAME ', 'gettext', ()) [app] adding config value: ('gettext_language_team', 'LANGUAGE ', 'gettext', ()) -[app] connecting event 'config-inited' (800): [id=13] +[app] connecting event 'config-inited' (800): [id=13] [app] setting up extension: 'sphinx.builders.html' [app] setting up extension: 'sphinx.builders.latex' [app] setting up extension: 'sphinx.builders.latex.transforms' @@ -2362,16 +2398,16 @@ [app] adding post transform: [app] adding post transform: [app] adding builder: -[app] connecting event 'config-inited' (800): [id=14] -[app] connecting event 'config-inited' (800): [id=15] -[app] connecting event 'builder-inited' (500): [id=16] -[app] adding config value: ('latex_engine', , '', ) -[app] adding config value: ('latex_documents', , '', ()) +[app] connecting event 'config-inited' (800): [id=14] +[app] connecting event 'config-inited' (800): [id=15] +[app] connecting event 'builder-inited' (500): [id=16] +[app] adding config value: ('latex_engine', , '', ) +[app] adding config value: ('latex_documents', , '', ()) [app] adding config value: ('latex_logo', None, '', ) [app] adding config value: ('latex_appendices', [], '', ()) [app] adding config value: ('latex_use_latex_multicolumn', False, '', ()) -[app] adding config value: ('latex_use_xindy', , '', ) -[app] adding config value: ('latex_toplevel_sectioning', None, '', ) +[app] adding config value: ('latex_use_xindy', , '', ) +[app] adding config value: ('latex_toplevel_sectioning', None, '', ) [app] adding config value: ('latex_domain_indices', True, '', {, }) [app] adding config value: ('latex_show_urls', 'no', '', ()) [app] adding config value: ('latex_show_pagerefs', False, '', ()) @@ -2381,7 +2417,7 @@ [app] adding config value: ('latex_theme', 'manual', '', ) [app] adding config value: ('latex_theme_options', {}, '', ()) [app] adding config value: ('latex_theme_path', [], '', ) -[app] adding config value: ('latex_docclass', , '', ()) +[app] adding config value: ('latex_docclass', , '', ()) [app] setting up extension: 'sphinx.builders.linkcheck' [app] adding builder: [app] adding post transform: @@ -2400,19 +2436,19 @@ [app] adding config value: ('linkcheck_allow_unauthorized', False, '', ()) [app] adding config value: ('linkcheck_report_timeouts_as_broken', False, '', ) [app] adding event: 'linkcheck-process-uri' -[app] connecting event 'config-inited' (800): [id=17] +[app] connecting event 'config-inited' (800): [id=17] [app] setting up extension: 'sphinx.builders.manpage' [app] adding builder: -[app] adding config value: ('man_pages', , '', ()) +[app] adding config value: ('man_pages', , '', ()) [app] adding config value: ('man_show_urls', False, '', ()) [app] adding config value: ('man_make_section_directory', False, '', ()) [app] setting up extension: 'sphinx.builders.singlehtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: -[app] adding config value: ('singlehtml_sidebars', . at 0x7fc7d97dfb00>, 'html', ()) +[app] adding config value: ('singlehtml_sidebars', . at 0x7f3d3cadfb00>, 'html', ()) [app] setting up extension: 'sphinx.builders.texinfo' [app] adding builder: -[app] adding config value: ('texinfo_documents', , '', ()) +[app] adding config value: ('texinfo_documents', , '', ()) [app] adding config value: ('texinfo_appendices', [], '', ()) [app] adding config value: ('texinfo_elements', {}, '', ()) [app] adding config value: ('texinfo_domain_indices', True, '', {, }) @@ -2430,14 +2466,14 @@ [app] adding builder: [app] adding config value: ('xml_pretty', True, 'env', ()) [app] setting up extension: 'sphinx.config' -[app] connecting event 'config-inited' (800): [id=18] -[app] connecting event 'config-inited' (800): [id=19] -[app] connecting event 'config-inited' (800): [id=20] -[app] connecting event 'config-inited' (795): [id=21] -[app] connecting event 'config-inited' (800): [id=22] -[app] connecting event 'config-inited' (800): [id=23] -[app] connecting event 'config-inited' (800): [id=24] -[app] connecting event 'env-get-outdated' (500): [id=25] +[app] connecting event 'config-inited' (800): [id=18] +[app] connecting event 'config-inited' (800): [id=19] +[app] connecting event 'config-inited' (800): [id=20] +[app] connecting event 'config-inited' (795): [id=21] +[app] connecting event 'config-inited' (800): [id=22] +[app] connecting event 'config-inited' (800): [id=23] +[app] connecting event 'config-inited' (800): [id=24] +[app] connecting event 'env-get-outdated' (500): [id=25] [app] setting up extension: 'sphinx.domains.c' [app] adding domain: [app] adding config value: ('c_id_attributes', [], 'env', {, }) @@ -2464,17 +2500,17 @@ [app] adding post transform: [app] adding config value: ('cpp_debug_lookup', False, '', ()) [app] adding config value: ('cpp_debug_show_tree', False, '', ()) -[app] connecting event 'builder-inited' (500): .initStuff at 0x7fc7d9107060> [id=26] +[app] connecting event 'builder-inited' (500): .initStuff at 0x7f3d3c513060> [id=26] [app] setting up extension: 'sphinx.domains.index' [app] adding domain: [app] adding directive: ('index', ) -[app] adding role: ('index', ) +[app] adding role: ('index', ) [app] setting up extension: 'sphinx.domains.javascript' [app] adding domain: [app] adding config value: ('javascript_maximum_signature_line_length', None, 'env', {, }) [app] setting up extension: 'sphinx.domains.math' [app] adding domain: -[app] adding role: ('eq', ) +[app] adding role: ('eq', ) [app] setting up extension: 'sphinx.domains.python' [app] setting up extension: 'sphinx.directives' [app] adding config value: ('strip_signature_backslash', False, 'env', ()) @@ -2483,23 +2519,23 @@ [app] adding config value: ('python_use_unqualified_type_names', False, 'env', ()) [app] adding config value: ('python_maximum_signature_line_length', None, 'env', {, }) [app] adding config value: ('python_display_short_literal_types', False, 'env', ()) -[app] connecting event 'object-description-transform' (500): [id=27] -[app] connecting event 'missing-reference' (900): [id=28] +[app] connecting event 'object-description-transform' (500): [id=27] +[app] connecting event 'missing-reference' (900): [id=28] [app] setting up extension: 'sphinx.domains.rst' [app] adding domain: [app] setting up extension: 'sphinx.domains.std' [app] adding domain: -[app] connecting event 'warn-missing-reference' (500): [id=29] +[app] connecting event 'warn-missing-reference' (500): [id=29] [app] setting up extension: 'sphinx.directives' [app] setting up extension: 'sphinx.directives.code' [app] setting up extension: 'sphinx.directives.other' [app] setting up extension: 'sphinx.directives.patches' [app] setting up extension: 'sphinx.extension' -[app] connecting event 'config-inited' (800): [id=30] +[app] connecting event 'config-inited' (800): [id=30] [app] setting up extension: 'sphinx.parsers' [app] adding search source_parser: [app] setting up extension: 'sphinx.registry' -[app] connecting event 'config-inited' (800): [id=31] +[app] connecting event 'config-inited' (800): [id=31] [app] setting up extension: 'sphinx.roles' [app] setting up extension: 'sphinx.transforms' [app] adding transform: @@ -2543,48 +2579,48 @@ [app] adding transform: [app] setting up extension: 'sphinx.environment.collectors.dependencies' [app] adding environment collector: -[app] connecting event 'doctree-read' (500): > [id=32] -[app] connecting event 'env-merge-info' (500): > [id=33] -[app] connecting event 'env-purge-doc' (500): > [id=34] -[app] connecting event 'env-get-updated' (500): > [id=35] -[app] connecting event 'env-get-outdated' (500): > [id=36] +[app] connecting event 'doctree-read' (500): > [id=32] +[app] connecting event 'env-merge-info' (500): > [id=33] +[app] connecting event 'env-purge-doc' (500): > [id=34] +[app] connecting event 'env-get-updated' (500): > [id=35] +[app] connecting event 'env-get-outdated' (500): > [id=36] [app] setting up extension: 'sphinx.environment.collectors.asset' [app] adding environment collector: -[app] connecting event 'doctree-read' (500): > [id=37] -[app] connecting event 'env-merge-info' (500): > [id=38] -[app] connecting event 'env-purge-doc' (500): > [id=39] -[app] connecting event 'env-get-updated' (500): > [id=40] -[app] connecting event 'env-get-outdated' (500): > [id=41] +[app] connecting event 'doctree-read' (500): > [id=37] +[app] connecting event 'env-merge-info' (500): > [id=38] +[app] connecting event 'env-purge-doc' (500): > [id=39] +[app] connecting event 'env-get-updated' (500): > [id=40] +[app] connecting event 'env-get-outdated' (500): > [id=41] [app] adding environment collector: -[app] connecting event 'doctree-read' (500): > [id=42] -[app] connecting event 'env-merge-info' (500): > [id=43] -[app] connecting event 'env-purge-doc' (500): > [id=44] -[app] connecting event 'env-get-updated' (500): > [id=45] -[app] connecting event 'env-get-outdated' (500): > [id=46] +[app] connecting event 'doctree-read' (500): > [id=42] +[app] connecting event 'env-merge-info' (500): > [id=43] +[app] connecting event 'env-purge-doc' (500): > [id=44] +[app] connecting event 'env-get-updated' (500): > [id=45] +[app] connecting event 'env-get-outdated' (500): > [id=46] [app] setting up extension: 'sphinx.environment.collectors.metadata' [app] adding environment collector: -[app] connecting event 'doctree-read' (500): > [id=47] -[app] connecting event 'env-merge-info' (500): > [id=48] -[app] connecting event 'env-purge-doc' (500): > [id=49] -[app] connecting event 'env-get-updated' (500): > [id=50] -[app] connecting event 'env-get-outdated' (500): > [id=51] +[app] connecting event 'doctree-read' (500): > [id=47] +[app] connecting event 'env-merge-info' (500): > [id=48] +[app] connecting event 'env-purge-doc' (500): > [id=49] +[app] connecting event 'env-get-updated' (500): > [id=50] +[app] connecting event 'env-get-outdated' (500): > [id=51] [app] setting up extension: 'sphinx.environment.collectors.title' [app] adding environment collector: -[app] connecting event 'doctree-read' (500): > [id=52] -[app] connecting event 'env-merge-info' (500): > [id=53] -[app] connecting event 'env-purge-doc' (500): > [id=54] -[app] connecting event 'env-get-updated' (500): > [id=55] -[app] connecting event 'env-get-outdated' (500): > [id=56] +[app] connecting event 'doctree-read' (500): > [id=52] +[app] connecting event 'env-merge-info' (500): > [id=53] +[app] connecting event 'env-purge-doc' (500): > [id=54] +[app] connecting event 'env-get-updated' (500): > [id=55] +[app] connecting event 'env-get-outdated' (500): > [id=56] [app] setting up extension: 'sphinx.environment.collectors.toctree' [app] adding environment collector: -[app] connecting event 'doctree-read' (500): > [id=57] -[app] connecting event 'env-merge-info' (500): > [id=58] -[app] connecting event 'env-purge-doc' (500): > [id=59] -[app] connecting event 'env-get-updated' (500): > [id=60] -[app] connecting event 'env-get-outdated' (500): > [id=61] +[app] connecting event 'doctree-read' (500): > [id=57] +[app] connecting event 'env-merge-info' (500): > [id=58] +[app] connecting event 'env-purge-doc' (500): > [id=59] +[app] connecting event 'env-get-updated' (500): > [id=60] +[app] connecting event 'env-get-outdated' (500): > [id=61] [app] setting up extension: 'alabaster' [app] adding HTML theme: 'alabaster', '/usr/lib/python3/dist-packages/alabaster' -[app] connecting event 'html-page-context' (500): [id=62] +[app] connecting event 'html-page-context' (500): [id=62] [app] setting up extension: 'sphinx.ext.autodoc' [app] adding autodocumenter: [app] adding directive: ('automodule', ) @@ -2604,16 +2640,16 @@ [app] adding directive: ('autoattribute', ) [app] adding autodocumenter: [app] adding directive: ('autoproperty', ) -[app] adding config value: ('autoclass_content', 'class', 'env', ) -[app] adding config value: ('autodoc_member_order', 'alphabetical', 'env', ) -[app] adding config value: ('autodoc_class_signature', 'mixed', 'env', ) +[app] adding config value: ('autoclass_content', 'class', 'env', ) +[app] adding config value: ('autodoc_member_order', 'alphabetical', 'env', ) +[app] adding config value: ('autodoc_class_signature', 'mixed', 'env', ) [app] adding config value: ('autodoc_default_options', {}, 'env', ()) [app] adding config value: ('autodoc_docstring_signature', True, 'env', ()) [app] adding config value: ('autodoc_mock_imports', [], 'env', ()) -[app] adding config value: ('autodoc_typehints', 'signature', 'env', ) -[app] adding config value: ('autodoc_typehints_description_target', 'all', 'env', ) +[app] adding config value: ('autodoc_typehints', 'signature', 'env', ) +[app] adding config value: ('autodoc_typehints_description_target', 'all', 'env', ) [app] adding config value: ('autodoc_type_aliases', {}, 'env', ()) -[app] adding config value: ('autodoc_typehints_format', 'short', 'env', ) +[app] adding config value: ('autodoc_typehints_format', 'short', 'env', ) [app] adding config value: ('autodoc_warningiserror', True, 'env', ()) [app] adding config value: ('autodoc_inherit_docstrings', True, 'env', ()) [app] adding event: 'autodoc-before-process-signature' @@ -2623,21 +2659,21 @@ [app] adding event: 'autodoc-process-bases' [app] setting up extension: 'sphinx.ext.autodoc.preserve_defaults' [app] adding config value: ('autodoc_preserve_defaults', False, 'env', ()) -[app] connecting event 'autodoc-before-process-signature' (500): [id=63] +[app] connecting event 'autodoc-before-process-signature' (500): [id=63] [app] setting up extension: 'sphinx.ext.autodoc.type_comment' -[app] connecting event 'autodoc-before-process-signature' (500): [id=64] +[app] connecting event 'autodoc-before-process-signature' (500): [id=64] [app] setting up extension: 'sphinx.ext.autodoc.typehints' -[app] connecting event 'autodoc-process-signature' (500): [id=65] -[app] connecting event 'object-description-transform' (500): [id=66] +[app] connecting event 'autodoc-process-signature' (500): [id=65] +[app] connecting event 'object-description-transform' (500): [id=66] [app] setting up extension: 'sphinx.ext.viewcode' [app] adding config value: ('viewcode_import', None, '', ()) [app] adding config value: ('viewcode_enable_epub', False, '', ()) [app] adding config value: ('viewcode_follow_imported_members', True, '', ()) [app] adding config value: ('viewcode_line_numbers', False, 'env', ) -[app] connecting event 'doctree-read' (500): [id=67] -[app] connecting event 'env-merge-info' (500): [id=68] -[app] connecting event 'env-purge-doc' (500): [id=69] -[app] connecting event 'html-collect-pages' (500): [id=70] +[app] connecting event 'doctree-read' (500): [id=67] +[app] connecting event 'env-merge-info' (500): [id=68] +[app] connecting event 'env-purge-doc' (500): [id=69] +[app] connecting event 'html-collect-pages' (500): [id=70] [app] adding event: 'viewcode-find-source' [app] adding event: 'viewcode-follow-imported' [app] adding post transform: @@ -2649,114 +2685,114 @@ locale_dir /build/reproducible-path/python-qwt-0.12.7/doc/locales/en/LC_MESSAGES does not exist building [mo]: targets for 0 po files that are out of date writing output... -[build target] did not in env: 'reference/text' -[build target] did not in env: 'examples/bodedemo' -[build target] did not in env: 'reference/interval' -[build target] did not in env: 'examples/logcurve' -[build target] did not in env: 'examples/errorbar' +[build target] did not in env: 'reference/symbol' [build target] did not in env: 'reference/index' -[build target] did not in env: 'examples/multidemo' +[build target] did not in env: 'reference/interval' +[build target] did not in env: 'reference/text' [build target] did not in env: 'examples/mapdemo' [build target] did not in env: 'examples/image' -[build target] did not in env: 'reference/plot_series' -[build target] did not in env: 'examples/cpudemo' [build target] did not in env: 'reference/plot_directpainter' -[build target] did not in env: 'examples/index' -[build target] did not in env: 'examples/vertical' -[build target] did not in env: 'overview' +[build target] did not in env: 'installation' [build target] did not in env: 'examples/curvebenchmark1' +[build target] did not in env: 'examples/cpudemo' +[build target] did not in env: 'examples/multidemo' +[build target] did not in env: 'overview' [build target] did not in env: 'examples/curvedemo2' -[build target] did not in env: 'reference/graphic' -[build target] did not in env: 'installation' -[build target] did not in env: 'examples/data' [build target] did not in env: 'reference/plot_layout' -[build target] did not in env: 'reference/scale' -[build target] did not in env: 'examples/eventfilter' -[build target] did not in env: 'examples/curvebenchmark2' +[build target] did not in env: 'reference/plot_series' [build target] did not in env: 'reference/toqimage' [build target] did not in env: 'examples/cartesian' +[build target] did not in env: 'examples/eventfilter' +[build target] did not in env: 'examples/bodedemo' +[build target] did not in env: 'examples/errorbar' +[build target] did not in env: 'examples/logcurve' +[build target] did not in env: 'examples/vertical' +[build target] did not in env: 'examples/data' +[build target] did not in env: 'reference/transform' +[build target] did not in env: 'reference/graphic' +[build target] did not in env: 'reference/scale' [build target] did not in env: 'examples/curvedemo1' +[build target] did not in env: 'reference/plot' [build target] did not in env: 'index' -[build target] did not in env: 'reference/transform' [build target] did not in env: 'examples/simple' -[build target] did not in env: 'reference/plot' -[build target] did not in env: 'reference/symbol' +[build target] did not in env: 'examples/curvebenchmark2' +[build target] did not in env: 'examples/index' building [html]: targets for 32 source files that are out of date updating environment: locale_dir /build/reproducible-path/python-qwt-0.12.7/doc/locales/en/LC_MESSAGES does not exist -[app] emitting event: 'env-get-outdated'(, {'reference/text', 'examples/bodedemo', 'reference/interval', 'examples/logcurve', 'examples/errorbar', 'reference/index', 'examples/multidemo', 'examples/mapdemo', 'examples/image', 'reference/plot_series', 'examples/cpudemo', 'reference/plot_directpainter', 'examples/index', 'examples/vertical', 'overview', 'examples/curvebenchmark1', 'examples/curvedemo2', 'reference/graphic', 'installation', 'examples/data', 'reference/plot_layout', 'reference/scale', 'examples/eventfilter', 'examples/curvebenchmark2', 'reference/toqimage', 'examples/cartesian', 'examples/curvedemo1', 'index', 'reference/transform', 'examples/simple', 'reference/plot', 'reference/symbol'}, set(), set()) +[app] emitting event: 'env-get-outdated'(, {'reference/symbol', 'reference/index', 'reference/interval', 'reference/text', 'examples/mapdemo', 'examples/image', 'reference/plot_directpainter', 'installation', 'examples/curvebenchmark1', 'examples/cpudemo', 'examples/multidemo', 'overview', 'examples/curvedemo2', 'reference/plot_layout', 'reference/plot_series', 'reference/toqimage', 'examples/cartesian', 'examples/eventfilter', 'examples/bodedemo', 'examples/errorbar', 'examples/logcurve', 'examples/vertical', 'examples/data', 'reference/transform', 'reference/graphic', 'reference/scale', 'examples/curvedemo1', 'reference/plot', 'index', 'examples/simple', 'examples/curvebenchmark2', 'examples/index'}, set(), set()) [new config] 32 added, 0 changed, 0 removed -[app] emitting event: 'env-before-read-docs'(, ['examples/bodedemo', 'examples/cartesian', 'examples/cpudemo', 'examples/curvebenchmark1', 'examples/curvebenchmark2', 'examples/curvedemo1', 'examples/curvedemo2', 'examples/data', 'examples/errorbar', 'examples/eventfilter', 'examples/image', 'examples/index', 'examples/logcurve', 'examples/mapdemo', 'examples/multidemo', 'examples/simple', 'examples/vertical', 'index', 'installation', 'overview', 'reference/graphic', 'reference/index', 'reference/interval', 'reference/plot', 'reference/plot_directpainter', 'reference/plot_layout', 'reference/plot_series', 'reference/scale', 'reference/symbol', 'reference/text', 'reference/toqimage', 'reference/transform']) +[app] emitting event: 'env-before-read-docs'(, ['examples/bodedemo', 'examples/cartesian', 'examples/cpudemo', 'examples/curvebenchmark1', 'examples/curvebenchmark2', 'examples/curvedemo1', 'examples/curvedemo2', 'examples/data', 'examples/errorbar', 'examples/eventfilter', 'examples/image', 'examples/index', 'examples/logcurve', 'examples/mapdemo', 'examples/multidemo', 'examples/simple', 'examples/vertical', 'index', 'installation', 'overview', 'reference/graphic', 'reference/index', 'reference/interval', 'reference/plot', 'reference/plot_directpainter', 'reference/plot_layout', 'reference/plot_series', 'reference/scale', 'reference/symbol', 'reference/text', 'reference/toqimage', 'reference/transform']) reading sources... [ 3%] examples/bodedemo -[app] emitting event: 'env-purge-doc'(, 'examples/bodedemo') +[app] emitting event: 'env-purge-doc'(, 'examples/bodedemo') [app] emitting event: 'source-read'('examples/bodedemo', ['Bode demo\n~~~~~~~~~\n\n.. image:: /../qwt/tests/data/bodedemo.png\n\n.. literalinclude:: /../qwt/tests/test_bodedemo.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 6%] examples/cartesian -[app] emitting event: 'env-purge-doc'(, 'examples/cartesian') +[app] emitting event: 'env-purge-doc'(, 'examples/cartesian') [app] emitting event: 'source-read'('examples/cartesian', ['Cartesian demo\n~~~~~~~~~~~~~~\n\n.. image:: /../qwt/tests/data/cartesian.png\n\n.. literalinclude:: /../qwt/tests/test_cartesian.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 9%] examples/cpudemo -[app] emitting event: 'env-purge-doc'(, 'examples/cpudemo') +[app] emitting event: 'env-purge-doc'(, 'examples/cpudemo') [app] emitting event: 'source-read'('examples/cpudemo', ['CPU plot demo\n~~~~~~~~~~~~~\n\n.. image:: /../qwt/tests/data/cpudemo.png\n\n.. literalinclude:: /../qwt/tests/test_cpudemo.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 12%] examples/curvebenchmark1 -[app] emitting event: 'env-purge-doc'(, 'examples/curvebenchmark1') +[app] emitting event: 'env-purge-doc'(, 'examples/curvebenchmark1') [app] emitting event: 'source-read'('examples/curvebenchmark1', ['Curve benchmark demo 1\n~~~~~~~~~~~~~~~~~~~~~~\n\n.. image:: /../qwt/tests/data/curvebenchmark1.png\n\n.. literalinclude:: /../qwt/tests/test_curvebenchmark1.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 16%] examples/curvebenchmark2 -[app] emitting event: 'env-purge-doc'(, 'examples/curvebenchmark2') +[app] emitting event: 'env-purge-doc'(, 'examples/curvebenchmark2') [app] emitting event: 'source-read'('examples/curvebenchmark2', ['Curve benchmark demo 2\n~~~~~~~~~~~~~~~~~~~~~~\n\n.. image:: /../qwt/tests/data/curvebenchmark2.png\n\n.. literalinclude:: /../qwt/tests/test_curvebenchmark2.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 19%] examples/curvedemo1 -[app] emitting event: 'env-purge-doc'(, 'examples/curvedemo1') +[app] emitting event: 'env-purge-doc'(, 'examples/curvedemo1') [app] emitting event: 'source-read'('examples/curvedemo1', ['Curve demo 1\n~~~~~~~~~~~~\n\n.. image:: /../qwt/tests/data/curvedemo1.png\n\n.. literalinclude:: /../qwt/tests/test_curvedemo1.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 22%] examples/curvedemo2 -[app] emitting event: 'env-purge-doc'(, 'examples/curvedemo2') +[app] emitting event: 'env-purge-doc'(, 'examples/curvedemo2') [app] emitting event: 'source-read'('examples/curvedemo2', ['Curve demo 2\n~~~~~~~~~~~~\n\n.. image:: /../qwt/tests/data/curvedemo2.png\n\n.. literalinclude:: /../qwt/tests/test_curvedemo2.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 25%] examples/data -[app] emitting event: 'env-purge-doc'(, 'examples/data') +[app] emitting event: 'env-purge-doc'(, 'examples/data') [app] emitting event: 'source-read'('examples/data', ['Data demo\n~~~~~~~~~\n\n.. image:: /../qwt/tests/data/data.png\n\n.. literalinclude:: /../qwt/tests/test_data.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 28%] examples/errorbar -[app] emitting event: 'env-purge-doc'(, 'examples/errorbar') +[app] emitting event: 'env-purge-doc'(, 'examples/errorbar') [app] emitting event: 'source-read'('examples/errorbar', ['Error bar demo\n~~~~~~~~~~~~~~\n\n.. image:: /../qwt/tests/data/errorbar.png\n\n.. literalinclude:: /../qwt/tests/test_errorbar.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 31%] examples/eventfilter -[app] emitting event: 'env-purge-doc'(, 'examples/eventfilter') +[app] emitting event: 'env-purge-doc'(, 'examples/eventfilter') [app] emitting event: 'source-read'('examples/eventfilter', ['Event filter demo\n~~~~~~~~~~~~~~~~~\n\n.. image:: /../qwt/tests/data/eventfilter.png\n\n.. literalinclude:: /../qwt/tests/test_eventfilter.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 34%] examples/image -[app] emitting event: 'env-purge-doc'(, 'examples/image') +[app] emitting event: 'env-purge-doc'(, 'examples/image') [app] emitting event: 'source-read'('examples/image', ['Image plot demo\n~~~~~~~~~~~~~~~\n\n.. image:: /../qwt/tests/data/image.png\n\n.. literalinclude:: /../qwt/tests/test_image.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 38%] examples/index -[app] emitting event: 'env-purge-doc'(, 'examples/index') +[app] emitting event: 'env-purge-doc'(, 'examples/index') [app] emitting event: 'source-read'('examples/index', ['.. _examples:\n\nExamples\n========\n\nThe test launcher\n-----------------\n\nA lot of examples are available in the ``qwt.test`` module ::\n\n from qwt import tests\n tests.run()\n\nThe two lines above execute the ``PythonQwt`` test launcher:\n\n.. image:: /../qwt/tests/data/testlauncher.png\n\nGUI-based test launcher can be executed from the command line thanks to the \n``PythonQwt`` test script.\n\nUnit tests may be executed from the commande line thanks to the console-based script \n``PythonQwt-tests``: ``PythonQwt-tests --mode unattended``.\n\nTests\n-----\n\n\n\nHere are some examples from the `qwt.test` module:\n\n.. toctree::\n :maxdepth: 2\n \n bodedemo\n cartesian\n cpudemo\n curvebenchmark1\n curvebenchmark2\n curvedemo1\n curvedemo2\n data\n errorbar\n eventfilter\n image\n logcurve\n mapdemo\n multidemo\n simple\n vertical\n']) [app] emitting event: 'doctree-read'(
>,) /build/reproducible-path/python-qwt-0.12.7/doc/examples/index.rst:4: (INFO/1) Duplicate implicit target name: “examples”. [filtered system message] reading sources... [ 41%] examples/logcurve -[app] emitting event: 'env-purge-doc'(, 'examples/logcurve') +[app] emitting event: 'env-purge-doc'(, 'examples/logcurve') [app] emitting event: 'source-read'('examples/logcurve', ['Log curve plot demo\n~~~~~~~~~~~~~~~~~~~\n\n.. image:: /../qwt/tests/data/logcurve.png\n\n.. literalinclude:: /../qwt/tests/test_logcurve.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 44%] examples/mapdemo -[app] emitting event: 'env-purge-doc'(, 'examples/mapdemo') +[app] emitting event: 'env-purge-doc'(, 'examples/mapdemo') [app] emitting event: 'source-read'('examples/mapdemo', ['Map demo\n~~~~~~~~\n\n.. image:: /../qwt/tests/data/mapdemo.png\n\n.. literalinclude:: /../qwt/tests/test_mapdemo.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 47%] examples/multidemo -[app] emitting event: 'env-purge-doc'(, 'examples/multidemo') +[app] emitting event: 'env-purge-doc'(, 'examples/multidemo') [app] emitting event: 'source-read'('examples/multidemo', ['Multi demo\n~~~~~~~~~~\n\n.. image:: /../qwt/tests/data/multidemo.png\n\n.. literalinclude:: /../qwt/tests/test_multidemo.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 50%] examples/simple -[app] emitting event: 'env-purge-doc'(, 'examples/simple') +[app] emitting event: 'env-purge-doc'(, 'examples/simple') [app] emitting event: 'source-read'('examples/simple', ['Really simple demo\n~~~~~~~~~~~~~~~~~~\n\n.. image:: /../qwt/tests/data/simple.png\n\n.. literalinclude:: /../qwt/tests/test_simple.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 53%] examples/vertical -[app] emitting event: 'env-purge-doc'(, 'examples/vertical') +[app] emitting event: 'env-purge-doc'(, 'examples/vertical') [app] emitting event: 'source-read'('examples/vertical', ['Vertical plot demo\n~~~~~~~~~~~~~~~~~~\n\n.. image:: /../qwt/tests/data/vertical.png\n\n.. literalinclude:: /../qwt/tests/test_vertical.py\n :start-after: SHOW\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 56%] index -[app] emitting event: 'env-purge-doc'(, 'index') +[app] emitting event: 'env-purge-doc'(, 'index') [app] emitting event: 'source-read'('index', ['.. automodule:: qwt\n\nContents:\n\n.. toctree::\n :maxdepth: 2\n \n overview\n installation\n examples/index\n reference/index\n \n\nIndices and tables:\n\n* :ref:`genindex`\n* :ref:`search`\n']) [autodoc] /build/reproducible-path/python-qwt-0.12.7/doc/index.rst:1: input: .. automodule:: qwt @@ -2792,18 +2828,18 @@ [i18n] PATCH: 'docutils.nodes.term' to have rawsource: External resources: [app] emitting event: 'doctree-read'(
,) reading sources... [ 59%] installation -[app] emitting event: 'env-purge-doc'(, 'installation') +[app] emitting event: 'env-purge-doc'(, 'installation') [app] emitting event: 'source-read'('installation', ['Installation\n============\n\nDependencies\n------------\n\nRequirements:\n * Python 3.8 or higher\n * PyQt5 5.15, PyQt6 or PySide6\n * QtPy 1.9 or higher\n * NumPy 1.21 or higher\n * Sphinx for documentation generation\n * pytest, coverage for unit testing\n\nInstallation\n------------\n\nFrom the source package:\n\n `python -m build`\n\nHelp and support\n----------------\n\nExternal resources:\n\n * Bug reports and feature requests: `GitHub`_\n\n.. _GitHub: https://github.com/PlotPyStack/PythonQwt\n']) [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Requirements: [app] emitting event: 'doctree-read'(>,) /build/reproducible-path/python-qwt-0.12.7/doc/installation.rst:16: (INFO/1) Duplicate implicit target name: “installation”. [filtered system message] reading sources... [ 62%] overview -[app] emitting event: 'env-purge-doc'(, 'overview') +[app] emitting event: 'env-purge-doc'(, 'overview') [app] emitting event: 'source-read'('overview', ["Purpose and Motivation\n======================\n\nThe ``PythonQwt`` project was initiated to solve -at least temporarily-\nthe obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library)\nwhich is no longer maintained. The idea was to translate the original\nQwt C++ code to Python and then to optimize some parts of the code by\nwriting new modules based on NumPy and other libraries.\n\nOverview\n========\n\nThe ``PythonQwt`` package consists of a single Python package named\n`qwt` and of a few other files (examples, doc, ...):\n\n - The subpackage `qwt.tests` contains the PythonQwt unit tests:\n\n - 75% were directly adapted from Qwt/C++ demos (Bode demo, cartesian demo, etc.).\n\n - 25% were written specifically for PythonQwt.\n\n - The test launcher is an exclusive PythonQwt feature.\n\nThe `qwt` package is a pure Python implementation of `Qwt` C++ library\nwith the following limitations.\n\nThe following `Qwt` classes won't be reimplemented in `qwt` because more\npowerful features already exist in `guiqwt` (and in the forthcoming `plotpy` library,\nresulting of the merge of `guidata` and `guiqwt`): `QwtPlotZoomer`,\n`QwtCounter`, `QwtEventPattern`, `QwtPicker`, `QwtPlotPicker`.\n\nOnly the following plot items are currently implemented in `qwt` (the\nonly plot items needed by `guiqwt` and `plotpy`): `QwtPlotItem` (base class),\n`QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`.\n\nThe `HistogramItem` object implemented in PyQwt's HistogramDemo.py is not\navailable here (a similar item is already implemented in `guiqwt`/`plotpy`). As a\nconsequence, the following classes are not implemented: `QwtPlotHistogram`,\n`QwtIntervalSeriesData`, `QwtIntervalSample`.\n\nThe following data structure objects are not implemented as they seemed\nirrelevant with Python and NumPy: `QwtCPointerData` (as a consequence, method\n`QwtPlot.setRawSamples` is not implemented), `QwtSyntheticPointData`.\n\nThe following sample data type objects are not implemented as they seemed\nquite specific: `QwtSetSample`, `QwtOHLCSample`. For similar reasons, the\n`QwtPointPolar` class and the following sample iterator objects are not\nimplemented: `QwtSetSeriesData`, `QwtTradingChartData` and `QwtPoint3DSeriesData`.\n\nThe following classes are not implemented because they seem inappropriate in\nthe Python/NumPy context: `QwtArraySeriesData`, `QwtPointSeriesData`,\n`QwtAbstractSeriesStore`.\n\nThreads:\n\n - Multiple threads for graphic rendering is implemented in Qwt C++ code\n thanks to the `QtConcurrent` and `QFuture` Qt features which are\n currently not supported by PyQt.\n\n - As a consequence the following API is not supported in `PythonQwt`:\n - `QwtPlotItem.renderThreadCount`\n - `QwtPlotItem.setRenderThreadCount`\n - option `numThreads` in `QwtPointMapper.toImage`\n\nThe `QwtClipper` class is not implemented yet (and it will probably be\nvery difficult or even impossible to implement it in pure Python without\nperformance issues). As a consequence, when zooming in a plot curve, the\nentire curve is still painted (in other words, when working with large\namount of data, there is no performance gain when zooming in).\n\nThe curve fitter feature is not implemented because powerful curve fitting\nfeatures are already implemented in `guiqwt`/`plotpy`.\n\nOther API compatibility issues with `Qwt`:\n\n - `QwtPlotCurve.MinimizeMemory` option was removed as this option has no\n sense in PythonQwt (the polyline plotting is not taking more memory\n than the array data that is already there).\n\n - `QwtPlotCurve.Fitted` option was removed as this option is not supported\n at the moment.\n"]) [i18n] PATCH: 'docutils.nodes.term' to have rawsource: As a consequence the following API is not supported in Py... [app] emitting event: 'doctree-read'(
>,) reading sources... [ 66%] reference/graphic -[app] emitting event: 'env-purge-doc'(, 'reference/graphic') +[app] emitting event: 'env-purge-doc'(, 'reference/graphic') [app] emitting event: 'source-read'('reference/graphic', ['.. automodule:: qwt.graphic\n']) [autodoc] /build/reproducible-path/python-qwt-0.12.7/doc/reference/graphic.rst:1: input: .. automodule:: qwt.graphic @@ -2828,199 +2864,199 @@ [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.graphic.QwtGraphic', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.graphic.QwtGraphic', , {'members': }, ['A paint device for scalable graphics', '', '`QwtGraphic` is the representation of a graphic that is tailored for', 'scalability. Like `QPicture` it will be initialized by `QPainter`', 'operations and can be replayed later to any target paint device.', '', 'While the usual image representations `QImage` and `QPixmap` are not', 'scalable `Qt` offers two paint devices, that might be candidates', 'for representing a vector graphic:', '', ' - `QPicture`:', '', ' Unfortunately `QPicture` had been forgotten, when Qt4', ' introduced floating point based render engines. Its API', ' is still on integers, what make it unusable for proper scaling.', '', ' - `QSvgRenderer`, `QSvgGenerator`:', '', ' Unfortunately `QSvgRenderer` hides to much information about', ' its nodes in internal APIs, that are necessary for proper', ' layout calculations. Also it is derived from `QObject` and', " can't be copied like `QImage`/`QPixmap`.", '', '`QwtGraphic` maps all scalable drawing primitives to a `QPainterPath`', 'and stores them together with the painter state changes', '( pen, brush, transformation ... ) in a list of `QwtPaintCommands`.', 'For being a complete `QPaintDevice` it also stores pixmaps or images,', 'what is somehow against the idea of the class, because these objects', "can't be scaled without a loss in quality.", '', 'The main issue about scaling a `QwtGraphic` object are the pens used for', 'drawing the outlines of the painter paths. While non cosmetic pens', '( `QPen.isCosmetic()` ) are scaled with the same ratio as the path,', 'cosmetic pens have a fixed width. A graphic might have paths with', 'different pens - cosmetic and non-cosmetic.', '', '`QwtGraphic` caches 2 different rectangles:', '', ' - control point rectangle:', '', ' The control point rectangle is the bounding rectangle of all', ' control point rectangles of the painter paths, or the target', ' rectangle of the pixmaps/images.', '', ' - bounding rectangle:', '', ' The bounding rectangle extends the control point rectangle by', ' what is needed for rendering the outline with an unscaled pen.', '', 'Because the offset for drawing the outline depends on the shape', 'of the painter path ( the peak of a triangle is different than the flat side )', 'scaling with a fixed aspect ratio always needs to be calculated from the', 'control point rectangle.', '', '.. py:class:: QwtGraphic()', '', ' Initializes a null graphic', '', '.. py:class:: QwtGraphic(other)', ' :noindex:', '', ' Copy constructor', '', ' :param qwt.graphic.QwtGraphic other: Source', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'RenderPensUnscaled', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', "\nA paint device for scalable graphics\n\n`QwtGraphic` is the representation of a graphic that is tailored for\nscalability. Like `QPicture` it will be initialized by `QPainter`\noperations and can be replayed later to any target paint device.\n\nWhile the usual image representations `QImage` and `QPixmap` are not\nscalable `Qt` offers two paint devices, that might be candidates\nfor representing a vector graphic:\n\n - `QPicture`:\n\n Unfortunately `QPicture` had been forgotten, when Qt4\n introduced floating point based render engines. Its API\n is still on integers, what make it unusable for proper scaling.\n\n - `QSvgRenderer`, `QSvgGenerator`:\n\n Unfortunately `QSvgRenderer` hides to much information about\n its nodes in internal APIs, that are necessary for proper\n layout calculations. Also it is derived from `QObject` and\n can't be copied like `QImage`/`QPixmap`.\n\n`QwtGraphic` maps all scalable drawing primitives to a `QPainterPath`\nand stores them together with the painter state changes\n( pen, brush, transformation ... ) in a list of `QwtPaintCommands`.\nFor being a complete `QPaintDevice` it also stores pixmaps or images,\nwhat is somehow against the idea of the class, because these objects\ncan't be scaled without a loss in quality.\n\nThe main issue about scaling a `QwtGraphic` object are the pens used for\ndrawing the outlines of the painter paths. While non cosmetic pens\n( `QPen.isCosmetic()` ) are scaled with the same ratio as the path,\ncosmetic pens have a fixed width. A graphic might have paths with\ndifferent pens - cosmetic and non-cosmetic.\n\n`QwtGraphic` caches 2 different rectangles:\n\n - control point rectangle:\n\n The control point rectangle is the bounding rectangle of all\n control point rectangles of the painter paths, or the target\n rectangle of the pixmaps/images.\n\n - bounding rectangle:\n\n The bounding rectangle extends the control point rectangle by\n what is needed for rendering the outline with an unscaled pen.\n\nBecause the offset for drawing the outline depends on the shape\nof the painter path ( the peak of a triangle is different than the flat side )\nscaling with a fixed aspect ratio always needs to be calculated from the\ncontrol point rectangle.\n\n.. py:class:: QwtGraphic()\n\n Initializes a null graphic\n\n.. py:class:: QwtGraphic(other)\n :noindex:\n\n Copy constructor\n\n :param qwt.graphic.QwtGraphic other: Source\n", True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 200, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.graphic', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'commands', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'controlPointRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'defaultSize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawImage', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawPath', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawPixmap', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isEmpty', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isNull', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'render', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'reset', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'scaledBoundingRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setCommands', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setDefaultSize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setRenderHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'sizeMetrics', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testRenderHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'toImage', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'toPixmap', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateBoundingRect', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateControlPointRect', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateState', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.graphic.QwtGraphic', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.graphic.QwtGraphic', , {'members': }, ['A paint device for scalable graphics', '', '`QwtGraphic` is the representation of a graphic that is tailored for', 'scalability. Like `QPicture` it will be initialized by `QPainter`', 'operations and can be replayed later to any target paint device.', '', 'While the usual image representations `QImage` and `QPixmap` are not', 'scalable `Qt` offers two paint devices, that might be candidates', 'for representing a vector graphic:', '', ' - `QPicture`:', '', ' Unfortunately `QPicture` had been forgotten, when Qt4', ' introduced floating point based render engines. Its API', ' is still on integers, what make it unusable for proper scaling.', '', ' - `QSvgRenderer`, `QSvgGenerator`:', '', ' Unfortunately `QSvgRenderer` hides to much information about', ' its nodes in internal APIs, that are necessary for proper', ' layout calculations. Also it is derived from `QObject` and', " can't be copied like `QImage`/`QPixmap`.", '', '`QwtGraphic` maps all scalable drawing primitives to a `QPainterPath`', 'and stores them together with the painter state changes', '( pen, brush, transformation ... ) in a list of `QwtPaintCommands`.', 'For being a complete `QPaintDevice` it also stores pixmaps or images,', 'what is somehow against the idea of the class, because these objects', "can't be scaled without a loss in quality.", '', 'The main issue about scaling a `QwtGraphic` object are the pens used for', 'drawing the outlines of the painter paths. While non cosmetic pens', '( `QPen.isCosmetic()` ) are scaled with the same ratio as the path,', 'cosmetic pens have a fixed width. A graphic might have paths with', 'different pens - cosmetic and non-cosmetic.', '', '`QwtGraphic` caches 2 different rectangles:', '', ' - control point rectangle:', '', ' The control point rectangle is the bounding rectangle of all', ' control point rectangles of the painter paths, or the target', ' rectangle of the pixmaps/images.', '', ' - bounding rectangle:', '', ' The bounding rectangle extends the control point rectangle by', ' what is needed for rendering the outline with an unscaled pen.', '', 'Because the offset for drawing the outline depends on the shape', 'of the painter path ( the peak of a triangle is different than the flat side )', 'scaling with a fixed aspect ratio always needs to be calculated from the', 'control point rectangle.', '', '.. py:class:: QwtGraphic()', '', ' Initializes a null graphic', '', '.. py:class:: QwtGraphic(other)', ' :noindex:', '', ' Copy constructor', '', ' :param qwt.graphic.QwtGraphic other: Source', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'RenderPensUnscaled', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', "\nA paint device for scalable graphics\n\n`QwtGraphic` is the representation of a graphic that is tailored for\nscalability. Like `QPicture` it will be initialized by `QPainter`\noperations and can be replayed later to any target paint device.\n\nWhile the usual image representations `QImage` and `QPixmap` are not\nscalable `Qt` offers two paint devices, that might be candidates\nfor representing a vector graphic:\n\n - `QPicture`:\n\n Unfortunately `QPicture` had been forgotten, when Qt4\n introduced floating point based render engines. Its API\n is still on integers, what make it unusable for proper scaling.\n\n - `QSvgRenderer`, `QSvgGenerator`:\n\n Unfortunately `QSvgRenderer` hides to much information about\n its nodes in internal APIs, that are necessary for proper\n layout calculations. Also it is derived from `QObject` and\n can't be copied like `QImage`/`QPixmap`.\n\n`QwtGraphic` maps all scalable drawing primitives to a `QPainterPath`\nand stores them together with the painter state changes\n( pen, brush, transformation ... ) in a list of `QwtPaintCommands`.\nFor being a complete `QPaintDevice` it also stores pixmaps or images,\nwhat is somehow against the idea of the class, because these objects\ncan't be scaled without a loss in quality.\n\nThe main issue about scaling a `QwtGraphic` object are the pens used for\ndrawing the outlines of the painter paths. While non cosmetic pens\n( `QPen.isCosmetic()` ) are scaled with the same ratio as the path,\ncosmetic pens have a fixed width. A graphic might have paths with\ndifferent pens - cosmetic and non-cosmetic.\n\n`QwtGraphic` caches 2 different rectangles:\n\n - control point rectangle:\n\n The control point rectangle is the bounding rectangle of all\n control point rectangles of the painter paths, or the target\n rectangle of the pixmaps/images.\n\n - bounding rectangle:\n\n The bounding rectangle extends the control point rectangle by\n what is needed for rendering the outline with an unscaled pen.\n\nBecause the offset for drawing the outline depends on the shape\nof the painter path ( the peak of a triangle is different than the flat side )\nscaling with a fixed aspect ratio always needs to be calculated from the\ncontrol point rectangle.\n\n.. py:class:: QwtGraphic()\n\n Initializes a null graphic\n\n.. py:class:: QwtGraphic(other)\n :noindex:\n\n Copy constructor\n\n :param qwt.graphic.QwtGraphic other: Source\n", True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 200, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.graphic', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'commands', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'controlPointRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'defaultSize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawImage', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawPath', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawPixmap', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isEmpty', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isNull', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'render', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'reset', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'scaledBoundingRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setCommands', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setDefaultSize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setRenderHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'sizeMetrics', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testRenderHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'toImage', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'toPixmap', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateBoundingRect', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateControlPointRect', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateState', , False, {'members': }) [autodoc] from qwt.graphic import QwtGraphic.reset [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'reset') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.reset', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.reset', , {'members': }, ['Clear all stored commands', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.reset', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.reset', , {'members': }, ['Clear all stored commands', '']) [autodoc] from qwt.graphic import QwtGraphic.isNull [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'isNull') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.isNull', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.isNull', , {'members': }, ['Return True, when no painter commands have been stored', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.isNull', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.isNull', , {'members': }, ['Return True, when no painter commands have been stored', '']) [autodoc] from qwt.graphic import QwtGraphic.isEmpty [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'isEmpty') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.isEmpty', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.isEmpty', , {'members': }, ['Return True, when the bounding rectangle is empty', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.isEmpty', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.isEmpty', , {'members': }, ['Return True, when the bounding rectangle is empty', '']) [autodoc] from qwt.graphic import QwtGraphic.setRenderHint [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'setRenderHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.setRenderHint', , {'members': }, '(hint, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.setRenderHint', , {'members': }, ['Toggle an render hint', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.setRenderHint', , {'members': }, '(hint, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.setRenderHint', , {'members': }, ['Toggle an render hint', '']) [autodoc] from qwt.graphic import QwtGraphic.testRenderHint [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'testRenderHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.testRenderHint', , {'members': }, '(hint)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.testRenderHint', , {'members': }, ['Test a render hint', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.testRenderHint', , {'members': }, '(hint)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.testRenderHint', , {'members': }, ['Test a render hint', '']) [autodoc] from qwt.graphic import QwtGraphic.boundingRect [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'boundingRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.boundingRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.boundingRect', , {'members': }, ['The bounding rectangle is the :py:meth:`controlPointRect`', 'extended by the areas needed for rendering the outlines', 'with unscaled pens.', '', ':return: Bounding rectangle of the graphic', '', '.. seealso::', '', ' :py:meth:`controlPointRect`, :py:meth:`scaledBoundingRect`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.boundingRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.boundingRect', , {'members': }, ['The bounding rectangle is the :py:meth:`controlPointRect`', 'extended by the areas needed for rendering the outlines', 'with unscaled pens.', '', ':return: Bounding rectangle of the graphic', '', '.. seealso::', '', ' :py:meth:`controlPointRect`, :py:meth:`scaledBoundingRect`', '']) [autodoc] from qwt.graphic import QwtGraphic.controlPointRect [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'controlPointRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.controlPointRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.controlPointRect', , {'members': }, ['The control point rectangle is the bounding rectangle', 'of all control points of the paths and the target', 'rectangles of the images/pixmaps.', '', ':return: Control point rectangle', '', '.. seealso::', '', ' :py:meth:`boundingRect()`, :py:meth:`scaledBoundingRect()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.controlPointRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.controlPointRect', , {'members': }, ['The control point rectangle is the bounding rectangle', 'of all control points of the paths and the target', 'rectangles of the images/pixmaps.', '', ':return: Control point rectangle', '', '.. seealso::', '', ' :py:meth:`boundingRect()`, :py:meth:`scaledBoundingRect()`', '']) [autodoc] from qwt.graphic import QwtGraphic.scaledBoundingRect [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'scaledBoundingRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.scaledBoundingRect', , {'members': }, '(sx, sy)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.scaledBoundingRect', , {'members': }, ['Calculate the target rectangle for scaling the graphic', '', ':param float sx: Horizontal scaling factor', ':param float sy: Vertical scaling factor', ':return: Scaled bounding rectangle', '', '.. note::', '', ' In case of paths that are painted with a cosmetic pen', ' (see :py:meth:`QPen.isCosmetic()`) the target rectangle is', ' different to multiplying the bounding rectangle.', '', '.. seealso::', '', ' :py:meth:`boundingRect()`, :py:meth:`controlPointRect()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.scaledBoundingRect', , {'members': }, '(sx, sy)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.scaledBoundingRect', , {'members': }, ['Calculate the target rectangle for scaling the graphic', '', ':param float sx: Horizontal scaling factor', ':param float sy: Vertical scaling factor', ':return: Scaled bounding rectangle', '', '.. note::', '', ' In case of paths that are painted with a cosmetic pen', ' (see :py:meth:`QPen.isCosmetic()`) the target rectangle is', ' different to multiplying the bounding rectangle.', '', '.. seealso::', '', ' :py:meth:`boundingRect()`, :py:meth:`controlPointRect()`', '']) [autodoc] from qwt.graphic import QwtGraphic.sizeMetrics [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'sizeMetrics') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.sizeMetrics', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.sizeMetrics', , {'members': }, ['Return Ceiled :py:meth:`defaultSize()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.sizeMetrics', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.sizeMetrics', , {'members': }, ['Return Ceiled :py:meth:`defaultSize()`', '']) [autodoc] from qwt.graphic import QwtGraphic.setDefaultSize [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'setDefaultSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.setDefaultSize', , {'members': }, '(size)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.setDefaultSize', , {'members': }, ['The default size is used in all methods rendering the graphic,', 'where no size is explicitly specified. Assigning an empty size', 'means, that the default size will be calculated from the bounding', 'rectangle.', '', ':param QSizeF size: Default size', '', '.. seealso::', '', ' :py:meth:`defaultSize()`, :py:meth:`boundingRect()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.setDefaultSize', , {'members': }, '(size)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.setDefaultSize', , {'members': }, ['The default size is used in all methods rendering the graphic,', 'where no size is explicitly specified. Assigning an empty size', 'means, that the default size will be calculated from the bounding', 'rectangle.', '', ':param QSizeF size: Default size', '', '.. seealso::', '', ' :py:meth:`defaultSize()`, :py:meth:`boundingRect()`', '']) [autodoc] from qwt.graphic import QwtGraphic.defaultSize [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'defaultSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.defaultSize', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.defaultSize', , {'members': }, ['When a non empty size has been assigned by setDefaultSize() this', 'size will be returned. Otherwise the default size is the size', 'of the bounding rectangle.', '', 'The default size is used in all methods rendering the graphic,', 'where no size is explicitly specified.', '', ':return: Default size', '', '.. seealso::', '', ' :py:meth:`setDefaultSize()`, :py:meth:`boundingRect()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.defaultSize', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.defaultSize', , {'members': }, ['When a non empty size has been assigned by setDefaultSize() this', 'size will be returned. Otherwise the default size is the size', 'of the bounding rectangle.', '', 'The default size is used in all methods rendering the graphic,', 'where no size is explicitly specified.', '', ':return: Default size', '', '.. seealso::', '', ' :py:meth:`setDefaultSize()`, :py:meth:`boundingRect()`', '']) [autodoc] from qwt.graphic import QwtGraphic.render [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'render') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.render', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.render', , {'members': }, ['.. py:method:: render(painter)', ' :noindex:', '', ' Replay all recorded painter commands', '', ' :param QPainter painter: Qt painter', '', '.. py:method:: render(painter, size, aspectRatioMode)', ' :noindex:', '', ' Replay all recorded painter commands', '', ' The graphic is scaled to fit into the rectangle', ' of the given size starting at ( 0, 0 ).', '', ' :param QPainter painter: Qt painter', ' :param QSizeF size: Size for the scaled graphic', ' :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale', '', '.. py:method:: render(painter, rect, aspectRatioMode)', ' :noindex:', '', ' Replay all recorded painter commands', '', ' The graphic is scaled to fit into the given rectangle', '', ' :param QPainter painter: Qt painter', ' :param QRectF rect: Rectangle for the scaled graphic', ' :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale', '', '.. py:method:: render(painter, pos, aspectRatioMode)', ' :noindex:', '', ' Replay all recorded painter commands', '', ' The graphic is scaled to the :py:meth:`defaultSize()` and aligned', ' to a position.', '', ' :param QPainter painter: Qt painter', ' :param QPointF pos: Reference point, where to render', ' :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.render', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.render', , {'members': }, ['.. py:method:: render(painter)', ' :noindex:', '', ' Replay all recorded painter commands', '', ' :param QPainter painter: Qt painter', '', '.. py:method:: render(painter, size, aspectRatioMode)', ' :noindex:', '', ' Replay all recorded painter commands', '', ' The graphic is scaled to fit into the rectangle', ' of the given size starting at ( 0, 0 ).', '', ' :param QPainter painter: Qt painter', ' :param QSizeF size: Size for the scaled graphic', ' :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale', '', '.. py:method:: render(painter, rect, aspectRatioMode)', ' :noindex:', '', ' Replay all recorded painter commands', '', ' The graphic is scaled to fit into the given rectangle', '', ' :param QPainter painter: Qt painter', ' :param QRectF rect: Rectangle for the scaled graphic', ' :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale', '', '.. py:method:: render(painter, pos, aspectRatioMode)', ' :noindex:', '', ' Replay all recorded painter commands', '', ' The graphic is scaled to the :py:meth:`defaultSize()` and aligned', ' to a position.', '', ' :param QPainter painter: Qt painter', ' :param QPointF pos: Reference point, where to render', ' :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale', '']) [autodoc] from qwt.graphic import QwtGraphic.toPixmap [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'toPixmap') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.toPixmap', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.toPixmap', , {'members': }, ['Convert the graphic to a `QPixmap`', '', 'All pixels of the pixmap get initialized by `Qt.transparent`', 'before the graphic is scaled and rendered on it.', '', 'The size of the pixmap is the default size ( ceiled to integers )', 'of the graphic.', '', ':return: The graphic as pixmap in default size', '', '.. seealso::', '', ' :py:meth:`defaultSize()`, :py:meth:`toImage()`, :py:meth:`render()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.toPixmap', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.toPixmap', , {'members': }, ['Convert the graphic to a `QPixmap`', '', 'All pixels of the pixmap get initialized by `Qt.transparent`', 'before the graphic is scaled and rendered on it.', '', 'The size of the pixmap is the default size ( ceiled to integers )', 'of the graphic.', '', ':return: The graphic as pixmap in default size', '', '.. seealso::', '', ' :py:meth:`defaultSize()`, :py:meth:`toImage()`, :py:meth:`render()`', '']) [autodoc] from qwt.graphic import QwtGraphic.toImage [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'toImage') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.toImage', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.toImage', , {'members': }, ['.. py:method:: toImage()', ' :noindex:', '', ' Convert the graphic to a `QImage`', '', ' All pixels of the image get initialized by 0 ( transparent )', ' before the graphic is scaled and rendered on it.', '', ' The format of the image is `QImage.Format_ARGB32_Premultiplied`.', '', ' The size of the image is the default size ( ceiled to integers )', ' of the graphic.', '', ' :return: The graphic as image in default size', '', '.. py:method:: toImage(size, [aspectRatioMode=Qt.IgnoreAspectRatio])', ' :noindex:', '', ' Convert the graphic to a `QImage`', '', ' All pixels of the image get initialized by 0 ( transparent )', ' before the graphic is scaled and rendered on it.', '', ' The format of the image is `QImage.Format_ARGB32_Premultiplied`.', '', ' :param QSize size: Size of the image', ' :param `Qt.AspectRatioMode` aspectRatioMode: Aspect ratio how to scale the graphic', ' :return: The graphic as image', '', '.. seealso::', '', ' :py:meth:`toPixmap()`, :py:meth:`render()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.toImage', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.toImage', , {'members': }, ['.. py:method:: toImage()', ' :noindex:', '', ' Convert the graphic to a `QImage`', '', ' All pixels of the image get initialized by 0 ( transparent )', ' before the graphic is scaled and rendered on it.', '', ' The format of the image is `QImage.Format_ARGB32_Premultiplied`.', '', ' The size of the image is the default size ( ceiled to integers )', ' of the graphic.', '', ' :return: The graphic as image in default size', '', '.. py:method:: toImage(size, [aspectRatioMode=Qt.IgnoreAspectRatio])', ' :noindex:', '', ' Convert the graphic to a `QImage`', '', ' All pixels of the image get initialized by 0 ( transparent )', ' before the graphic is scaled and rendered on it.', '', ' The format of the image is `QImage.Format_ARGB32_Premultiplied`.', '', ' :param QSize size: Size of the image', ' :param `Qt.AspectRatioMode` aspectRatioMode: Aspect ratio how to scale the graphic', ' :return: The graphic as image', '', '.. seealso::', '', ' :py:meth:`toPixmap()`, :py:meth:`render()`', '']) [autodoc] from qwt.graphic import QwtGraphic.drawPath [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'drawPath') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.drawPath', , {'members': }, '(path)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.drawPath', , {'members': }, ['Store a path command in the command list', '', ':param QPainterPath path: Painter path', '', '.. seealso::', '', ' :py:meth:`QPaintEngine.drawPath()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.drawPath', , {'members': }, '(path)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.drawPath', , {'members': }, ['Store a path command in the command list', '', ':param QPainterPath path: Painter path', '', '.. seealso::', '', ' :py:meth:`QPaintEngine.drawPath()`', '']) [autodoc] from qwt.graphic import QwtGraphic.drawPixmap [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'drawPixmap') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.drawPixmap', , {'members': }, '(rect, pixmap, subRect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.drawPixmap', , {'members': }, ['Store a pixmap command in the command list', '', ':param QRectF rect: target rectangle', ':param QPixmap pixmap: Pixmap to be painted', ':param QRectF subRect: Reactangle of the pixmap to be painted', '', '.. seealso::', '', ' :py:meth:`QPaintEngine.drawPixmap()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.drawPixmap', , {'members': }, '(rect, pixmap, subRect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.drawPixmap', , {'members': }, ['Store a pixmap command in the command list', '', ':param QRectF rect: target rectangle', ':param QPixmap pixmap: Pixmap to be painted', ':param QRectF subRect: Reactangle of the pixmap to be painted', '', '.. seealso::', '', ' :py:meth:`QPaintEngine.drawPixmap()`', '']) [autodoc] from qwt.graphic import QwtGraphic.drawImage [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'drawImage') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.drawImage', , {'members': }, '(rect, image, subRect, flags)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.drawImage', , {'members': }, ['Store a image command in the command list', '', ':param QRectF rect: target rectangle', ':param QImage image: Pixmap to be painted', ':param QRectF subRect: Reactangle of the pixmap to be painted', ':param Qt.ImageConversionFlags flags: Pixmap to be painted', '', '.. seealso::', '', ' :py:meth:`QPaintEngine.drawImage()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.drawImage', , {'members': }, '(rect, image, subRect, flags)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.drawImage', , {'members': }, ['Store a image command in the command list', '', ':param QRectF rect: target rectangle', ':param QImage image: Pixmap to be painted', ':param QRectF subRect: Reactangle of the pixmap to be painted', ':param Qt.ImageConversionFlags flags: Pixmap to be painted', '', '.. seealso::', '', ' :py:meth:`QPaintEngine.drawImage()`', '']) [autodoc] from qwt.graphic import QwtGraphic.updateState [autodoc] import qwt.graphic => [autodoc] getattr(_, 'QwtGraphic') [autodoc] => [autodoc] getattr(_, 'updateState') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.updateState', , {'members': }, '(state)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.updateState', , {'members': }, ['Store a state command in the command list', '', ':param QPaintEngineState state: State to be stored', '', '.. seealso::', '', ' :py:meth:`QPaintEngine.updateState()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.graphic.QwtGraphic.updateState', , {'members': }, '(state)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.graphic.QwtGraphic.updateState', , {'members': }, ['Store a state command in the command list', '', ':param QPaintEngineState state: State to be stored', '', '.. seealso::', '', ' :py:meth:`QPaintEngine.updateState()`', '']) [autodoc] output: .. py:class:: QwtGraphic(*args) @@ -3463,11 +3499,11 @@ [app] emitting event: 'viewcode-follow-imported'('qwt.graphic', 'QwtGraphic.updateState') [app] emitting event: 'viewcode-find-source'('qwt.graphic',) reading sources... [ 69%] reference/index -[app] emitting event: 'env-purge-doc'(, 'reference/index') +[app] emitting event: 'env-purge-doc'(, 'reference/index') [app] emitting event: 'source-read'('reference/index', ['Reference\n=========\n\nPublic API:\n\n.. toctree::\n :maxdepth: 2\n \n plot\n scale\n symbol\n text\n toqimage\n\nPrivate API:\n\n.. toctree::\n :maxdepth: 2\n \n graphic\n interval\n plot_directpainter\n plot_layout\n plot_series\n transform\n']) [app] emitting event: 'doctree-read'(>,) reading sources... [ 72%] reference/interval -[app] emitting event: 'env-purge-doc'(, 'reference/interval') +[app] emitting event: 'env-purge-doc'(, 'reference/interval') [app] emitting event: 'source-read'('reference/interval', ['.. automodule:: qwt.interval\n']) [autodoc] /build/reproducible-path/python-qwt-0.12.7/doc/reference/interval.rst:1: input: .. automodule:: qwt.interval @@ -3492,237 +3528,237 @@ [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.interval.QwtInterval', , {'members': }, '(minValue=0.0, maxValue=-1.0, borderFlags=None)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.interval.QwtInterval', , {'members': }, ['A class representing an interval', '', 'The interval is represented by 2 doubles, the lower and the upper limit.', '', '.. py:class:: QwtInterval(minValue=0., maxValue=-1., borderFlags=None)', '', ' Build an interval with from min/max values', '', ' :param float minValue: Minimum value', ' :param float maxValue: Maximum value', ' :param int borderFlags: Include/Exclude borders', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'ExcludeBorders', 3, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'ExcludeMaximum', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'ExcludeMinimum', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'IncludeBorders', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__and__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.interval', '__firstlineno__': 17, '__doc__': '\nA class representing an interval\n\nThe interval is represented by 2 doubles, the lower and the upper limit.\n\n.. py:class:: QwtInterval(minValue=0., maxValue=-1., borderFlags=None)\n\n Build an interval with from min/max values\n\n :param float minValue: Minimum value\n :param float maxValue: Maximum value\n :param int borderFlags: Include/Exclude borders\n', 'IncludeBorders': 0, 'ExcludeMinimum': 1, 'ExcludeMaximum': 2, 'ExcludeBorders': 3, '__init__': , 'setInterval': , 'setBorderFlags': , 'borderFlags': , 'setMinValue': , 'setMaxValue': , 'minValue': , 'maxValue': , 'isValid': , 'width': , '__and__': , '__iand__': , '__or__': , '__ior__': , '__eq__': , '__ne__': , 'isNull': , 'invalidate': , 'normalized': , 'inverted': , 'contains': , 'unite': , 'intersect': , 'intersects': , 'symmetrize': , 'limited': , 'extend': , 'extend_fraction': , '__static_attributes__': ('__borderFlags', '__maxValue', '__minValue'), '__dict__': , '__weakref__': , '__hash__': None, '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA class representing an interval\n\nThe interval is represented by 2 doubles, the lower and the upper limit.\n\n.. py:class:: QwtInterval(minValue=0., maxValue=-1., borderFlags=None)\n\n Build an interval with from min/max values\n\n :param float minValue: Minimum value\n :param float maxValue: Maximum value\n :param int borderFlags: Include/Exclude borders\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__eq__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 17, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__hash__', None, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__iand__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__ior__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.interval', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__ne__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__or__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__borderFlags', '__maxValue', '__minValue'), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'borderFlags', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'contains', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'extend', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'extend_fraction', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'intersect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'intersects', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invalidate', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'inverted', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isNull', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isValid', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'limited', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'maxValue', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'minValue', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'normalized', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setBorderFlags', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setInterval', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setMaxValue', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setMinValue', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'symmetrize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'unite', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'width', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.interval.QwtInterval', , {'members': }, '(minValue=0.0, maxValue=-1.0, borderFlags=None)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.interval.QwtInterval', , {'members': }, ['A class representing an interval', '', 'The interval is represented by 2 doubles, the lower and the upper limit.', '', '.. py:class:: QwtInterval(minValue=0., maxValue=-1., borderFlags=None)', '', ' Build an interval with from min/max values', '', ' :param float minValue: Minimum value', ' :param float maxValue: Maximum value', ' :param int borderFlags: Include/Exclude borders', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'ExcludeBorders', 3, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'ExcludeMaximum', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'ExcludeMinimum', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'IncludeBorders', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__and__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.interval', '__firstlineno__': 17, '__doc__': '\nA class representing an interval\n\nThe interval is represented by 2 doubles, the lower and the upper limit.\n\n.. py:class:: QwtInterval(minValue=0., maxValue=-1., borderFlags=None)\n\n Build an interval with from min/max values\n\n :param float minValue: Minimum value\n :param float maxValue: Maximum value\n :param int borderFlags: Include/Exclude borders\n', 'IncludeBorders': 0, 'ExcludeMinimum': 1, 'ExcludeMaximum': 2, 'ExcludeBorders': 3, '__init__': , 'setInterval': , 'setBorderFlags': , 'borderFlags': , 'setMinValue': , 'setMaxValue': , 'minValue': , 'maxValue': , 'isValid': , 'width': , '__and__': , '__iand__': , '__or__': , '__ior__': , '__eq__': , '__ne__': , 'isNull': , 'invalidate': , 'normalized': , 'inverted': , 'contains': , 'unite': , 'intersect': , 'intersects': , 'symmetrize': , 'limited': , 'extend': , 'extend_fraction': , '__static_attributes__': ('__borderFlags', '__maxValue', '__minValue'), '__dict__': , '__weakref__': , '__hash__': None, '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA class representing an interval\n\nThe interval is represented by 2 doubles, the lower and the upper limit.\n\n.. py:class:: QwtInterval(minValue=0., maxValue=-1., borderFlags=None)\n\n Build an interval with from min/max values\n\n :param float minValue: Minimum value\n :param float maxValue: Maximum value\n :param int borderFlags: Include/Exclude borders\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__eq__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 17, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__hash__', None, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__iand__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__ior__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.interval', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__ne__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__or__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__borderFlags', '__maxValue', '__minValue'), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'borderFlags', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'contains', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'extend', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'extend_fraction', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'intersect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'intersects', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invalidate', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'inverted', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isNull', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isValid', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'limited', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'maxValue', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'minValue', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'normalized', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setBorderFlags', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setInterval', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setMaxValue', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setMinValue', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'symmetrize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'unite', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'width', , False, {'members': }) [autodoc] from qwt.interval import QwtInterval.setInterval [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'setInterval') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.setInterval', , {'members': }, '(minValue, maxValue, borderFlags=None)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.setInterval', , {'members': }, ['Assign the limits of the interval', '', ':param float minValue: Minimum value', ':param float maxValue: Maximum value', ':param int borderFlags: Include/Exclude borders', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.setInterval', , {'members': }, '(minValue, maxValue, borderFlags=None)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.setInterval', , {'members': }, ['Assign the limits of the interval', '', ':param float minValue: Minimum value', ':param float maxValue: Maximum value', ':param int borderFlags: Include/Exclude borders', '']) [autodoc] from qwt.interval import QwtInterval.setBorderFlags [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'setBorderFlags') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.setBorderFlags', , {'members': }, '(borderFlags)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.setBorderFlags', , {'members': }, ['Change the border flags', '', ':param int borderFlags: Include/Exclude borders', '', '.. seealso::', '', ' :py:meth:`borderFlags()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.setBorderFlags', , {'members': }, '(borderFlags)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.setBorderFlags', , {'members': }, ['Change the border flags', '', ':param int borderFlags: Include/Exclude borders', '', '.. seealso::', '', ' :py:meth:`borderFlags()`', '']) [autodoc] from qwt.interval import QwtInterval.borderFlags [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'borderFlags') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.borderFlags', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.borderFlags', , {'members': }, [':return: Border flags', '', '.. seealso::', '', ' :py:meth:`setBorderFlags()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.borderFlags', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.borderFlags', , {'members': }, [':return: Border flags', '', '.. seealso::', '', ' :py:meth:`setBorderFlags()`', '']) [autodoc] from qwt.interval import QwtInterval.setMinValue [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'setMinValue') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.setMinValue', , {'members': }, '(minValue)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.setMinValue', , {'members': }, ['Assign the lower limit of the interval', '', ':param float minValue: Minimum value', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.setMinValue', , {'members': }, '(minValue)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.setMinValue', , {'members': }, ['Assign the lower limit of the interval', '', ':param float minValue: Minimum value', '']) [autodoc] from qwt.interval import QwtInterval.setMaxValue [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'setMaxValue') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.setMaxValue', , {'members': }, '(maxValue)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.setMaxValue', , {'members': }, ['Assign the upper limit of the interval', '', ':param float maxValue: Maximum value', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.setMaxValue', , {'members': }, '(maxValue)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.setMaxValue', , {'members': }, ['Assign the upper limit of the interval', '', ':param float maxValue: Maximum value', '']) [autodoc] from qwt.interval import QwtInterval.minValue [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'minValue') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.minValue', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.minValue', , {'members': }, [':return: Lower limit of the interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.minValue', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.minValue', , {'members': }, [':return: Lower limit of the interval', '']) [autodoc] from qwt.interval import QwtInterval.maxValue [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'maxValue') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.maxValue', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.maxValue', , {'members': }, [':return: Upper limit of the interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.maxValue', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.maxValue', , {'members': }, [':return: Upper limit of the interval', '']) [autodoc] from qwt.interval import QwtInterval.isValid [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'isValid') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.isValid', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.isValid', , {'members': }, ['A interval is valid when minValue() <= maxValue().', 'In case of `QwtInterval.ExcludeBorders` it is true', 'when minValue() < maxValue()', '', ':return: True, when the interval is valid', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.isValid', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.isValid', , {'members': }, ['A interval is valid when minValue() <= maxValue().', 'In case of `QwtInterval.ExcludeBorders` it is true', 'when minValue() < maxValue()', '', ':return: True, when the interval is valid', '']) [autodoc] from qwt.interval import QwtInterval.width [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'width') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.width', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.width', , {'members': }, ['The width of invalid intervals is 0.0, otherwise the result is', 'maxValue() - minValue().', '', ':return: the width of an interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.width', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.width', , {'members': }, ['The width of invalid intervals is 0.0, otherwise the result is', 'maxValue() - minValue().', '', ':return: the width of an interval', '']) [autodoc] from qwt.interval import QwtInterval.isNull [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'isNull') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.isNull', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.isNull', , {'members': }, [':return: true, if isValid() && (minValue() >= maxValue())', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.isNull', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.isNull', , {'members': }, [':return: true, if isValid() && (minValue() >= maxValue())', '']) [autodoc] from qwt.interval import QwtInterval.invalidate [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'invalidate') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.invalidate', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.invalidate', , {'members': }, ['The limits are set to interval [0.0, -1.0]', '', '.. seealso::', '', ' :py:meth:`isValid()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.invalidate', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.invalidate', , {'members': }, ['The limits are set to interval [0.0, -1.0]', '', '.. seealso::', '', ' :py:meth:`isValid()`', '']) [autodoc] from qwt.interval import QwtInterval.normalized [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'normalized') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.normalized', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.normalized', , {'members': }, ['Normalize the limits of the interval', '', 'If maxValue() < minValue() the limits will be inverted.', '', ':return: Normalized interval', '', '.. seealso::', '', ' :py:meth:`isValid()`, :py:meth:`inverted()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.normalized', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.normalized', , {'members': }, ['Normalize the limits of the interval', '', 'If maxValue() < minValue() the limits will be inverted.', '', ':return: Normalized interval', '', '.. seealso::', '', ' :py:meth:`isValid()`, :py:meth:`inverted()`', '']) [autodoc] from qwt.interval import QwtInterval.inverted [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'inverted') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.inverted', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.inverted', , {'members': }, ['Invert the limits of the interval', '', ':return: Inverted interval', '', '.. seealso::', '', ' :py:meth:`normalized()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.inverted', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.inverted', , {'members': }, ['Invert the limits of the interval', '', ':return: Inverted interval', '', '.. seealso::', '', ' :py:meth:`normalized()`', '']) [autodoc] from qwt.interval import QwtInterval.contains [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'contains') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.contains', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.contains', , {'members': }, ['Test if a value is inside an interval', '', ':param float value: Value', ':return: true, if value >= minValue() && value <= maxValue()', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.contains', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.contains', , {'members': }, ['Test if a value is inside an interval', '', ':param float value: Value', ':return: true, if value >= minValue() && value <= maxValue()', '']) [autodoc] from qwt.interval import QwtInterval.unite [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'unite') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.unite', , {'members': }, '(other)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.unite', , {'members': }, ['Unite two intervals', '', ':param qwt.interval.QwtInterval other: other interval to united with', ':return: united interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.unite', , {'members': }, '(other)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.unite', , {'members': }, ['Unite two intervals', '', ':param qwt.interval.QwtInterval other: other interval to united with', ':return: united interval', '']) [autodoc] from qwt.interval import QwtInterval.intersect [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'intersect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.intersect', , {'members': }, '(other)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.intersect', , {'members': }, ['Intersect two intervals', '', ':param qwt.interval.QwtInterval other: other interval to intersect with', ':return: intersected interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.intersect', , {'members': }, '(other)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.intersect', , {'members': }, ['Intersect two intervals', '', ':param qwt.interval.QwtInterval other: other interval to intersect with', ':return: intersected interval', '']) [autodoc] from qwt.interval import QwtInterval.intersects [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'intersects') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.intersects', , {'members': }, '(other)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.intersects', , {'members': }, ['Test if two intervals overlap', '', ':param qwt.interval.QwtInterval other: other interval', ':return: True, when the intervals are intersecting', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.intersects', , {'members': }, '(other)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.intersects', , {'members': }, ['Test if two intervals overlap', '', ':param qwt.interval.QwtInterval other: other interval', ':return: True, when the intervals are intersecting', '']) [autodoc] from qwt.interval import QwtInterval.symmetrize [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'symmetrize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.symmetrize', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.symmetrize', , {'members': }, ['Adjust the limit that is closer to value, so that value becomes', 'the center of the interval.', '', ':param float value: Center', ':return: Interval with value as center', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.symmetrize', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.symmetrize', , {'members': }, ['Adjust the limit that is closer to value, so that value becomes', 'the center of the interval.', '', ':param float value: Center', ':return: Interval with value as center', '']) [autodoc] from qwt.interval import QwtInterval.limited [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'limited') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.limited', , {'members': }, '(lowerBound, upperBound)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.limited', , {'members': }, ['Limit the interval, keeping the border modes', '', ':param float lowerBound: Lower limit', ':param float upperBound: Upper limit', ':return: Limited interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.limited', , {'members': }, '(lowerBound, upperBound)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.limited', , {'members': }, ['Limit the interval, keeping the border modes', '', ':param float lowerBound: Lower limit', ':param float upperBound: Upper limit', ':return: Limited interval', '']) [autodoc] from qwt.interval import QwtInterval.extend [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'extend') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.extend', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.extend', , {'members': }, ['Extend the interval', '', 'If value is below minValue(), value becomes the lower limit.', 'If value is above maxValue(), value becomes the upper limit.', '', 'extend() has no effect for invalid intervals', '', ':param float value: Value', ':return: extended interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.extend', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.extend', , {'members': }, ['Extend the interval', '', 'If value is below minValue(), value becomes the lower limit.', 'If value is above maxValue(), value becomes the upper limit.', '', 'extend() has no effect for invalid intervals', '', ':param float value: Value', ':return: extended interval', '']) [autodoc] from qwt.interval import QwtInterval.extend_fraction [autodoc] import qwt.interval => [autodoc] getattr(_, 'QwtInterval') [autodoc] => [autodoc] getattr(_, 'extend_fraction') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.extend_fraction', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.extend_fraction', , {'members': }, ['Extend the interval by a fraction of its width', '', ':param float value: Fraction', ':return: extended interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.interval.QwtInterval.extend_fraction', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.interval.QwtInterval.extend_fraction', , {'members': }, ['Extend the interval by a fraction of its width', '', ':param float value: Fraction', ':return: extended interval', '']) [autodoc] output: .. py:class:: QwtInterval(minValue=0.0, maxValue=-1.0, borderFlags=None) @@ -4040,7 +4076,7 @@ [app] emitting event: 'viewcode-follow-imported'('qwt.interval', 'QwtInterval.extend_fraction') [app] emitting event: 'viewcode-find-source'('qwt.interval',) reading sources... [ 75%] reference/plot -[app] emitting event: 'env-purge-doc'(, 'reference/plot') +[app] emitting event: 'env-purge-doc'(, 'reference/plot') [app] emitting event: 'source-read'('reference/plot', ['Plot widget fundamentals\n------------------------\n\n.. automodule:: qwt.plot\n\n.. automodule:: qwt.plot_canvas\n\nPlot items\n----------\n\n.. automodule:: qwt.plot_grid\n\n.. automodule:: qwt.plot_curve\n\n.. automodule:: qwt.plot_marker\n\nAdditional plot features\n------------------------\n\n.. automodule:: qwt.legend\n\n.. automodule:: qwt.color_map\n\n.. automodule:: qwt.plot_renderer\n']) [autodoc] /build/reproducible-path/python-qwt-0.12.7/doc/reference/plot.rst:4: input: .. automodule:: qwt.plot @@ -4073,746 +4109,746 @@ [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot.QwtPlot', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot.QwtPlot', , {'members': }, ['A 2-D plotting widget', '', 'QwtPlot is a widget for plotting two-dimensional graphs.', 'An unlimited number of plot items can be displayed on its canvas.', 'Plot items might be curves (:py:class:`qwt.plot_curve.QwtPlotCurve`),', 'markers (:py:class:`qwt.plot_marker.QwtPlotMarker`),', 'the grid (:py:class:`qwt.plot_grid.QwtPlotGrid`), or anything else', 'derived from :py:class:`QwtPlotItem`.', '', 'A plot can have up to four axes, with each plot item attached to an x- and', 'a y axis. The scales at the axes can be explicitly set (`QwtScaleDiv`), or', 'are calculated from the plot items, using algorithms (`QwtScaleEngine`)', 'which can be configured separately for each axis.', '', 'The following example is a good starting point to see how to set up a', 'plot widget::', '', ' from qtpy import QtWidgets as QW', ' import qwt', ' import numpy as np', '', ' app = QW.QApplication([])', ' x = np.linspace(-10, 10, 500)', ' plot = qwt.QwtPlot("Trigonometric functions")', ' plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend)', ' qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True)', ' qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True)', ' plot.resize(600, 300)', ' plot.show()', '', '.. image:: /_static/QwtPlot_example.png', '', '.. py:class:: QwtPlot([title=""], [parent=None])', '', ' :param str title: Title text', ' :param QWidget parent: Parent widget', '', '.. py:data:: itemAttached', '', ' A signal indicating, that an item has been attached/detached', '', ' :param plotItem: Plot item', ' :param on: Attached/Detached', '', '.. py:data:: legendDataChanged', '', ' A signal with the attributes how to update', ' the legend entries for a plot item.', '', ' :param itemInfo: Info about a plot item, build from itemToInfo()', ' :param data: Attributes of the entries (usually <= 1) for the plot item.', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'AXES', [0, 1, 2, 3], True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'BottomLegend', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'LeftLegend', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'RightLegend', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'TopLegend', 3, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA 2-D plotting widget\n\nQwtPlot is a widget for plotting two-dimensional graphs.\nAn unlimited number of plot items can be displayed on its canvas.\nPlot items might be curves (:py:class:`qwt.plot_curve.QwtPlotCurve`),\nmarkers (:py:class:`qwt.plot_marker.QwtPlotMarker`),\nthe grid (:py:class:`qwt.plot_grid.QwtPlotGrid`), or anything else\nderived from :py:class:`QwtPlotItem`.\n\nA plot can have up to four axes, with each plot item attached to an x- and\na y axis. The scales at the axes can be explicitly set (`QwtScaleDiv`), or\nare calculated from the plot items, using algorithms (`QwtScaleEngine`)\nwhich can be configured separately for each axis.\n\nThe following example is a good starting point to see how to set up a\nplot widget::\n\n from qtpy import QtWidgets as QW\n import qwt\n import numpy as np\n\n app = QW.QApplication([])\n x = np.linspace(-10, 10, 500)\n plot = qwt.QwtPlot("Trigonometric functions")\n plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend)\n qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True)\n qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True)\n plot.resize(600, 300)\n plot.show()\n\n.. image:: /_static/QwtPlot_example.png\n\n.. py:class:: QwtPlot([title=""], [parent=None])\n\n :param str title: Title text\n :param QWidget parent: Parent widget\n\n.. py:data:: itemAttached\n\n A signal indicating, that an item has been attached/detached\n\n :param plotItem: Plot item\n :param on: Attached/Detached\n\n.. py:data:: legendDataChanged\n\n A signal with the attributes how to update\n the legend entries for a plot item.\n\n :param itemInfo: Info about a plot item, build from itemToInfo()\n :param data: Attributes of the entries (usually <= 1) for the plot item.\n\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 108, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__axisData', '__data', '__layout_state'), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'attachItem', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'autoRefresh', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'autoReplot', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisAutoScale', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisCnt', 4, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisEnabled', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisFont', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisInterval', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisMargin', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisMaxMajor', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisMaxMinor', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisScaleDiv', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisScaleDraw', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisScaleEngine', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisStepSize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisTitle', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisValid', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'axisWidget', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'canvas', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'canvasBackground', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'canvasMap', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'deleteAxesData', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'detachItems', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawCanvas', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawItems', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'enableAxis', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'event', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'eventFilter', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'exportTo', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'flatStyle', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'footer', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'footerLabel', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'getCanvasMarginsHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'get_layout_state', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'initAxesData', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'insertItem', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'insertLegend', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invTransform', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'itemAttached', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'itemList', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'legend', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'legendDataChanged', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'minimumSizeHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'plotLayout', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'print_', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'removeItem', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'replot', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'resizeEvent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAutoReplot', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxisAutoScale', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxisFont', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxisLabelAlignment', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxisLabelAutoSize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxisLabelRotation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxisMargin', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxisMaxMajor', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxisMaxMinor', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxisScale', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxisScaleDiv', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxisScaleDraw', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxisScaleEngine', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxisTitle', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setCanvas', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setCanvasBackground', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setFlatStyle', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setFooter', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setPlotLayout', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setTitle', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'sizeHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'title', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'titleLabel', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'transform', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateAxes', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateCanvasMargins', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateLayout', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateLegend', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateLegendItems', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'xBottom', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'xTop', 3, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'yLeft', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'yRight', 1, True, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot.QwtPlot', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot.QwtPlot', , {'members': }, ['A 2-D plotting widget', '', 'QwtPlot is a widget for plotting two-dimensional graphs.', 'An unlimited number of plot items can be displayed on its canvas.', 'Plot items might be curves (:py:class:`qwt.plot_curve.QwtPlotCurve`),', 'markers (:py:class:`qwt.plot_marker.QwtPlotMarker`),', 'the grid (:py:class:`qwt.plot_grid.QwtPlotGrid`), or anything else', 'derived from :py:class:`QwtPlotItem`.', '', 'A plot can have up to four axes, with each plot item attached to an x- and', 'a y axis. The scales at the axes can be explicitly set (`QwtScaleDiv`), or', 'are calculated from the plot items, using algorithms (`QwtScaleEngine`)', 'which can be configured separately for each axis.', '', 'The following example is a good starting point to see how to set up a', 'plot widget::', '', ' from qtpy import QtWidgets as QW', ' import qwt', ' import numpy as np', '', ' app = QW.QApplication([])', ' x = np.linspace(-10, 10, 500)', ' plot = qwt.QwtPlot("Trigonometric functions")', ' plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend)', ' qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True)', ' qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True)', ' plot.resize(600, 300)', ' plot.show()', '', '.. image:: /_static/QwtPlot_example.png', '', '.. py:class:: QwtPlot([title=""], [parent=None])', '', ' :param str title: Title text', ' :param QWidget parent: Parent widget', '', '.. py:data:: itemAttached', '', ' A signal indicating, that an item has been attached/detached', '', ' :param plotItem: Plot item', ' :param on: Attached/Detached', '', '.. py:data:: legendDataChanged', '', ' A signal with the attributes how to update', ' the legend entries for a plot item.', '', ' :param itemInfo: Info about a plot item, build from itemToInfo()', ' :param data: Attributes of the entries (usually <= 1) for the plot item.', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'AXES', [0, 1, 2, 3], True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'BottomLegend', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'LeftLegend', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'RightLegend', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'TopLegend', 3, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA 2-D plotting widget\n\nQwtPlot is a widget for plotting two-dimensional graphs.\nAn unlimited number of plot items can be displayed on its canvas.\nPlot items might be curves (:py:class:`qwt.plot_curve.QwtPlotCurve`),\nmarkers (:py:class:`qwt.plot_marker.QwtPlotMarker`),\nthe grid (:py:class:`qwt.plot_grid.QwtPlotGrid`), or anything else\nderived from :py:class:`QwtPlotItem`.\n\nA plot can have up to four axes, with each plot item attached to an x- and\na y axis. The scales at the axes can be explicitly set (`QwtScaleDiv`), or\nare calculated from the plot items, using algorithms (`QwtScaleEngine`)\nwhich can be configured separately for each axis.\n\nThe following example is a good starting point to see how to set up a\nplot widget::\n\n from qtpy import QtWidgets as QW\n import qwt\n import numpy as np\n\n app = QW.QApplication([])\n x = np.linspace(-10, 10, 500)\n plot = qwt.QwtPlot("Trigonometric functions")\n plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend)\n qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True)\n qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True)\n plot.resize(600, 300)\n plot.show()\n\n.. image:: /_static/QwtPlot_example.png\n\n.. py:class:: QwtPlot([title=""], [parent=None])\n\n :param str title: Title text\n :param QWidget parent: Parent widget\n\n.. py:data:: itemAttached\n\n A signal indicating, that an item has been attached/detached\n\n :param plotItem: Plot item\n :param on: Attached/Detached\n\n.. py:data:: legendDataChanged\n\n A signal with the attributes how to update\n the legend entries for a plot item.\n\n :param itemInfo: Info about a plot item, build from itemToInfo()\n :param data: Attributes of the entries (usually <= 1) for the plot item.\n\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 108, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__axisData', '__data', '__layout_state'), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'attachItem', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'autoRefresh', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'autoReplot', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisAutoScale', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisCnt', 4, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisEnabled', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisFont', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisInterval', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisMargin', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisMaxMajor', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisMaxMinor', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisScaleDiv', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisScaleDraw', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisScaleEngine', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisStepSize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisTitle', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisValid', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'axisWidget', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'canvas', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'canvasBackground', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'canvasMap', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'deleteAxesData', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'detachItems', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawCanvas', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawItems', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'enableAxis', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'event', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'eventFilter', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'exportTo', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'flatStyle', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'footer', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'footerLabel', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'getCanvasMarginsHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'get_layout_state', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'initAxesData', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'insertItem', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'insertLegend', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invTransform', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'itemAttached', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'itemList', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'legend', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'legendDataChanged', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'minimumSizeHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'plotLayout', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'print_', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'removeItem', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'replot', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'resizeEvent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAutoReplot', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxisAutoScale', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxisFont', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxisLabelAlignment', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxisLabelAutoSize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxisLabelRotation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxisMargin', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxisMaxMajor', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxisMaxMinor', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxisScale', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxisScaleDiv', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxisScaleDraw', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxisScaleEngine', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxisTitle', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setCanvas', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setCanvasBackground', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setFlatStyle', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setFooter', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setPlotLayout', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setTitle', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'sizeHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'title', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'titleLabel', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'transform', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateAxes', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateCanvasMargins', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateLayout', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateLegend', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateLegendItems', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'xBottom', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'xTop', 3, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'yLeft', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'yRight', 1, True, {'members': }) [autodoc] from qwt.plot import QwtPlot.insertItem [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'insertItem') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.insertItem', , {'members': }, '(item)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.insertItem', , {'members': }, ['Insert a plot item', '', ':param qwt.plot.QwtPlotItem item: PlotItem', '', '.. seealso::', '', ' :py:meth:`removeItem()`', '', '.. note::', '', ' This was a member of QwtPlotDict in older versions.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.insertItem', , {'members': }, '(item)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.insertItem', , {'members': }, ['Insert a plot item', '', ':param qwt.plot.QwtPlotItem item: PlotItem', '', '.. seealso::', '', ' :py:meth:`removeItem()`', '', '.. note::', '', ' This was a member of QwtPlotDict in older versions.', '']) [autodoc] from qwt.plot import QwtPlot.removeItem [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'removeItem') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.removeItem', , {'members': }, '(item)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.removeItem', , {'members': }, ['Remove a plot item', '', ':param qwt.plot.QwtPlotItem item: PlotItem', '', '.. seealso::', '', ' :py:meth:`insertItem()`', '', '.. note::', '', ' This was a member of QwtPlotDict in older versions.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.removeItem', , {'members': }, '(item)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.removeItem', , {'members': }, ['Remove a plot item', '', ':param qwt.plot.QwtPlotItem item: PlotItem', '', '.. seealso::', '', ' :py:meth:`insertItem()`', '', '.. note::', '', ' This was a member of QwtPlotDict in older versions.', '']) [autodoc] from qwt.plot import QwtPlot.detachItems [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'detachItems') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.detachItems', , {'members': }, '(rtti=None)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.detachItems', , {'members': }, ['Detach items from the dictionary', '', ':param rtti: In case of `QwtPlotItem.Rtti_PlotItem` or None (default) detach all items otherwise only those items of the type rtti.', ':type rtti: int or None', '', '.. note::', '', ' This was a member of QwtPlotDict in older versions.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.detachItems', , {'members': }, '(rtti=None)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.detachItems', , {'members': }, ['Detach items from the dictionary', '', ':param rtti: In case of `QwtPlotItem.Rtti_PlotItem` or None (default) detach all items otherwise only those items of the type rtti.', ':type rtti: int or None', '', '.. note::', '', ' This was a member of QwtPlotDict in older versions.', '']) [autodoc] from qwt.plot import QwtPlot.itemList [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'itemList') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.itemList', , {'members': }, '(rtti=None)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.itemList', , {'members': }, ['A list of attached plot items.', '', 'Use caution when iterating these lists, as removing/detaching an', 'item will invalidate the iterator. Instead you can place pointers', 'to objects to be removed in a removal list, and traverse that list', 'later.', '', ':param int rtti: In case of `QwtPlotItem.Rtti_PlotItem` detach all items otherwise only those items of the type rtti.', ':return: List of all attached plot items of a specific type. If rtti is None, return a list of all attached plot items.', '', '.. note::', '', ' This was a member of QwtPlotDict in older versions.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.itemList', , {'members': }, '(rtti=None)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.itemList', , {'members': }, ['A list of attached plot items.', '', 'Use caution when iterating these lists, as removing/detaching an', 'item will invalidate the iterator. Instead you can place pointers', 'to objects to be removed in a removal list, and traverse that list', 'later.', '', ':param int rtti: In case of `QwtPlotItem.Rtti_PlotItem` detach all items otherwise only those items of the type rtti.', ':return: List of all attached plot items of a specific type. If rtti is None, return a list of all attached plot items.', '', '.. note::', '', ' This was a member of QwtPlotDict in older versions.', '']) [autodoc] from qwt.plot import QwtPlot.setFlatStyle [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setFlatStyle') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setFlatStyle', , {'members': }, '(state)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setFlatStyle', , {'members': }, ['Set or reset the flatStyle option', '', 'If the flatStyle option is set, the plot will be', 'rendered without any margin (scales, canvas, layout).', '', 'Enabling this option makes the plot look flat and compact.', '', 'The flatStyle option is set to True by default.', '', ':param bool state: True or False.', '', '.. seealso::', '', ' :py:meth:`flatStyle()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setFlatStyle', , {'members': }, '(state)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setFlatStyle', , {'members': }, ['Set or reset the flatStyle option', '', 'If the flatStyle option is set, the plot will be', 'rendered without any margin (scales, canvas, layout).', '', 'Enabling this option makes the plot look flat and compact.', '', 'The flatStyle option is set to True by default.', '', ':param bool state: True or False.', '', '.. seealso::', '', ' :py:meth:`flatStyle()`', '']) [autodoc] from qwt.plot import QwtPlot.flatStyle [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'flatStyle') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.flatStyle', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.flatStyle', , {'members': }, [':return: True if the flatStyle option is set.', '', '.. seealso::', '', ' :py:meth:`setFlatStyle()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.flatStyle', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.flatStyle', , {'members': }, [':return: True if the flatStyle option is set.', '', '.. seealso::', '', ' :py:meth:`setFlatStyle()`', '']) [autodoc] from qwt.plot import QwtPlot.initAxesData [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'initAxesData') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.initAxesData', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.initAxesData', , {'members': }, ['Initialize axes', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.initAxesData', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.initAxesData', , {'members': }, ['Initialize axes', '']) [autodoc] from qwt.plot import QwtPlot.axisWidget [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisWidget') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisWidget', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisWidget', , {'members': }, [':param int axisId: Axis index', ':return: Scale widget of the specified axis, or None if axisId is invalid.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisWidget', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisWidget', , {'members': }, [':param int axisId: Axis index', ':return: Scale widget of the specified axis, or None if axisId is invalid.', '']) [autodoc] from qwt.plot import QwtPlot.setAxisScaleEngine [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAxisScaleEngine') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisScaleEngine', , {'members': }, '(axisId, scaleEngine)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisScaleEngine', , {'members': }, ['Change the scale engine for an axis', '', ':param int axisId: Axis index', ':param qwt.scale_engine.QwtScaleEngine scaleEngine: Scale engine', '', '.. seealso::', '', ' :py:meth:`axisScaleEngine()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisScaleEngine', , {'members': }, '(axisId, scaleEngine)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisScaleEngine', , {'members': }, ['Change the scale engine for an axis', '', ':param int axisId: Axis index', ':param qwt.scale_engine.QwtScaleEngine scaleEngine: Scale engine', '', '.. seealso::', '', ' :py:meth:`axisScaleEngine()`', '']) [autodoc] from qwt.plot import QwtPlot.axisScaleEngine [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisScaleEngine') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisScaleEngine', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisScaleEngine', , {'members': }, [':param int axisId: Axis index', ':return: Scale engine for a specific axis', '', '.. seealso::', '', ' :py:meth:`setAxisScaleEngine()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisScaleEngine', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisScaleEngine', , {'members': }, [':param int axisId: Axis index', ':return: Scale engine for a specific axis', '', '.. seealso::', '', ' :py:meth:`setAxisScaleEngine()`', '']) [autodoc] from qwt.plot import QwtPlot.axisAutoScale [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisAutoScale') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisAutoScale', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisAutoScale', , {'members': }, [':param int axisId: Axis index', ':return: True, if autoscaling is enabled', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisAutoScale', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisAutoScale', , {'members': }, [':param int axisId: Axis index', ':return: True, if autoscaling is enabled', '']) [autodoc] from qwt.plot import QwtPlot.axisEnabled [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisEnabled') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisEnabled', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisEnabled', , {'members': }, [':param int axisId: Axis index', ':return: True, if a specified axis is enabled', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisEnabled', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisEnabled', , {'members': }, [':param int axisId: Axis index', ':return: True, if a specified axis is enabled', '']) [autodoc] from qwt.plot import QwtPlot.axisFont [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisFont') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisFont', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisFont', , {'members': }, [':param int axisId: Axis index', ':return: The font of the scale labels for a specified axis', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisFont', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisFont', , {'members': }, [':param int axisId: Axis index', ':return: The font of the scale labels for a specified axis', '']) [autodoc] from qwt.plot import QwtPlot.axisMaxMajor [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisMaxMajor') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisMaxMajor', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisMaxMajor', , {'members': }, [':param int axisId: Axis index', ':return: The maximum number of major ticks for a specified axis', '', '.. seealso::', '', ' :py:meth:`setAxisMaxMajor()`,', ' :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisMaxMajor', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisMaxMajor', , {'members': }, [':param int axisId: Axis index', ':return: The maximum number of major ticks for a specified axis', '', '.. seealso::', '', ' :py:meth:`setAxisMaxMajor()`,', ' :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`', '']) [autodoc] from qwt.plot import QwtPlot.axisMaxMinor [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisMaxMinor') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisMaxMinor', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisMaxMinor', , {'members': }, [':param int axisId: Axis index', ':return: The maximum number of minor ticks for a specified axis', '', '.. seealso::', '', ' :py:meth:`setAxisMaxMinor()`,', ' :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisMaxMinor', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisMaxMinor', , {'members': }, [':param int axisId: Axis index', ':return: The maximum number of minor ticks for a specified axis', '', '.. seealso::', '', ' :py:meth:`setAxisMaxMinor()`,', ' :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`', '']) [autodoc] from qwt.plot import QwtPlot.axisScaleDiv [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisScaleDiv') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisScaleDiv', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisScaleDiv', , {'members': }, [':param int axisId: Axis index', ':return: The scale division of a specified axis', '', 'axisScaleDiv(axisId).lowerBound(), axisScaleDiv(axisId).upperBound()', 'are the current limits of the axis scale.', '', '.. seealso::', '', ' :py:class:`qwt.scale_div.QwtScaleDiv`,', ' :py:meth:`setAxisScaleDiv()`,', ' :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisScaleDiv', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisScaleDiv', , {'members': }, [':param int axisId: Axis index', ':return: The scale division of a specified axis', '', 'axisScaleDiv(axisId).lowerBound(), axisScaleDiv(axisId).upperBound()', 'are the current limits of the axis scale.', '', '.. seealso::', '', ' :py:class:`qwt.scale_div.QwtScaleDiv`,', ' :py:meth:`setAxisScaleDiv()`,', ' :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`', '']) [autodoc] from qwt.plot import QwtPlot.axisScaleDraw [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisScaleDraw') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisScaleDraw', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisScaleDraw', , {'members': }, [':param int axisId: Axis index', ':return: Specified scaleDraw for axis, or NULL if axis is invalid.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisScaleDraw', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisScaleDraw', , {'members': }, [':param int axisId: Axis index', ':return: Specified scaleDraw for axis, or NULL if axis is invalid.', '']) [autodoc] from qwt.plot import QwtPlot.axisStepSize [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisStepSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisStepSize', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisStepSize', , {'members': }, [':param int axisId: Axis index', ':return: step size parameter value', '', "This doesn't need to be the step size of the current scale.", '', '.. seealso::', '', ' :py:meth:`setAxisScale()`,', ' :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisStepSize', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisStepSize', , {'members': }, [':param int axisId: Axis index', ':return: step size parameter value', '', "This doesn't need to be the step size of the current scale.", '', '.. seealso::', '', ' :py:meth:`setAxisScale()`,', ' :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`', '']) [autodoc] from qwt.plot import QwtPlot.axisMargin [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisMargin') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisMargin', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisMargin', , {'members': }, [':param int axisId: Axis index', ':return: Margin in % of the canvas size', '', '.. seealso::', '', ' :py:meth:`setAxisMargin()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisMargin', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisMargin', , {'members': }, [':param int axisId: Axis index', ':return: Margin in % of the canvas size', '', '.. seealso::', '', ' :py:meth:`setAxisMargin()`', '']) [autodoc] from qwt.plot import QwtPlot.axisInterval [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisInterval') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisInterval', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisInterval', , {'members': }, [':param int axisId: Axis index', ':return: The current interval of the specified axis', '', 'This is only a convenience function for axisScaleDiv(axisId).interval()', '', '.. seealso::', '', ' :py:class:`qwt.scale_div.QwtScaleDiv`,', ' :py:meth:`axisScaleDiv()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisInterval', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisInterval', , {'members': }, [':param int axisId: Axis index', ':return: The current interval of the specified axis', '', 'This is only a convenience function for axisScaleDiv(axisId).interval()', '', '.. seealso::', '', ' :py:class:`qwt.scale_div.QwtScaleDiv`,', ' :py:meth:`axisScaleDiv()`', '']) [autodoc] from qwt.plot import QwtPlot.axisTitle [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisTitle') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisTitle', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisTitle', , {'members': }, [':param int axisId: Axis index', ':return: Title of a specified axis', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisTitle', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisTitle', , {'members': }, [':param int axisId: Axis index', ':return: Title of a specified axis', '']) [autodoc] from qwt.plot import QwtPlot.enableAxis [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'enableAxis') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.enableAxis', , {'members': }, '(axisId, tf=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.enableAxis', , {'members': }, ['Enable or disable a specified axis', '', 'When an axis is disabled, this only means that it is not', 'visible on the screen. Curves, markers and can be attached', 'to disabled axes, and transformation of screen coordinates', 'into values works as normal.', '', 'Only xBottom and yLeft are enabled by default.', '', ':param int axisId: Axis index', ':param bool tf: True (enabled) or False (disabled)', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.enableAxis', , {'members': }, '(axisId, tf=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.enableAxis', , {'members': }, ['Enable or disable a specified axis', '', 'When an axis is disabled, this only means that it is not', 'visible on the screen. Curves, markers and can be attached', 'to disabled axes, and transformation of screen coordinates', 'into values works as normal.', '', 'Only xBottom and yLeft are enabled by default.', '', ':param int axisId: Axis index', ':param bool tf: True (enabled) or False (disabled)', '']) [autodoc] from qwt.plot import QwtPlot.invTransform [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'invTransform') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.invTransform', , {'members': }, '(axisId, pos)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.invTransform', , {'members': }, ['Transform the x or y coordinate of a position in the', 'drawing region into a value.', '', ':param int axisId: Axis index', ':param int pos: position', '', '.. warning::', '', ' The position can be an x or a y coordinate,', ' depending on the specified axis.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.invTransform', , {'members': }, '(axisId, pos)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.invTransform', , {'members': }, ['Transform the x or y coordinate of a position in the', 'drawing region into a value.', '', ':param int axisId: Axis index', ':param int pos: position', '', '.. warning::', '', ' The position can be an x or a y coordinate,', ' depending on the specified axis.', '']) [autodoc] from qwt.plot import QwtPlot.transform [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'transform') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.transform', , {'members': }, '(axisId, value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.transform', , {'members': }, ['Transform a value into a coordinate in the plotting region', '', ':param int axisId: Axis index', ':param fload value: Value', ':return: X or Y coordinate in the plotting region corresponding to the value.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.transform', , {'members': }, '(axisId, value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.transform', , {'members': }, ['Transform a value into a coordinate in the plotting region', '', ':param int axisId: Axis index', ':param fload value: Value', ':return: X or Y coordinate in the plotting region corresponding to the value.', '']) [autodoc] from qwt.plot import QwtPlot.setAxisFont [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAxisFont') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisFont', , {'members': }, '(axisId, font)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisFont', , {'members': }, ['Change the font of an axis', '', ':param int axisId: Axis index', ':param QFont font: Font', '', '.. warning::', '', ' This function changes the font of the tick labels,', ' not of the axis title.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisFont', , {'members': }, '(axisId, font)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisFont', , {'members': }, ['Change the font of an axis', '', ':param int axisId: Axis index', ':param QFont font: Font', '', '.. warning::', '', ' This function changes the font of the tick labels,', ' not of the axis title.', '']) [autodoc] from qwt.plot import QwtPlot.setAxisAutoScale [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAxisAutoScale') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisAutoScale', , {'members': }, '(axisId, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisAutoScale', , {'members': }, ['Enable autoscaling for a specified axis', '', 'This member function is used to switch back to autoscaling mode', 'after a fixed scale has been set. Autoscaling is enabled by default.', '', ':param int axisId: Axis index', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`setAxisScale()`, :py:meth:`setAxisScaleDiv()`,', ' :py:meth:`updateAxes()`', '', '.. note::', '', ' The autoscaling flag has no effect until updateAxes() is executed', ' ( called by replot() ).', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisAutoScale', , {'members': }, '(axisId, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisAutoScale', , {'members': }, ['Enable autoscaling for a specified axis', '', 'This member function is used to switch back to autoscaling mode', 'after a fixed scale has been set. Autoscaling is enabled by default.', '', ':param int axisId: Axis index', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`setAxisScale()`, :py:meth:`setAxisScaleDiv()`,', ' :py:meth:`updateAxes()`', '', '.. note::', '', ' The autoscaling flag has no effect until updateAxes() is executed', ' ( called by replot() ).', '']) [autodoc] from qwt.plot import QwtPlot.setAxisScale [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAxisScale') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisScale', , {'members': }, '(axisId, min_, max_, stepSize=0)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisScale', , {'members': }, ['Disable autoscaling and specify a fixed scale for a selected axis.', '', 'In updateAxes() the scale engine calculates a scale division from the', 'specified parameters, that will be assigned to the scale widget. So', 'updates of the scale widget usually happen delayed with the next replot.', '', ':param int axisId: Axis index', ':param float min_: Minimum of the scale', ':param float max_: Maximum of the scale', ':param float stepSize: Major step size. If step == 0, the step size is calculated automatically using the maxMajor setting.', '', '.. seealso::', '', ' :py:meth:`setAxisMaxMajor()`, :py:meth:`setAxisAutoScale()`,', ' :py:meth:`axisStepSize()`,', ' :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisScale', , {'members': }, '(axisId, min_, max_, stepSize=0)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisScale', , {'members': }, ['Disable autoscaling and specify a fixed scale for a selected axis.', '', 'In updateAxes() the scale engine calculates a scale division from the', 'specified parameters, that will be assigned to the scale widget. So', 'updates of the scale widget usually happen delayed with the next replot.', '', ':param int axisId: Axis index', ':param float min_: Minimum of the scale', ':param float max_: Maximum of the scale', ':param float stepSize: Major step size. If step == 0, the step size is calculated automatically using the maxMajor setting.', '', '.. seealso::', '', ' :py:meth:`setAxisMaxMajor()`, :py:meth:`setAxisAutoScale()`,', ' :py:meth:`axisStepSize()`,', ' :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`', '']) [autodoc] from qwt.plot import QwtPlot.setAxisScaleDiv [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAxisScaleDiv') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisScaleDiv', , {'members': }, '(axisId, scaleDiv)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisScaleDiv', , {'members': }, ['Disable autoscaling and specify a fixed scale for a selected axis.', '', 'The scale division will be stored locally only until the next call', 'of updateAxes(). So updates of the scale widget usually happen delayed with', 'the next replot.', '', ':param int axisId: Axis index', ':param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division', '', '.. seealso::', '', ' :py:meth:`setAxisScale()`, :py:meth:`setAxisAutoScale()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisScaleDiv', , {'members': }, '(axisId, scaleDiv)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisScaleDiv', , {'members': }, ['Disable autoscaling and specify a fixed scale for a selected axis.', '', 'The scale division will be stored locally only until the next call', 'of updateAxes(). So updates of the scale widget usually happen delayed with', 'the next replot.', '', ':param int axisId: Axis index', ':param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division', '', '.. seealso::', '', ' :py:meth:`setAxisScale()`, :py:meth:`setAxisAutoScale()`', '']) [autodoc] from qwt.plot import QwtPlot.setAxisScaleDraw [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAxisScaleDraw') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisScaleDraw', , {'members': }, '(axisId, scaleDraw)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisScaleDraw', , {'members': }, ['Set a scale draw', '', ':param int axisId: Axis index', ':param qwt.scale_draw.QwtScaleDraw scaleDraw: Object responsible for drawing scales.', '', 'By passing scaleDraw it is possible to extend QwtScaleDraw', 'functionality and let it take place in QwtPlot. Please note', 'that scaleDraw has to be created with new and will be deleted', 'by the corresponding QwtScale member ( like a child object ).', '', '.. seealso::', '', ' :py:class:`qwt.scale_draw.QwtScaleDraw`,', ' :py:class:`qwt.scale_widget.QwtScaleWigdet`', '', '.. warning::', '', ' The attributes of scaleDraw will be overwritten by those of the', ' previous QwtScaleDraw.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisScaleDraw', , {'members': }, '(axisId, scaleDraw)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisScaleDraw', , {'members': }, ['Set a scale draw', '', ':param int axisId: Axis index', ':param qwt.scale_draw.QwtScaleDraw scaleDraw: Object responsible for drawing scales.', '', 'By passing scaleDraw it is possible to extend QwtScaleDraw', 'functionality and let it take place in QwtPlot. Please note', 'that scaleDraw has to be created with new and will be deleted', 'by the corresponding QwtScale member ( like a child object ).', '', '.. seealso::', '', ' :py:class:`qwt.scale_draw.QwtScaleDraw`,', ' :py:class:`qwt.scale_widget.QwtScaleWigdet`', '', '.. warning::', '', ' The attributes of scaleDraw will be overwritten by those of the', ' previous QwtScaleDraw.', '']) [autodoc] from qwt.plot import QwtPlot.setAxisLabelAlignment [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAxisLabelAlignment') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisLabelAlignment', , {'members': }, '(axisId, alignment)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisLabelAlignment', , {'members': }, ['Change the alignment of the tick labels', '', ':param int axisId: Axis index', ":param Qt.Alignment alignment: Or'd Qt.AlignmentFlags", '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisLabelAlignment', , {'members': }, '(axisId, alignment)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisLabelAlignment', , {'members': }, ['Change the alignment of the tick labels', '', ':param int axisId: Axis index', ":param Qt.Alignment alignment: Or'd Qt.AlignmentFlags", '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()`', '']) [autodoc] from qwt.plot import QwtPlot.setAxisLabelRotation [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAxisLabelRotation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisLabelRotation', , {'members': }, '(axisId, rotation)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisLabelRotation', , {'members': }, ['Rotate all tick labels', '', ':param int axisId: Axis index', ':param float rotation: Angle in degrees. When changing the label rotation, the label alignment might be adjusted too.', '', '.. seealso::', '', ' :py:meth:`setLabelRotation()`, :py:meth:`setAxisLabelAlignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisLabelRotation', , {'members': }, '(axisId, rotation)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisLabelRotation', , {'members': }, ['Rotate all tick labels', '', ':param int axisId: Axis index', ':param float rotation: Angle in degrees. When changing the label rotation, the label alignment might be adjusted too.', '', '.. seealso::', '', ' :py:meth:`setLabelRotation()`, :py:meth:`setAxisLabelAlignment()`', '']) [autodoc] from qwt.plot import QwtPlot.setAxisLabelAutoSize [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAxisLabelAutoSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisLabelAutoSize', , {'members': }, '(axisId, state)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisLabelAutoSize', , {'members': }, ['Set tick labels automatic size option (default: on)', '', ':param int axisId: Axis index', ':param bool state: On/off', '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisLabelAutoSize', , {'members': }, '(axisId, state)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisLabelAutoSize', , {'members': }, ['Set tick labels automatic size option (default: on)', '', ':param int axisId: Axis index', ':param bool state: On/off', '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()`', '']) [autodoc] from qwt.plot import QwtPlot.setAxisMaxMinor [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAxisMaxMinor') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisMaxMinor', , {'members': }, '(axisId, maxMinor)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisMaxMinor', , {'members': }, ['Set the maximum number of minor scale intervals for a specified axis', '', ':param int axisId: Axis index', ':param int maxMinor: Maximum number of minor steps', '', '.. seealso::', '', ' :py:meth:`axisMaxMinor()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisMaxMinor', , {'members': }, '(axisId, maxMinor)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisMaxMinor', , {'members': }, ['Set the maximum number of minor scale intervals for a specified axis', '', ':param int axisId: Axis index', ':param int maxMinor: Maximum number of minor steps', '', '.. seealso::', '', ' :py:meth:`axisMaxMinor()`', '']) [autodoc] from qwt.plot import QwtPlot.setAxisMaxMajor [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAxisMaxMajor') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisMaxMajor', , {'members': }, '(axisId, maxMajor)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisMaxMajor', , {'members': }, ['Set the maximum number of major scale intervals for a specified axis', '', ':param int axisId: Axis index', ':param int maxMajor: Maximum number of major steps', '', '.. seealso::', '', ' :py:meth:`axisMaxMajor()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisMaxMajor', , {'members': }, '(axisId, maxMajor)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisMaxMajor', , {'members': }, ['Set the maximum number of major scale intervals for a specified axis', '', ':param int axisId: Axis index', ':param int maxMajor: Maximum number of major steps', '', '.. seealso::', '', ' :py:meth:`axisMaxMajor()`', '']) [autodoc] from qwt.plot import QwtPlot.setAxisMargin [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAxisMargin') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisMargin', , {'members': }, '(axisId, margin)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisMargin', , {'members': }, ['Set the margin of the scale widget', '', ':param int axisId: Axis index', ':param float margin: Margin in % of the canvas size', '', '.. seealso::', '', ' :py:meth:`axisMargin()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisMargin', , {'members': }, '(axisId, margin)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisMargin', , {'members': }, ['Set the margin of the scale widget', '', ':param int axisId: Axis index', ':param float margin: Margin in % of the canvas size', '', '.. seealso::', '', ' :py:meth:`axisMargin()`', '']) [autodoc] from qwt.plot import QwtPlot.setAxisTitle [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAxisTitle') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisTitle', , {'members': }, '(axisId, title)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisTitle', , {'members': }, ['Change the title of a specified axis', '', ':param int axisId: Axis index', ':param title: axis title', ':type title: qwt.text.QwtText or str', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAxisTitle', , {'members': }, '(axisId, title)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAxisTitle', , {'members': }, ['Change the title of a specified axis', '', ':param int axisId: Axis index', ':param title: axis title', ':type title: qwt.text.QwtText or str', '']) [autodoc] from qwt.plot import QwtPlot.updateAxes [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'updateAxes') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.updateAxes', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.updateAxes', , {'members': }, ['Rebuild the axes scales', '', 'In case of autoscaling the boundaries of a scale are calculated', 'from the bounding rectangles of all plot items, having the', '`QwtPlotItem.AutoScale` flag enabled (`QwtScaleEngine.autoScale()`).', 'Then a scale division is calculated (`QwtScaleEngine.didvideScale()`)', 'and assigned to scale widget.', '', 'When the scale boundaries have been assigned with `setAxisScale()` a', 'scale division is calculated (`QwtScaleEngine.didvideScale()`)', 'for this interval and assigned to the scale widget.', '', 'When the scale has been set explicitly by `setAxisScaleDiv()` the', 'locally stored scale division gets assigned to the scale widget.', '', 'The scale widget indicates modifications by emitting a', '`QwtScaleWidget.scaleDivChanged()` signal.', '', '`updateAxes()` is usually called by `replot()`.', '', '.. seealso::', '', ' :py:meth:`setAxisAutoScale()`, :py:meth:`setAxisScale()`,', ' :py:meth:`setAxisScaleDiv()`, :py:meth:`replot()`,', ' :py:meth:`QwtPlotItem.boundingRect()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.updateAxes', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.updateAxes', , {'members': }, ['Rebuild the axes scales', '', 'In case of autoscaling the boundaries of a scale are calculated', 'from the bounding rectangles of all plot items, having the', '`QwtPlotItem.AutoScale` flag enabled (`QwtScaleEngine.autoScale()`).', 'Then a scale division is calculated (`QwtScaleEngine.didvideScale()`)', 'and assigned to scale widget.', '', 'When the scale boundaries have been assigned with `setAxisScale()` a', 'scale division is calculated (`QwtScaleEngine.didvideScale()`)', 'for this interval and assigned to the scale widget.', '', 'When the scale has been set explicitly by `setAxisScaleDiv()` the', 'locally stored scale division gets assigned to the scale widget.', '', 'The scale widget indicates modifications by emitting a', '`QwtScaleWidget.scaleDivChanged()` signal.', '', '`updateAxes()` is usually called by `replot()`.', '', '.. seealso::', '', ' :py:meth:`setAxisAutoScale()`, :py:meth:`setAxisScale()`,', ' :py:meth:`setAxisScaleDiv()`, :py:meth:`replot()`,', ' :py:meth:`QwtPlotItem.boundingRect()`', '']) [autodoc] from qwt.plot import QwtPlot.setCanvas [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setCanvas') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setCanvas', , {'members': }, '(canvas)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setCanvas', , {'members': }, ['Set the drawing canvas of the plot widget.', '', 'The default canvas is a `QwtPlotCanvas`.', '', ':param QWidget canvas: Canvas Widget', '', '.. seealso::', '', ' :py:meth:`canvas()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setCanvas', , {'members': }, '(canvas)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setCanvas', , {'members': }, ['Set the drawing canvas of the plot widget.', '', 'The default canvas is a `QwtPlotCanvas`.', '', ':param QWidget canvas: Canvas Widget', '', '.. seealso::', '', ' :py:meth:`canvas()`', '']) [autodoc] from qwt.plot import QwtPlot.event [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'event') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.event', , {'members': }, '(self, e: Optional[QEvent])', 'bool') -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.event', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.event', , {'members': }, '(self, e: Optional[QEvent])', 'bool') +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.event', , {'members': }, []) [autodoc] from qwt.plot import QwtPlot.eventFilter [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'eventFilter') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.eventFilter', , {'members': }, '(self, a0: Optional[QObject], a1: Optional[QEvent])', 'bool') -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.eventFilter', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.eventFilter', , {'members': }, '(self, a0: Optional[QObject], a1: Optional[QEvent])', 'bool') +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.eventFilter', , {'members': }, []) [autodoc] from qwt.plot import QwtPlot.autoRefresh [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'autoRefresh') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.autoRefresh', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.autoRefresh', , {'members': }, ['Replots the plot if :py:meth:`autoReplot()` is True.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.autoRefresh', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.autoRefresh', , {'members': }, ['Replots the plot if :py:meth:`autoReplot()` is True.', '']) [autodoc] from qwt.plot import QwtPlot.setAutoReplot [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setAutoReplot') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAutoReplot', , {'members': }, '(tf=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAutoReplot', , {'members': }, ['Set or reset the autoReplot option', '', 'If the autoReplot option is set, the plot will be', 'updated implicitly by manipulating member functions.', 'Since this may be time-consuming, it is recommended', 'to leave this option switched off and call :py:meth:`replot()`', 'explicitly if necessary.', '', 'The autoReplot option is set to false by default, which', 'means that the user has to call :py:meth:`replot()` in order', 'to make changes visible.', '', ':param bool tf: True or False. Defaults to True.', '', '.. seealso::', '', ' :py:meth:`autoReplot()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setAutoReplot', , {'members': }, '(tf=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setAutoReplot', , {'members': }, ['Set or reset the autoReplot option', '', 'If the autoReplot option is set, the plot will be', 'updated implicitly by manipulating member functions.', 'Since this may be time-consuming, it is recommended', 'to leave this option switched off and call :py:meth:`replot()`', 'explicitly if necessary.', '', 'The autoReplot option is set to false by default, which', 'means that the user has to call :py:meth:`replot()` in order', 'to make changes visible.', '', ':param bool tf: True or False. Defaults to True.', '', '.. seealso::', '', ' :py:meth:`autoReplot()`', '']) [autodoc] from qwt.plot import QwtPlot.autoReplot [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'autoReplot') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.autoReplot', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.autoReplot', , {'members': }, [':return: True if the autoReplot option is set.', '', '.. seealso::', '', ' :py:meth:`setAutoReplot()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.autoReplot', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.autoReplot', , {'members': }, [':return: True if the autoReplot option is set.', '', '.. seealso::', '', ' :py:meth:`setAutoReplot()`', '']) [autodoc] from qwt.plot import QwtPlot.setTitle [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setTitle') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setTitle', , {'members': }, '(title)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setTitle', , {'members': }, ["Change the plot's title", '', ':param title: New title', ':type title: str or qwt.text.QwtText', '', '.. seealso::', '', ' :py:meth:`title()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setTitle', , {'members': }, '(title)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setTitle', , {'members': }, ["Change the plot's title", '', ':param title: New title', ':type title: str or qwt.text.QwtText', '', '.. seealso::', '', ' :py:meth:`title()`', '']) [autodoc] from qwt.plot import QwtPlot.title [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'title') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.title', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.title', , {'members': }, [':return: Title of the plot', '', '.. seealso::', '', ' :py:meth:`setTitle()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.title', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.title', , {'members': }, [':return: Title of the plot', '', '.. seealso::', '', ' :py:meth:`setTitle()`', '']) [autodoc] from qwt.plot import QwtPlot.titleLabel [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'titleLabel') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.titleLabel', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.titleLabel', , {'members': }, [':return: Title label widget.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.titleLabel', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.titleLabel', , {'members': }, [':return: Title label widget.', '']) [autodoc] from qwt.plot import QwtPlot.setFooter [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setFooter') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setFooter', , {'members': }, '(text)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setFooter', , {'members': }, ['Change the text the footer', '', ':param text: New text of the footer', ':type text: str or qwt.text.QwtText', '', '.. seealso::', '', ' :py:meth:`footer()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setFooter', , {'members': }, '(text)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setFooter', , {'members': }, ['Change the text the footer', '', ':param text: New text of the footer', ':type text: str or qwt.text.QwtText', '', '.. seealso::', '', ' :py:meth:`footer()`', '']) [autodoc] from qwt.plot import QwtPlot.footer [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'footer') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.footer', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.footer', , {'members': }, [':return: Text of the footer', '', '.. seealso::', '', ' :py:meth:`setFooter()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.footer', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.footer', , {'members': }, [':return: Text of the footer', '', '.. seealso::', '', ' :py:meth:`setFooter()`', '']) [autodoc] from qwt.plot import QwtPlot.footerLabel [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'footerLabel') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.footerLabel', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.footerLabel', , {'members': }, [':return: Footer label widget.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.footerLabel', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.footerLabel', , {'members': }, [':return: Footer label widget.', '']) [autodoc] from qwt.plot import QwtPlot.setPlotLayout [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setPlotLayout') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setPlotLayout', , {'members': }, '(layout)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setPlotLayout', , {'members': }, ['Assign a new plot layout', '', ':param layout: Layout', ':type layout: qwt.plot_layout.QwtPlotLayout', '', '.. seealso::', '', ' :py:meth:`plotLayout()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setPlotLayout', , {'members': }, '(layout)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setPlotLayout', , {'members': }, ['Assign a new plot layout', '', ':param layout: Layout', ':type layout: qwt.plot_layout.QwtPlotLayout', '', '.. seealso::', '', ' :py:meth:`plotLayout()`', '']) [autodoc] from qwt.plot import QwtPlot.plotLayout [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'plotLayout') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.plotLayout', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.plotLayout', , {'members': }, [":return: the plot's layout", '', '.. seealso::', '', ' :py:meth:`setPlotLayout()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.plotLayout', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.plotLayout', , {'members': }, [":return: the plot's layout", '', '.. seealso::', '', ' :py:meth:`setPlotLayout()`', '']) [autodoc] from qwt.plot import QwtPlot.legend [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'legend') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.legend', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.legend', , {'members': }, [":return: the plot's legend", '', '.. seealso::', '', ' :py:meth:`insertLegend()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.legend', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.legend', , {'members': }, [":return: the plot's legend", '', '.. seealso::', '', ' :py:meth:`insertLegend()`', '']) [autodoc] from qwt.plot import QwtPlot.canvas [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'canvas') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.canvas', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.canvas', , {'members': }, [":return: the plot's canvas", '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.canvas', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.canvas', , {'members': }, [":return: the plot's canvas", '']) [autodoc] from qwt.plot import QwtPlot.sizeHint [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'sizeHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.sizeHint', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.sizeHint', , {'members': }, [':return: Size hint for the plot widget', '', '.. seealso::', '', ' :py:meth:`minimumSizeHint()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.sizeHint', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.sizeHint', , {'members': }, [':return: Size hint for the plot widget', '', '.. seealso::', '', ' :py:meth:`minimumSizeHint()`', '']) [autodoc] from qwt.plot import QwtPlot.minimumSizeHint [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'minimumSizeHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.minimumSizeHint', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.minimumSizeHint', , {'members': }, [':return: Return a minimum size hint', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.minimumSizeHint', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.minimumSizeHint', , {'members': }, [':return: Return a minimum size hint', '']) [autodoc] from qwt.plot import QwtPlot.resizeEvent [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'resizeEvent') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.resizeEvent', , {'members': }, '(self, a0: Optional[QResizeEvent])', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.resizeEvent', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.resizeEvent', , {'members': }, '(self, a0: Optional[QResizeEvent])', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.resizeEvent', , {'members': }, []) [autodoc] from qwt.plot import QwtPlot.replot [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'replot') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.replot', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.replot', , {'members': }, ['Redraw the plot', '', 'If the `autoReplot` option is not set (which is the default)', 'or if any curves are attached to raw data, the plot has to', 'be refreshed explicitly in order to make changes visible.', '', '.. seealso::', '', ' :py:meth:`updateAxes()`, :py:meth:`setAutoReplot()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.replot', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.replot', , {'members': }, ['Redraw the plot', '', 'If the `autoReplot` option is not set (which is the default)', 'or if any curves are attached to raw data, the plot has to', 'be refreshed explicitly in order to make changes visible.', '', '.. seealso::', '', ' :py:meth:`updateAxes()`, :py:meth:`setAutoReplot()`', '']) [autodoc] from qwt.plot import QwtPlot.updateLayout [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'updateLayout') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.updateLayout', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.updateLayout', , {'members': }, ['Adjust plot content to its current size.', '', '.. seealso::', '', ' :py:meth:`resizeEvent()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.updateLayout', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.updateLayout', , {'members': }, ['Adjust plot content to its current size.', '', '.. seealso::', '', ' :py:meth:`resizeEvent()`', '']) [autodoc] from qwt.plot import QwtPlot.getCanvasMarginsHint [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'getCanvasMarginsHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.getCanvasMarginsHint', , {'members': }, '(maps, canvasRect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.getCanvasMarginsHint', , {'members': }, ['Calculate the canvas margins', '', ':param list maps: `QwtPlot.axisCnt` maps, mapping between plot and paint device coordinates', ':param QRectF canvasRect: Bounding rectangle where to paint', '', 'Plot items might indicate, that they need some extra space', 'at the borders of the canvas by the `QwtPlotItem.Margins` flag.', '', '.. seealso::', '', ' :py:meth:`updateCanvasMargins()`, :py:meth:`getCanvasMarginHint()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.getCanvasMarginsHint', , {'members': }, '(maps, canvasRect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.getCanvasMarginsHint', , {'members': }, ['Calculate the canvas margins', '', ':param list maps: `QwtPlot.axisCnt` maps, mapping between plot and paint device coordinates', ':param QRectF canvasRect: Bounding rectangle where to paint', '', 'Plot items might indicate, that they need some extra space', 'at the borders of the canvas by the `QwtPlotItem.Margins` flag.', '', '.. seealso::', '', ' :py:meth:`updateCanvasMargins()`, :py:meth:`getCanvasMarginHint()`', '']) [autodoc] from qwt.plot import QwtPlot.updateCanvasMargins [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'updateCanvasMargins') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.updateCanvasMargins', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.updateCanvasMargins', , {'members': }, ['Update the canvas margins', '', 'Plot items might indicate, that they need some extra space', 'at the borders of the canvas by the `QwtPlotItem.Margins` flag.', '', '.. seealso::', '', ' :py:meth:`getCanvasMarginsHint()`,', ' :py:meth:`QwtPlotItem.getCanvasMarginHint()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.updateCanvasMargins', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.updateCanvasMargins', , {'members': }, ['Update the canvas margins', '', 'Plot items might indicate, that they need some extra space', 'at the borders of the canvas by the `QwtPlotItem.Margins` flag.', '', '.. seealso::', '', ' :py:meth:`getCanvasMarginsHint()`,', ' :py:meth:`QwtPlotItem.getCanvasMarginHint()`', '']) [autodoc] from qwt.plot import QwtPlot.drawCanvas [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'drawCanvas') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.drawCanvas', , {'members': }, '(painter)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.drawCanvas', , {'members': }, ['Redraw the canvas.', '', ':param QPainter painter: Painter used for drawing', '', '.. warning::', '', ' drawCanvas calls drawItems what is also used', ' for printing. Applications that like to add individual', ' plot items better overload drawItems()', '', '.. seealso::', '', ' :py:meth:`getCanvasMarginsHint()`,', ' :py:meth:`QwtPlotItem.getCanvasMarginHint()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.drawCanvas', , {'members': }, '(painter)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.drawCanvas', , {'members': }, ['Redraw the canvas.', '', ':param QPainter painter: Painter used for drawing', '', '.. warning::', '', ' drawCanvas calls drawItems what is also used', ' for printing. Applications that like to add individual', ' plot items better overload drawItems()', '', '.. seealso::', '', ' :py:meth:`getCanvasMarginsHint()`,', ' :py:meth:`QwtPlotItem.getCanvasMarginHint()`', '']) [autodoc] from qwt.plot import QwtPlot.drawItems [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'drawItems') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.drawItems', , {'members': }, '(painter, canvasRect, maps)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.drawItems', , {'members': }, ['Redraw the canvas.', '', ':param QPainter painter: Painter used for drawing', ':param QRectF canvasRect: Bounding rectangle where to paint', ':param list maps: `QwtPlot.axisCnt` maps, mapping between plot and paint device coordinates', '', '.. note::', '', ' Usually canvasRect is `contentsRect()` of the plot canvas.', ' Due to a bug in Qt this rectangle might be wrong for certain', ' frame styles ( f.e `QFrame.Box` ) and it might be necessary to', ' fix the margins manually using `QWidget.setContentsMargins()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.drawItems', , {'members': }, '(painter, canvasRect, maps)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.drawItems', , {'members': }, ['Redraw the canvas.', '', ':param QPainter painter: Painter used for drawing', ':param QRectF canvasRect: Bounding rectangle where to paint', ':param list maps: `QwtPlot.axisCnt` maps, mapping between plot and paint device coordinates', '', '.. note::', '', ' Usually canvasRect is `contentsRect()` of the plot canvas.', ' Due to a bug in Qt this rectangle might be wrong for certain', ' frame styles ( f.e `QFrame.Box` ) and it might be necessary to', ' fix the margins manually using `QWidget.setContentsMargins()`', '']) [autodoc] from qwt.plot import QwtPlot.canvasMap [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'canvasMap') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.canvasMap', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.canvasMap', , {'members': }, [':param int axisId: Axis', ':return: Map for the axis on the canvas. With this map pixel coordinates can translated to plot coordinates and vice versa.', '', '.. seealso::', '', ' :py:class:`qwt.scale_map.QwtScaleMap`,', ' :py:meth:`transform()`, :py:meth:`invTransform()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.canvasMap', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.canvasMap', , {'members': }, [':param int axisId: Axis', ':return: Map for the axis on the canvas. With this map pixel coordinates can translated to plot coordinates and vice versa.', '', '.. seealso::', '', ' :py:class:`qwt.scale_map.QwtScaleMap`,', ' :py:meth:`transform()`, :py:meth:`invTransform()`', '']) [autodoc] from qwt.plot import QwtPlot.setCanvasBackground [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'setCanvasBackground') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setCanvasBackground', , {'members': }, '(brush)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setCanvasBackground', , {'members': }, ['Change the background of the plotting area', '', 'Sets brush to `QPalette.Window` of all color groups of', 'the palette of the canvas. Using `canvas().setPalette()`', 'is a more powerful way to set these colors.', '', ':param QBrush brush: New background brush', '', '.. seealso::', '', ' :py:meth:`canvasBackground()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.setCanvasBackground', , {'members': }, '(brush)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.setCanvasBackground', , {'members': }, ['Change the background of the plotting area', '', 'Sets brush to `QPalette.Window` of all color groups of', 'the palette of the canvas. Using `canvas().setPalette()`', 'is a more powerful way to set these colors.', '', ':param QBrush brush: New background brush', '', '.. seealso::', '', ' :py:meth:`canvasBackground()`', '']) [autodoc] from qwt.plot import QwtPlot.canvasBackground [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'canvasBackground') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.canvasBackground', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.canvasBackground', , {'members': }, [':return: Background brush of the plotting area.', '', '.. seealso::', '', ' :py:meth:`setCanvasBackground()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.canvasBackground', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.canvasBackground', , {'members': }, [':return: Background brush of the plotting area.', '', '.. seealso::', '', ' :py:meth:`setCanvasBackground()`', '']) [autodoc] from qwt.plot import QwtPlot.axisValid [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'axisValid') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisValid', , {'members': }, '(axis_id)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisValid', , {'members': }, [':param int axis_id: Axis', ':return: True if the specified axis exists, otherwise False', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.axisValid', , {'members': }, '(axis_id)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.axisValid', , {'members': }, [':param int axis_id: Axis', ':return: True if the specified axis exists, otherwise False', '']) [autodoc] from qwt.plot import QwtPlot.insertLegend [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'insertLegend') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.insertLegend', , {'members': }, '(legend, pos=None, ratio=-1)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.insertLegend', , {'members': }, ['Insert a legend', '', 'If the position legend is `QwtPlot.LeftLegend` or `QwtPlot.RightLegend`', 'the legend will be organized in one column from top to down.', 'Otherwise the legend items will be placed in a table', 'with a best fit number of columns from left to right.', '', 'insertLegend() will set the plot widget as parent for the legend.', 'The legend will be deleted in the destructor of the plot or when', 'another legend is inserted.', '', 'Legends, that are not inserted into the layout of the plot widget', 'need to connect to the legendDataChanged() signal. Calling updateLegend()', 'initiates this signal for an initial update. When the application code', 'wants to implement its own layout this also needs to be done for', 'rendering plots to a document ( see QwtPlotRenderer ).', '', ':param qwt.legend.QwtAbstractLegend legend: Legend', ":param QwtPlot.LegendPosition pos: The legend's position.", ':param float ratio: Ratio between legend and the bounding rectangle of title, canvas and axes', '', '.. note::', '', ' For top/left position the number of columns will be limited to 1,', ' otherwise it will be set to unlimited.', '', '.. note::', '', ' The legend will be shrunk if it would need more space than the', ' given ratio. The ratio is limited to ]0.0 .. 1.0].', ' In case of <= 0.0 it will be reset to the default ratio.', ' The default vertical/horizontal ratio is 0.33/0.5.', '', '.. seealso::', '', ' :py:meth:`legend()`,', ' :py:meth:`qwt.plot_layout.QwtPlotLayout.legendPosition()`,', ' :py:meth:`qwt.plot_layout.QwtPlotLayout.setLegendPosition()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.insertLegend', , {'members': }, '(legend, pos=None, ratio=-1)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.insertLegend', , {'members': }, ['Insert a legend', '', 'If the position legend is `QwtPlot.LeftLegend` or `QwtPlot.RightLegend`', 'the legend will be organized in one column from top to down.', 'Otherwise the legend items will be placed in a table', 'with a best fit number of columns from left to right.', '', 'insertLegend() will set the plot widget as parent for the legend.', 'The legend will be deleted in the destructor of the plot or when', 'another legend is inserted.', '', 'Legends, that are not inserted into the layout of the plot widget', 'need to connect to the legendDataChanged() signal. Calling updateLegend()', 'initiates this signal for an initial update. When the application code', 'wants to implement its own layout this also needs to be done for', 'rendering plots to a document ( see QwtPlotRenderer ).', '', ':param qwt.legend.QwtAbstractLegend legend: Legend', ":param QwtPlot.LegendPosition pos: The legend's position.", ':param float ratio: Ratio between legend and the bounding rectangle of title, canvas and axes', '', '.. note::', '', ' For top/left position the number of columns will be limited to 1,', ' otherwise it will be set to unlimited.', '', '.. note::', '', ' The legend will be shrunk if it would need more space than the', ' given ratio. The ratio is limited to ]0.0 .. 1.0].', ' In case of <= 0.0 it will be reset to the default ratio.', ' The default vertical/horizontal ratio is 0.33/0.5.', '', '.. seealso::', '', ' :py:meth:`legend()`,', ' :py:meth:`qwt.plot_layout.QwtPlotLayout.legendPosition()`,', ' :py:meth:`qwt.plot_layout.QwtPlotLayout.setLegendPosition()`', '']) [autodoc] from qwt.plot import QwtPlot.updateLegend [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'updateLegend') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.updateLegend', , {'members': }, '(plotItem=None)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.updateLegend', , {'members': }, ['If plotItem is None, emit QwtPlot.legendDataChanged for all', 'plot item. Otherwise, emit the signal for passed plot item.', '', ':param qwt.plot.QwtPlotItem plotItem: Plot item', '', '.. seealso::', '', ' :py:meth:`QwtPlotItem.legendData()`, :py:data:`QwtPlot.legendDataChanged`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.updateLegend', , {'members': }, '(plotItem=None)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.updateLegend', , {'members': }, ['If plotItem is None, emit QwtPlot.legendDataChanged for all', 'plot item. Otherwise, emit the signal for passed plot item.', '', ':param qwt.plot.QwtPlotItem plotItem: Plot item', '', '.. seealso::', '', ' :py:meth:`QwtPlotItem.legendData()`, :py:data:`QwtPlot.legendDataChanged`', '']) [autodoc] from qwt.plot import QwtPlot.updateLegendItems [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'updateLegendItems') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.updateLegendItems', , {'members': }, '(plotItem, legendData)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.updateLegendItems', , {'members': }, ['Update all plot items interested in legend attributes', '', 'Call `QwtPlotItem.updateLegend()`, when the', '`QwtPlotItem.LegendInterest` flag is set.', '', ':param qwt.plot.QwtPlotItem plotItem: Plot item', ':param list legendData: Entries to be displayed for the plot item ( usually 1 )', '', '.. seealso::', '', ' :py:meth:`QwtPlotItem.LegendInterest()`,', ' :py:meth:`QwtPlotItem.updateLegend`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.updateLegendItems', , {'members': }, '(plotItem, legendData)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.updateLegendItems', , {'members': }, ['Update all plot items interested in legend attributes', '', 'Call `QwtPlotItem.updateLegend()`, when the', '`QwtPlotItem.LegendInterest` flag is set.', '', ':param qwt.plot.QwtPlotItem plotItem: Plot item', ':param list legendData: Entries to be displayed for the plot item ( usually 1 )', '', '.. seealso::', '', ' :py:meth:`QwtPlotItem.LegendInterest()`,', ' :py:meth:`QwtPlotItem.updateLegend`', '']) [autodoc] from qwt.plot import QwtPlot.attachItem [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'attachItem') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.attachItem', , {'members': }, '(plotItem, on)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.attachItem', , {'members': }, ['Attach/Detach a plot item', '', ':param qwt.plot.QwtPlotItem plotItem: Plot item', ':param bool on: When true attach the item, otherwise detach it', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.attachItem', , {'members': }, '(plotItem, on)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.attachItem', , {'members': }, ['Attach/Detach a plot item', '', ':param qwt.plot.QwtPlotItem plotItem: Plot item', ':param bool on: When true attach the item, otherwise detach it', '']) [autodoc] from qwt.plot import QwtPlot.print_ [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'print_') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.print_', , {'members': }, '(printer)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.print_', , {'members': }, ['Print plot to printer', '', ':param printer: Printer', ':type printer: QPaintDevice or QPrinter or QSvgGenerator', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.print_', , {'members': }, '(printer)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.print_', , {'members': }, ['Print plot to printer', '', ':param printer: Printer', ':type printer: QPaintDevice or QPrinter or QSvgGenerator', '']) [autodoc] from qwt.plot import QwtPlot.exportTo [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlot') [autodoc] => [autodoc] getattr(_, 'exportTo') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.exportTo', , {'members': }, '(filename, size=(800, 600), size_mm=None, resolution=85, format_=None)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.exportTo', , {'members': }, ['Export plot to PDF or image file (SVG, PNG, ...)', '', ':param str filename: Filename', ':param tuple size: (width, height) size in pixels', ':param tuple size_mm: (width, height) size in millimeters', ':param int resolution: Resolution in dots per Inch (dpi)', ':param str format_: File format (PDF, SVG, PNG, ...)', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlot.exportTo', , {'members': }, '(filename, size=(800, 600), size_mm=None, resolution=85, format_=None)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlot.exportTo', , {'members': }, ['Export plot to PDF or image file (SVG, PNG, ...)', '', ':param str filename: Filename', ':param tuple size: (width, height) size in pixels', ':param tuple size_mm: (width, height) size in millimeters', ':param int resolution: Resolution in dots per Inch (dpi)', ':param str format_: File format (PDF, SVG, PNG, ...)', '']) [autodoc] output: .. py:class:: QwtPlot(*args) @@ -5868,410 +5904,410 @@ [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot.QwtPlotItem', , {'members': }, '(title=None, icon=None)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot.QwtPlotItem', , {'members': }, ['Base class for items on the plot canvas', '', 'A plot item is "something", that can be painted on the plot canvas,', 'or only affects the scales of the plot widget. They can be categorized as:', '', '- Representator', '', ' A "Representator" is an item that represents some sort of data', ' on the plot canvas. The different representator classes are organized', ' according to the characteristics of the data:', '', ' - :py:class:`qwt.plot_marker.QwtPlotMarker`: Represents a point or a', ' horizontal/vertical coordinate', ' - :py:class:`qwt.plot_curve.QwtPlotCurve`: Represents a series of', ' points', '', '- Decorators', '', ' A "Decorator" is an item, that displays additional information, that', ' is not related to any data:', '', ' - :py:class:`qwt.plot_grid.QwtPlotGrid`', '', 'Depending on the `QwtPlotItem.ItemAttribute` flags, an item is included', 'into autoscaling or has an entry on the legend.', '', 'Before misusing the existing item classes it might be better to', 'implement a new type of plot item', "( don't implement a watermark as spectrogram ).", 'Deriving a new type of `QwtPlotItem` primarily means to implement', 'the `YourPlotItem.draw()` method.', '', '.. seealso::', '', ' The cpuplot example shows the implementation of additional plot items.', '', '.. py:class:: QwtPlotItem([title=None])', '', ' Constructor', '', ' :param title: Title of the item', ' :type title: qwt.text.QwtText or str', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'AutoScale', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Legend', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'LegendInterest', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Margins', 4, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'RenderAntialiased', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotBarChart', 12, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotCurve', 5, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotGrid', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotHistogram', 8, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotIntervalCurve', 7, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotItem', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotLegend', 3, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotMarker', 4, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotMultiBarChart', 13, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotSVG', 10, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotScale', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotShape', 14, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotSpectroCurve', 6, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotSpectrogram', 9, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotTextLabel', 15, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotTradingCurve', 11, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotUserItem', 1000, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotZone', 16, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'ScaleInterest', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.plot', '__firstlineno__': 1712, '__doc__': '\nBase class for items on the plot canvas\n\nA plot item is "something", that can be painted on the plot canvas,\nor only affects the scales of the plot widget. They can be categorized as:\n\n- Representator\n\n A "Representator" is an item that represents some sort of data\n on the plot canvas. The different representator classes are organized\n according to the characteristics of the data:\n\n - :py:class:`qwt.plot_marker.QwtPlotMarker`: Represents a point or a\n horizontal/vertical coordinate\n - :py:class:`qwt.plot_curve.QwtPlotCurve`: Represents a series of\n points\n\n- Decorators\n\n A "Decorator" is an item, that displays additional information, that\n is not related to any data:\n\n - :py:class:`qwt.plot_grid.QwtPlotGrid`\n\nDepending on the `QwtPlotItem.ItemAttribute` flags, an item is included\ninto autoscaling or has an entry on the legend.\n\nBefore misusing the existing item classes it might be better to\nimplement a new type of plot item\n( don\'t implement a watermark as spectrogram ).\nDeriving a new type of `QwtPlotItem` primarily means to implement\nthe `YourPlotItem.draw()` method.\n\n.. seealso::\n\n The cpuplot example shows the implementation of additional plot items.\n\n.. py:class:: QwtPlotItem([title=None])\n\n Constructor\n\n :param title: Title of the item\n :type title: qwt.text.QwtText or str\n', 'Rtti_PlotItem': 0, 'Rtti_PlotGrid': 1, 'Rtti_PlotScale': 2, 'Rtti_PlotLegend': 3, 'Rtti_PlotMarker': 4, 'Rtti_PlotCurve': 5, 'Rtti_PlotSpectroCurve': 6, 'Rtti_PlotIntervalCurve': 7, 'Rtti_PlotHistogram': 8, 'Rtti_PlotSpectrogram': 9, 'Rtti_PlotSVG': 10, 'Rtti_PlotTradingCurve': 11, 'Rtti_PlotBarChart': 12, 'Rtti_PlotMultiBarChart': 13, 'Rtti_PlotShape': 14, 'Rtti_PlotTextLabel': 15, 'Rtti_PlotZone': 16, 'Rtti_PlotUserItem': 1000, 'Legend': 1, 'AutoScale': 2, 'Margins': 4, 'ScaleInterest': 1, 'LegendInterest': 2, 'RenderAntialiased': 1, '__init__': , 'attach': , 'detach': , 'rtti': , 'plot': , 'z': , 'setZ': , 'setTitle': , 'title': , 'setIcon': , 'icon': , 'setItemAttribute': , 'testItemAttribute': , 'setItemInterest': , 'testItemInterest': , 'setRenderHint': , 'testRenderHint': , 'setLegendIconSize': , 'legendIconSize': , 'legendIcon': , 'show': , 'hide': , 'setVisible': , 'isVisible': , 'itemChanged': , 'legendChanged': , 'setAxes': , 'setAxis': , 'setXAxis': , 'setYAxis': , 'xAxis': , 'yAxis': , 'boundingRect': , 'getCanvasMarginHint': , 'legendData': , 'updateLegend': , 'scaleRect': , 'paintRect': , '__static_attributes__': ('__data',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nBase class for items on the plot canvas\n\nA plot item is "something", that can be painted on the plot canvas,\nor only affects the scales of the plot widget. They can be categorized as:\n\n- Representator\n\n A "Representator" is an item that represents some sort of data\n on the plot canvas. The different representator classes are organized\n according to the characteristics of the data:\n\n - :py:class:`qwt.plot_marker.QwtPlotMarker`: Represents a point or a\n horizontal/vertical coordinate\n - :py:class:`qwt.plot_curve.QwtPlotCurve`: Represents a series of\n points\n\n- Decorators\n\n A "Decorator" is an item, that displays additional information, that\n is not related to any data:\n\n - :py:class:`qwt.plot_grid.QwtPlotGrid`\n\nDepending on the `QwtPlotItem.ItemAttribute` flags, an item is included\ninto autoscaling or has an entry on the legend.\n\nBefore misusing the existing item classes it might be better to\nimplement a new type of plot item\n( don\'t implement a watermark as spectrogram ).\nDeriving a new type of `QwtPlotItem` primarily means to implement\nthe `YourPlotItem.draw()` method.\n\n.. seealso::\n\n The cpuplot example shows the implementation of additional plot items.\n\n.. py:class:: QwtPlotItem([title=None])\n\n Constructor\n\n :param title: Title of the item\n :type title: qwt.text.QwtText or str\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 1712, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'attach', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'detach', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'getCanvasMarginHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'hide', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'icon', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isVisible', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'itemChanged', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'legendChanged', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'legendData', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'legendIcon', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'legendIconSize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'paintRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'plot', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'rtti', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'scaleRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxes', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAxis', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setIcon', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setItemAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setItemInterest', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLegendIconSize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setRenderHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setTitle', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setVisible', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setXAxis', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setYAxis', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setZ', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'show', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testItemAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testItemInterest', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testRenderHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'title', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateLegend', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'xAxis', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'yAxis', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'z', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot.QwtPlotItem', , {'members': }, '(title=None, icon=None)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot.QwtPlotItem', , {'members': }, ['Base class for items on the plot canvas', '', 'A plot item is "something", that can be painted on the plot canvas,', 'or only affects the scales of the plot widget. They can be categorized as:', '', '- Representator', '', ' A "Representator" is an item that represents some sort of data', ' on the plot canvas. The different representator classes are organized', ' according to the characteristics of the data:', '', ' - :py:class:`qwt.plot_marker.QwtPlotMarker`: Represents a point or a', ' horizontal/vertical coordinate', ' - :py:class:`qwt.plot_curve.QwtPlotCurve`: Represents a series of', ' points', '', '- Decorators', '', ' A "Decorator" is an item, that displays additional information, that', ' is not related to any data:', '', ' - :py:class:`qwt.plot_grid.QwtPlotGrid`', '', 'Depending on the `QwtPlotItem.ItemAttribute` flags, an item is included', 'into autoscaling or has an entry on the legend.', '', 'Before misusing the existing item classes it might be better to', 'implement a new type of plot item', "( don't implement a watermark as spectrogram ).", 'Deriving a new type of `QwtPlotItem` primarily means to implement', 'the `YourPlotItem.draw()` method.', '', '.. seealso::', '', ' The cpuplot example shows the implementation of additional plot items.', '', '.. py:class:: QwtPlotItem([title=None])', '', ' Constructor', '', ' :param title: Title of the item', ' :type title: qwt.text.QwtText or str', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'AutoScale', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Legend', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'LegendInterest', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Margins', 4, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'RenderAntialiased', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotBarChart', 12, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotCurve', 5, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotGrid', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotHistogram', 8, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotIntervalCurve', 7, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotItem', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotLegend', 3, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotMarker', 4, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotMultiBarChart', 13, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotSVG', 10, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotScale', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotShape', 14, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotSpectroCurve', 6, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotSpectrogram', 9, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotTextLabel', 15, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotTradingCurve', 11, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotUserItem', 1000, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rtti_PlotZone', 16, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'ScaleInterest', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.plot', '__firstlineno__': 1712, '__doc__': '\nBase class for items on the plot canvas\n\nA plot item is "something", that can be painted on the plot canvas,\nor only affects the scales of the plot widget. They can be categorized as:\n\n- Representator\n\n A "Representator" is an item that represents some sort of data\n on the plot canvas. The different representator classes are organized\n according to the characteristics of the data:\n\n - :py:class:`qwt.plot_marker.QwtPlotMarker`: Represents a point or a\n horizontal/vertical coordinate\n - :py:class:`qwt.plot_curve.QwtPlotCurve`: Represents a series of\n points\n\n- Decorators\n\n A "Decorator" is an item, that displays additional information, that\n is not related to any data:\n\n - :py:class:`qwt.plot_grid.QwtPlotGrid`\n\nDepending on the `QwtPlotItem.ItemAttribute` flags, an item is included\ninto autoscaling or has an entry on the legend.\n\nBefore misusing the existing item classes it might be better to\nimplement a new type of plot item\n( don\'t implement a watermark as spectrogram ).\nDeriving a new type of `QwtPlotItem` primarily means to implement\nthe `YourPlotItem.draw()` method.\n\n.. seealso::\n\n The cpuplot example shows the implementation of additional plot items.\n\n.. py:class:: QwtPlotItem([title=None])\n\n Constructor\n\n :param title: Title of the item\n :type title: qwt.text.QwtText or str\n', 'Rtti_PlotItem': 0, 'Rtti_PlotGrid': 1, 'Rtti_PlotScale': 2, 'Rtti_PlotLegend': 3, 'Rtti_PlotMarker': 4, 'Rtti_PlotCurve': 5, 'Rtti_PlotSpectroCurve': 6, 'Rtti_PlotIntervalCurve': 7, 'Rtti_PlotHistogram': 8, 'Rtti_PlotSpectrogram': 9, 'Rtti_PlotSVG': 10, 'Rtti_PlotTradingCurve': 11, 'Rtti_PlotBarChart': 12, 'Rtti_PlotMultiBarChart': 13, 'Rtti_PlotShape': 14, 'Rtti_PlotTextLabel': 15, 'Rtti_PlotZone': 16, 'Rtti_PlotUserItem': 1000, 'Legend': 1, 'AutoScale': 2, 'Margins': 4, 'ScaleInterest': 1, 'LegendInterest': 2, 'RenderAntialiased': 1, '__init__': , 'attach': , 'detach': , 'rtti': , 'plot': , 'z': , 'setZ': , 'setTitle': , 'title': , 'setIcon': , 'icon': , 'setItemAttribute': , 'testItemAttribute': , 'setItemInterest': , 'testItemInterest': , 'setRenderHint': , 'testRenderHint': , 'setLegendIconSize': , 'legendIconSize': , 'legendIcon': , 'show': , 'hide': , 'setVisible': , 'isVisible': , 'itemChanged': , 'legendChanged': , 'setAxes': , 'setAxis': , 'setXAxis': , 'setYAxis': , 'xAxis': , 'yAxis': , 'boundingRect': , 'getCanvasMarginHint': , 'legendData': , 'updateLegend': , 'scaleRect': , 'paintRect': , '__static_attributes__': ('__data',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nBase class for items on the plot canvas\n\nA plot item is "something", that can be painted on the plot canvas,\nor only affects the scales of the plot widget. They can be categorized as:\n\n- Representator\n\n A "Representator" is an item that represents some sort of data\n on the plot canvas. The different representator classes are organized\n according to the characteristics of the data:\n\n - :py:class:`qwt.plot_marker.QwtPlotMarker`: Represents a point or a\n horizontal/vertical coordinate\n - :py:class:`qwt.plot_curve.QwtPlotCurve`: Represents a series of\n points\n\n- Decorators\n\n A "Decorator" is an item, that displays additional information, that\n is not related to any data:\n\n - :py:class:`qwt.plot_grid.QwtPlotGrid`\n\nDepending on the `QwtPlotItem.ItemAttribute` flags, an item is included\ninto autoscaling or has an entry on the legend.\n\nBefore misusing the existing item classes it might be better to\nimplement a new type of plot item\n( don\'t implement a watermark as spectrogram ).\nDeriving a new type of `QwtPlotItem` primarily means to implement\nthe `YourPlotItem.draw()` method.\n\n.. seealso::\n\n The cpuplot example shows the implementation of additional plot items.\n\n.. py:class:: QwtPlotItem([title=None])\n\n Constructor\n\n :param title: Title of the item\n :type title: qwt.text.QwtText or str\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 1712, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'attach', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'detach', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'getCanvasMarginHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'hide', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'icon', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isVisible', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'itemChanged', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'legendChanged', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'legendData', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'legendIcon', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'legendIconSize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'paintRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'plot', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'rtti', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'scaleRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxes', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAxis', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setIcon', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setItemAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setItemInterest', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLegendIconSize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setRenderHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setTitle', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setVisible', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setXAxis', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setYAxis', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setZ', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'show', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testItemAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testItemInterest', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testRenderHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'title', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateLegend', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'xAxis', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'yAxis', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'z', , False, {'members': }) [autodoc] from qwt.plot import QwtPlotItem.attach [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'attach') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.attach', , {'members': }, '(plot)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.attach', , {'members': }, ['Attach the item to a plot.', '', 'This method will attach a `QwtPlotItem` to the `QwtPlot` argument.', 'It will first detach the `QwtPlotItem` from any plot from a previous', 'call to attach (if necessary). If a None argument is passed, it will', 'detach from any `QwtPlot` it was attached to.', '', ':param qwt.plot.QwtPlot plot: Plot widget', '', '.. seealso::', '', ' :py:meth:`detach()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.attach', , {'members': }, '(plot)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.attach', , {'members': }, ['Attach the item to a plot.', '', 'This method will attach a `QwtPlotItem` to the `QwtPlot` argument.', 'It will first detach the `QwtPlotItem` from any plot from a previous', 'call to attach (if necessary). If a None argument is passed, it will', 'detach from any `QwtPlot` it was attached to.', '', ':param qwt.plot.QwtPlot plot: Plot widget', '', '.. seealso::', '', ' :py:meth:`detach()`', '']) [autodoc] from qwt.plot import QwtPlotItem.detach [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'detach') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.detach', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.detach', , {'members': }, ['Detach the item from a plot.', '', 'This method detaches a `QwtPlotItem` from any `QwtPlot` it has been', 'associated with.', '', '.. seealso::', '', ' :py:meth:`attach()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.detach', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.detach', , {'members': }, ['Detach the item from a plot.', '', 'This method detaches a `QwtPlotItem` from any `QwtPlot` it has been', 'associated with.', '', '.. seealso::', '', ' :py:meth:`attach()`', '']) [autodoc] from qwt.plot import QwtPlotItem.rtti [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'rtti') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.rtti', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.rtti', , {'members': }, ['Return rtti for the specific class represented. `QwtPlotItem` is', 'simply a virtual interface class, and base classes will implement', 'this method with specific rtti values so a user can differentiate', 'them.', '', ':return: rtti value', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.rtti', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.rtti', , {'members': }, ['Return rtti for the specific class represented. `QwtPlotItem` is', 'simply a virtual interface class, and base classes will implement', 'this method with specific rtti values so a user can differentiate', 'them.', '', ':return: rtti value', '']) [autodoc] from qwt.plot import QwtPlotItem.plot [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'plot') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.plot', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.plot', , {'members': }, [':return: attached plot', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.plot', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.plot', , {'members': }, [':return: attached plot', '']) [autodoc] from qwt.plot import QwtPlotItem.z [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'z') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.z', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.z', , {'members': }, ['Plot items are painted in increasing z-order.', '', ':return: item z order', '', '.. seealso::', '', ' :py:meth:`setZ()`, :py:meth:`QwtPlotDict.itemList()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.z', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.z', , {'members': }, ['Plot items are painted in increasing z-order.', '', ':return: item z order', '', '.. seealso::', '', ' :py:meth:`setZ()`, :py:meth:`QwtPlotDict.itemList()`', '']) [autodoc] from qwt.plot import QwtPlotItem.setZ [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'setZ') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setZ', , {'members': }, '(z)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setZ', , {'members': }, ['Set the z value', '', 'Plot items are painted in increasing z-order.', '', ':param float z: Z-value', '', '.. seealso::', '', ' :py:meth:`z()`, :py:meth:`QwtPlotDict.itemList()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setZ', , {'members': }, '(z)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setZ', , {'members': }, ['Set the z value', '', 'Plot items are painted in increasing z-order.', '', ':param float z: Z-value', '', '.. seealso::', '', ' :py:meth:`z()`, :py:meth:`QwtPlotDict.itemList()`', '']) [autodoc] from qwt.plot import QwtPlotItem.setTitle [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'setTitle') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setTitle', , {'members': }, '(title)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setTitle', , {'members': }, ['Set a new title', '', ':param title: Title', ':type title: qwt.text.QwtText or str', '', '.. seealso::', '', ' :py:meth:`title()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setTitle', , {'members': }, '(title)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setTitle', , {'members': }, ['Set a new title', '', ':param title: Title', ':type title: qwt.text.QwtText or str', '', '.. seealso::', '', ' :py:meth:`title()`', '']) [autodoc] from qwt.plot import QwtPlotItem.title [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'title') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.title', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.title', , {'members': }, [':return: Title of the item', '', '.. seealso::', '', ' :py:meth:`setTitle()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.title', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.title', , {'members': }, [':return: Title of the item', '', '.. seealso::', '', ' :py:meth:`setTitle()`', '']) [autodoc] from qwt.plot import QwtPlotItem.setIcon [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'setIcon') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setIcon', , {'members': }, '(icon)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setIcon', , {'members': }, ['Set item icon', '', ':param icon: Icon', ':type icon: QIcon', '', '.. seealso::', '', ' :py:meth:`icon()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setIcon', , {'members': }, '(icon)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setIcon', , {'members': }, ['Set item icon', '', ':param icon: Icon', ':type icon: QIcon', '', '.. seealso::', '', ' :py:meth:`icon()`', '']) [autodoc] from qwt.plot import QwtPlotItem.icon [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'icon') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.icon', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.icon', , {'members': }, [':return: Icon of the item', '', '.. seealso::', '', ' :py:meth:`setIcon()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.icon', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.icon', , {'members': }, [':return: Icon of the item', '', '.. seealso::', '', ' :py:meth:`setIcon()`', '']) [autodoc] from qwt.plot import QwtPlotItem.setItemAttribute [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'setItemAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setItemAttribute', , {'members': }, '(attribute, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setItemAttribute', , {'members': }, ['Toggle an item attribute', '', ':param int attribute: Attribute type', ':param bool on: True/False', '', '.. seealso::', '', ' :py:meth:`testItemAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setItemAttribute', , {'members': }, '(attribute, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setItemAttribute', , {'members': }, ['Toggle an item attribute', '', ':param int attribute: Attribute type', ':param bool on: True/False', '', '.. seealso::', '', ' :py:meth:`testItemAttribute()`', '']) [autodoc] from qwt.plot import QwtPlotItem.testItemAttribute [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'testItemAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.testItemAttribute', , {'members': }, '(attribute)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.testItemAttribute', , {'members': }, ['Test an item attribute', '', ':param int attribute: Attribute type', ':return: True/False', '', '.. seealso::', '', ' :py:meth:`setItemAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.testItemAttribute', , {'members': }, '(attribute)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.testItemAttribute', , {'members': }, ['Test an item attribute', '', ':param int attribute: Attribute type', ':return: True/False', '', '.. seealso::', '', ' :py:meth:`setItemAttribute()`', '']) [autodoc] from qwt.plot import QwtPlotItem.setItemInterest [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'setItemInterest') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setItemInterest', , {'members': }, '(interest, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setItemInterest', , {'members': }, ['Toggle an item interest', '', ':param int attribute: Interest type', ':param bool on: True/False', '', '.. seealso::', '', ' :py:meth:`testItemInterest()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setItemInterest', , {'members': }, '(interest, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setItemInterest', , {'members': }, ['Toggle an item interest', '', ':param int attribute: Interest type', ':param bool on: True/False', '', '.. seealso::', '', ' :py:meth:`testItemInterest()`', '']) [autodoc] from qwt.plot import QwtPlotItem.testItemInterest [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'testItemInterest') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.testItemInterest', , {'members': }, '(interest)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.testItemInterest', , {'members': }, ['Test an item interest', '', ':param int attribute: Interest type', ':return: True/False', '', '.. seealso::', '', ' :py:meth:`setItemInterest()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.testItemInterest', , {'members': }, '(interest)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.testItemInterest', , {'members': }, ['Test an item interest', '', ':param int attribute: Interest type', ':return: True/False', '', '.. seealso::', '', ' :py:meth:`setItemInterest()`', '']) [autodoc] from qwt.plot import QwtPlotItem.setRenderHint [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'setRenderHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setRenderHint', , {'members': }, '(hint, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setRenderHint', , {'members': }, ['Toggle a render hint', '', ':param int hint: Render hint', ':param bool on: True/False', '', '.. seealso::', '', ' :py:meth:`testRenderHint()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setRenderHint', , {'members': }, '(hint, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setRenderHint', , {'members': }, ['Toggle a render hint', '', ':param int hint: Render hint', ':param bool on: True/False', '', '.. seealso::', '', ' :py:meth:`testRenderHint()`', '']) [autodoc] from qwt.plot import QwtPlotItem.testRenderHint [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'testRenderHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.testRenderHint', , {'members': }, '(hint)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.testRenderHint', , {'members': }, ['Test a render hint', '', ':param int attribute: Render hint', ':return: True/False', '', '.. seealso::', '', ' :py:meth:`setRenderHint()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.testRenderHint', , {'members': }, '(hint)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.testRenderHint', , {'members': }, ['Test a render hint', '', ':param int attribute: Render hint', ':return: True/False', '', '.. seealso::', '', ' :py:meth:`setRenderHint()`', '']) [autodoc] from qwt.plot import QwtPlotItem.setLegendIconSize [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'setLegendIconSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setLegendIconSize', , {'members': }, '(size)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setLegendIconSize', , {'members': }, ['Set the size of the legend icon', '', 'The default setting is 8x8 pixels', '', ':param QSize size: Size', '', '.. seealso::', '', ' :py:meth:`legendIconSize()`, :py:meth:`legendIcon()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setLegendIconSize', , {'members': }, '(size)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setLegendIconSize', , {'members': }, ['Set the size of the legend icon', '', 'The default setting is 8x8 pixels', '', ':param QSize size: Size', '', '.. seealso::', '', ' :py:meth:`legendIconSize()`, :py:meth:`legendIcon()`', '']) [autodoc] from qwt.plot import QwtPlotItem.legendIconSize [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'legendIconSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.legendIconSize', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.legendIconSize', , {'members': }, [':return: Legend icon size', '', '.. seealso::', '', ' :py:meth:`setLegendIconSize()`, :py:meth:`legendIcon()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.legendIconSize', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.legendIconSize', , {'members': }, [':return: Legend icon size', '', '.. seealso::', '', ' :py:meth:`setLegendIconSize()`, :py:meth:`legendIcon()`', '']) [autodoc] from qwt.plot import QwtPlotItem.legendIcon [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'legendIcon') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.legendIcon', , {'members': }, '(index, size)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.legendIcon', , {'members': }, [':param int index: Index of the legend entry (usually there is only one)', ':param QSizeF size: Icon size', ':return: Icon representing the item on the legend', '', 'The default implementation returns an invalid icon', '', '.. seealso::', '', ' :py:meth:`setLegendIconSize()`, :py:meth:`legendData()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.legendIcon', , {'members': }, '(index, size)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.legendIcon', , {'members': }, [':param int index: Index of the legend entry (usually there is only one)', ':param QSizeF size: Icon size', ':return: Icon representing the item on the legend', '', 'The default implementation returns an invalid icon', '', '.. seealso::', '', ' :py:meth:`setLegendIconSize()`, :py:meth:`legendData()`', '']) [autodoc] from qwt.plot import QwtPlotItem.show [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'show') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.show', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.show', , {'members': }, ['Show the item', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.show', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.show', , {'members': }, ['Show the item', '']) [autodoc] from qwt.plot import QwtPlotItem.hide [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'hide') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.hide', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.hide', , {'members': }, ['Hide the item', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.hide', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.hide', , {'members': }, ['Hide the item', '']) [autodoc] from qwt.plot import QwtPlotItem.setVisible [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'setVisible') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setVisible', , {'members': }, '(on)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setVisible', , {'members': }, ['Show/Hide the item', '', ':param bool on: Show if True, otherwise hide', '', '.. seealso::', '', ' :py:meth:`isVisible()`, :py:meth:`show()`, :py:meth:`hide()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setVisible', , {'members': }, '(on)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setVisible', , {'members': }, ['Show/Hide the item', '', ':param bool on: Show if True, otherwise hide', '', '.. seealso::', '', ' :py:meth:`isVisible()`, :py:meth:`show()`, :py:meth:`hide()`', '']) [autodoc] from qwt.plot import QwtPlotItem.isVisible [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'isVisible') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.isVisible', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.isVisible', , {'members': }, [':return: True if visible', '', '.. seealso::', '', ' :py:meth:`setVisible()`, :py:meth:`show()`, :py:meth:`hide()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.isVisible', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.isVisible', , {'members': }, [':return: True if visible', '', '.. seealso::', '', ' :py:meth:`setVisible()`, :py:meth:`show()`, :py:meth:`hide()`', '']) [autodoc] from qwt.plot import QwtPlotItem.itemChanged [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'itemChanged') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.itemChanged', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.itemChanged', , {'members': }, ['Update the legend and call `QwtPlot.autoRefresh()` for the', 'parent plot.', '', '.. seealso::', '', ' :py:meth:`QwtPlot.legendChanged()`, :py:meth:`QwtPlot.autoRefresh()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.itemChanged', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.itemChanged', , {'members': }, ['Update the legend and call `QwtPlot.autoRefresh()` for the', 'parent plot.', '', '.. seealso::', '', ' :py:meth:`QwtPlot.legendChanged()`, :py:meth:`QwtPlot.autoRefresh()`', '']) [autodoc] from qwt.plot import QwtPlotItem.legendChanged [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'legendChanged') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.legendChanged', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.legendChanged', , {'members': }, ['Update the legend of the parent plot.', '', '.. seealso::', '', ' :py:meth:`QwtPlot.updateLegend()`, :py:meth:`itemChanged()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.legendChanged', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.legendChanged', , {'members': }, ['Update the legend of the parent plot.', '', '.. seealso::', '', ' :py:meth:`QwtPlot.updateLegend()`, :py:meth:`itemChanged()`', '']) [autodoc] from qwt.plot import QwtPlotItem.setAxes [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'setAxes') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setAxes', , {'members': }, '(xAxis, yAxis)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setAxes', , {'members': }, ['Set X and Y axis', '', 'The item will painted according to the coordinates of its Axes.', '', ':param int xAxis: X Axis (`QwtPlot.xBottom` or `QwtPlot.xTop`)', ':param int yAxis: Y Axis (`QwtPlot.yLeft` or `QwtPlot.yRight`)', '', '.. seealso::', '', ' :py:meth:`setXAxis()`, :py:meth:`setYAxis()`,', ' :py:meth:`xAxis()`, :py:meth:`yAxis()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setAxes', , {'members': }, '(xAxis, yAxis)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setAxes', , {'members': }, ['Set X and Y axis', '', 'The item will painted according to the coordinates of its Axes.', '', ':param int xAxis: X Axis (`QwtPlot.xBottom` or `QwtPlot.xTop`)', ':param int yAxis: Y Axis (`QwtPlot.yLeft` or `QwtPlot.yRight`)', '', '.. seealso::', '', ' :py:meth:`setXAxis()`, :py:meth:`setYAxis()`,', ' :py:meth:`xAxis()`, :py:meth:`yAxis()`', '']) [autodoc] from qwt.plot import QwtPlotItem.setAxis [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'setAxis') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setAxis', , {'members': }, '(xAxis, yAxis)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setAxis', , {'members': }, ['Set X and Y axis', '', '.. warning::', '', ' `setAxis` has been removed in Qwt6: please use', ' :py:meth:`setAxes()` instead', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setAxis', , {'members': }, '(xAxis, yAxis)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setAxis', , {'members': }, ['Set X and Y axis', '', '.. warning::', '', ' `setAxis` has been removed in Qwt6: please use', ' :py:meth:`setAxes()` instead', '']) [autodoc] from qwt.plot import QwtPlotItem.setXAxis [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'setXAxis') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setXAxis', , {'members': }, '(axis)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setXAxis', , {'members': }, ['Set the X axis', '', 'The item will painted according to the coordinates its Axes.', '', ':param int axis: X Axis (`QwtPlot.xBottom` or `QwtPlot.xTop`)', '', '.. seealso::', '', ' :py:meth:`setAxes()`, :py:meth:`setYAxis()`,', ' :py:meth:`xAxis()`, :py:meth:`yAxis()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setXAxis', , {'members': }, '(axis)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setXAxis', , {'members': }, ['Set the X axis', '', 'The item will painted according to the coordinates its Axes.', '', ':param int axis: X Axis (`QwtPlot.xBottom` or `QwtPlot.xTop`)', '', '.. seealso::', '', ' :py:meth:`setAxes()`, :py:meth:`setYAxis()`,', ' :py:meth:`xAxis()`, :py:meth:`yAxis()`', '']) [autodoc] from qwt.plot import QwtPlotItem.setYAxis [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'setYAxis') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setYAxis', , {'members': }, '(axis)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setYAxis', , {'members': }, ['Set the Y axis', '', 'The item will painted according to the coordinates its Axes.', '', ':param int axis: Y Axis (`QwtPlot.yLeft` or `QwtPlot.yRight`)', '', '.. seealso::', '', ' :py:meth:`setAxes()`, :py:meth:`setXAxis()`,', ' :py:meth:`xAxis()`, :py:meth:`yAxis()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.setYAxis', , {'members': }, '(axis)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.setYAxis', , {'members': }, ['Set the Y axis', '', 'The item will painted according to the coordinates its Axes.', '', ':param int axis: Y Axis (`QwtPlot.yLeft` or `QwtPlot.yRight`)', '', '.. seealso::', '', ' :py:meth:`setAxes()`, :py:meth:`setXAxis()`,', ' :py:meth:`xAxis()`, :py:meth:`yAxis()`', '']) [autodoc] from qwt.plot import QwtPlotItem.xAxis [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'xAxis') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.xAxis', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.xAxis', , {'members': }, [':return: xAxis', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.xAxis', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.xAxis', , {'members': }, [':return: xAxis', '']) [autodoc] from qwt.plot import QwtPlotItem.yAxis [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'yAxis') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.yAxis', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.yAxis', , {'members': }, [':return: yAxis', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.yAxis', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.yAxis', , {'members': }, [':return: yAxis', '']) [autodoc] from qwt.plot import QwtPlotItem.boundingRect [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'boundingRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.boundingRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.boundingRect', , {'members': }, [':return: An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)', '', '.. note::', '', ' A width or height < 0.0 is ignored by the autoscaler', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.boundingRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.boundingRect', , {'members': }, [':return: An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)', '', '.. note::', '', ' A width or height < 0.0 is ignored by the autoscaler', '']) [autodoc] from qwt.plot import QwtPlotItem.getCanvasMarginHint [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'getCanvasMarginHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.getCanvasMarginHint', , {'members': }, '(xMap, yMap, canvasRect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.getCanvasMarginHint', , {'members': }, ['Calculate a hint for the canvas margin', '', 'When the QwtPlotItem::Margins flag is enabled the plot item', 'indicates, that it needs some margins at the borders of the canvas.', 'This is f.e. used by bar charts to reserve space for displaying', 'the bars.', '', 'The margins are in target device coordinates ( pixels on screen )', '', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates', '', '.. seealso::', '', ' :py:meth:`QwtPlot.getCanvasMarginsHint()`,', ' :py:meth:`QwtPlot.updateCanvasMargins()`,', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.getCanvasMarginHint', , {'members': }, '(xMap, yMap, canvasRect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.getCanvasMarginHint', , {'members': }, ['Calculate a hint for the canvas margin', '', 'When the QwtPlotItem::Margins flag is enabled the plot item', 'indicates, that it needs some margins at the borders of the canvas.', 'This is f.e. used by bar charts to reserve space for displaying', 'the bars.', '', 'The margins are in target device coordinates ( pixels on screen )', '', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates', '', '.. seealso::', '', ' :py:meth:`QwtPlot.getCanvasMarginsHint()`,', ' :py:meth:`QwtPlot.updateCanvasMargins()`,', '']) [autodoc] from qwt.plot import QwtPlotItem.legendData [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'legendData') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.legendData', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.legendData', , {'members': }, ['Return all information, that is needed to represent', 'the item on the legend', '', '`QwtLegendData` is basically a list of QVariants that makes it', 'possible to overload and reimplement legendData() to', 'return almost any type of information, that is understood', 'by the receiver that acts as the legend.', '', 'The default implementation returns one entry with', 'the title() of the item and the legendIcon().', '', ':return: Data, that is needed to represent the item on the legend', '', '.. seealso::', '', ' :py:meth:`title()`, :py:meth:`legendIcon()`,', ' :py:class:`qwt.legend.QwtLegend`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.legendData', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.legendData', , {'members': }, ['Return all information, that is needed to represent', 'the item on the legend', '', '`QwtLegendData` is basically a list of QVariants that makes it', 'possible to overload and reimplement legendData() to', 'return almost any type of information, that is understood', 'by the receiver that acts as the legend.', '', 'The default implementation returns one entry with', 'the title() of the item and the legendIcon().', '', ':return: Data, that is needed to represent the item on the legend', '', '.. seealso::', '', ' :py:meth:`title()`, :py:meth:`legendIcon()`,', ' :py:class:`qwt.legend.QwtLegend`', '']) [autodoc] from qwt.plot import QwtPlotItem.updateLegend [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'updateLegend') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.updateLegend', , {'members': }, '(item, data)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.updateLegend', , {'members': }, ['Update the item to changes of the legend info', '', 'Plot items that want to display a legend ( not those, that want to', 'be displayed on a legend ! ) will have to implement updateLegend().', '', 'updateLegend() is only called when the LegendInterest interest', 'is enabled. The default implementation does nothing.', '', ':param qwt.plot.QwtPlotItem item: Plot item to be displayed on a legend', ':param list data: Attributes how to display item on the legend', '', '.. note::', '', ' Plot items, that want to be displayed on a legend', ' need to enable the `QwtPlotItem.Legend` flag and to implement', ' legendData() and legendIcon()', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.updateLegend', , {'members': }, '(item, data)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.updateLegend', , {'members': }, ['Update the item to changes of the legend info', '', 'Plot items that want to display a legend ( not those, that want to', 'be displayed on a legend ! ) will have to implement updateLegend().', '', 'updateLegend() is only called when the LegendInterest interest', 'is enabled. The default implementation does nothing.', '', ':param qwt.plot.QwtPlotItem item: Plot item to be displayed on a legend', ':param list data: Attributes how to display item on the legend', '', '.. note::', '', ' Plot items, that want to be displayed on a legend', ' need to enable the `QwtPlotItem.Legend` flag and to implement', ' legendData() and legendIcon()', '']) [autodoc] from qwt.plot import QwtPlotItem.scaleRect [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'scaleRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.scaleRect', , {'members': }, '(xMap, yMap)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.scaleRect', , {'members': }, ['Calculate the bounding scale rectangle of 2 maps', '', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':return: Bounding scale rect of the scale maps, not normalized', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.scaleRect', , {'members': }, '(xMap, yMap)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.scaleRect', , {'members': }, ['Calculate the bounding scale rectangle of 2 maps', '', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':return: Bounding scale rect of the scale maps, not normalized', '']) [autodoc] from qwt.plot import QwtPlotItem.paintRect [autodoc] import qwt.plot => [autodoc] getattr(_, 'QwtPlotItem') [autodoc] => [autodoc] getattr(_, 'paintRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.paintRect', , {'members': }, '(xMap, yMap)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.paintRect', , {'members': }, ['Calculate the bounding paint rectangle of 2 maps', '', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':return: Bounding paint rectangle of the scale maps, not normalized', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot.QwtPlotItem.paintRect', , {'members': }, '(xMap, yMap)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot.QwtPlotItem.paintRect', , {'members': }, ['Calculate the bounding paint rectangle of 2 maps', '', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':return: Bounding paint rectangle of the scale maps, not normalized', '']) [autodoc] output: .. py:class:: QwtPlotItem(title=None, icon=None) @@ -6837,191 +6873,191 @@ [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_canvas.QwtPlotCanvas', , {'members': }, '(plot=None)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_canvas.QwtPlotCanvas', , {'members': }, ['Canvas of a QwtPlot.', '', 'Canvas is the widget where all plot items are displayed', '', '.. seealso::', '', ' :py:meth:`qwt.plot.QwtPlot.setCanvas()`', '', 'Paint attributes:', '', ' * `QwtPlotCanvas.BackingStore`:', '', ' Paint double buffered reusing the content of the pixmap buffer', ' when possible.', '', ' Using a backing store might improve the performance significantly,', ' when working with widget overlays (like rubber bands).', ' Disabling the cache might improve the performance for', ' incremental paints', ' (using :py:class:`qwt.plot_directpainter.QwtPlotDirectPainter`).', '', ' * `QwtPlotCanvas.Opaque`:', '', ' Try to fill the complete contents rectangle of the plot canvas', '', " When using styled backgrounds Qt assumes, that the canvas doesn't", ' fill its area completely (f.e because of rounded borders) and', ' fills the area below the canvas. When this is done with gradients', ' it might result in a serious performance bottleneck - depending on', ' the size.', '', ' When the Opaque attribute is enabled the canvas tries to', ' identify the gaps with some heuristics and to fill those only.', '', ' .. warning::', '', ' Will not work for semitransparent backgrounds', '', ' * `QwtPlotCanvas.HackStyledBackground`:', '', ' Try to improve painting of styled backgrounds', '', ' `QwtPlotCanvas` supports the box model attributes for', ' customizing the layout with style sheets. Unfortunately', ' the design of Qt style sheets has no concept how to', ' handle backgrounds with rounded corners - beside of padding.', '', ' When HackStyledBackground is enabled the plot canvas tries', ' to separate the background from the background border', ' by reverse engineering to paint the background before and', ' the border after the plot items. In this order the border', ' gets perfectly antialiased and you can avoid some pixel', ' artifacts in the corners.', '', ' * `QwtPlotCanvas.ImmediatePaint`:', '', ' When ImmediatePaint is set replot() calls repaint()', ' instead of update().', '', ' .. seealso::', '', ' :py:meth:`replot()`, :py:meth:`QWidget.repaint()`,', ' :py:meth:`QWidget.update()`', '', 'Focus indicators:', '', ' * `QwtPlotCanvas.NoFocusIndicator`:', '', " Don't paint a focus indicator", '', ' * `QwtPlotCanvas.CanvasFocusIndicator`:', '', ' The focus is related to the complete canvas.', ' Paint the focus indicator using paintFocus()', '', ' * `QwtPlotCanvas.ItemFocusIndicator`:', '', ' The focus is related to an item (curve, point, ...) on', ' the canvas. It is up to the application to display a', ' focus indication using f.e. highlighting.', '', '.. py:class:: QwtPlotCanvas([plot=None])', '', ' Constructor', '', ' :param qwt.plot.QwtPlot plot: Parent plot widget', '', ' .. seealso::', '', ' :py:meth:`qwt.plot.QwtPlot.setCanvas()`', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'BackingStore', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'CanvasFocusIndicator', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'HackStyledBackground', 4, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'ImmediatePaint', 8, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'ItemFocusIndicator', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'NoFocusIndicator', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Opaque', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', "\nCanvas of a QwtPlot.\n\nCanvas is the widget where all plot items are displayed\n\n.. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setCanvas()`\n\nPaint attributes:\n\n * `QwtPlotCanvas.BackingStore`:\n\n Paint double buffered reusing the content of the pixmap buffer\n when possible.\n\n Using a backing store might improve the performance significantly,\n when working with widget overlays (like rubber bands).\n Disabling the cache might improve the performance for\n incremental paints\n (using :py:class:`qwt.plot_directpainter.QwtPlotDirectPainter`).\n\n * `QwtPlotCanvas.Opaque`:\n\n Try to fill the complete contents rectangle of the plot canvas\n\n When using styled backgrounds Qt assumes, that the canvas doesn't\n fill its area completely (f.e because of rounded borders) and\n fills the area below the canvas. When this is done with gradients\n it might result in a serious performance bottleneck - depending on\n the size.\n\n When the Opaque attribute is enabled the canvas tries to\n identify the gaps with some heuristics and to fill those only.\n\n .. warning::\n\n Will not work for semitransparent backgrounds\n\n * `QwtPlotCanvas.HackStyledBackground`:\n\n Try to improve painting of styled backgrounds\n\n `QwtPlotCanvas` supports the box model attributes for\n customizing the layout with style sheets. Unfortunately\n the design of Qt style sheets has no concept how to\n handle backgrounds with rounded corners - beside of padding.\n\n When HackStyledBackground is enabled the plot canvas tries\n to separate the background from the background border\n by reverse engineering to paint the background before and\n the border after the plot items. In this order the border\n gets perfectly antialiased and you can avoid some pixel\n artifacts in the corners.\n\n * `QwtPlotCanvas.ImmediatePaint`:\n\n When ImmediatePaint is set replot() calls repaint()\n instead of update().\n\n .. seealso::\n\n :py:meth:`replot()`, :py:meth:`QWidget.repaint()`,\n :py:meth:`QWidget.update()`\n\nFocus indicators:\n\n * `QwtPlotCanvas.NoFocusIndicator`:\n\n Don't paint a focus indicator\n\n * `QwtPlotCanvas.CanvasFocusIndicator`:\n\n The focus is related to the complete canvas.\n Paint the focus indicator using paintFocus()\n\n * `QwtPlotCanvas.ItemFocusIndicator`:\n\n The focus is related to an item (curve, point, ...) on\n the canvas. It is up to the application to display a\n focus indication using f.e. highlighting.\n\n.. py:class:: QwtPlotCanvas([plot=None])\n\n Constructor\n\n :param qwt.plot.QwtPlot plot: Parent plot widget\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setCanvas()`\n", True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 344, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_canvas', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data', '__plot'), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'backingStore', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'borderPath', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'borderRadius', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawBorder', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawCanvas', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawFocusIndicator', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'event', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'focusIndicator', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invalidateBackingStore', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invalidatePaintCache', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'paintEvent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'plot', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'replot', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'resizeEvent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setBorderRadius', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setFocusIndicator', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setPaintAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testPaintAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateStyleSheetInfo', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_canvas.QwtPlotCanvas', , {'members': }, '(plot=None)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_canvas.QwtPlotCanvas', , {'members': }, ['Canvas of a QwtPlot.', '', 'Canvas is the widget where all plot items are displayed', '', '.. seealso::', '', ' :py:meth:`qwt.plot.QwtPlot.setCanvas()`', '', 'Paint attributes:', '', ' * `QwtPlotCanvas.BackingStore`:', '', ' Paint double buffered reusing the content of the pixmap buffer', ' when possible.', '', ' Using a backing store might improve the performance significantly,', ' when working with widget overlays (like rubber bands).', ' Disabling the cache might improve the performance for', ' incremental paints', ' (using :py:class:`qwt.plot_directpainter.QwtPlotDirectPainter`).', '', ' * `QwtPlotCanvas.Opaque`:', '', ' Try to fill the complete contents rectangle of the plot canvas', '', " When using styled backgrounds Qt assumes, that the canvas doesn't", ' fill its area completely (f.e because of rounded borders) and', ' fills the area below the canvas. When this is done with gradients', ' it might result in a serious performance bottleneck - depending on', ' the size.', '', ' When the Opaque attribute is enabled the canvas tries to', ' identify the gaps with some heuristics and to fill those only.', '', ' .. warning::', '', ' Will not work for semitransparent backgrounds', '', ' * `QwtPlotCanvas.HackStyledBackground`:', '', ' Try to improve painting of styled backgrounds', '', ' `QwtPlotCanvas` supports the box model attributes for', ' customizing the layout with style sheets. Unfortunately', ' the design of Qt style sheets has no concept how to', ' handle backgrounds with rounded corners - beside of padding.', '', ' When HackStyledBackground is enabled the plot canvas tries', ' to separate the background from the background border', ' by reverse engineering to paint the background before and', ' the border after the plot items. In this order the border', ' gets perfectly antialiased and you can avoid some pixel', ' artifacts in the corners.', '', ' * `QwtPlotCanvas.ImmediatePaint`:', '', ' When ImmediatePaint is set replot() calls repaint()', ' instead of update().', '', ' .. seealso::', '', ' :py:meth:`replot()`, :py:meth:`QWidget.repaint()`,', ' :py:meth:`QWidget.update()`', '', 'Focus indicators:', '', ' * `QwtPlotCanvas.NoFocusIndicator`:', '', " Don't paint a focus indicator", '', ' * `QwtPlotCanvas.CanvasFocusIndicator`:', '', ' The focus is related to the complete canvas.', ' Paint the focus indicator using paintFocus()', '', ' * `QwtPlotCanvas.ItemFocusIndicator`:', '', ' The focus is related to an item (curve, point, ...) on', ' the canvas. It is up to the application to display a', ' focus indication using f.e. highlighting.', '', '.. py:class:: QwtPlotCanvas([plot=None])', '', ' Constructor', '', ' :param qwt.plot.QwtPlot plot: Parent plot widget', '', ' .. seealso::', '', ' :py:meth:`qwt.plot.QwtPlot.setCanvas()`', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'BackingStore', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'CanvasFocusIndicator', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'HackStyledBackground', 4, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'ImmediatePaint', 8, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'ItemFocusIndicator', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'NoFocusIndicator', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Opaque', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', "\nCanvas of a QwtPlot.\n\nCanvas is the widget where all plot items are displayed\n\n.. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setCanvas()`\n\nPaint attributes:\n\n * `QwtPlotCanvas.BackingStore`:\n\n Paint double buffered reusing the content of the pixmap buffer\n when possible.\n\n Using a backing store might improve the performance significantly,\n when working with widget overlays (like rubber bands).\n Disabling the cache might improve the performance for\n incremental paints\n (using :py:class:`qwt.plot_directpainter.QwtPlotDirectPainter`).\n\n * `QwtPlotCanvas.Opaque`:\n\n Try to fill the complete contents rectangle of the plot canvas\n\n When using styled backgrounds Qt assumes, that the canvas doesn't\n fill its area completely (f.e because of rounded borders) and\n fills the area below the canvas. When this is done with gradients\n it might result in a serious performance bottleneck - depending on\n the size.\n\n When the Opaque attribute is enabled the canvas tries to\n identify the gaps with some heuristics and to fill those only.\n\n .. warning::\n\n Will not work for semitransparent backgrounds\n\n * `QwtPlotCanvas.HackStyledBackground`:\n\n Try to improve painting of styled backgrounds\n\n `QwtPlotCanvas` supports the box model attributes for\n customizing the layout with style sheets. Unfortunately\n the design of Qt style sheets has no concept how to\n handle backgrounds with rounded corners - beside of padding.\n\n When HackStyledBackground is enabled the plot canvas tries\n to separate the background from the background border\n by reverse engineering to paint the background before and\n the border after the plot items. In this order the border\n gets perfectly antialiased and you can avoid some pixel\n artifacts in the corners.\n\n * `QwtPlotCanvas.ImmediatePaint`:\n\n When ImmediatePaint is set replot() calls repaint()\n instead of update().\n\n .. seealso::\n\n :py:meth:`replot()`, :py:meth:`QWidget.repaint()`,\n :py:meth:`QWidget.update()`\n\nFocus indicators:\n\n * `QwtPlotCanvas.NoFocusIndicator`:\n\n Don't paint a focus indicator\n\n * `QwtPlotCanvas.CanvasFocusIndicator`:\n\n The focus is related to the complete canvas.\n Paint the focus indicator using paintFocus()\n\n * `QwtPlotCanvas.ItemFocusIndicator`:\n\n The focus is related to an item (curve, point, ...) on\n the canvas. It is up to the application to display a\n focus indication using f.e. highlighting.\n\n.. py:class:: QwtPlotCanvas([plot=None])\n\n Constructor\n\n :param qwt.plot.QwtPlot plot: Parent plot widget\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setCanvas()`\n", True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 344, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_canvas', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data', '__plot'), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'backingStore', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'borderPath', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'borderRadius', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawBorder', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawCanvas', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawFocusIndicator', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'event', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'focusIndicator', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invalidateBackingStore', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invalidatePaintCache', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'paintEvent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'plot', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'replot', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'resizeEvent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setBorderRadius', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setFocusIndicator', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setPaintAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testPaintAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateStyleSheetInfo', , False, {'members': }) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.plot [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'plot') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.plot', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.plot', , {'members': }, [':return: Parent plot widget', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.plot', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.plot', , {'members': }, [':return: Parent plot widget', '']) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.setPaintAttribute [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'setPaintAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.setPaintAttribute', , {'members': }, '(attribute, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.setPaintAttribute', , {'members': }, ['Changing the paint attributes', '', 'Paint attributes:', '', ' * `QwtPlotCanvas.BackingStore`', ' * `QwtPlotCanvas.Opaque`', ' * `QwtPlotCanvas.HackStyledBackground`', ' * `QwtPlotCanvas.ImmediatePaint`', '', ':param int attribute: Paint attribute', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`testPaintAttribute()`, :py:meth:`backingStore()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.setPaintAttribute', , {'members': }, '(attribute, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.setPaintAttribute', , {'members': }, ['Changing the paint attributes', '', 'Paint attributes:', '', ' * `QwtPlotCanvas.BackingStore`', ' * `QwtPlotCanvas.Opaque`', ' * `QwtPlotCanvas.HackStyledBackground`', ' * `QwtPlotCanvas.ImmediatePaint`', '', ':param int attribute: Paint attribute', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`testPaintAttribute()`, :py:meth:`backingStore()`', '']) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.testPaintAttribute [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'testPaintAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.testPaintAttribute', , {'members': }, '(attribute)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.testPaintAttribute', , {'members': }, ['Test whether a paint attribute is enabled', '', ':param int attribute: Paint attribute', ':return: True, when attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setPaintAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.testPaintAttribute', , {'members': }, '(attribute)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.testPaintAttribute', , {'members': }, ['Test whether a paint attribute is enabled', '', ':param int attribute: Paint attribute', ':return: True, when attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setPaintAttribute()`', '']) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.backingStore [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'backingStore') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.backingStore', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.backingStore', , {'members': }, [':return: Backing store, might be None', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.backingStore', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.backingStore', , {'members': }, [':return: Backing store, might be None', '']) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.invalidateBackingStore [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'invalidateBackingStore') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.invalidateBackingStore', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.invalidateBackingStore', , {'members': }, ['Invalidate the internal backing store', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.invalidateBackingStore', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.invalidateBackingStore', , {'members': }, ['Invalidate the internal backing store', '']) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.setFocusIndicator [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'setFocusIndicator') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.setFocusIndicator', , {'members': }, '(focusIndicator)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.setFocusIndicator', , {'members': }, ['Set the focus indicator', '', 'Focus indicators:', '', ' * `QwtPlotCanvas.NoFocusIndicator`', ' * `QwtPlotCanvas.CanvasFocusIndicator`', ' * `QwtPlotCanvas.ItemFocusIndicator`', '', ':param int focusIndicator: Focus indicator', '', '.. seealso::', '', ' :py:meth:`focusIndicator()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.setFocusIndicator', , {'members': }, '(focusIndicator)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.setFocusIndicator', , {'members': }, ['Set the focus indicator', '', 'Focus indicators:', '', ' * `QwtPlotCanvas.NoFocusIndicator`', ' * `QwtPlotCanvas.CanvasFocusIndicator`', ' * `QwtPlotCanvas.ItemFocusIndicator`', '', ':param int focusIndicator: Focus indicator', '', '.. seealso::', '', ' :py:meth:`focusIndicator()`', '']) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.focusIndicator [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'focusIndicator') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.focusIndicator', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.focusIndicator', , {'members': }, [':return: Focus indicator', '', '.. seealso::', '', ' :py:meth:`setFocusIndicator()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.focusIndicator', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.focusIndicator', , {'members': }, [':return: Focus indicator', '', '.. seealso::', '', ' :py:meth:`setFocusIndicator()`', '']) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.setBorderRadius [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'setBorderRadius') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.setBorderRadius', , {'members': }, '(radius)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.setBorderRadius', , {'members': }, ['Set the radius for the corners of the border frame', '', ':param float radius: Radius of a rounded corner', '', '.. seealso::', '', ' :py:meth:`borderRadius()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.setBorderRadius', , {'members': }, '(radius)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.setBorderRadius', , {'members': }, ['Set the radius for the corners of the border frame', '', ':param float radius: Radius of a rounded corner', '', '.. seealso::', '', ' :py:meth:`borderRadius()`', '']) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.borderRadius [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'borderRadius') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.borderRadius', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.borderRadius', , {'members': }, [':return: Radius for the corners of the border frame', '', '.. seealso::', '', ' :py:meth:`setBorderRadius()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.borderRadius', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.borderRadius', , {'members': }, [':return: Radius for the corners of the border frame', '', '.. seealso::', '', ' :py:meth:`setBorderRadius()`', '']) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.event [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'event') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.event', , {'members': }, '(self, e: Optional[QEvent])', 'bool') -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.event', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.event', , {'members': }, '(self, e: Optional[QEvent])', 'bool') +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.event', , {'members': }, []) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.paintEvent [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'paintEvent') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.paintEvent', , {'members': }, '(self, a0: Optional[QPaintEvent])', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.paintEvent', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.paintEvent', , {'members': }, '(self, a0: Optional[QPaintEvent])', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.paintEvent', , {'members': }, []) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.drawBorder [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'drawBorder') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.drawBorder', , {'members': }, '(painter)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.drawBorder', , {'members': }, ['Draw the border of the plot canvas', '', ':param QPainter painter: Painter', '', '.. seealso::', '', ' :py:meth:`setBorderRadius()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.drawBorder', , {'members': }, '(painter)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.drawBorder', , {'members': }, ['Draw the border of the plot canvas', '', ':param QPainter painter: Painter', '', '.. seealso::', '', ' :py:meth:`setBorderRadius()`', '']) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.resizeEvent [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'resizeEvent') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.resizeEvent', , {'members': }, '(self, a0: Optional[QResizeEvent])', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.resizeEvent', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.resizeEvent', , {'members': }, '(self, a0: Optional[QResizeEvent])', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.resizeEvent', , {'members': }, []) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.drawFocusIndicator [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'drawFocusIndicator') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.drawFocusIndicator', , {'members': }, '(painter)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.drawFocusIndicator', , {'members': }, ['Draw the focus indication', '', ':param QPainter painter: Painter', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.drawFocusIndicator', , {'members': }, '(painter)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.drawFocusIndicator', , {'members': }, ['Draw the focus indication', '', ':param QPainter painter: Painter', '']) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.replot [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'replot') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.replot', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.replot', , {'members': }, ['Invalidate the paint cache and repaint the canvas', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.replot', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.replot', , {'members': }, ['Invalidate the paint cache and repaint the canvas', '']) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.updateStyleSheetInfo [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'updateStyleSheetInfo') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.updateStyleSheetInfo', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.updateStyleSheetInfo', , {'members': }, ['Update the cached information about the current style sheet', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.updateStyleSheetInfo', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.updateStyleSheetInfo', , {'members': }, ['Update the cached information about the current style sheet', '']) [autodoc] from qwt.plot_canvas import QwtPlotCanvas.borderPath [autodoc] import qwt.plot_canvas => [autodoc] getattr(_, 'QwtPlotCanvas') [autodoc] => [autodoc] getattr(_, 'borderPath') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.borderPath', , {'members': }, '(rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.borderPath', , {'members': }, ['Calculate the painter path for a styled or rounded border', '', 'When the canvas has no styled background or rounded borders', 'the painter path is empty.', '', ':param QRect rect: Bounding rectangle of the canvas', ':return: Painter path, that can be used for clipping', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_canvas.QwtPlotCanvas.borderPath', , {'members': }, '(rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_canvas.QwtPlotCanvas.borderPath', , {'members': }, ['Calculate the painter path for a styled or rounded border', '', 'When the canvas has no styled background or rounded borders', 'the painter path is empty.', '', ':param QRect rect: Bounding rectangle of the canvas', ':return: Painter path, that can be used for clipping', '']) [autodoc] output: .. py:class:: QwtPlotCanvas(plot=None) @@ -7318,37 +7354,37 @@ [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_grid.QwtPlotGrid', , {'members': }, "(title='Grid')", None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_grid.QwtPlotGrid', , {'members': }, ['A class which draws a coordinate grid', '', 'The `QwtPlotGrid` class can be used to draw a coordinate grid.', 'A coordinate grid consists of major and minor vertical', 'and horizontal grid lines. The locations of the grid lines', 'are determined by the X and Y scale divisions which can', 'be assigned with `setXDiv()` and `setYDiv()`.', 'The `draw()` member draws the grid within a bounding', 'rectangle.', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA class which draws a coordinate grid\n\nThe `QwtPlotGrid` class can be used to draw a coordinate grid.\nA coordinate grid consists of major and minor vertical\nand horizontal grid lines. The locations of the grid lines\nare determined by the X and Y scale divisions which can\nbe assigned with `setXDiv()` and `setYDiv()`.\nThe `draw()` member draws the grid within a bounding\nrectangle.\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 39, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_grid', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawLines', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'enableX', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'enableXMin', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'enableY', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'enableYMin', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'majorPen', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'make', >, False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'minorPen', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'rtti', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setMajorPen', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setMinorPen', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setPen', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setXDiv', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setYDiv', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateScaleDiv', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'xEnabled', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'xMinEnabled', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'xScaleDiv', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'yEnabled', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'yMinEnabled', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'yScaleDiv', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_grid.QwtPlotGrid', , {'members': }, "(title='Grid')", None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_grid.QwtPlotGrid', , {'members': }, ['A class which draws a coordinate grid', '', 'The `QwtPlotGrid` class can be used to draw a coordinate grid.', 'A coordinate grid consists of major and minor vertical', 'and horizontal grid lines. The locations of the grid lines', 'are determined by the X and Y scale divisions which can', 'be assigned with `setXDiv()` and `setYDiv()`.', 'The `draw()` member draws the grid within a bounding', 'rectangle.', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA class which draws a coordinate grid\n\nThe `QwtPlotGrid` class can be used to draw a coordinate grid.\nA coordinate grid consists of major and minor vertical\nand horizontal grid lines. The locations of the grid lines\nare determined by the X and Y scale divisions which can\nbe assigned with `setXDiv()` and `setYDiv()`.\nThe `draw()` member draws the grid within a bounding\nrectangle.\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 39, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_grid', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawLines', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'enableX', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'enableXMin', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'enableY', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'enableYMin', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'majorPen', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'make', >, False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'minorPen', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'rtti', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setMajorPen', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setMinorPen', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setPen', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setXDiv', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setYDiv', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateScaleDiv', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'xEnabled', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'xMinEnabled', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'xScaleDiv', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'yEnabled', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'yMinEnabled', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'yScaleDiv', , False, {'members': }) [autodoc] from qwt.plot_grid import QwtPlotGrid.make [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') @@ -7356,188 +7392,188 @@ [autodoc] getattr(_, 'make') [autodoc] => > [app] emitting event: 'autodoc-before-process-signature'(>, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.make', >, {'members': }, '(plot=None, z=None, enablemajor=None, enableminor=None, color=None, width=None, style=None, mincolor=None, minwidth=None, minstyle=None)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.make', >, {'members': }, ['Create and setup a new `QwtPlotGrid` object (convenience function).', '', ':param plot: Plot to attach the curve to', ':type plot: qwt.plot.QwtPlot or None', ':param z: Z-value', ':type z: float or None', ':param enablemajor: Tuple of two boolean values (x, y) for enabling major grid lines', ':type enablemajor: bool or None', ':param enableminor: Tuple of two boolean values (x, y) for enabling minor grid lines', ':type enableminor: bool or None', ':param color: Pen color for both major and minor grid lines (default: Qt.gray)', ':type color: QColor or str or None', ':param width: Pen width for both major and minor grid lines (default: 1.0)', ':type width: float or None', ':param style: Pen style for both major and minor grid lines (default: Qt.DotLine)', ':type style: Qt.PenStyle or None', ':param mincolor: Pen color for minor grid lines only (default: Qt.gray)', ':type mincolor: QColor or str or None', ':param minwidth: Pen width for minor grid lines only (default: 1.0)', ':type minwidth: float or None', ':param minstyle: Pen style for minor grid lines only (default: Qt.DotLine)', ':type minstyle: Qt.PenStyle or None', '', '.. seealso::', '', ' :py:meth:`setMinorPen()`, :py:meth:`setMajorPen()`', '']) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.make', >, {'members': }, '(plot=None, z=None, enablemajor=None, enableminor=None, color=None, width=None, style=None, mincolor=None, minwidth=None, minstyle=None)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.make', >, {'members': }, ['Create and setup a new `QwtPlotGrid` object (convenience function).', '', ':param plot: Plot to attach the curve to', ':type plot: qwt.plot.QwtPlot or None', ':param z: Z-value', ':type z: float or None', ':param enablemajor: Tuple of two boolean values (x, y) for enabling major grid lines', ':type enablemajor: bool or None', ':param enableminor: Tuple of two boolean values (x, y) for enabling minor grid lines', ':type enableminor: bool or None', ':param color: Pen color for both major and minor grid lines (default: Qt.gray)', ':type color: QColor or str or None', ':param width: Pen width for both major and minor grid lines (default: 1.0)', ':type width: float or None', ':param style: Pen style for both major and minor grid lines (default: Qt.DotLine)', ':type style: Qt.PenStyle or None', ':param mincolor: Pen color for minor grid lines only (default: Qt.gray)', ':type mincolor: QColor or str or None', ':param minwidth: Pen width for minor grid lines only (default: 1.0)', ':type minwidth: float or None', ':param minstyle: Pen style for minor grid lines only (default: Qt.DotLine)', ':type minstyle: Qt.PenStyle or None', '', '.. seealso::', '', ' :py:meth:`setMinorPen()`, :py:meth:`setMajorPen()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.rtti [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'rtti') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.rtti', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.rtti', , {'members': }, [':return: Return `QwtPlotItem.Rtti_PlotGrid`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.rtti', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.rtti', , {'members': }, [':return: Return `QwtPlotItem.Rtti_PlotGrid`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.enableX [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'enableX') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.enableX', , {'members': }, '(on)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.enableX', , {'members': }, ['Enable or disable vertical grid lines', '', ':param bool on: Enable (true) or disable', '', '.. seealso::', '', ' :py:meth:`enableXMin()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.enableX', , {'members': }, '(on)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.enableX', , {'members': }, ['Enable or disable vertical grid lines', '', ':param bool on: Enable (true) or disable', '', '.. seealso::', '', ' :py:meth:`enableXMin()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.enableY [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'enableY') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.enableY', , {'members': }, '(on)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.enableY', , {'members': }, ['Enable or disable horizontal grid lines', '', ':param bool on: Enable (true) or disable', '', '.. seealso::', '', ' :py:meth:`enableYMin()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.enableY', , {'members': }, '(on)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.enableY', , {'members': }, ['Enable or disable horizontal grid lines', '', ':param bool on: Enable (true) or disable', '', '.. seealso::', '', ' :py:meth:`enableYMin()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.enableXMin [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'enableXMin') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.enableXMin', , {'members': }, '(on)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.enableXMin', , {'members': }, ['Enable or disable minor vertical grid lines.', '', ':param bool on: Enable (true) or disable', '', '.. seealso::', '', ' :py:meth:`enableX()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.enableXMin', , {'members': }, '(on)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.enableXMin', , {'members': }, ['Enable or disable minor vertical grid lines.', '', ':param bool on: Enable (true) or disable', '', '.. seealso::', '', ' :py:meth:`enableX()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.enableYMin [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'enableYMin') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.enableYMin', , {'members': }, '(on)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.enableYMin', , {'members': }, ['Enable or disable minor horizontal grid lines.', '', ':param bool on: Enable (true) or disable', '', '.. seealso::', '', ' :py:meth:`enableY()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.enableYMin', , {'members': }, '(on)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.enableYMin', , {'members': }, ['Enable or disable minor horizontal grid lines.', '', ':param bool on: Enable (true) or disable', '', '.. seealso::', '', ' :py:meth:`enableY()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.setXDiv [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'setXDiv') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.setXDiv', , {'members': }, '(scaleDiv)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.setXDiv', , {'members': }, ['Assign an x axis scale division', '', ':param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.setXDiv', , {'members': }, '(scaleDiv)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.setXDiv', , {'members': }, ['Assign an x axis scale division', '', ':param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.setYDiv [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'setYDiv') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.setYDiv', , {'members': }, '(scaleDiv)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.setYDiv', , {'members': }, ['Assign an y axis scale division', '', ':param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.setYDiv', , {'members': }, '(scaleDiv)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.setYDiv', , {'members': }, ['Assign an y axis scale division', '', ':param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.setPen [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'setPen') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.setPen', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.setPen', , {'members': }, ['Build and/or assign a pen for both major and minor grid lines', '', '.. py:method:: setPen(color, width, style)', ' :noindex:', '', ' Build and assign a pen for both major and minor grid lines', '', ' In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it', ' non cosmetic (see `QPen.isCosmetic()`). This method signature has', ' been introduced to hide this incompatibility.', '', ' :param QColor color: Pen color', ' :param float width: Pen width', ' :param Qt.PenStyle style: Pen style', '', '.. py:method:: setPen(pen)', ' :noindex:', '', ' Assign a pen for both major and minor grid lines', '', ' :param QPen pen: New pen', '', '.. seealso::', '', ' :py:meth:`pen()`, :py:meth:`brush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.setPen', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.setPen', , {'members': }, ['Build and/or assign a pen for both major and minor grid lines', '', '.. py:method:: setPen(color, width, style)', ' :noindex:', '', ' Build and assign a pen for both major and minor grid lines', '', ' In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it', ' non cosmetic (see `QPen.isCosmetic()`). This method signature has', ' been introduced to hide this incompatibility.', '', ' :param QColor color: Pen color', ' :param float width: Pen width', ' :param Qt.PenStyle style: Pen style', '', '.. py:method:: setPen(pen)', ' :noindex:', '', ' Assign a pen for both major and minor grid lines', '', ' :param QPen pen: New pen', '', '.. seealso::', '', ' :py:meth:`pen()`, :py:meth:`brush()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.setMajorPen [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'setMajorPen') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.setMajorPen', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.setMajorPen', , {'members': }, ['Build and/or assign a pen for both major grid lines', '', '.. py:method:: setMajorPen(color, width, style)', ' :noindex:', '', ' Build and assign a pen for both major grid lines', '', ' In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it', ' non cosmetic (see `QPen.isCosmetic()`). This method signature has', ' been introduced to hide this incompatibility.', '', ' :param QColor color: Pen color', ' :param float width: Pen width', ' :param Qt.PenStyle style: Pen style', '', '.. py:method:: setMajorPen(pen)', ' :noindex:', '', ' Assign a pen for the major grid lines', '', ' :param QPen pen: New pen', '', '.. seealso::', '', ' :py:meth:`majorPen()`, :py:meth:`setMinorPen()`,', ' :py:meth:`setPen()`, :py:meth:`pen()`, :py:meth:`brush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.setMajorPen', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.setMajorPen', , {'members': }, ['Build and/or assign a pen for both major grid lines', '', '.. py:method:: setMajorPen(color, width, style)', ' :noindex:', '', ' Build and assign a pen for both major grid lines', '', ' In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it', ' non cosmetic (see `QPen.isCosmetic()`). This method signature has', ' been introduced to hide this incompatibility.', '', ' :param QColor color: Pen color', ' :param float width: Pen width', ' :param Qt.PenStyle style: Pen style', '', '.. py:method:: setMajorPen(pen)', ' :noindex:', '', ' Assign a pen for the major grid lines', '', ' :param QPen pen: New pen', '', '.. seealso::', '', ' :py:meth:`majorPen()`, :py:meth:`setMinorPen()`,', ' :py:meth:`setPen()`, :py:meth:`pen()`, :py:meth:`brush()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.setMinorPen [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'setMinorPen') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.setMinorPen', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.setMinorPen', , {'members': }, ['Build and/or assign a pen for both minor grid lines', '', '.. py:method:: setMinorPen(color, width, style)', ' :noindex:', '', ' Build and assign a pen for both minor grid lines', '', ' In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it', ' non cosmetic (see `QPen.isCosmetic()`). This method signature has', ' been introduced to hide this incompatibility.', '', ' :param QColor color: Pen color', ' :param float width: Pen width', ' :param Qt.PenStyle style: Pen style', '', '.. py:method:: setMinorPen(pen)', ' :noindex:', '', ' Assign a pen for the minor grid lines', '', ' :param QPen pen: New pen', '', '.. seealso::', '', ' :py:meth:`minorPen()`, :py:meth:`setMajorPen()`,', ' :py:meth:`setPen()`, :py:meth:`pen()`, :py:meth:`brush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.setMinorPen', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.setMinorPen', , {'members': }, ['Build and/or assign a pen for both minor grid lines', '', '.. py:method:: setMinorPen(color, width, style)', ' :noindex:', '', ' Build and assign a pen for both minor grid lines', '', ' In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it', ' non cosmetic (see `QPen.isCosmetic()`). This method signature has', ' been introduced to hide this incompatibility.', '', ' :param QColor color: Pen color', ' :param float width: Pen width', ' :param Qt.PenStyle style: Pen style', '', '.. py:method:: setMinorPen(pen)', ' :noindex:', '', ' Assign a pen for the minor grid lines', '', ' :param QPen pen: New pen', '', '.. seealso::', '', ' :py:meth:`minorPen()`, :py:meth:`setMajorPen()`,', ' :py:meth:`setPen()`, :py:meth:`pen()`, :py:meth:`brush()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.draw [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'draw') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.draw', , {'members': }, '(painter, xMap, yMap, canvasRect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.draw', , {'members': }, ['Draw the grid', '', 'The grid is drawn into the bounding rectangle such that', "grid lines begin and end at the rectangle's borders. The X and Y", 'maps are used to map the scale divisions into the drawing region', 'screen.', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: X axis map', ':param qwt.scale_map.QwtScaleMap yMap: Y axis', ':param QRectF canvasRect: Contents rectangle of the plot canvas', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.draw', , {'members': }, '(painter, xMap, yMap, canvasRect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.draw', , {'members': }, ['Draw the grid', '', 'The grid is drawn into the bounding rectangle such that', "grid lines begin and end at the rectangle's borders. The X and Y", 'maps are used to map the scale divisions into the drawing region', 'screen.', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: X axis map', ':param qwt.scale_map.QwtScaleMap yMap: Y axis', ':param QRectF canvasRect: Contents rectangle of the plot canvas', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.majorPen [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'majorPen') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.majorPen', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.majorPen', , {'members': }, [':return: the pen for the major grid lines', '', '.. seealso::', '', ' :py:meth:`setMajorPen()`, :py:meth:`setMinorPen()`,', ' :py:meth:`setPen()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.majorPen', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.majorPen', , {'members': }, [':return: the pen for the major grid lines', '', '.. seealso::', '', ' :py:meth:`setMajorPen()`, :py:meth:`setMinorPen()`,', ' :py:meth:`setPen()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.minorPen [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'minorPen') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.minorPen', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.minorPen', , {'members': }, [':return: the pen for the minor grid lines', '', '.. seealso::', '', ' :py:meth:`setMinorPen()`, :py:meth:`setMajorPen()`,', ' :py:meth:`setPen()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.minorPen', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.minorPen', , {'members': }, [':return: the pen for the minor grid lines', '', '.. seealso::', '', ' :py:meth:`setMinorPen()`, :py:meth:`setMajorPen()`,', ' :py:meth:`setPen()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.xEnabled [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'xEnabled') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.xEnabled', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.xEnabled', , {'members': }, [':return: True if vertical grid lines are enabled', '', '.. seealso::', '', ' :py:meth:`enableX()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.xEnabled', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.xEnabled', , {'members': }, [':return: True if vertical grid lines are enabled', '', '.. seealso::', '', ' :py:meth:`enableX()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.yEnabled [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'yEnabled') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.yEnabled', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.yEnabled', , {'members': }, [':return: True if horizontal grid lines are enabled', '', '.. seealso::', '', ' :py:meth:`enableY()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.yEnabled', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.yEnabled', , {'members': }, [':return: True if horizontal grid lines are enabled', '', '.. seealso::', '', ' :py:meth:`enableY()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.xMinEnabled [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'xMinEnabled') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.xMinEnabled', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.xMinEnabled', , {'members': }, [':return: True if minor vertical grid lines are enabled', '', '.. seealso::', '', ' :py:meth:`enableXMin()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.xMinEnabled', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.xMinEnabled', , {'members': }, [':return: True if minor vertical grid lines are enabled', '', '.. seealso::', '', ' :py:meth:`enableXMin()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.yMinEnabled [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'yMinEnabled') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.yMinEnabled', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.yMinEnabled', , {'members': }, [':return: True if minor horizontal grid lines are enabled', '', '.. seealso::', '', ' :py:meth:`enableYMin()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.yMinEnabled', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.yMinEnabled', , {'members': }, [':return: True if minor horizontal grid lines are enabled', '', '.. seealso::', '', ' :py:meth:`enableYMin()`', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.xScaleDiv [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'xScaleDiv') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.xScaleDiv', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.xScaleDiv', , {'members': }, [':return: the scale division of the x axis', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.xScaleDiv', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.xScaleDiv', , {'members': }, [':return: the scale division of the x axis', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.yScaleDiv [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'yScaleDiv') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.yScaleDiv', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.yScaleDiv', , {'members': }, [':return: the scale division of the y axis', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.yScaleDiv', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.yScaleDiv', , {'members': }, [':return: the scale division of the y axis', '']) [autodoc] from qwt.plot_grid import QwtPlotGrid.updateScaleDiv [autodoc] import qwt.plot_grid => [autodoc] getattr(_, 'QwtPlotGrid') [autodoc] => [autodoc] getattr(_, 'updateScaleDiv') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.updateScaleDiv', , {'members': }, '(xScaleDiv, yScaleDiv)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.updateScaleDiv', , {'members': }, ['Update the grid to changes of the axes scale division', '', ':param qwt.scale_map.QwtScaleMap xMap: Scale division of the x-axis', ':param qwt.scale_map.QwtScaleMap yMap: Scale division of the y-axis', '', '.. seealso::', '', ' :py:meth:`updateAxes()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_grid.QwtPlotGrid.updateScaleDiv', , {'members': }, '(xScaleDiv, yScaleDiv)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_grid.QwtPlotGrid.updateScaleDiv', , {'members': }, ['Update the grid to changes of the axes scale division', '', ':param qwt.scale_map.QwtScaleMap xMap: Scale division of the x-axis', ':param qwt.scale_map.QwtScaleMap yMap: Scale division of the y-axis', '', '.. seealso::', '', ' :py:meth:`updateAxes()`', '']) [autodoc] output: .. py:class:: QwtPlotGrid(title='Grid') @@ -7902,57 +7938,57 @@ [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_curve.QwtPlotCurve', , {'members': }, '(title=None)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_curve.QwtPlotCurve', , {'members': }, ['A plot item, that represents a series of points', '', 'A curve is the representation of a series of points in the x-y plane.', 'It supports different display styles and symbols.', '', '.. seealso::', '', ' :py:class:`qwt.symbol.QwtSymbol()`,', ' :py:class:`qwt.scale_map.QwtScaleMap()`', '', 'Curve styles:', '', ' * `QwtPlotCurve.NoCurve`:', '', " Don't draw a curve. Note: This doesn't affect the symbols.", '', ' * `QwtPlotCurve.Lines`:', '', ' Connect the points with straight lines.', '', ' * `QwtPlotCurve.Sticks`:', '', ' Draw vertical or horizontal sticks ( depending on the', ' orientation() ) from a baseline which is defined by setBaseline().', '', ' * `QwtPlotCurve.Steps`:', '', ' Connect the points with a step function. The step function', ' is drawn from the left to the right or vice versa,', ' depending on the QwtPlotCurve::Inverted attribute.', '', ' * `QwtPlotCurve.Dots`:', '', ' Draw dots at the locations of the data points. Note:', ' This is different from a dotted line (see setPen()), and faster', ' as a curve in QwtPlotCurve::NoStyle style and a symbol', ' painting a point.', '', ' * `QwtPlotCurve.UserCurve`:', '', ' Styles >= QwtPlotCurve.UserCurve are reserved for derived', ' classes of QwtPlotCurve that overload drawCurve() with', ' additional application specific curve types.', '', 'Curve attributes:', '', ' * `QwtPlotCurve.Inverted`:', '', ' For `QwtPlotCurve.Steps` only.', ' Draws a step function from the right to the left.', '', 'Legend attributes:', '', ' * `QwtPlotCurve.LegendNoAttribute`:', '', ' `QwtPlotCurve` tries to find a color representing the curve', ' and paints a rectangle with it.', '', ' * `QwtPlotCurve.LegendShowLine`:', '', ' If the style() is not `QwtPlotCurve.NoCurve` a line', ' is painted with the curve pen().', '', ' * `QwtPlotCurve.LegendShowSymbol`:', '', ' If the curve has a valid symbol it is painted.', '', ' * `QwtPlotCurve.LegendShowBrush`:', '', ' If the curve has a brush a rectangle filled with the', ' curve brush() is painted.', '', '', '.. py:class:: QwtPlotCurve([title=None])', '', ' Constructor', '', ' :param title: Curve title', ' :type title: qwt.text.QwtText or str or None', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'Dots', 3, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Inverted', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'LegendNoAttribute', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'LegendShowBrush', 4, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'LegendShowLine', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'LegendShowSymbol', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Lines', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'NoCurve', -1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Steps', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Sticks', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'UserCurve', 100, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', "\nA plot item, that represents a series of points\n\nA curve is the representation of a series of points in the x-y plane.\nIt supports different display styles and symbols.\n\n.. seealso::\n\n :py:class:`qwt.symbol.QwtSymbol()`,\n :py:class:`qwt.scale_map.QwtScaleMap()`\n\nCurve styles:\n\n * `QwtPlotCurve.NoCurve`:\n\n Don't draw a curve. Note: This doesn't affect the symbols.\n\n * `QwtPlotCurve.Lines`:\n\n Connect the points with straight lines.\n\n * `QwtPlotCurve.Sticks`:\n\n Draw vertical or horizontal sticks ( depending on the\n orientation() ) from a baseline which is defined by setBaseline().\n\n * `QwtPlotCurve.Steps`:\n\n Connect the points with a step function. The step function\n is drawn from the left to the right or vice versa,\n depending on the QwtPlotCurve::Inverted attribute.\n\n * `QwtPlotCurve.Dots`:\n\n Draw dots at the locations of the data points. Note:\n This is different from a dotted line (see setPen()), and faster\n as a curve in QwtPlotCurve::NoStyle style and a symbol\n painting a point.\n\n * `QwtPlotCurve.UserCurve`:\n\n Styles >= QwtPlotCurve.UserCurve are reserved for derived\n classes of QwtPlotCurve that overload drawCurve() with\n additional application specific curve types.\n\nCurve attributes:\n\n * `QwtPlotCurve.Inverted`:\n\n For `QwtPlotCurve.Steps` only.\n Draws a step function from the right to the left.\n\nLegend attributes:\n\n * `QwtPlotCurve.LegendNoAttribute`:\n\n `QwtPlotCurve` tries to find a color representing the curve\n and paints a rectangle with it.\n\n * `QwtPlotCurve.LegendShowLine`:\n\n If the style() is not `QwtPlotCurve.NoCurve` a line\n is painted with the curve pen().\n\n * `QwtPlotCurve.LegendShowSymbol`:\n\n If the curve has a valid symbol it is painted.\n\n * `QwtPlotCurve.LegendShowBrush`:\n\n If the curve has a brush a rectangle filled with the\n curve brush() is painted.\n\n\n.. py:class:: QwtPlotCurve([title=None])\n\n Constructor\n\n :param title: Curve title\n :type title: qwt.text.QwtText or str or None\n", True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 123, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_curve', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'baseline', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'brush', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'closePolyline', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'closestPoint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'directPaint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawCurve', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawDots', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawLines', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawSeries', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawSteps', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawSticks', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawSymbols', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'fillCurve', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'init', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'legendIcon', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'make', >, False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'pen', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'rtti', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setBaseline', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setBrush', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setCurveAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setData', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLegendAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setPen', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setSamples', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setStyle', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setSymbol', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'style', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'symbol', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testCurveAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testLegendAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_curve.QwtPlotCurve', , {'members': }, '(title=None)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_curve.QwtPlotCurve', , {'members': }, ['A plot item, that represents a series of points', '', 'A curve is the representation of a series of points in the x-y plane.', 'It supports different display styles and symbols.', '', '.. seealso::', '', ' :py:class:`qwt.symbol.QwtSymbol()`,', ' :py:class:`qwt.scale_map.QwtScaleMap()`', '', 'Curve styles:', '', ' * `QwtPlotCurve.NoCurve`:', '', " Don't draw a curve. Note: This doesn't affect the symbols.", '', ' * `QwtPlotCurve.Lines`:', '', ' Connect the points with straight lines.', '', ' * `QwtPlotCurve.Sticks`:', '', ' Draw vertical or horizontal sticks ( depending on the', ' orientation() ) from a baseline which is defined by setBaseline().', '', ' * `QwtPlotCurve.Steps`:', '', ' Connect the points with a step function. The step function', ' is drawn from the left to the right or vice versa,', ' depending on the QwtPlotCurve::Inverted attribute.', '', ' * `QwtPlotCurve.Dots`:', '', ' Draw dots at the locations of the data points. Note:', ' This is different from a dotted line (see setPen()), and faster', ' as a curve in QwtPlotCurve::NoStyle style and a symbol', ' painting a point.', '', ' * `QwtPlotCurve.UserCurve`:', '', ' Styles >= QwtPlotCurve.UserCurve are reserved for derived', ' classes of QwtPlotCurve that overload drawCurve() with', ' additional application specific curve types.', '', 'Curve attributes:', '', ' * `QwtPlotCurve.Inverted`:', '', ' For `QwtPlotCurve.Steps` only.', ' Draws a step function from the right to the left.', '', 'Legend attributes:', '', ' * `QwtPlotCurve.LegendNoAttribute`:', '', ' `QwtPlotCurve` tries to find a color representing the curve', ' and paints a rectangle with it.', '', ' * `QwtPlotCurve.LegendShowLine`:', '', ' If the style() is not `QwtPlotCurve.NoCurve` a line', ' is painted with the curve pen().', '', ' * `QwtPlotCurve.LegendShowSymbol`:', '', ' If the curve has a valid symbol it is painted.', '', ' * `QwtPlotCurve.LegendShowBrush`:', '', ' If the curve has a brush a rectangle filled with the', ' curve brush() is painted.', '', '', '.. py:class:: QwtPlotCurve([title=None])', '', ' Constructor', '', ' :param title: Curve title', ' :type title: qwt.text.QwtText or str or None', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'Dots', 3, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Inverted', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'LegendNoAttribute', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'LegendShowBrush', 4, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'LegendShowLine', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'LegendShowSymbol', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Lines', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'NoCurve', -1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Steps', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Sticks', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'UserCurve', 100, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', "\nA plot item, that represents a series of points\n\nA curve is the representation of a series of points in the x-y plane.\nIt supports different display styles and symbols.\n\n.. seealso::\n\n :py:class:`qwt.symbol.QwtSymbol()`,\n :py:class:`qwt.scale_map.QwtScaleMap()`\n\nCurve styles:\n\n * `QwtPlotCurve.NoCurve`:\n\n Don't draw a curve. Note: This doesn't affect the symbols.\n\n * `QwtPlotCurve.Lines`:\n\n Connect the points with straight lines.\n\n * `QwtPlotCurve.Sticks`:\n\n Draw vertical or horizontal sticks ( depending on the\n orientation() ) from a baseline which is defined by setBaseline().\n\n * `QwtPlotCurve.Steps`:\n\n Connect the points with a step function. The step function\n is drawn from the left to the right or vice versa,\n depending on the QwtPlotCurve::Inverted attribute.\n\n * `QwtPlotCurve.Dots`:\n\n Draw dots at the locations of the data points. Note:\n This is different from a dotted line (see setPen()), and faster\n as a curve in QwtPlotCurve::NoStyle style and a symbol\n painting a point.\n\n * `QwtPlotCurve.UserCurve`:\n\n Styles >= QwtPlotCurve.UserCurve are reserved for derived\n classes of QwtPlotCurve that overload drawCurve() with\n additional application specific curve types.\n\nCurve attributes:\n\n * `QwtPlotCurve.Inverted`:\n\n For `QwtPlotCurve.Steps` only.\n Draws a step function from the right to the left.\n\nLegend attributes:\n\n * `QwtPlotCurve.LegendNoAttribute`:\n\n `QwtPlotCurve` tries to find a color representing the curve\n and paints a rectangle with it.\n\n * `QwtPlotCurve.LegendShowLine`:\n\n If the style() is not `QwtPlotCurve.NoCurve` a line\n is painted with the curve pen().\n\n * `QwtPlotCurve.LegendShowSymbol`:\n\n If the curve has a valid symbol it is painted.\n\n * `QwtPlotCurve.LegendShowBrush`:\n\n If the curve has a brush a rectangle filled with the\n curve brush() is painted.\n\n\n.. py:class:: QwtPlotCurve([title=None])\n\n Constructor\n\n :param title: Curve title\n :type title: qwt.text.QwtText or str or None\n", True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 123, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_curve', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'baseline', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'brush', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'closePolyline', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'closestPoint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'directPaint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawCurve', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawDots', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawLines', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawSeries', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawSteps', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawSticks', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawSymbols', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'fillCurve', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'init', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'legendIcon', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'make', >, False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'pen', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'rtti', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setBaseline', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setBrush', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setCurveAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setData', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLegendAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setPen', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setSamples', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setStyle', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setSymbol', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'style', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'symbol', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testCurveAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testLegendAttribute', , False, {'members': }) [autodoc] from qwt.plot_curve import QwtPlotCurve.make [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') @@ -7960,278 +7996,278 @@ [autodoc] getattr(_, 'make') [autodoc] => > [app] emitting event: 'autodoc-before-process-signature'(>, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.make', >, {'members': }, '(xdata=None, ydata=None, title=None, plot=None, z=None, x_axis=None, y_axis=None, style=None, symbol=None, linecolor=None, linewidth=None, linestyle=None, antialiased=False, size=None, finite=None)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.make', >, {'members': }, ['Create and setup a new `QwtPlotCurve` object (convenience function).', '', ':param xdata: List/array of x values', ':param ydata: List/array of y values', ':param title: Curve title', ':type title: qwt.text.QwtText or str or None', ':param plot: Plot to attach the curve to', ':type plot: qwt.plot.QwtPlot or None', ':param z: Z-value', ':type z: float or None', ':param x_axis: curve X-axis (default: QwtPlot.yLeft)', ':type x_axis: int or None', ':param y_axis: curve Y-axis (default: QwtPlot.xBottom)', ':type y_axis: int or None', ':param style: curve style (`QwtPlotCurve.NoCurve`, `QwtPlotCurve.Lines`, `QwtPlotCurve.Sticks`, `QwtPlotCurve.Steps`, `QwtPlotCurve.Dots`, `QwtPlotCurve.UserCurve`)', ':type style: int or None', ':param symbol: curve symbol', ':type symbol: qwt.symbol.QwtSymbol or None', ':param linecolor: curve line color', ':type linecolor: QColor or str or None', ':param linewidth: curve line width', ':type linewidth: float or None', ':param linestyle: curve pen style', ':type linestyle: Qt.PenStyle or None', ':param bool antialiased: if True, enable antialiasing rendering', ':param size: size of xData and yData', ':type size: int or None', ':param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements', '', '.. seealso::', '', ' :py:meth:`setData()`, :py:meth:`setPen()`, :py:meth:`attach()`', '']) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.make', >, {'members': }, '(xdata=None, ydata=None, title=None, plot=None, z=None, x_axis=None, y_axis=None, style=None, symbol=None, linecolor=None, linewidth=None, linestyle=None, antialiased=False, size=None, finite=None)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.make', >, {'members': }, ['Create and setup a new `QwtPlotCurve` object (convenience function).', '', ':param xdata: List/array of x values', ':param ydata: List/array of y values', ':param title: Curve title', ':type title: qwt.text.QwtText or str or None', ':param plot: Plot to attach the curve to', ':type plot: qwt.plot.QwtPlot or None', ':param z: Z-value', ':type z: float or None', ':param x_axis: curve X-axis (default: QwtPlot.yLeft)', ':type x_axis: int or None', ':param y_axis: curve Y-axis (default: QwtPlot.xBottom)', ':type y_axis: int or None', ':param style: curve style (`QwtPlotCurve.NoCurve`, `QwtPlotCurve.Lines`, `QwtPlotCurve.Sticks`, `QwtPlotCurve.Steps`, `QwtPlotCurve.Dots`, `QwtPlotCurve.UserCurve`)', ':type style: int or None', ':param symbol: curve symbol', ':type symbol: qwt.symbol.QwtSymbol or None', ':param linecolor: curve line color', ':type linecolor: QColor or str or None', ':param linewidth: curve line width', ':type linewidth: float or None', ':param linestyle: curve pen style', ':type linestyle: Qt.PenStyle or None', ':param bool antialiased: if True, enable antialiasing rendering', ':param size: size of xData and yData', ':type size: int or None', ':param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements', '', '.. seealso::', '', ' :py:meth:`setData()`, :py:meth:`setPen()`, :py:meth:`attach()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.init [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'init') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.init', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.init', , {'members': }, ['Initialize internal members', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.init', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.init', , {'members': }, ['Initialize internal members', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.rtti [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'rtti') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.rtti', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.rtti', , {'members': }, [':return: `QwtPlotItem.Rtti_PlotCurve`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.rtti', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.rtti', , {'members': }, [':return: `QwtPlotItem.Rtti_PlotCurve`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.setLegendAttribute [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'setLegendAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setLegendAttribute', , {'members': }, '(attribute, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setLegendAttribute', , {'members': }, ['Specify an attribute how to draw the legend icon', '', 'Legend attributes:', '', ' * `QwtPlotCurve.LegendNoAttribute`', ' * `QwtPlotCurve.LegendShowLine`', ' * `QwtPlotCurve.LegendShowSymbol`', ' * `QwtPlotCurve.LegendShowBrush`', '', ':param int attribute: Legend attribute', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`testLegendAttribute()`, :py:meth:`legendIcon()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setLegendAttribute', , {'members': }, '(attribute, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setLegendAttribute', , {'members': }, ['Specify an attribute how to draw the legend icon', '', 'Legend attributes:', '', ' * `QwtPlotCurve.LegendNoAttribute`', ' * `QwtPlotCurve.LegendShowLine`', ' * `QwtPlotCurve.LegendShowSymbol`', ' * `QwtPlotCurve.LegendShowBrush`', '', ':param int attribute: Legend attribute', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`testLegendAttribute()`, :py:meth:`legendIcon()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.testLegendAttribute [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'testLegendAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.testLegendAttribute', , {'members': }, '(attribute)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.testLegendAttribute', , {'members': }, [':param int attribute: Legend attribute', ':return: True, when attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setLegendAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.testLegendAttribute', , {'members': }, '(attribute)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.testLegendAttribute', , {'members': }, [':param int attribute: Legend attribute', ':return: True, when attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setLegendAttribute()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.setStyle [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'setStyle') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setStyle', , {'members': }, '(style)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setStyle', , {'members': }, ["Set the curve's drawing style", '', 'Valid curve styles:', '', ' * `QwtPlotCurve.NoCurve`', ' * `QwtPlotCurve.Lines`', ' * `QwtPlotCurve.Sticks`', ' * `QwtPlotCurve.Steps`', ' * `QwtPlotCurve.Dots`', ' * `QwtPlotCurve.UserCurve`', '', ':param int style: Curve style', '', '.. seealso::', '', ' :py:meth:`style()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setStyle', , {'members': }, '(style)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setStyle', , {'members': }, ["Set the curve's drawing style", '', 'Valid curve styles:', '', ' * `QwtPlotCurve.NoCurve`', ' * `QwtPlotCurve.Lines`', ' * `QwtPlotCurve.Sticks`', ' * `QwtPlotCurve.Steps`', ' * `QwtPlotCurve.Dots`', ' * `QwtPlotCurve.UserCurve`', '', ':param int style: Curve style', '', '.. seealso::', '', ' :py:meth:`style()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.style [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'style') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.style', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.style', , {'members': }, [':return: Style of the curve', '', '.. seealso::', '', ' :py:meth:`setStyle()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.style', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.style', , {'members': }, [':return: Style of the curve', '', '.. seealso::', '', ' :py:meth:`setStyle()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.setSymbol [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'setSymbol') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setSymbol', , {'members': }, '(symbol)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setSymbol', , {'members': }, ['Assign a symbol', '', 'The curve will take the ownership of the symbol, hence the previously', 'set symbol will be delete by setting a new one. If symbol is None no', 'symbol will be drawn.', '', ':param qwt.symbol.QwtSymbol symbol: Symbol', '', '.. seealso::', '', ' :py:meth:`symbol()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setSymbol', , {'members': }, '(symbol)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setSymbol', , {'members': }, ['Assign a symbol', '', 'The curve will take the ownership of the symbol, hence the previously', 'set symbol will be delete by setting a new one. If symbol is None no', 'symbol will be drawn.', '', ':param qwt.symbol.QwtSymbol symbol: Symbol', '', '.. seealso::', '', ' :py:meth:`symbol()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.symbol [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'symbol') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.symbol', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.symbol', , {'members': }, [':return: Current symbol or None, when no symbol has been assigned', '', '.. seealso::', '', ' :py:meth:`setSymbol()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.symbol', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.symbol', , {'members': }, [':return: Current symbol or None, when no symbol has been assigned', '', '.. seealso::', '', ' :py:meth:`setSymbol()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.setPen [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'setPen') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setPen', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setPen', , {'members': }, ['Build and/or assign a pen, depending on the arguments.', '', '.. py:method:: setPen(color, width, style)', ' :noindex:', '', ' Build and assign a pen', '', ' In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it', ' non cosmetic (see `QPen.isCosmetic()`). This method signature has', ' been introduced to hide this incompatibility.', '', ' :param QColor color: Pen color', ' :param float width: Pen width', ' :param Qt.PenStyle style: Pen style', '', '.. py:method:: setPen(pen)', ' :noindex:', '', ' Assign a pen', '', ' :param QPen pen: New pen', '', '.. seealso::', '', ' :py:meth:`pen()`, :py:meth:`brush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setPen', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setPen', , {'members': }, ['Build and/or assign a pen, depending on the arguments.', '', '.. py:method:: setPen(color, width, style)', ' :noindex:', '', ' Build and assign a pen', '', ' In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it', ' non cosmetic (see `QPen.isCosmetic()`). This method signature has', ' been introduced to hide this incompatibility.', '', ' :param QColor color: Pen color', ' :param float width: Pen width', ' :param Qt.PenStyle style: Pen style', '', '.. py:method:: setPen(pen)', ' :noindex:', '', ' Assign a pen', '', ' :param QPen pen: New pen', '', '.. seealso::', '', ' :py:meth:`pen()`, :py:meth:`brush()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.pen [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'pen') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.pen', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.pen', , {'members': }, [':return: Pen used to draw the lines', '', '.. seealso::', '', ' :py:meth:`setPen()`, :py:meth:`brush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.pen', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.pen', , {'members': }, [':return: Pen used to draw the lines', '', '.. seealso::', '', ' :py:meth:`setPen()`, :py:meth:`brush()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.setBrush [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'setBrush') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setBrush', , {'members': }, '(brush)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setBrush', , {'members': }, ['Assign a brush.', '', 'In case of `brush.style() != QBrush.NoBrush`', 'and `style() != QwtPlotCurve.Sticks`', 'the area between the curve and the baseline will be filled.', '', 'In case `not brush.color().isValid()` the area will be filled by', '`pen.color()`. The fill algorithm simply connects the first and the', 'last curve point to the baseline. So the curve data has to be sorted', '(ascending or descending).', '', ':param brush: New brush', ':type brush: QBrush or QColor', '', '.. seealso::', '', ' :py:meth:`brush()`, :py:meth:`setBaseline()`, :py:meth:`baseline()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setBrush', , {'members': }, '(brush)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setBrush', , {'members': }, ['Assign a brush.', '', 'In case of `brush.style() != QBrush.NoBrush`', 'and `style() != QwtPlotCurve.Sticks`', 'the area between the curve and the baseline will be filled.', '', 'In case `not brush.color().isValid()` the area will be filled by', '`pen.color()`. The fill algorithm simply connects the first and the', 'last curve point to the baseline. So the curve data has to be sorted', '(ascending or descending).', '', ':param brush: New brush', ':type brush: QBrush or QColor', '', '.. seealso::', '', ' :py:meth:`brush()`, :py:meth:`setBaseline()`, :py:meth:`baseline()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.brush [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'brush') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.brush', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.brush', , {'members': }, [':return: Brush used to fill the area between lines and the baseline', '', '.. seealso::', '', ' :py:meth:`setBrush()`, :py:meth:`setBaseline()`,', ' :py:meth:`baseline()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.brush', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.brush', , {'members': }, [':return: Brush used to fill the area between lines and the baseline', '', '.. seealso::', '', ' :py:meth:`setBrush()`, :py:meth:`setBaseline()`,', ' :py:meth:`baseline()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.directPaint [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'directPaint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.directPaint', , {'members': }, '(from_, to)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.directPaint', , {'members': }, ['When observing a measurement while it is running, new points have', 'to be added to an existing seriesItem. This method can be used to', 'display them avoiding a complete redraw of the canvas.', '', 'Setting `plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)`', 'will result in faster painting, if the paint engine of the canvas', 'widget supports this feature.', '', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted', '', '.. seealso::', '', ' :py:meth:`drawSeries()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.directPaint', , {'members': }, '(from_, to)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.directPaint', , {'members': }, ['When observing a measurement while it is running, new points have', 'to be added to an existing seriesItem. This method can be used to', 'display them avoiding a complete redraw of the canvas.', '', 'Setting `plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)`', 'will result in faster painting, if the paint engine of the canvas', 'widget supports this feature.', '', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted', '', '.. seealso::', '', ' :py:meth:`drawSeries()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.drawSeries [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'drawSeries') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawSeries', , {'members': }, '(painter, xMap, yMap, canvasRect, from_, to)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawSeries', , {'members': }, ['Draw an interval of the curve', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`drawCurve()`, :py:meth:`drawSymbols()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawSeries', , {'members': }, '(painter, xMap, yMap, canvasRect, from_, to)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawSeries', , {'members': }, ['Draw an interval of the curve', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`drawCurve()`, :py:meth:`drawSymbols()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.drawCurve [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'drawCurve') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawCurve', , {'members': }, '(painter, style, xMap, yMap, canvasRect, from_, to)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawCurve', , {'members': }, ['Draw the line part (without symbols) of a curve interval.', '', ':param QPainter painter: Painter', ':param int style: curve style, see `QwtPlotCurve.CurveStyle`', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`draw()`, :py:meth:`drawDots()`, :py:meth:`drawLines()`,', ' :py:meth:`drawSteps()`, :py:meth:`drawSticks()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawCurve', , {'members': }, '(painter, style, xMap, yMap, canvasRect, from_, to)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawCurve', , {'members': }, ['Draw the line part (without symbols) of a curve interval.', '', ':param QPainter painter: Painter', ':param int style: curve style, see `QwtPlotCurve.CurveStyle`', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`draw()`, :py:meth:`drawDots()`, :py:meth:`drawLines()`,', ' :py:meth:`drawSteps()`, :py:meth:`drawSticks()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.drawLines [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'drawLines') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawLines', , {'members': }, '(painter, xMap, yMap, canvasRect, from_, to)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawLines', , {'members': }, ['Draw lines', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`draw()`, :py:meth:`drawDots()`,', ' :py:meth:`drawSteps()`, :py:meth:`drawSticks()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawLines', , {'members': }, '(painter, xMap, yMap, canvasRect, from_, to)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawLines', , {'members': }, ['Draw lines', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`draw()`, :py:meth:`drawDots()`,', ' :py:meth:`drawSteps()`, :py:meth:`drawSticks()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.drawSticks [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'drawSticks') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawSticks', , {'members': }, '(painter, xMap, yMap, canvasRect, from_, to)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawSticks', , {'members': }, ['Draw sticks', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`draw()`, :py:meth:`drawDots()`,', ' :py:meth:`drawSteps()`, :py:meth:`drawLines()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawSticks', , {'members': }, '(painter, xMap, yMap, canvasRect, from_, to)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawSticks', , {'members': }, ['Draw sticks', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`draw()`, :py:meth:`drawDots()`,', ' :py:meth:`drawSteps()`, :py:meth:`drawLines()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.drawDots [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'drawDots') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawDots', , {'members': }, '(painter, xMap, yMap, canvasRect, from_, to)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawDots', , {'members': }, ['Draw dots', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`draw()`, :py:meth:`drawSticks()`,', ' :py:meth:`drawSteps()`, :py:meth:`drawLines()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawDots', , {'members': }, '(painter, xMap, yMap, canvasRect, from_, to)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawDots', , {'members': }, ['Draw dots', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`draw()`, :py:meth:`drawSticks()`,', ' :py:meth:`drawSteps()`, :py:meth:`drawLines()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.drawSteps [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'drawSteps') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawSteps', , {'members': }, '(painter, xMap, yMap, canvasRect, from_, to)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawSteps', , {'members': }, ['Draw steps', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`draw()`, :py:meth:`drawSticks()`,', ' :py:meth:`drawDots()`, :py:meth:`drawLines()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawSteps', , {'members': }, '(painter, xMap, yMap, canvasRect, from_, to)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawSteps', , {'members': }, ['Draw steps', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`draw()`, :py:meth:`drawSticks()`,', ' :py:meth:`drawDots()`, :py:meth:`drawLines()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.setCurveAttribute [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'setCurveAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setCurveAttribute', , {'members': }, '(attribute, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setCurveAttribute', , {'members': }, ['Specify an attribute for drawing the curve', '', 'Supported curve attributes:', '', ' * `QwtPlotCurve.Inverted`', '', ':param int attribute: Curve attribute', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`testCurveAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setCurveAttribute', , {'members': }, '(attribute, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setCurveAttribute', , {'members': }, ['Specify an attribute for drawing the curve', '', 'Supported curve attributes:', '', ' * `QwtPlotCurve.Inverted`', '', ':param int attribute: Curve attribute', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`testCurveAttribute()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.testCurveAttribute [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'testCurveAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.testCurveAttribute', , {'members': }, '(attribute)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.testCurveAttribute', , {'members': }, [':return: True, if attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setCurveAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.testCurveAttribute', , {'members': }, '(attribute)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.testCurveAttribute', , {'members': }, [':return: True, if attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setCurveAttribute()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.fillCurve [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'fillCurve') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.fillCurve', , {'members': }, '(painter, xMap, yMap, canvasRect, polygon)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.fillCurve', , {'members': }, ['Fill the area between the curve and the baseline with', 'the curve brush', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param QPolygonF polygon: Polygon - will be modified !', '', '.. seealso::', '', ' :py:meth:`setBrush()`, :py:meth:`setBaseline()`,', ' :py:meth:`setStyle()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.fillCurve', , {'members': }, '(painter, xMap, yMap, canvasRect, polygon)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.fillCurve', , {'members': }, ['Fill the area between the curve and the baseline with', 'the curve brush', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param QPolygonF polygon: Polygon - will be modified !', '', '.. seealso::', '', ' :py:meth:`setBrush()`, :py:meth:`setBaseline()`,', ' :py:meth:`setStyle()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.closePolyline [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'closePolyline') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.closePolyline', , {'members': }, '(painter, xMap, yMap, polygon)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.closePolyline', , {'members': }, ['Complete a polygon to be a closed polygon including the', 'area between the original polygon and the baseline.', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QPolygonF polygon: Polygon to be completed', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.closePolyline', , {'members': }, '(painter, xMap, yMap, polygon)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.closePolyline', , {'members': }, ['Complete a polygon to be a closed polygon including the', 'area between the original polygon and the baseline.', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QPolygonF polygon: Polygon to be completed', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.drawSymbols [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'drawSymbols') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawSymbols', , {'members': }, '(painter, symbol, xMap, yMap, canvasRect, from_, to)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawSymbols', , {'members': }, ['Draw symbols', '', ':param QPainter painter: Painter', ':param qwt.symbol.QwtSymbol symbol: Curve symbol', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`setSymbol()`, :py:meth:`drawSeries()`,', ' :py:meth:`drawCurve()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.drawSymbols', , {'members': }, '(painter, symbol, xMap, yMap, canvasRect, from_, to)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.drawSymbols', , {'members': }, ['Draw symbols', '', ':param QPainter painter: Painter', ':param qwt.symbol.QwtSymbol symbol: Curve symbol', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' :py:meth:`setSymbol()`, :py:meth:`drawSeries()`,', ' :py:meth:`drawCurve()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.setBaseline [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'setBaseline') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setBaseline', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setBaseline', , {'members': }, ['Set the value of the baseline', '', 'The baseline is needed for filling the curve with a brush or', 'the Sticks drawing style.', '', 'The interpretation of the baseline depends on the `orientation()`.', 'With `Qt.Horizontal`, the baseline is interpreted as a horizontal line', 'at y = baseline(), with `Qt.Vertical`, it is interpreted as a vertical', 'line at x = baseline().', '', 'The default value is 0.0.', '', ':param float value: Value of the baseline', '', '.. seealso::', '', ' :py:meth:`baseline()`, :py:meth:`setBrush()`,', ' :py:meth:`setStyle()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setBaseline', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setBaseline', , {'members': }, ['Set the value of the baseline', '', 'The baseline is needed for filling the curve with a brush or', 'the Sticks drawing style.', '', 'The interpretation of the baseline depends on the `orientation()`.', 'With `Qt.Horizontal`, the baseline is interpreted as a horizontal line', 'at y = baseline(), with `Qt.Vertical`, it is interpreted as a vertical', 'line at x = baseline().', '', 'The default value is 0.0.', '', ':param float value: Value of the baseline', '', '.. seealso::', '', ' :py:meth:`baseline()`, :py:meth:`setBrush()`,', ' :py:meth:`setStyle()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.baseline [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'baseline') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.baseline', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.baseline', , {'members': }, [':return: Value of the baseline', '', '.. seealso::', '', ' :py:meth:`setBaseline()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.baseline', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.baseline', , {'members': }, [':return: Value of the baseline', '', '.. seealso::', '', ' :py:meth:`setBaseline()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.closestPoint [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'closestPoint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.closestPoint', , {'members': }, '(pos)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.closestPoint', , {'members': }, ['Find the closest curve point for a specific position', '', ':param QPoint pos: Position, where to look for the closest curve point', ':return: tuple `(index, dist)`', '', '`dist` is the distance between the position and the closest curve', 'point. `index` is the index of the closest curve point, or -1 if', 'none can be found ( f.e when the curve has no points ).', '', '.. note::', '', ' `closestPoint()` implements a dumb algorithm, that iterates', ' over all points', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.closestPoint', , {'members': }, '(pos)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.closestPoint', , {'members': }, ['Find the closest curve point for a specific position', '', ':param QPoint pos: Position, where to look for the closest curve point', ':return: tuple `(index, dist)`', '', '`dist` is the distance between the position and the closest curve', 'point. `index` is the index of the closest curve point, or -1 if', 'none can be found ( f.e when the curve has no points ).', '', '.. note::', '', ' `closestPoint()` implements a dumb algorithm, that iterates', ' over all points', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.legendIcon [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'legendIcon') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.legendIcon', , {'members': }, '(index, size)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.legendIcon', , {'members': }, [':param int index: Index of the legend entry (ignored as there is only one)', ':param QSizeF size: Icon size', ':return: Icon representing the curve on the legend', '', '.. seealso::', '', ' :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`,', ' :py:meth:`qwt.plot.QwtPlotItem.legendData()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.legendIcon', , {'members': }, '(index, size)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.legendIcon', , {'members': }, [':param int index: Index of the legend entry (ignored as there is only one)', ':param QSizeF size: Icon size', ':return: Icon representing the curve on the legend', '', '.. seealso::', '', ' :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`,', ' :py:meth:`qwt.plot.QwtPlotItem.legendData()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.setData [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'setData') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setData', , {'members': }, '(*args, **kwargs)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setData', , {'members': }, ['Initialize data with a series data object or an array of points.', '', '.. py:method:: setData(data):', '', ' :param data: Series data (e.g. `QwtPointArrayData` instance)', ' :type data: .plot_series.QwtSeriesData', '', '.. py:method:: setData(xData, yData, [size=None], [finite=True]):', '', ' Initialize data with `x` and `y` arrays.', '', ' This signature was removed in Qwt6 and is temporarily maintained here to ensure compatibility with Qwt5.', '', ' Same as `setSamples(x, y, [size=None], [finite=True])`', '', ' :param x: List/array of x values', ' :param y: List/array of y values', ' :param size: size of xData and yData', ' :type size: int or None', ' :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements', '', '.. seealso::', '', ' :py:meth:`setSamples()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setData', , {'members': }, '(*args, **kwargs)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setData', , {'members': }, ['Initialize data with a series data object or an array of points.', '', '.. py:method:: setData(data):', '', ' :param data: Series data (e.g. `QwtPointArrayData` instance)', ' :type data: .plot_series.QwtSeriesData', '', '.. py:method:: setData(xData, yData, [size=None], [finite=True]):', '', ' Initialize data with `x` and `y` arrays.', '', ' This signature was removed in Qwt6 and is temporarily maintained here to ensure compatibility with Qwt5.', '', ' Same as `setSamples(x, y, [size=None], [finite=True])`', '', ' :param x: List/array of x values', ' :param y: List/array of y values', ' :param size: size of xData and yData', ' :type size: int or None', ' :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements', '', '.. seealso::', '', ' :py:meth:`setSamples()`', '']) [autodoc] from qwt.plot_curve import QwtPlotCurve.setSamples [autodoc] import qwt.plot_curve => [autodoc] getattr(_, 'QwtPlotCurve') [autodoc] => [autodoc] getattr(_, 'setSamples') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setSamples', , {'members': }, '(*args, **kwargs)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setSamples', , {'members': }, ['Initialize data with an array of points.', '', '.. py:method:: setSamples(data):', '', ' :param data: Series data (e.g. `QwtPointArrayData` instance)', ' :type data: .plot_series.QwtSeriesData', '', '', '.. py:method:: setSamples(samples):', '', ' Same as `setData(QwtPointArrayData(samples))`', '', ' :param samples: List/array of points', '', '.. py:method:: setSamples(xData, yData, [size=None], [finite=True]):', '', ' Same as `setData(QwtPointArrayData(xData, yData, [size=None]))`', '', ' :param xData: List/array of x values', ' :param yData: List/array of y values', ' :param size: size of xData and yData', ' :type size: int or None', ' :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements', '', '.. seealso::', '', ' :py:class:`.plot_series.QwtPointArrayData`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_curve.QwtPlotCurve.setSamples', , {'members': }, '(*args, **kwargs)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_curve.QwtPlotCurve.setSamples', , {'members': }, ['Initialize data with an array of points.', '', '.. py:method:: setSamples(data):', '', ' :param data: Series data (e.g. `QwtPointArrayData` instance)', ' :type data: .plot_series.QwtSeriesData', '', '', '.. py:method:: setSamples(samples):', '', ' Same as `setData(QwtPointArrayData(samples))`', '', ' :param samples: List/array of points', '', '.. py:method:: setSamples(xData, yData, [size=None], [finite=True]):', '', ' Same as `setData(QwtPointArrayData(xData, yData, [size=None]))`', '', ' :param xData: List/array of x values', ' :param yData: List/array of y values', ' :param size: size of xData and yData', ' :type size: int or None', ' :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements', '', '.. seealso::', '', ' :py:class:`.plot_series.QwtPointArrayData`', '']) [autodoc] output: .. py:class:: QwtPlotCurve(title=None) @@ -8920,46 +8956,46 @@ [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_marker.QwtPlotMarker', , {'members': }, '(title=None)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_marker.QwtPlotMarker', , {'members': }, ['A class for drawing markers', '', 'A marker can be a horizontal line, a vertical line,', 'a symbol, a label or any combination of them, which can', 'be drawn around a center point inside a bounding rectangle.', '', 'The `setSymbol()` member assigns a symbol to the marker.', 'The symbol is drawn at the specified point.', '', 'With `setLabel()`, a label can be assigned to the marker.', 'The `setLabelAlignment()` member specifies where the label is drawn. All', 'the Align*-constants in `Qt.AlignmentFlags` (see Qt documentation)', "are valid. The interpretation of the alignment depends on the marker's", 'line style. The alignment refers to the center point of', 'the marker, which means, for example, that the label would be printed', 'left above the center point if the alignment was set to', '`Qt.AlignLeft | Qt.AlignTop`.', '', 'Line styles:', '', ' * `QwtPlotMarker.NoLine`: No line', ' * `QwtPlotMarker.HLine`: A horizontal line', ' * `QwtPlotMarker.VLine`: A vertical line', ' * `QwtPlotMarker.Cross`: A crosshair', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'Cross', 3, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'HLine', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'NoLine', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'VLine', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', "\nA class for drawing markers\n\nA marker can be a horizontal line, a vertical line,\na symbol, a label or any combination of them, which can\nbe drawn around a center point inside a bounding rectangle.\n\nThe `setSymbol()` member assigns a symbol to the marker.\nThe symbol is drawn at the specified point.\n\nWith `setLabel()`, a label can be assigned to the marker.\nThe `setLabelAlignment()` member specifies where the label is drawn. All\nthe Align*-constants in `Qt.AlignmentFlags` (see Qt documentation)\nare valid. The interpretation of the alignment depends on the marker's\nline style. The alignment refers to the center point of\nthe marker, which means, for example, that the label would be printed\nleft above the center point if the alignment was set to\n`Qt.AlignLeft | Qt.AlignTop`.\n\nLine styles:\n\n * `QwtPlotMarker.NoLine`: No line\n * `QwtPlotMarker.HLine`: A horizontal line\n * `QwtPlotMarker.VLine`: A vertical line\n * `QwtPlotMarker.Cross`: A crosshair\n", True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 41, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_marker', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawLabel', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawLines', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'label', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'labelAlignment', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'labelOrientation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'legendIcon', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'linePen', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'lineStyle', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'make', >, False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'rtti', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLabel', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLabelAlignment', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLabelOrientation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLinePen', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLineStyle', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setSpacing', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setSymbol', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setValue', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setXValue', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setYValue', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'spacing', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'symbol', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'value', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'xValue', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'yValue', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_marker.QwtPlotMarker', , {'members': }, '(title=None)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_marker.QwtPlotMarker', , {'members': }, ['A class for drawing markers', '', 'A marker can be a horizontal line, a vertical line,', 'a symbol, a label or any combination of them, which can', 'be drawn around a center point inside a bounding rectangle.', '', 'The `setSymbol()` member assigns a symbol to the marker.', 'The symbol is drawn at the specified point.', '', 'With `setLabel()`, a label can be assigned to the marker.', 'The `setLabelAlignment()` member specifies where the label is drawn. All', 'the Align*-constants in `Qt.AlignmentFlags` (see Qt documentation)', "are valid. The interpretation of the alignment depends on the marker's", 'line style. The alignment refers to the center point of', 'the marker, which means, for example, that the label would be printed', 'left above the center point if the alignment was set to', '`Qt.AlignLeft | Qt.AlignTop`.', '', 'Line styles:', '', ' * `QwtPlotMarker.NoLine`: No line', ' * `QwtPlotMarker.HLine`: A horizontal line', ' * `QwtPlotMarker.VLine`: A vertical line', ' * `QwtPlotMarker.Cross`: A crosshair', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'Cross', 3, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'HLine', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'NoLine', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'VLine', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', "\nA class for drawing markers\n\nA marker can be a horizontal line, a vertical line,\na symbol, a label or any combination of them, which can\nbe drawn around a center point inside a bounding rectangle.\n\nThe `setSymbol()` member assigns a symbol to the marker.\nThe symbol is drawn at the specified point.\n\nWith `setLabel()`, a label can be assigned to the marker.\nThe `setLabelAlignment()` member specifies where the label is drawn. All\nthe Align*-constants in `Qt.AlignmentFlags` (see Qt documentation)\nare valid. The interpretation of the alignment depends on the marker's\nline style. The alignment refers to the center point of\nthe marker, which means, for example, that the label would be printed\nleft above the center point if the alignment was set to\n`Qt.AlignLeft | Qt.AlignTop`.\n\nLine styles:\n\n * `QwtPlotMarker.NoLine`: No line\n * `QwtPlotMarker.HLine`: A horizontal line\n * `QwtPlotMarker.VLine`: A vertical line\n * `QwtPlotMarker.Cross`: A crosshair\n", True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 41, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_marker', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawLabel', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawLines', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'label', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'labelAlignment', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'labelOrientation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'legendIcon', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'linePen', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'lineStyle', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'make', >, False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'rtti', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLabel', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLabelAlignment', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLabelOrientation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLinePen', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLineStyle', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setSpacing', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setSymbol', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setValue', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setXValue', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setYValue', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'spacing', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'symbol', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'value', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'xValue', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'yValue', , False, {'members': }) [autodoc] from qwt.plot_marker import QwtPlotMarker.make [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') @@ -8967,242 +9003,242 @@ [autodoc] getattr(_, 'make') [autodoc] => > [app] emitting event: 'autodoc-before-process-signature'(>, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.make', >, {'members': }, '(xvalue=None, yvalue=None, title=None, label=None, symbol=None, plot=None, z=None, x_axis=None, y_axis=None, align=None, orientation=None, spacing=None, linestyle=None, color=None, width=None, style=None, antialiased=False)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.make', >, {'members': }, ['Create and setup a new `QwtPlotMarker` object (convenience function).', '', ':param xvalue: x position (optional, default: None)', ':type xvalue: float or None', ':param yvalue: y position (optional, default: None)', ':type yvalue: float or None', ':param title: Marker title', ':type title: qwt.text.QwtText or str or None', ':param label: Label text', ':type label: qwt.text.QwtText or str or None', ':param symbol: New symbol', ':type symbol: qwt.symbol.QwtSymbol or None', ':param plot: Plot to attach the curve to', ':type plot: qwt.plot.QwtPlot or None', ':param z: Z-value', ':type z: float or None', ':param int x_axis: curve X-axis (default: QwtPlot.yLeft)', ':param int y_axis: curve Y-axis (default: QwtPlot.xBottom)', ':param align: Alignment of the label', ':type align: Qt.Alignment or None', ':param orientation: Orientation of the label', ':type orientation: Qt.Orientation or None', ':param spacing: Spacing (distance between the position and the label)', ':type spacing: int or None', ':param int linestyle: Line style', ':param color: Pen color', ':type color: QColor or str or None', ':param float width: Pen width', ':param Qt.PenStyle style: Pen style', ':param bool antialiased: if True, enable antialiasing rendering', '', '.. seealso::', '', ' :py:meth:`setData()`, :py:meth:`setPen()`, :py:meth:`attach()`', '']) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.make', >, {'members': }, '(xvalue=None, yvalue=None, title=None, label=None, symbol=None, plot=None, z=None, x_axis=None, y_axis=None, align=None, orientation=None, spacing=None, linestyle=None, color=None, width=None, style=None, antialiased=False)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.make', >, {'members': }, ['Create and setup a new `QwtPlotMarker` object (convenience function).', '', ':param xvalue: x position (optional, default: None)', ':type xvalue: float or None', ':param yvalue: y position (optional, default: None)', ':type yvalue: float or None', ':param title: Marker title', ':type title: qwt.text.QwtText or str or None', ':param label: Label text', ':type label: qwt.text.QwtText or str or None', ':param symbol: New symbol', ':type symbol: qwt.symbol.QwtSymbol or None', ':param plot: Plot to attach the curve to', ':type plot: qwt.plot.QwtPlot or None', ':param z: Z-value', ':type z: float or None', ':param int x_axis: curve X-axis (default: QwtPlot.yLeft)', ':param int y_axis: curve Y-axis (default: QwtPlot.xBottom)', ':param align: Alignment of the label', ':type align: Qt.Alignment or None', ':param orientation: Orientation of the label', ':type orientation: Qt.Orientation or None', ':param spacing: Spacing (distance between the position and the label)', ':type spacing: int or None', ':param int linestyle: Line style', ':param color: Pen color', ':type color: QColor or str or None', ':param float width: Pen width', ':param Qt.PenStyle style: Pen style', ':param bool antialiased: if True, enable antialiasing rendering', '', '.. seealso::', '', ' :py:meth:`setData()`, :py:meth:`setPen()`, :py:meth:`attach()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.rtti [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'rtti') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.rtti', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.rtti', , {'members': }, [':return: `QwtPlotItem.Rtti_PlotMarker`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.rtti', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.rtti', , {'members': }, [':return: `QwtPlotItem.Rtti_PlotMarker`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.value [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'value') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.value', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.value', , {'members': }, [':return: Value', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.value', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.value', , {'members': }, [':return: Value', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.xValue [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'xValue') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.xValue', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.xValue', , {'members': }, [':return: x Value', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.xValue', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.xValue', , {'members': }, [':return: x Value', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.yValue [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'yValue') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.yValue', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.yValue', , {'members': }, [':return: y Value', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.yValue', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.yValue', , {'members': }, [':return: y Value', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.setValue [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'setValue') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setValue', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setValue', , {'members': }, ['Set Value', '', '.. py:method:: setValue(pos):', '', ' :param QPointF pos: Position', '', '.. py:method:: setValue(x, y):', '', ' :param float x: x position', ' :param float y: y position', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setValue', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setValue', , {'members': }, ['Set Value', '', '.. py:method:: setValue(pos):', '', ' :param QPointF pos: Position', '', '.. py:method:: setValue(x, y):', '', ' :param float x: x position', ' :param float y: y position', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.setXValue [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'setXValue') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setXValue', , {'members': }, '(x)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setXValue', , {'members': }, ['Set X Value', '', ':param float x: x position', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setXValue', , {'members': }, '(x)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setXValue', , {'members': }, ['Set X Value', '', ':param float x: x position', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.setYValue [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'setYValue') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setYValue', , {'members': }, '(y)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setYValue', , {'members': }, ['Set Y Value', '', ':param float y: y position', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setYValue', , {'members': }, '(y)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setYValue', , {'members': }, ['Set Y Value', '', ':param float y: y position', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.draw [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'draw') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.draw', , {'members': }, '(painter, xMap, yMap, canvasRect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.draw', , {'members': }, ['Draw the marker', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: x Scale Map', ':param qwt.scale_map.QwtScaleMap yMap: y Scale Map', ':param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.draw', , {'members': }, '(painter, xMap, yMap, canvasRect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.draw', , {'members': }, ['Draw the marker', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: x Scale Map', ':param qwt.scale_map.QwtScaleMap yMap: y Scale Map', ':param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.drawLines [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'drawLines') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.drawLines', , {'members': }, '(painter, canvasRect, pos)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.drawLines', , {'members': }, ['Draw the lines marker', '', ':param QPainter painter: Painter', ':param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates', ':param QPointF pos: Position of the marker, translated into widget coordinates', '', '.. seealso::', '', ' :py:meth:`drawLabel()`,', ' :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.drawLines', , {'members': }, '(painter, canvasRect, pos)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.drawLines', , {'members': }, ['Draw the lines marker', '', ':param QPainter painter: Painter', ':param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates', ':param QPointF pos: Position of the marker, translated into widget coordinates', '', '.. seealso::', '', ' :py:meth:`drawLabel()`,', ' :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.drawLabel [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'drawLabel') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.drawLabel', , {'members': }, '(painter, canvasRect, pos)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.drawLabel', , {'members': }, ['Align and draw the text label of the marker', '', ':param QPainter painter: Painter', ':param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates', ':param QPointF pos: Position of the marker, translated into widget coordinates', '', '.. seealso::', '', ' :py:meth:`drawLabel()`,', ' :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.drawLabel', , {'members': }, '(painter, canvasRect, pos)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.drawLabel', , {'members': }, ['Align and draw the text label of the marker', '', ':param QPainter painter: Painter', ':param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates', ':param QPointF pos: Position of the marker, translated into widget coordinates', '', '.. seealso::', '', ' :py:meth:`drawLabel()`,', ' :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.setLineStyle [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'setLineStyle') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setLineStyle', , {'members': }, '(style)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setLineStyle', , {'members': }, ['Set the line style', '', ':param int style: Line style', '', 'Line styles:', '', ' * `QwtPlotMarker.NoLine`: No line', ' * `QwtPlotMarker.HLine`: A horizontal line', ' * `QwtPlotMarker.VLine`: A vertical line', ' * `QwtPlotMarker.Cross`: A crosshair', '', '.. seealso::', '', ' :py:meth:`lineStyle()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setLineStyle', , {'members': }, '(style)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setLineStyle', , {'members': }, ['Set the line style', '', ':param int style: Line style', '', 'Line styles:', '', ' * `QwtPlotMarker.NoLine`: No line', ' * `QwtPlotMarker.HLine`: A horizontal line', ' * `QwtPlotMarker.VLine`: A vertical line', ' * `QwtPlotMarker.Cross`: A crosshair', '', '.. seealso::', '', ' :py:meth:`lineStyle()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.lineStyle [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'lineStyle') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.lineStyle', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.lineStyle', , {'members': }, [':return: the line style', '', '.. seealso::', '', ' :py:meth:`setLineStyle()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.lineStyle', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.lineStyle', , {'members': }, [':return: the line style', '', '.. seealso::', '', ' :py:meth:`setLineStyle()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.setSymbol [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'setSymbol') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setSymbol', , {'members': }, '(symbol)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setSymbol', , {'members': }, ['Assign a symbol', '', ':param qwt.symbol.QwtSymbol symbol: New symbol', '', '.. seealso::', '', ' :py:meth:`symbol()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setSymbol', , {'members': }, '(symbol)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setSymbol', , {'members': }, ['Assign a symbol', '', ':param qwt.symbol.QwtSymbol symbol: New symbol', '', '.. seealso::', '', ' :py:meth:`symbol()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.symbol [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'symbol') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.symbol', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.symbol', , {'members': }, [':return: the symbol', '', '.. seealso::', '', ' :py:meth:`setSymbol()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.symbol', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.symbol', , {'members': }, [':return: the symbol', '', '.. seealso::', '', ' :py:meth:`setSymbol()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.setLabel [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'setLabel') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setLabel', , {'members': }, '(label)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setLabel', , {'members': }, ['Set the label', '', ':param label: Label text', ':type label: qwt.text.QwtText or str', '', '.. seealso::', '', ' :py:meth:`label()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setLabel', , {'members': }, '(label)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setLabel', , {'members': }, ['Set the label', '', ':param label: Label text', ':type label: qwt.text.QwtText or str', '', '.. seealso::', '', ' :py:meth:`label()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.label [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'label') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.label', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.label', , {'members': }, [':return: the label', '', '.. seealso::', '', ' :py:meth:`setLabel()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.label', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.label', , {'members': }, [':return: the label', '', '.. seealso::', '', ' :py:meth:`setLabel()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.setLabelAlignment [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'setLabelAlignment') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setLabelAlignment', , {'members': }, '(align)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setLabelAlignment', , {'members': }, ['Set the alignment of the label', '', 'In case of `QwtPlotMarker.HLine` the alignment is relative to the', 'y position of the marker, but the horizontal flags correspond to the', 'canvas rectangle. In case of `QwtPlotMarker.VLine` the alignment is', 'relative to the x position of the marker, but the vertical flags', 'correspond to the canvas rectangle.', '', "In all other styles the alignment is relative to the marker's position.", '', ':param Qt.Alignment align: Alignment', '', '.. seealso::', '', ' :py:meth:`labelAlignment()`, :py:meth:`labelOrientation()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setLabelAlignment', , {'members': }, '(align)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setLabelAlignment', , {'members': }, ['Set the alignment of the label', '', 'In case of `QwtPlotMarker.HLine` the alignment is relative to the', 'y position of the marker, but the horizontal flags correspond to the', 'canvas rectangle. In case of `QwtPlotMarker.VLine` the alignment is', 'relative to the x position of the marker, but the vertical flags', 'correspond to the canvas rectangle.', '', "In all other styles the alignment is relative to the marker's position.", '', ':param Qt.Alignment align: Alignment', '', '.. seealso::', '', ' :py:meth:`labelAlignment()`, :py:meth:`labelOrientation()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.labelAlignment [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'labelAlignment') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.labelAlignment', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.labelAlignment', , {'members': }, [':return: the label alignment', '', '.. seealso::', '', ' :py:meth:`setLabelAlignment()`, :py:meth:`setLabelOrientation()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.labelAlignment', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.labelAlignment', , {'members': }, [':return: the label alignment', '', '.. seealso::', '', ' :py:meth:`setLabelAlignment()`, :py:meth:`setLabelOrientation()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.setLabelOrientation [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'setLabelOrientation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setLabelOrientation', , {'members': }, '(orientation)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setLabelOrientation', , {'members': }, ['Set the orientation of the label', '', 'When orientation is `Qt.Vertical` the label is rotated by 90.0 degrees', '(from bottom to top).', '', ':param Qt.Orientation orientation: Orientation of the label', '', '.. seealso::', '', ' :py:meth:`labelOrientation()`, :py:meth:`setLabelAlignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setLabelOrientation', , {'members': }, '(orientation)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setLabelOrientation', , {'members': }, ['Set the orientation of the label', '', 'When orientation is `Qt.Vertical` the label is rotated by 90.0 degrees', '(from bottom to top).', '', ':param Qt.Orientation orientation: Orientation of the label', '', '.. seealso::', '', ' :py:meth:`labelOrientation()`, :py:meth:`setLabelAlignment()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.labelOrientation [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'labelOrientation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.labelOrientation', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.labelOrientation', , {'members': }, [':return: the label orientation', '', '.. seealso::', '', ' :py:meth:`setLabelOrientation()`, :py:meth:`labelAlignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.labelOrientation', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.labelOrientation', , {'members': }, [':return: the label orientation', '', '.. seealso::', '', ' :py:meth:`setLabelOrientation()`, :py:meth:`labelAlignment()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.setSpacing [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'setSpacing') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setSpacing', , {'members': }, '(spacing)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setSpacing', , {'members': }, ['Set the spacing', '', 'When the label is not centered on the marker position, the spacing', 'is the distance between the position and the label.', '', ':param int spacing: Spacing', '', '.. seealso::', '', ' :py:meth:`spacing()`, :py:meth:`setLabelAlignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setSpacing', , {'members': }, '(spacing)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setSpacing', , {'members': }, ['Set the spacing', '', 'When the label is not centered on the marker position, the spacing', 'is the distance between the position and the label.', '', ':param int spacing: Spacing', '', '.. seealso::', '', ' :py:meth:`spacing()`, :py:meth:`setLabelAlignment()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.spacing [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'spacing') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.spacing', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.spacing', , {'members': }, [':return: the spacing', '', '.. seealso::', '', ' :py:meth:`setSpacing()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.spacing', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.spacing', , {'members': }, [':return: the spacing', '', '.. seealso::', '', ' :py:meth:`setSpacing()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.setLinePen [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'setLinePen') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setLinePen', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setLinePen', , {'members': }, ['Build and/or assigna a line pen, depending on the arguments.', '', '.. py:method:: setLinePen(color, width, style)', ' :noindex:', '', ' Build and assign a line pen', '', ' In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it', ' non cosmetic (see `QPen.isCosmetic()`). This method signature has', ' been introduced to hide this incompatibility.', '', ' :param QColor color: Pen color', ' :param float width: Pen width', ' :param Qt.PenStyle style: Pen style', '', '.. py:method:: setLinePen(pen)', ' :noindex:', '', ' Specify a pen for the line.', '', ' :param QPen pen: New pen', '', '.. seealso::', '', ' :py:meth:`pen()`, :py:meth:`brush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.setLinePen', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.setLinePen', , {'members': }, ['Build and/or assigna a line pen, depending on the arguments.', '', '.. py:method:: setLinePen(color, width, style)', ' :noindex:', '', ' Build and assign a line pen', '', ' In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it', ' non cosmetic (see `QPen.isCosmetic()`). This method signature has', ' been introduced to hide this incompatibility.', '', ' :param QColor color: Pen color', ' :param float width: Pen width', ' :param Qt.PenStyle style: Pen style', '', '.. py:method:: setLinePen(pen)', ' :noindex:', '', ' Specify a pen for the line.', '', ' :param QPen pen: New pen', '', '.. seealso::', '', ' :py:meth:`pen()`, :py:meth:`brush()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.linePen [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'linePen') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.linePen', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.linePen', , {'members': }, [':return: the line pen', '', '.. seealso::', '', ' :py:meth:`setLinePen()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.linePen', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.linePen', , {'members': }, [':return: the line pen', '', '.. seealso::', '', ' :py:meth:`setLinePen()`', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.boundingRect [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'boundingRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.boundingRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.boundingRect', , {'members': }, [':return: An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)', '', '.. note::', '', ' A width or height < 0.0 is ignored by the autoscaler', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.boundingRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.boundingRect', , {'members': }, [':return: An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)', '', '.. note::', '', ' A width or height < 0.0 is ignored by the autoscaler', '']) [autodoc] from qwt.plot_marker import QwtPlotMarker.legendIcon [autodoc] import qwt.plot_marker => [autodoc] getattr(_, 'QwtPlotMarker') [autodoc] => [autodoc] getattr(_, 'legendIcon') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.legendIcon', , {'members': }, '(index, size)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.legendIcon', , {'members': }, [':param int index: Index of the legend entry (ignored as there is only one)', ':param QSizeF size: Icon size', ':return: Icon representing the marker on the legend', '', '.. seealso::', '', ' :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`,', ' :py:meth:`qwt.plot.QwtPlotItem.legendData()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_marker.QwtPlotMarker.legendIcon', , {'members': }, '(index, size)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_marker.QwtPlotMarker.legendIcon', , {'members': }, [':param int index: Index of the legend entry (ignored as there is only one)', ':param QSizeF size: Icon size', ':return: Icon representing the marker on the legend', '', '.. seealso::', '', ' :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`,', ' :py:meth:`qwt.plot.QwtPlotItem.legendData()`', '']) [autodoc] output: .. py:class:: QwtPlotMarker(title=None) @@ -9649,113 +9685,113 @@ [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendData') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.legend.QwtLegendData', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.legend.QwtLegendData', , {'members': }, ['Attributes of an entry on a legend', '', '`QwtLegendData` is an abstract container ( like `QAbstractModel` )', 'to exchange attributes, that are only known between to', 'the plot item and the legend.', '', 'By overloading `QwtPlotItem.legendData()` any other set of attributes', 'could be used, that can be handled by a modified ( or completely', 'different ) implementation of a legend.', '', '.. seealso::', '', ' :py:class:`qwt.legend.QwtLegend`', '', '.. note::', '', ' The stockchart example implements a legend as a tree', ' with checkable items', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'Checkable', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Clickable', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'IconRole', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'ModeRole', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'ReadOnly', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'TitleRole', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'UserRole', 32, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.legend', '__firstlineno__': 43, '__doc__': '\nAttributes of an entry on a legend\n\n`QwtLegendData` is an abstract container ( like `QAbstractModel` )\nto exchange attributes, that are only known between to\nthe plot item and the legend.\n\nBy overloading `QwtPlotItem.legendData()` any other set of attributes\ncould be used, that can be handled by a modified ( or completely\ndifferent ) implementation of a legend.\n\n.. seealso::\n\n :py:class:`qwt.legend.QwtLegend`\n\n.. note::\n\n The stockchart example implements a legend as a tree\n with checkable items\n', 'ReadOnly': 0, 'Clickable': 1, 'Checkable': 2, 'ModeRole': 0, 'TitleRole': 1, 'IconRole': 2, 'UserRole': 32, '__init__': , 'setValues': , 'values': , 'hasRole': , 'setValue': , 'value': , 'isValid': , 'title': , 'icon': , 'mode': , '__static_attributes__': ('__map',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nAttributes of an entry on a legend\n\n`QwtLegendData` is an abstract container ( like `QAbstractModel` )\nto exchange attributes, that are only known between to\nthe plot item and the legend.\n\nBy overloading `QwtPlotItem.legendData()` any other set of attributes\ncould be used, that can be handled by a modified ( or completely\ndifferent ) implementation of a legend.\n\n.. seealso::\n\n :py:class:`qwt.legend.QwtLegend`\n\n.. note::\n\n The stockchart example implements a legend as a tree\n with checkable items\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 43, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.legend', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__map',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'hasRole', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'icon', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isValid', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'mode', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setValue', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setValues', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'title', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'value', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'values', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.legend.QwtLegendData', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.legend.QwtLegendData', , {'members': }, ['Attributes of an entry on a legend', '', '`QwtLegendData` is an abstract container ( like `QAbstractModel` )', 'to exchange attributes, that are only known between to', 'the plot item and the legend.', '', 'By overloading `QwtPlotItem.legendData()` any other set of attributes', 'could be used, that can be handled by a modified ( or completely', 'different ) implementation of a legend.', '', '.. seealso::', '', ' :py:class:`qwt.legend.QwtLegend`', '', '.. note::', '', ' The stockchart example implements a legend as a tree', ' with checkable items', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'Checkable', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Clickable', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'IconRole', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'ModeRole', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'ReadOnly', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'TitleRole', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'UserRole', 32, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.legend', '__firstlineno__': 43, '__doc__': '\nAttributes of an entry on a legend\n\n`QwtLegendData` is an abstract container ( like `QAbstractModel` )\nto exchange attributes, that are only known between to\nthe plot item and the legend.\n\nBy overloading `QwtPlotItem.legendData()` any other set of attributes\ncould be used, that can be handled by a modified ( or completely\ndifferent ) implementation of a legend.\n\n.. seealso::\n\n :py:class:`qwt.legend.QwtLegend`\n\n.. note::\n\n The stockchart example implements a legend as a tree\n with checkable items\n', 'ReadOnly': 0, 'Clickable': 1, 'Checkable': 2, 'ModeRole': 0, 'TitleRole': 1, 'IconRole': 2, 'UserRole': 32, '__init__': , 'setValues': , 'values': , 'hasRole': , 'setValue': , 'value': , 'isValid': , 'title': , 'icon': , 'mode': , '__static_attributes__': ('__map',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nAttributes of an entry on a legend\n\n`QwtLegendData` is an abstract container ( like `QAbstractModel` )\nto exchange attributes, that are only known between to\nthe plot item and the legend.\n\nBy overloading `QwtPlotItem.legendData()` any other set of attributes\ncould be used, that can be handled by a modified ( or completely\ndifferent ) implementation of a legend.\n\n.. seealso::\n\n :py:class:`qwt.legend.QwtLegend`\n\n.. note::\n\n The stockchart example implements a legend as a tree\n with checkable items\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 43, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.legend', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__map',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'hasRole', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'icon', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isValid', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'mode', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setValue', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setValues', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'title', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'value', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'values', , False, {'members': }) [autodoc] from qwt.legend import QwtLegendData.setValues [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendData') [autodoc] => [autodoc] getattr(_, 'setValues') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.setValues', , {'members': }, '(map_)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.setValues', , {'members': }, ['Set the legend attributes', '', ':param dict map_: Values', '', '.. seealso::', '', ' :py:meth:`values()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.setValues', , {'members': }, '(map_)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.setValues', , {'members': }, ['Set the legend attributes', '', ':param dict map_: Values', '', '.. seealso::', '', ' :py:meth:`values()`', '']) [autodoc] from qwt.legend import QwtLegendData.values [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendData') [autodoc] => [autodoc] getattr(_, 'values') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.values', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.values', , {'members': }, [':return: Legend attributes', '', '.. seealso::', '', ' :py:meth:`setValues()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.values', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.values', , {'members': }, [':return: Legend attributes', '', '.. seealso::', '', ' :py:meth:`setValues()`', '']) [autodoc] from qwt.legend import QwtLegendData.hasRole [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendData') [autodoc] => [autodoc] getattr(_, 'hasRole') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.hasRole', , {'members': }, '(role)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.hasRole', , {'members': }, [':param int role: Attribute role', ':return: True, when the internal map has an entry for role', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.hasRole', , {'members': }, '(role)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.hasRole', , {'members': }, [':param int role: Attribute role', ':return: True, when the internal map has an entry for role', '']) [autodoc] from qwt.legend import QwtLegendData.setValue [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendData') [autodoc] => [autodoc] getattr(_, 'setValue') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.setValue', , {'members': }, '(role, data)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.setValue', , {'members': }, ['Set an attribute value', '', ':param int role: Attribute role', ':param QVariant data: Attribute value', '', '.. seealso::', '', ' :py:meth:`value()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.setValue', , {'members': }, '(role, data)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.setValue', , {'members': }, ['Set an attribute value', '', ':param int role: Attribute role', ':param QVariant data: Attribute value', '', '.. seealso::', '', ' :py:meth:`value()`', '']) [autodoc] from qwt.legend import QwtLegendData.value [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendData') [autodoc] => [autodoc] getattr(_, 'value') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.value', , {'members': }, '(role)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.value', , {'members': }, [':param int role: Attribute role', ':return: Attribute value for a specific role', '', '.. seealso::', '', ' :py:meth:`setValue()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.value', , {'members': }, '(role)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.value', , {'members': }, [':param int role: Attribute role', ':return: Attribute value for a specific role', '', '.. seealso::', '', ' :py:meth:`setValue()`', '']) [autodoc] from qwt.legend import QwtLegendData.isValid [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendData') [autodoc] => [autodoc] getattr(_, 'isValid') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.isValid', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.isValid', , {'members': }, [':return: True, when the internal map is empty', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.isValid', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.isValid', , {'members': }, [':return: True, when the internal map is empty', '']) [autodoc] from qwt.legend import QwtLegendData.title [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendData') [autodoc] => [autodoc] getattr(_, 'title') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.title', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.title', , {'members': }, [':return: Value of the TitleRole attribute', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.title', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.title', , {'members': }, [':return: Value of the TitleRole attribute', '']) [autodoc] from qwt.legend import QwtLegendData.icon [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendData') [autodoc] => [autodoc] getattr(_, 'icon') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.icon', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.icon', , {'members': }, [':return: Value of the IconRole attribute', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.icon', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.icon', , {'members': }, [':return: Value of the IconRole attribute', '']) [autodoc] from qwt.legend import QwtLegendData.mode [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendData') [autodoc] => [autodoc] getattr(_, 'mode') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.mode', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.mode', , {'members': }, [':return: Value of the ModeRole attribute', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendData.mode', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendData.mode', , {'members': }, [':return: Value of the ModeRole attribute', '']) [autodoc] output: .. py:class:: QwtLegendData() @@ -9875,204 +9911,204 @@ [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.legend.QwtLegendLabel', , {'members': }, '(parent=None)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.legend.QwtLegendLabel', , {'members': }, ['A widget representing something on a QwtLegend.', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A widget representing something on a QwtLegend.', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 184, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.legend', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'checked', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'clicked', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'data', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'icon', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isChecked', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isDown', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'itemMode', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'keyPressEvent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'keyReleaseEvent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'mousePressEvent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'mouseReleaseEvent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'paintEvent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'pressed', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'released', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setChecked', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setData', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setDown', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setIcon', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setItemMode', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setSpacing', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setText', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'sizeHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'spacing', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.legend.QwtLegendLabel', , {'members': }, '(parent=None)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.legend.QwtLegendLabel', , {'members': }, ['A widget representing something on a QwtLegend.', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', 'A widget representing something on a QwtLegend.', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 184, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.legend', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'checked', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'clicked', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'data', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'icon', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isChecked', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isDown', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'itemMode', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'keyPressEvent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'keyReleaseEvent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'mousePressEvent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'mouseReleaseEvent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'paintEvent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'pressed', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'released', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setChecked', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setData', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setDown', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setIcon', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setItemMode', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setSpacing', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setText', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'sizeHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'spacing', , False, {'members': }) [autodoc] from qwt.legend import QwtLegendLabel.setData [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'setData') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setData', , {'members': }, '(legendData)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setData', , {'members': }, ['Set the attributes of the legend label', '', ':param QwtLegendData legendData: Attributes of the label', '', '.. seealso::', '', ' :py:meth:`data()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setData', , {'members': }, '(legendData)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setData', , {'members': }, ['Set the attributes of the legend label', '', ':param QwtLegendData legendData: Attributes of the label', '', '.. seealso::', '', ' :py:meth:`data()`', '']) [autodoc] from qwt.legend import QwtLegendLabel.data [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'data') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.data', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.data', , {'members': }, [':return: Attributes of the label', '', '.. seealso::', '', ' :py:meth:`setData()`, :py:meth:`qwt.plot.QwtPlotItem.legendData()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.data', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.data', , {'members': }, [':return: Attributes of the label', '', '.. seealso::', '', ' :py:meth:`setData()`, :py:meth:`qwt.plot.QwtPlotItem.legendData()`', '']) [autodoc] from qwt.legend import QwtLegendLabel.setText [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'setText') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setText', , {'members': }, '(text)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setText', , {'members': }, ['Set the text to the legend item', '', ':param qwt.text.QwtText text: Text label', '', '.. seealso::', '', ' :py:meth:`text()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setText', , {'members': }, '(text)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setText', , {'members': }, ['Set the text to the legend item', '', ':param qwt.text.QwtText text: Text label', '', '.. seealso::', '', ' :py:meth:`text()`', '']) [autodoc] from qwt.legend import QwtLegendLabel.setItemMode [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'setItemMode') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setItemMode', , {'members': }, '(mode)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setItemMode', , {'members': }, ['Set the item mode.', 'The default is `QwtLegendData.ReadOnly`.', '', ':param int mode: Item mode', '', '.. seealso::', '', ' :py:meth:`itemMode()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setItemMode', , {'members': }, '(mode)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setItemMode', , {'members': }, ['Set the item mode.', 'The default is `QwtLegendData.ReadOnly`.', '', ':param int mode: Item mode', '', '.. seealso::', '', ' :py:meth:`itemMode()`', '']) [autodoc] from qwt.legend import QwtLegendLabel.itemMode [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'itemMode') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.itemMode', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.itemMode', , {'members': }, [':return: Item mode', '', '.. seealso::', '', ' :py:meth:`setItemMode()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.itemMode', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.itemMode', , {'members': }, [':return: Item mode', '', '.. seealso::', '', ' :py:meth:`setItemMode()`', '']) [autodoc] from qwt.legend import QwtLegendLabel.setIcon [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'setIcon') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setIcon', , {'members': }, '(icon)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setIcon', , {'members': }, ['Assign the icon', '', ':param QPixmap icon: Pixmap representing a plot item', '', '.. seealso::', '', ' :py:meth:`icon()`, :py:meth:`qwt.plot.QwtPlotItem.legendIcon()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setIcon', , {'members': }, '(icon)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setIcon', , {'members': }, ['Assign the icon', '', ':param QPixmap icon: Pixmap representing a plot item', '', '.. seealso::', '', ' :py:meth:`icon()`, :py:meth:`qwt.plot.QwtPlotItem.legendIcon()`', '']) [autodoc] from qwt.legend import QwtLegendLabel.icon [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'icon') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.icon', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.icon', , {'members': }, [':return: Pixmap representing a plot item', '', '.. seealso::', '', ' :py:meth:`setIcon()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.icon', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.icon', , {'members': }, [':return: Pixmap representing a plot item', '', '.. seealso::', '', ' :py:meth:`setIcon()`', '']) [autodoc] from qwt.legend import QwtLegendLabel.setSpacing [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'setSpacing') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setSpacing', , {'members': }, '(spacing)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setSpacing', , {'members': }, ['Change the spacing between icon and text', '', ':param int spacing: Spacing', '', '.. seealso::', '', ' :py:meth:`spacing()`, :py:meth:`qwt.text.QwtTextLabel.margin()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setSpacing', , {'members': }, '(spacing)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setSpacing', , {'members': }, ['Change the spacing between icon and text', '', ':param int spacing: Spacing', '', '.. seealso::', '', ' :py:meth:`spacing()`, :py:meth:`qwt.text.QwtTextLabel.margin()`', '']) [autodoc] from qwt.legend import QwtLegendLabel.spacing [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'spacing') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.spacing', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.spacing', , {'members': }, [':return: Spacing between icon and text', '', '.. seealso::', '', ' :py:meth:`setSpacing()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.spacing', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.spacing', , {'members': }, [':return: Spacing between icon and text', '', '.. seealso::', '', ' :py:meth:`setSpacing()`', '']) [autodoc] from qwt.legend import QwtLegendLabel.setChecked [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'setChecked') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setChecked', , {'members': }, '(on)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setChecked', , {'members': }, ['Check/Uncheck a the item', '', ':param bool on: check/uncheck', '', '.. seealso::', '', ' :py:meth:`isChecked()`, :py:meth:`setItemMode()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setChecked', , {'members': }, '(on)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setChecked', , {'members': }, ['Check/Uncheck a the item', '', ':param bool on: check/uncheck', '', '.. seealso::', '', ' :py:meth:`isChecked()`, :py:meth:`setItemMode()`', '']) [autodoc] from qwt.legend import QwtLegendLabel.isChecked [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'isChecked') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.isChecked', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.isChecked', , {'members': }, [':return: true, if the item is checked', '', '.. seealso::', '', ' :py:meth:`setChecked()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.isChecked', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.isChecked', , {'members': }, [':return: true, if the item is checked', '', '.. seealso::', '', ' :py:meth:`setChecked()`', '']) [autodoc] from qwt.legend import QwtLegendLabel.setDown [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'setDown') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setDown', , {'members': }, '(down)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setDown', , {'members': }, ['Set the item being down', '', ':param bool on: true, if the item is down', '', '.. seealso::', '', ' :py:meth:`isDown()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.setDown', , {'members': }, '(down)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.setDown', , {'members': }, ['Set the item being down', '', ':param bool on: true, if the item is down', '', '.. seealso::', '', ' :py:meth:`isDown()`', '']) [autodoc] from qwt.legend import QwtLegendLabel.isDown [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'isDown') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.isDown', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.isDown', , {'members': }, [':return: true, if the item is down', '', '.. seealso::', '', ' :py:meth:`setDown()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.isDown', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.isDown', , {'members': }, [':return: true, if the item is down', '', '.. seealso::', '', ' :py:meth:`setDown()`', '']) [autodoc] from qwt.legend import QwtLegendLabel.sizeHint [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'sizeHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.sizeHint', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.sizeHint', , {'members': }, [':return: a size hint', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.sizeHint', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.sizeHint', , {'members': }, [':return: a size hint', '']) [autodoc] from qwt.legend import QwtLegendLabel.paintEvent [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'paintEvent') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.paintEvent', , {'members': }, '(self, a0: Optional[QPaintEvent])', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.paintEvent', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.paintEvent', , {'members': }, '(self, a0: Optional[QPaintEvent])', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.paintEvent', , {'members': }, []) [autodoc] from qwt.legend import QwtLegendLabel.mousePressEvent [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'mousePressEvent') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.mousePressEvent', , {'members': }, '(self, a0: Optional[QMouseEvent])', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.mousePressEvent', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.mousePressEvent', , {'members': }, '(self, a0: Optional[QMouseEvent])', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.mousePressEvent', , {'members': }, []) [autodoc] from qwt.legend import QwtLegendLabel.mouseReleaseEvent [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'mouseReleaseEvent') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.mouseReleaseEvent', , {'members': }, '(self, a0: Optional[QMouseEvent])', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.mouseReleaseEvent', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.mouseReleaseEvent', , {'members': }, '(self, a0: Optional[QMouseEvent])', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.mouseReleaseEvent', , {'members': }, []) [autodoc] from qwt.legend import QwtLegendLabel.keyPressEvent [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'keyPressEvent') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.keyPressEvent', , {'members': }, '(self, a0: Optional[QKeyEvent])', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.keyPressEvent', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.keyPressEvent', , {'members': }, '(self, a0: Optional[QKeyEvent])', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.keyPressEvent', , {'members': }, []) [autodoc] from qwt.legend import QwtLegendLabel.keyReleaseEvent [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegendLabel') [autodoc] => [autodoc] getattr(_, 'keyReleaseEvent') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.keyReleaseEvent', , {'members': }, '(self, a0: Optional[QKeyEvent])', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.keyReleaseEvent', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegendLabel.keyReleaseEvent', , {'members': }, '(self, a0: Optional[QKeyEvent])', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegendLabel.keyReleaseEvent', , {'members': }, []) [autodoc] output: .. py:class:: QwtLegendLabel(parent=None) @@ -10278,201 +10314,201 @@ [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.legend.QwtLegend', , {'members': }, '(parent=None)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.legend.QwtLegend', , {'members': }, ['The legend widget', '', 'The QwtLegend widget is a tabular arrangement of legend items. Legend', 'items might be any type of widget, but in general they will be', 'a QwtLegendLabel.', '', '.. seealso ::', '', ' :py:class`qwt.legend.QwtLegendLabel`,', ' :py:class`qwt.plot.QwtPlotItem`,', ' :py:class`qwt.plot.QwtPlot`', '', '.. py:class:: QwtLegend([parent=None])', '', ' Constructor', '', ' :param QWidget parent: Parent widget', '', '.. py:data:: clicked', '', ' A signal which is emitted when the user has clicked on', ' a legend label, which is in `QwtLegendData.Clickable` mode.', '', ' :param itemInfo: Info for the item item of the selected legend item', ' :param index: Index of the legend label in the list of widgets that are associated with the plot item', '', ' .. note::', '', ' Clicks are disabled as default', '', '.. py:data:: checked', '', ' A signal which is emitted when the user has clicked on', ' a legend label, which is in `QwtLegendData.Checkable` mode', '', ' :param itemInfo: Info for the item of the selected legend label', ' :param index: Index of the legend label in the list of widgets that are associated with the plot item', ' :param on: True when the legend label is checked', '', ' .. note::', '', ' Clicks are disabled as default', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nThe legend widget\n\nThe QwtLegend widget is a tabular arrangement of legend items. Legend\nitems might be any type of widget, but in general they will be\na QwtLegendLabel.\n\n.. seealso ::\n\n :py:class`qwt.legend.QwtLegendLabel`,\n :py:class`qwt.plot.QwtPlotItem`,\n :py:class`qwt.plot.QwtPlot`\n\n.. py:class:: QwtLegend([parent=None])\n\n Constructor\n\n :param QWidget parent: Parent widget\n\n.. py:data:: clicked\n\n A signal which is emitted when the user has clicked on\n a legend label, which is in `QwtLegendData.Clickable` mode.\n\n :param itemInfo: Info for the item item of the selected legend item\n :param index: Index of the legend label in the list of widgets that are associated with the plot item\n\n .. note::\n\n Clicks are disabled as default\n\n.. py:data:: checked\n\n A signal which is emitted when the user has clicked on\n a legend label, which is in `QwtLegendData.Checkable` mode\n\n :param itemInfo: Info for the item of the selected legend label\n :param index: Index of the legend label in the list of widgets that are associated with the plot item\n :param on: True when the legend label is checked\n\n .. note::\n\n Clicks are disabled as default\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 602, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.legend', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'checked', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'clicked', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'contentsWidget', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'createWidget', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'defaultItemMode', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'eventFilter', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'heightForWidth', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'horizontalScrollBar', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isEmpty', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'itemChecked', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'itemClicked', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'itemInfo', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'legendWidget', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'legendWidgets', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'maxColumns', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'renderItem', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'renderLegend', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setDefaultItemMode', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setMaxColumns', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'sizeHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateLegend', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateTabOrder', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateWidget', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'verticalScrollBar', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.legend.QwtLegend', , {'members': }, '(parent=None)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.legend.QwtLegend', , {'members': }, ['The legend widget', '', 'The QwtLegend widget is a tabular arrangement of legend items. Legend', 'items might be any type of widget, but in general they will be', 'a QwtLegendLabel.', '', '.. seealso ::', '', ' :py:class`qwt.legend.QwtLegendLabel`,', ' :py:class`qwt.plot.QwtPlotItem`,', ' :py:class`qwt.plot.QwtPlot`', '', '.. py:class:: QwtLegend([parent=None])', '', ' Constructor', '', ' :param QWidget parent: Parent widget', '', '.. py:data:: clicked', '', ' A signal which is emitted when the user has clicked on', ' a legend label, which is in `QwtLegendData.Clickable` mode.', '', ' :param itemInfo: Info for the item item of the selected legend item', ' :param index: Index of the legend label in the list of widgets that are associated with the plot item', '', ' .. note::', '', ' Clicks are disabled as default', '', '.. py:data:: checked', '', ' A signal which is emitted when the user has clicked on', ' a legend label, which is in `QwtLegendData.Checkable` mode', '', ' :param itemInfo: Info for the item of the selected legend label', ' :param index: Index of the legend label in the list of widgets that are associated with the plot item', ' :param on: True when the legend label is checked', '', ' .. note::', '', ' Clicks are disabled as default', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nThe legend widget\n\nThe QwtLegend widget is a tabular arrangement of legend items. Legend\nitems might be any type of widget, but in general they will be\na QwtLegendLabel.\n\n.. seealso ::\n\n :py:class`qwt.legend.QwtLegendLabel`,\n :py:class`qwt.plot.QwtPlotItem`,\n :py:class`qwt.plot.QwtPlot`\n\n.. py:class:: QwtLegend([parent=None])\n\n Constructor\n\n :param QWidget parent: Parent widget\n\n.. py:data:: clicked\n\n A signal which is emitted when the user has clicked on\n a legend label, which is in `QwtLegendData.Clickable` mode.\n\n :param itemInfo: Info for the item item of the selected legend item\n :param index: Index of the legend label in the list of widgets that are associated with the plot item\n\n .. note::\n\n Clicks are disabled as default\n\n.. py:data:: checked\n\n A signal which is emitted when the user has clicked on\n a legend label, which is in `QwtLegendData.Checkable` mode\n\n :param itemInfo: Info for the item of the selected legend label\n :param index: Index of the legend label in the list of widgets that are associated with the plot item\n :param on: True when the legend label is checked\n\n .. note::\n\n Clicks are disabled as default\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 602, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.legend', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'checked', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'clicked', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'contentsWidget', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'createWidget', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'defaultItemMode', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'eventFilter', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'heightForWidth', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'horizontalScrollBar', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isEmpty', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'itemChecked', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'itemClicked', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'itemInfo', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'legendWidget', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'legendWidgets', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'maxColumns', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'renderItem', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'renderLegend', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setDefaultItemMode', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setMaxColumns', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'sizeHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateLegend', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateTabOrder', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateWidget', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'verticalScrollBar', , False, {'members': }) [autodoc] from qwt.legend import QwtLegend.setMaxColumns [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'setMaxColumns') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.setMaxColumns', , {'members': }, '(numColumns)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.setMaxColumns', , {'members': }, ['Set the maximum number of entries in a row', '', 'F.e when the maximum is set to 1 all items are aligned', 'vertically. 0 means unlimited', '', ':param int numColumns: Maximum number of entries in a row', '', '.. seealso::', '', ' :py:meth:`maxColumns()`,', ' :py:meth:`QwtDynGridLayout.setMaxColumns()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.setMaxColumns', , {'members': }, '(numColumns)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.setMaxColumns', , {'members': }, ['Set the maximum number of entries in a row', '', 'F.e when the maximum is set to 1 all items are aligned', 'vertically. 0 means unlimited', '', ':param int numColumns: Maximum number of entries in a row', '', '.. seealso::', '', ' :py:meth:`maxColumns()`,', ' :py:meth:`QwtDynGridLayout.setMaxColumns()`', '']) [autodoc] from qwt.legend import QwtLegend.maxColumns [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'maxColumns') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.maxColumns', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.maxColumns', , {'members': }, [':return: Maximum number of entries in a row', '', '.. seealso::', '', ' :py:meth:`setMaxColumns()`,', ' :py:meth:`QwtDynGridLayout.maxColumns()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.maxColumns', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.maxColumns', , {'members': }, [':return: Maximum number of entries in a row', '', '.. seealso::', '', ' :py:meth:`setMaxColumns()`,', ' :py:meth:`QwtDynGridLayout.maxColumns()`', '']) [autodoc] from qwt.legend import QwtLegend.setDefaultItemMode [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'setDefaultItemMode') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.setDefaultItemMode', , {'members': }, '(mode)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.setDefaultItemMode', , {'members': }, ['Set the default mode for legend labels', '', 'Legend labels will be constructed according to the', "attributes in a `QwtLegendData` object. When it doesn't", 'contain a value for the `QwtLegendData.ModeRole` the', 'label will be initialized with the default mode of the legend.', '', ':param int mode: Default item mode', '', '.. seealso::', '', ' :py:meth:`itemMode()`,', ' :py:meth:`QwtLegendData.value()`,', ' :py:meth:`QwtPlotItem::legendData()`', '', '... note::', '', " Changing the mode doesn't have any effect on existing labels.", '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.setDefaultItemMode', , {'members': }, '(mode)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.setDefaultItemMode', , {'members': }, ['Set the default mode for legend labels', '', 'Legend labels will be constructed according to the', "attributes in a `QwtLegendData` object. When it doesn't", 'contain a value for the `QwtLegendData.ModeRole` the', 'label will be initialized with the default mode of the legend.', '', ':param int mode: Default item mode', '', '.. seealso::', '', ' :py:meth:`itemMode()`,', ' :py:meth:`QwtLegendData.value()`,', ' :py:meth:`QwtPlotItem::legendData()`', '', '... note::', '', " Changing the mode doesn't have any effect on existing labels.", '']) [autodoc] from qwt.legend import QwtLegend.defaultItemMode [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'defaultItemMode') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.defaultItemMode', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.defaultItemMode', , {'members': }, [':return: Default item mode', '', '.. seealso::', '', ' :py:meth:`setDefaultItemMode()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.defaultItemMode', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.defaultItemMode', , {'members': }, [':return: Default item mode', '', '.. seealso::', '', ' :py:meth:`setDefaultItemMode()`', '']) [autodoc] from qwt.legend import QwtLegend.contentsWidget [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'contentsWidget') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.contentsWidget', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.contentsWidget', , {'members': }, ['The contents widget is the only child of the viewport of', 'the internal `QScrollArea` and the parent widget of all legend', 'items.', '', ':return: Container widget of the legend items', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.contentsWidget', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.contentsWidget', , {'members': }, ['The contents widget is the only child of the viewport of', 'the internal `QScrollArea` and the parent widget of all legend', 'items.', '', ':return: Container widget of the legend items', '']) [autodoc] from qwt.legend import QwtLegend.horizontalScrollBar [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'horizontalScrollBar') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.horizontalScrollBar', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.horizontalScrollBar', , {'members': }, [':return: Horizontal scrollbar', '', '.. seealso::', '', ' :py:meth:`verticalScrollBar()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.horizontalScrollBar', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.horizontalScrollBar', , {'members': }, [':return: Horizontal scrollbar', '', '.. seealso::', '', ' :py:meth:`verticalScrollBar()`', '']) [autodoc] from qwt.legend import QwtLegend.verticalScrollBar [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'verticalScrollBar') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.verticalScrollBar', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.verticalScrollBar', , {'members': }, [':return: Vertical scrollbar', '', '.. seealso::', '', ' :py:meth:`horizontalScrollBar()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.verticalScrollBar', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.verticalScrollBar', , {'members': }, [':return: Vertical scrollbar', '', '.. seealso::', '', ' :py:meth:`horizontalScrollBar()`', '']) [autodoc] from qwt.legend import QwtLegend.updateLegend [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'updateLegend') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.updateLegend', , {'members': }, '(itemInfo, data)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.updateLegend', , {'members': }, ['Update the entries for an item', '', ':param QVariant itemInfo: Info for an item', ':param list data: Default item mode', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.updateLegend', , {'members': }, '(itemInfo, data)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.updateLegend', , {'members': }, ['Update the entries for an item', '', ':param QVariant itemInfo: Info for an item', ':param list data: Default item mode', '']) [autodoc] from qwt.legend import QwtLegend.createWidget [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'createWidget') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.createWidget', , {'members': }, '(data)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.createWidget', , {'members': }, ['Create a widget to be inserted into the legend', '', 'The default implementation returns a `QwtLegendLabel`.', '', ':param QwtLegendData data: Attributes of the legend entry', ':return: Widget representing data on the legend', '', '... note::', '', ' updateWidget() will called soon after createWidget()', ' with the same attributes.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.createWidget', , {'members': }, '(data)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.createWidget', , {'members': }, ['Create a widget to be inserted into the legend', '', 'The default implementation returns a `QwtLegendLabel`.', '', ':param QwtLegendData data: Attributes of the legend entry', ':return: Widget representing data on the legend', '', '... note::', '', ' updateWidget() will called soon after createWidget()', ' with the same attributes.', '']) [autodoc] from qwt.legend import QwtLegend.updateWidget [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'updateWidget') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.updateWidget', , {'members': }, '(widget, data)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.updateWidget', , {'members': }, ['Update the widget', '', ':param QWidget widget: Usually a QwtLegendLabel', ':param QwtLegendData data: Attributes to be displayed', '', '.. seealso::', '', ' :py:meth:`createWidget()`', '', '... note::', '', ' When widget is no QwtLegendLabel updateWidget() does nothing.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.updateWidget', , {'members': }, '(widget, data)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.updateWidget', , {'members': }, ['Update the widget', '', ':param QWidget widget: Usually a QwtLegendLabel', ':param QwtLegendData data: Attributes to be displayed', '', '.. seealso::', '', ' :py:meth:`createWidget()`', '', '... note::', '', ' When widget is no QwtLegendLabel updateWidget() does nothing.', '']) [autodoc] from qwt.legend import QwtLegend.sizeHint [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'sizeHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.sizeHint', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.sizeHint', , {'members': }, ['Return a size hint', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.sizeHint', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.sizeHint', , {'members': }, ['Return a size hint', '']) [autodoc] from qwt.legend import QwtLegend.heightForWidth [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'heightForWidth') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.heightForWidth', , {'members': }, '(width)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.heightForWidth', , {'members': }, [':param int width: Width', ':return: The preferred height, for a width.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.heightForWidth', , {'members': }, '(width)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.heightForWidth', , {'members': }, [':param int width: Width', ':return: The preferred height, for a width.', '']) [autodoc] from qwt.legend import QwtLegend.eventFilter [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'eventFilter') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.eventFilter', , {'members': }, '(object_, event)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.eventFilter', , {'members': }, ['Handle QEvent.ChildRemoved andQEvent.LayoutRequest events', 'for the contentsWidget().', '', ':param QObject object: Object to be filtered', ':param QEvent event: Event', ':return: Forwarded to QwtAbstractLegend.eventFilter()', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.eventFilter', , {'members': }, '(object_, event)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.eventFilter', , {'members': }, ['Handle QEvent.ChildRemoved andQEvent.LayoutRequest events', 'for the contentsWidget().', '', ':param QObject object: Object to be filtered', ':param QEvent event: Event', ':return: Forwarded to QwtAbstractLegend.eventFilter()', '']) [autodoc] from qwt.legend import QwtLegend.renderLegend [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'renderLegend') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.renderLegend', , {'members': }, '(painter, rect, fillBackground)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.renderLegend', , {'members': }, ['Render the legend into a given rectangle.', '', ':param QPainter painter: Painter', ':param QRectF rect: Bounding rectangle', ':param bool fillBackground: When true, fill rect with the widget background', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.renderLegend', , {'members': }, '(painter, rect, fillBackground)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.renderLegend', , {'members': }, ['Render the legend into a given rectangle.', '', ':param QPainter painter: Painter', ':param QRectF rect: Bounding rectangle', ':param bool fillBackground: When true, fill rect with the widget background', '']) [autodoc] from qwt.legend import QwtLegend.renderItem [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'renderItem') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.renderItem', , {'members': }, '(painter, widget, rect, fillBackground)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.renderItem', , {'members': }, ['Render a legend entry into a given rectangle.', '', ':param QPainter painter: Painter', ':param QWidget widget: Widget representing a legend entry', ':param QRectF rect: Bounding rectangle', ':param bool fillBackground: When true, fill rect with the widget background', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.renderItem', , {'members': }, '(painter, widget, rect, fillBackground)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.renderItem', , {'members': }, ['Render a legend entry into a given rectangle.', '', ':param QPainter painter: Painter', ':param QWidget widget: Widget representing a legend entry', ':param QRectF rect: Bounding rectangle', ':param bool fillBackground: When true, fill rect with the widget background', '']) [autodoc] from qwt.legend import QwtLegend.legendWidgets [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'legendWidgets') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.legendWidgets', , {'members': }, '(itemInfo)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.legendWidgets', , {'members': }, ['List of widgets associated to a item', '', ':param QVariant itemInfo: Info about an item', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.legendWidgets', , {'members': }, '(itemInfo)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.legendWidgets', , {'members': }, ['List of widgets associated to a item', '', ':param QVariant itemInfo: Info about an item', '']) [autodoc] from qwt.legend import QwtLegend.legendWidget [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'legendWidget') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.legendWidget', , {'members': }, '(itemInfo)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.legendWidget', , {'members': }, ['First widget in the list of widgets associated to an item', '', ':param QVariant itemInfo: Info about an item', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.legendWidget', , {'members': }, '(itemInfo)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.legendWidget', , {'members': }, ['First widget in the list of widgets associated to an item', '', ':param QVariant itemInfo: Info about an item', '']) [autodoc] from qwt.legend import QwtLegend.itemInfo [autodoc] import qwt.legend => [autodoc] getattr(_, 'QwtLegend') [autodoc] => [autodoc] getattr(_, 'itemInfo') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.itemInfo', , {'members': }, '(widget)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.itemInfo', , {'members': }, ['Find the item that is associated to a widget', '', ':param QWidget widget: Widget on the legend', ':return: Associated item info', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.legend.QwtLegend.itemInfo', , {'members': }, '(widget)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.legend.QwtLegend.itemInfo', , {'members': }, ['Find the item that is associated to a widget', '', ':param QWidget widget: Widget on the legend', ':return: Associated item info', '']) [autodoc] output: .. py:class:: QwtLegend(parent=None) @@ -10785,41 +10821,41 @@ [autodoc] import qwt.color_map => [autodoc] getattr(_, 'QwtColorMap') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.color_map.QwtColorMap', , {'members': }, '(format_=None)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.color_map.QwtColorMap', , {'members': }, ['QwtColorMap is used to map values into colors.', '', 'For displaying 3D data on a 2D plane the 3rd dimension is often', 'displayed using colors, like f.e in a spectrogram.', '', 'Each color map is optimized to return colors for only one of the', 'following image formats:', '', ' * `QImage.Format_Indexed8`', ' * `QImage.Format_ARGB32`', '', '.. py:class:: QwtColorMap(format_)', '', ' :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)', '', '.. seealso ::', '', ' :py:data:`qwt.QwtScaleWidget`', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'Indexed', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'RGB', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.color_map', '__firstlineno__': 135, '__doc__': '\nQwtColorMap is used to map values into colors.\n\nFor displaying 3D data on a 2D plane the 3rd dimension is often\ndisplayed using colors, like f.e in a spectrogram.\n\nEach color map is optimized to return colors for only one of the\nfollowing image formats:\n\n * `QImage.Format_Indexed8`\n * `QImage.Format_ARGB32`\n\n.. py:class:: QwtColorMap(format_)\n\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n\n.. seealso ::\n\n :py:data:`qwt.QwtScaleWidget`\n', 'RGB': 0, 'Indexed': 1, '__init__': , 'color': , 'format': , 'colorTable': , 'rgb': , 'colorIndex': , '__static_attributes__': ('__format',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nQwtColorMap is used to map values into colors.\n\nFor displaying 3D data on a 2D plane the 3rd dimension is often\ndisplayed using colors, like f.e in a spectrogram.\n\nEach color map is optimized to return colors for only one of the\nfollowing image formats:\n\n * `QImage.Format_Indexed8`\n * `QImage.Format_ARGB32`\n\n.. py:class:: QwtColorMap(format_)\n\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n\n.. seealso ::\n\n :py:data:`qwt.QwtScaleWidget`\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 135, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.color_map', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__format',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'color', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'colorIndex', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'colorTable', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'format', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'rgb', , True, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.color_map.QwtColorMap', , {'members': }, '(format_=None)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.color_map.QwtColorMap', , {'members': }, ['QwtColorMap is used to map values into colors.', '', 'For displaying 3D data on a 2D plane the 3rd dimension is often', 'displayed using colors, like f.e in a spectrogram.', '', 'Each color map is optimized to return colors for only one of the', 'following image formats:', '', ' * `QImage.Format_Indexed8`', ' * `QImage.Format_ARGB32`', '', '.. py:class:: QwtColorMap(format_)', '', ' :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)', '', '.. seealso ::', '', ' :py:data:`qwt.QwtScaleWidget`', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'Indexed', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'RGB', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.color_map', '__firstlineno__': 135, '__doc__': '\nQwtColorMap is used to map values into colors.\n\nFor displaying 3D data on a 2D plane the 3rd dimension is often\ndisplayed using colors, like f.e in a spectrogram.\n\nEach color map is optimized to return colors for only one of the\nfollowing image formats:\n\n * `QImage.Format_Indexed8`\n * `QImage.Format_ARGB32`\n\n.. py:class:: QwtColorMap(format_)\n\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n\n.. seealso ::\n\n :py:data:`qwt.QwtScaleWidget`\n', 'RGB': 0, 'Indexed': 1, '__init__': , 'color': , 'format': , 'colorTable': , 'rgb': , 'colorIndex': , '__static_attributes__': ('__format',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nQwtColorMap is used to map values into colors.\n\nFor displaying 3D data on a 2D plane the 3rd dimension is often\ndisplayed using colors, like f.e in a spectrogram.\n\nEach color map is optimized to return colors for only one of the\nfollowing image formats:\n\n * `QImage.Format_Indexed8`\n * `QImage.Format_ARGB32`\n\n.. py:class:: QwtColorMap(format_)\n\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n\n.. seealso ::\n\n :py:data:`qwt.QwtScaleWidget`\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 135, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.color_map', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__format',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'color', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'colorIndex', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'colorTable', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'format', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'rgb', , True, {'members': }) [autodoc] from qwt.color_map import QwtColorMap.color [autodoc] import qwt.color_map => [autodoc] getattr(_, 'QwtColorMap') [autodoc] => [autodoc] getattr(_, 'color') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.color_map.QwtColorMap.color', , {'members': }, '(interval, value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.color_map.QwtColorMap.color', , {'members': }, ['Map a value into a color', '', ':param qwt.interval.QwtInterval interval: valid interval for value', ':param float value: value', ':return: the color corresponding to value', '', '.. warning ::', '', ' This method is slow for Indexed color maps. If it is necessary to', ' map many values, its better to get the color table once and find', ' the color using `colorIndex()`.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.color_map.QwtColorMap.color', , {'members': }, '(interval, value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.color_map.QwtColorMap.color', , {'members': }, ['Map a value into a color', '', ':param qwt.interval.QwtInterval interval: valid interval for value', ':param float value: value', ':return: the color corresponding to value', '', '.. warning ::', '', ' This method is slow for Indexed color maps. If it is necessary to', ' map many values, its better to get the color table once and find', ' the color using `colorIndex()`.', '']) [autodoc] from qwt.color_map import QwtColorMap.colorTable [autodoc] import qwt.color_map => [autodoc] getattr(_, 'QwtColorMap') [autodoc] => [autodoc] getattr(_, 'colorTable') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.color_map.QwtColorMap.colorTable', , {'members': }, '(interval)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.color_map.QwtColorMap.colorTable', , {'members': }, ['Build and return a color map of 256 colors', '', ':param qwt.interval.QwtInterval interval: range for the values', ':return: a color table, that can be used for a `QImage`', '', 'The color table is needed for rendering indexed images in combination', 'with using `colorIndex()`.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.color_map.QwtColorMap.colorTable', , {'members': }, '(interval)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.color_map.QwtColorMap.colorTable', , {'members': }, ['Build and return a color map of 256 colors', '', ':param qwt.interval.QwtInterval interval: range for the values', ':return: a color table, that can be used for a `QImage`', '', 'The color table is needed for rendering indexed images in combination', 'with using `colorIndex()`.', '']) [autodoc] output: .. py:class:: QwtColorMap(format_=None) @@ -10884,44 +10920,44 @@ [autodoc] import qwt.color_map => [autodoc] getattr(_, 'QwtLinearColorMap') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.color_map.QwtLinearColorMap', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.color_map.QwtLinearColorMap', , {'members': }, ['Build a linear color map with two stops.', '', '.. py:class:: QwtLinearColorMap(format_)', '', ' Build a color map with two stops at 0.0 and 1.0.', ' The color at 0.0 is `Qt.blue`, at 1.0 it is `Qt.yellow`.', '', ' :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)', '', '.. py:class:: QwtLinearColorMap(color1, color2, [format_=QwtColorMap.RGB]):', ' :noindex:', '', ' Build a color map with two stops at 0.0 and 1.0.', '', ' :param QColor color1: color at 0.', ' :param QColor color2: color at 1.', ' :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'FixedColors', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'ScaledColors', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nBuild a linear color map with two stops.\n\n.. py:class:: QwtLinearColorMap(format_)\n\n Build a color map with two stops at 0.0 and 1.0.\n The color at 0.0 is `Qt.blue`, at 1.0 it is `Qt.yellow`.\n\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n\n.. py:class:: QwtLinearColorMap(color1, color2, [format_=QwtColorMap.RGB]):\n :noindex:\n\n Build a color map with two stops at 0.0 and 1.0.\n\n :param QColor color1: color at 0.\n :param QColor color2: color at 1.\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 222, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.color_map', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'addColorStop', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'color1', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'color2', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'colorIndex', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'colorStops', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'mode', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'rgb', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setColorInterval', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setMode', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.color_map.QwtLinearColorMap', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.color_map.QwtLinearColorMap', , {'members': }, ['Build a linear color map with two stops.', '', '.. py:class:: QwtLinearColorMap(format_)', '', ' Build a color map with two stops at 0.0 and 1.0.', ' The color at 0.0 is `Qt.blue`, at 1.0 it is `Qt.yellow`.', '', ' :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)', '', '.. py:class:: QwtLinearColorMap(color1, color2, [format_=QwtColorMap.RGB]):', ' :noindex:', '', ' Build a color map with two stops at 0.0 and 1.0.', '', ' :param QColor color1: color at 0.', ' :param QColor color2: color at 1.', ' :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'FixedColors', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'ScaledColors', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nBuild a linear color map with two stops.\n\n.. py:class:: QwtLinearColorMap(format_)\n\n Build a color map with two stops at 0.0 and 1.0.\n The color at 0.0 is `Qt.blue`, at 1.0 it is `Qt.yellow`.\n\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n\n.. py:class:: QwtLinearColorMap(color1, color2, [format_=QwtColorMap.RGB]):\n :noindex:\n\n Build a color map with two stops at 0.0 and 1.0.\n\n :param QColor color1: color at 0.\n :param QColor color2: color at 1.\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 222, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.color_map', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'addColorStop', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'color1', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'color2', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'colorIndex', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'colorStops', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'mode', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'rgb', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setColorInterval', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setMode', , False, {'members': }) [autodoc] from qwt.color_map import QwtLinearColorMap.setMode [autodoc] import qwt.color_map => [autodoc] getattr(_, 'QwtLinearColorMap') [autodoc] => [autodoc] getattr(_, 'setMode') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.color_map.QwtLinearColorMap.setMode', , {'members': }, '(mode)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.color_map.QwtLinearColorMap.setMode', , {'members': }, ['Set the mode of the color map', '', ':param int mode: :py:data:`QwtLinearColorMap.FixedColors` or :py:data:`QwtLinearColorMap.ScaledColors`', '', '`FixedColors` means the color is calculated from the next lower color', 'stop. `ScaledColors` means the color is calculated by interpolating', 'the colors of the adjacent stops.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.color_map.QwtLinearColorMap.setMode', , {'members': }, '(mode)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.color_map.QwtLinearColorMap.setMode', , {'members': }, ['Set the mode of the color map', '', ':param int mode: :py:data:`QwtLinearColorMap.FixedColors` or :py:data:`QwtLinearColorMap.ScaledColors`', '', '`FixedColors` means the color is calculated from the next lower color', 'stop. `ScaledColors` means the color is calculated by interpolating', 'the colors of the adjacent stops.', '']) [autodoc] from qwt.color_map import QwtLinearColorMap.mode [autodoc] import qwt.color_map => [autodoc] getattr(_, 'QwtLinearColorMap') [autodoc] => [autodoc] getattr(_, 'mode') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.color_map.QwtLinearColorMap.mode', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.color_map.QwtLinearColorMap.mode', , {'members': }, [':return: the mode of the color map', '', '.. seealso ::', '', ' :py:meth:`QwtLinearColorMap.setMode`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.color_map.QwtLinearColorMap.mode', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.color_map.QwtLinearColorMap.mode', , {'members': }, [':return: the mode of the color map', '', '.. seealso ::', '', ' :py:meth:`QwtLinearColorMap.setMode`', '']) [autodoc] output: .. py:class:: QwtLinearColorMap(*args) @@ -10979,37 +11015,37 @@ [autodoc] import qwt.color_map => [autodoc] getattr(_, 'QwtAlphaColorMap') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.color_map.QwtAlphaColorMap', , {'members': }, '(color)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.color_map.QwtAlphaColorMap', , {'members': }, ['QwtAlphaColorMap varies the alpha value of a color', '', '.. py:class:: QwtAlphaColorMap(color)', '', ' Build a color map varying the alpha value of a color.', '', ' :param QColor color: color of the map', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nQwtAlphaColorMap varies the alpha value of a color\n\n.. py:class:: QwtAlphaColorMap(color)\n\n Build a color map varying the alpha value of a color.\n\n :param QColor color: color of the map\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 336, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.color_map', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'color', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'colorIndex', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'rgb', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setColor', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.color_map.QwtAlphaColorMap', , {'members': }, '(color)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.color_map.QwtAlphaColorMap', , {'members': }, ['QwtAlphaColorMap varies the alpha value of a color', '', '.. py:class:: QwtAlphaColorMap(color)', '', ' Build a color map varying the alpha value of a color.', '', ' :param QColor color: color of the map', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nQwtAlphaColorMap varies the alpha value of a color\n\n.. py:class:: QwtAlphaColorMap(color)\n\n Build a color map varying the alpha value of a color.\n\n :param QColor color: color of the map\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 336, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.color_map', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'color', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'colorIndex', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'rgb', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setColor', , False, {'members': }) [autodoc] from qwt.color_map import QwtAlphaColorMap.setColor [autodoc] import qwt.color_map => [autodoc] getattr(_, 'QwtAlphaColorMap') [autodoc] => [autodoc] getattr(_, 'setColor') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.color_map.QwtAlphaColorMap.setColor', , {'members': }, '(color)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.color_map.QwtAlphaColorMap.setColor', , {'members': }, ['Set the color of the map', '', ':param QColor color: color of the map', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.color_map.QwtAlphaColorMap.setColor', , {'members': }, '(color)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.color_map.QwtAlphaColorMap.setColor', , {'members': }, ['Set the color of the map', '', ':param QColor color: color of the map', '']) [autodoc] from qwt.color_map import QwtAlphaColorMap.color [autodoc] import qwt.color_map => [autodoc] getattr(_, 'QwtAlphaColorMap') [autodoc] => [autodoc] getattr(_, 'color') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.color_map.QwtAlphaColorMap.color', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.color_map.QwtAlphaColorMap.color', , {'members': }, [':return: the color of the map', '', '.. seealso ::', '', ' :py:meth:`QwtAlphaColorMap.setColor`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.color_map.QwtAlphaColorMap.color', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.color_map.QwtAlphaColorMap.color', , {'members': }, [':return: the color of the map', '', '.. seealso ::', '', ' :py:meth:`QwtAlphaColorMap.setColor`', '']) [autodoc] output: .. py:class:: QwtAlphaColorMap(color) @@ -11068,205 +11104,205 @@ [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_renderer.QwtPlotRenderer', , {'members': }, '(parent=None)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_renderer.QwtPlotRenderer', , {'members': }, ['Renderer for exporting a plot to a document, a printer', 'or anything else, that is supported by QPainter/QPaintDevice', '', 'Discard flags:', '', ' * `QwtPlotRenderer.DiscardNone`: Render all components of the plot', " * `QwtPlotRenderer.DiscardBackground`: Don't render the background of the plot", " * `QwtPlotRenderer.DiscardTitle`: Don't render the title of the plot", " * `QwtPlotRenderer.DiscardLegend`: Don't render the legend of the plot", " * `QwtPlotRenderer.DiscardCanvasBackground`: Don't render the background of the canvas", " * `QwtPlotRenderer.DiscardFooter`: Don't render the footer of the plot", " * `QwtPlotRenderer.DiscardCanvasFrame`: Don't render the frame of the canvas", '', '.. note::', '', ' The `QwtPlotRenderer.DiscardCanvasFrame` flag has no effect when using', ' style sheets, where the frame is part of the background', '', 'Layout flags:', '', ' * `QwtPlotRenderer.DefaultLayout`: Use the default layout as on screen', ' * `QwtPlotRenderer.FrameWithScales`: Instead of the scales a box is painted around the plot canvas, where the scale ticks are aligned to.', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'DefaultLayout', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'DiscardBackground', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'DiscardCanvasBackground', 8, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'DiscardCanvasFrame', 32, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'DiscardFooter', 16, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'DiscardLegend', 4, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'DiscardNone', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'DiscardTitle', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'FrameWithScales', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', "\nRenderer for exporting a plot to a document, a printer\nor anything else, that is supported by QPainter/QPaintDevice\n\nDiscard flags:\n\n * `QwtPlotRenderer.DiscardNone`: Render all components of the plot\n * `QwtPlotRenderer.DiscardBackground`: Don't render the background of the plot\n * `QwtPlotRenderer.DiscardTitle`: Don't render the title of the plot\n * `QwtPlotRenderer.DiscardLegend`: Don't render the legend of the plot\n * `QwtPlotRenderer.DiscardCanvasBackground`: Don't render the background of the canvas\n * `QwtPlotRenderer.DiscardFooter`: Don't render the footer of the plot\n * `QwtPlotRenderer.DiscardCanvasFrame`: Don't render the frame of the canvas\n\n.. note::\n\n The `QwtPlotRenderer.DiscardCanvasFrame` flag has no effect when using\n style sheets, where the frame is part of the background\n\nLayout flags:\n\n * `QwtPlotRenderer.DefaultLayout`: Use the default layout as on screen\n * `QwtPlotRenderer.FrameWithScales`: Instead of the scales a box is painted around the plot canvas, where the scale ticks are aligned to.\n", True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 66, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_renderer', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'buildCanvasMaps', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'discardFlags', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'exportTo', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'layoutFlags', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'render', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'renderCanvas', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'renderDocument', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'renderFooter', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'renderLegend', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'renderScale', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'renderTitle', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'renderTo', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setDiscardFlag', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setDiscardFlags', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLayoutFlag', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLayoutFlags', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testDiscardFlag', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testLayoutFlag', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateCanvasMargins', , True, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_renderer.QwtPlotRenderer', , {'members': }, '(parent=None)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_renderer.QwtPlotRenderer', , {'members': }, ['Renderer for exporting a plot to a document, a printer', 'or anything else, that is supported by QPainter/QPaintDevice', '', 'Discard flags:', '', ' * `QwtPlotRenderer.DiscardNone`: Render all components of the plot', " * `QwtPlotRenderer.DiscardBackground`: Don't render the background of the plot", " * `QwtPlotRenderer.DiscardTitle`: Don't render the title of the plot", " * `QwtPlotRenderer.DiscardLegend`: Don't render the legend of the plot", " * `QwtPlotRenderer.DiscardCanvasBackground`: Don't render the background of the canvas", " * `QwtPlotRenderer.DiscardFooter`: Don't render the footer of the plot", " * `QwtPlotRenderer.DiscardCanvasFrame`: Don't render the frame of the canvas", '', '.. note::', '', ' The `QwtPlotRenderer.DiscardCanvasFrame` flag has no effect when using', ' style sheets, where the frame is part of the background', '', 'Layout flags:', '', ' * `QwtPlotRenderer.DefaultLayout`: Use the default layout as on screen', ' * `QwtPlotRenderer.FrameWithScales`: Instead of the scales a box is painted around the plot canvas, where the scale ticks are aligned to.', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'DefaultLayout', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'DiscardBackground', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'DiscardCanvasBackground', 8, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'DiscardCanvasFrame', 32, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'DiscardFooter', 16, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'DiscardLegend', 4, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'DiscardNone', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'DiscardTitle', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'FrameWithScales', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', "\nRenderer for exporting a plot to a document, a printer\nor anything else, that is supported by QPainter/QPaintDevice\n\nDiscard flags:\n\n * `QwtPlotRenderer.DiscardNone`: Render all components of the plot\n * `QwtPlotRenderer.DiscardBackground`: Don't render the background of the plot\n * `QwtPlotRenderer.DiscardTitle`: Don't render the title of the plot\n * `QwtPlotRenderer.DiscardLegend`: Don't render the legend of the plot\n * `QwtPlotRenderer.DiscardCanvasBackground`: Don't render the background of the canvas\n * `QwtPlotRenderer.DiscardFooter`: Don't render the footer of the plot\n * `QwtPlotRenderer.DiscardCanvasFrame`: Don't render the frame of the canvas\n\n.. note::\n\n The `QwtPlotRenderer.DiscardCanvasFrame` flag has no effect when using\n style sheets, where the frame is part of the background\n\nLayout flags:\n\n * `QwtPlotRenderer.DefaultLayout`: Use the default layout as on screen\n * `QwtPlotRenderer.FrameWithScales`: Instead of the scales a box is painted around the plot canvas, where the scale ticks are aligned to.\n", True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 66, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_renderer', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'buildCanvasMaps', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'discardFlags', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'exportTo', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'layoutFlags', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'render', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'renderCanvas', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'renderDocument', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'renderFooter', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'renderLegend', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'renderScale', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'renderTitle', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'renderTo', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setDiscardFlag', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setDiscardFlags', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLayoutFlag', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLayoutFlags', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testDiscardFlag', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testLayoutFlag', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateCanvasMargins', , True, {'members': }) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.setDiscardFlag [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'setDiscardFlag') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.setDiscardFlag', , {'members': }, '(flag, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.setDiscardFlag', , {'members': }, ['Change a flag, indicating what to discard from rendering', '', ':param int flag: Flag to change', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`testDiscardFlag()`, :py:meth:`setDiscardFlags()`,', ' :py:meth:`discardFlags()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.setDiscardFlag', , {'members': }, '(flag, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.setDiscardFlag', , {'members': }, ['Change a flag, indicating what to discard from rendering', '', ':param int flag: Flag to change', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`testDiscardFlag()`, :py:meth:`setDiscardFlags()`,', ' :py:meth:`discardFlags()`', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.testDiscardFlag [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'testDiscardFlag') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.testDiscardFlag', , {'members': }, '(flag)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.testDiscardFlag', , {'members': }, [':param int flag: Flag to be tested', ':return: True, if flag is enabled.', '', '.. seealso::', '', ' :py:meth:`setDiscardFlag()`, :py:meth:`setDiscardFlags()`,', ' :py:meth:`discardFlags()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.testDiscardFlag', , {'members': }, '(flag)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.testDiscardFlag', , {'members': }, [':param int flag: Flag to be tested', ':return: True, if flag is enabled.', '', '.. seealso::', '', ' :py:meth:`setDiscardFlag()`, :py:meth:`setDiscardFlags()`,', ' :py:meth:`discardFlags()`', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.setDiscardFlags [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'setDiscardFlags') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.setDiscardFlags', , {'members': }, '(flags)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.setDiscardFlags', , {'members': }, ['Set the flags, indicating what to discard from rendering', '', ':param int flags: Flags', '', '.. seealso::', '', ' :py:meth:`testDiscardFlag()`, :py:meth:`setDiscardFlag()`,', ' :py:meth:`discardFlags()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.setDiscardFlags', , {'members': }, '(flags)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.setDiscardFlags', , {'members': }, ['Set the flags, indicating what to discard from rendering', '', ':param int flags: Flags', '', '.. seealso::', '', ' :py:meth:`testDiscardFlag()`, :py:meth:`setDiscardFlag()`,', ' :py:meth:`discardFlags()`', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.discardFlags [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'discardFlags') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.discardFlags', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.discardFlags', , {'members': }, [':return: Flags, indicating what to discard from rendering', '', '.. seealso::', '', ' :py:meth:`setDiscardFlag()`, :py:meth:`setDiscardFlags()`,', ' :py:meth:`testDiscardFlag()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.discardFlags', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.discardFlags', , {'members': }, [':return: Flags, indicating what to discard from rendering', '', '.. seealso::', '', ' :py:meth:`setDiscardFlag()`, :py:meth:`setDiscardFlags()`,', ' :py:meth:`testDiscardFlag()`', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.setLayoutFlag [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'setLayoutFlag') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.setLayoutFlag', , {'members': }, '(flag, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.setLayoutFlag', , {'members': }, ['Change a layout flag', '', ':param int flag: Flag to change', '', '.. seealso::', '', ' :py:meth:`testLayoutFlag()`, :py:meth:`setLayoutFlags()`,', ' :py:meth:`layoutFlags()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.setLayoutFlag', , {'members': }, '(flag, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.setLayoutFlag', , {'members': }, ['Change a layout flag', '', ':param int flag: Flag to change', '', '.. seealso::', '', ' :py:meth:`testLayoutFlag()`, :py:meth:`setLayoutFlags()`,', ' :py:meth:`layoutFlags()`', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.testLayoutFlag [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'testLayoutFlag') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.testLayoutFlag', , {'members': }, '(flag)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.testLayoutFlag', , {'members': }, [':param int flag: Flag to be tested', ':return: True, if flag is enabled.', '', '.. seealso::', '', ' :py:meth:`setLayoutFlag()`, :py:meth:`setLayoutFlags()`,', ' :py:meth:`layoutFlags()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.testLayoutFlag', , {'members': }, '(flag)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.testLayoutFlag', , {'members': }, [':param int flag: Flag to be tested', ':return: True, if flag is enabled.', '', '.. seealso::', '', ' :py:meth:`setLayoutFlag()`, :py:meth:`setLayoutFlags()`,', ' :py:meth:`layoutFlags()`', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.setLayoutFlags [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'setLayoutFlags') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.setLayoutFlags', , {'members': }, '(flags)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.setLayoutFlags', , {'members': }, ['Set the layout flags', '', ':param int flags: Flags', '', '.. seealso::', '', ' :py:meth:`setLayoutFlag()`, :py:meth:`testLayoutFlag()`,', ' :py:meth:`layoutFlags()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.setLayoutFlags', , {'members': }, '(flags)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.setLayoutFlags', , {'members': }, ['Set the layout flags', '', ':param int flags: Flags', '', '.. seealso::', '', ' :py:meth:`setLayoutFlag()`, :py:meth:`testLayoutFlag()`,', ' :py:meth:`layoutFlags()`', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.layoutFlags [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'layoutFlags') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.layoutFlags', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.layoutFlags', , {'members': }, [':return: Layout flags', '', '.. seealso::', '', ' :py:meth:`setLayoutFlags()`, :py:meth:`setLayoutFlag()`,', ' :py:meth:`testLayoutFlag()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.layoutFlags', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.layoutFlags', , {'members': }, [':return: Layout flags', '', '.. seealso::', '', ' :py:meth:`setLayoutFlags()`, :py:meth:`setLayoutFlag()`,', ' :py:meth:`testLayoutFlag()`', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.renderDocument [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'renderDocument') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderDocument', , {'members': }, '(plot, filename, sizeMM=(300, 200), resolution=85, format_=None)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderDocument', , {'members': }, ['Render a plot to a file', '', 'The format of the document will be auto-detected from the', 'suffix of the file name.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param str fileName: Path of the file, where the document will be stored', ':param QSizeF sizeMM: Size for the document in millimeters', ':param int resolution: Resolution in dots per Inch (dpi)', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderDocument', , {'members': }, '(plot, filename, sizeMM=(300, 200), resolution=85, format_=None)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderDocument', , {'members': }, ['Render a plot to a file', '', 'The format of the document will be auto-detected from the', 'suffix of the file name.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param str fileName: Path of the file, where the document will be stored', ':param QSizeF sizeMM: Size for the document in millimeters', ':param int resolution: Resolution in dots per Inch (dpi)', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.renderTo [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'renderTo') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderTo', , {'members': }, '(plot, dest)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderTo', , {'members': }, ['Render a plot to a file', '', 'Supported formats are:', '', ' - pdf: Portable Document Format PDF', ' - ps: Postcript', ' - svg: Scalable Vector Graphics SVG', ' - all image formats supported by Qt, see QImageWriter.supportedImageFormats()', '', 'Scalable vector graphic formats like PDF or SVG are superior to', 'raster graphics formats.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param dest: QPaintDevice, QPrinter or QSvgGenerator instance', '', '.. seealso::', '', ' :py:meth:`render()`,', ' :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderTo', , {'members': }, '(plot, dest)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderTo', , {'members': }, ['Render a plot to a file', '', 'Supported formats are:', '', ' - pdf: Portable Document Format PDF', ' - ps: Postcript', ' - svg: Scalable Vector Graphics SVG', ' - all image formats supported by Qt, see QImageWriter.supportedImageFormats()', '', 'Scalable vector graphic formats like PDF or SVG are superior to', 'raster graphics formats.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param dest: QPaintDevice, QPrinter or QSvgGenerator instance', '', '.. seealso::', '', ' :py:meth:`render()`,', ' :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()`', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.render [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'render') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.render', , {'members': }, '(plot, painter, plotRect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.render', , {'members': }, ['Paint the contents of a QwtPlot instance into a given rectangle.', '', ':param qwt.plot.QwtPlot plot: Plot to be rendered', ':param QPainter painter: Painter', ':param str format: Format for the document', ':param QRectF plotRect: Bounding rectangle', '', '.. seealso::', '', ' :py:meth:`renderDocument()`, :py:meth:`renderTo()`,', ' :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.render', , {'members': }, '(plot, painter, plotRect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.render', , {'members': }, ['Paint the contents of a QwtPlot instance into a given rectangle.', '', ':param qwt.plot.QwtPlot plot: Plot to be rendered', ':param QPainter painter: Painter', ':param str format: Format for the document', ':param QRectF plotRect: Bounding rectangle', '', '.. seealso::', '', ' :py:meth:`renderDocument()`, :py:meth:`renderTo()`,', ' :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()`', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.renderTitle [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'renderTitle') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderTitle', , {'members': }, '(plot, painter, rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderTitle', , {'members': }, ['Render the title into a given rectangle.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param QPainter painter: Painter', ':param QRectF rect: Bounding rectangle', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderTitle', , {'members': }, '(plot, painter, rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderTitle', , {'members': }, ['Render the title into a given rectangle.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param QPainter painter: Painter', ':param QRectF rect: Bounding rectangle', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.renderFooter [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'renderFooter') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderFooter', , {'members': }, '(plot, painter, rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderFooter', , {'members': }, ['Render the footer into a given rectangle.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param QPainter painter: Painter', ':param QRectF rect: Bounding rectangle', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderFooter', , {'members': }, '(plot, painter, rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderFooter', , {'members': }, ['Render the footer into a given rectangle.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param QPainter painter: Painter', ':param QRectF rect: Bounding rectangle', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.renderLegend [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'renderLegend') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderLegend', , {'members': }, '(plot, painter, rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderLegend', , {'members': }, ['Render the legend into a given rectangle.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param QPainter painter: Painter', ':param QRectF rect: Bounding rectangle', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderLegend', , {'members': }, '(plot, painter, rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderLegend', , {'members': }, ['Render the legend into a given rectangle.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param QPainter painter: Painter', ':param QRectF rect: Bounding rectangle', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.renderScale [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'renderScale') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderScale', , {'members': }, '(plot, painter, axisId, startDist, endDist, baseDist, rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderScale', , {'members': }, ['Paint a scale into a given rectangle.', 'Paint the scale into a given rectangle.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param QPainter painter: Painter', ':param int axisId: Axis', ':param int startDist: Start border distance', ':param int endDist: End border distance', ':param int baseDist: Base distance', ':param QRectF rect: Bounding rectangle', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderScale', , {'members': }, '(plot, painter, axisId, startDist, endDist, baseDist, rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderScale', , {'members': }, ['Paint a scale into a given rectangle.', 'Paint the scale into a given rectangle.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param QPainter painter: Painter', ':param int axisId: Axis', ':param int startDist: Start border distance', ':param int endDist: End border distance', ':param int baseDist: Base distance', ':param QRectF rect: Bounding rectangle', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.renderCanvas [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'renderCanvas') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderCanvas', , {'members': }, '(plot, painter, canvasRect, maps)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderCanvas', , {'members': }, ['Render the canvas into a given rectangle.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param QPainter painter: Painter', ':param QRectF rect: Bounding rectangle', ':param qwt.scale_map.QwtScaleMap maps: mapping between plot and paint device coordinates', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderCanvas', , {'members': }, '(plot, painter, canvasRect, maps)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.renderCanvas', , {'members': }, ['Render the canvas into a given rectangle.', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param QPainter painter: Painter', ':param QRectF rect: Bounding rectangle', ':param qwt.scale_map.QwtScaleMap maps: mapping between plot and paint device coordinates', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.buildCanvasMaps [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'buildCanvasMaps') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.buildCanvasMaps', , {'members': }, '(plot, canvasRect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.buildCanvasMaps', , {'members': }, ['Calculated the scale maps for rendering the canvas', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param QRectF canvasRect: Target rectangle', ':return: Calculated scale maps', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.buildCanvasMaps', , {'members': }, '(plot, canvasRect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.buildCanvasMaps', , {'members': }, ['Calculated the scale maps for rendering the canvas', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param QRectF canvasRect: Target rectangle', ':return: Calculated scale maps', '']) [autodoc] from qwt.plot_renderer import QwtPlotRenderer.exportTo [autodoc] import qwt.plot_renderer => [autodoc] getattr(_, 'QwtPlotRenderer') [autodoc] => [autodoc] getattr(_, 'exportTo') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.exportTo', , {'members': }, '(plot, documentname, sizeMM=None, resolution=85)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.exportTo', , {'members': }, ['Execute a file dialog and render the plot to the selected file', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param str documentName: Default document name', ':param QSizeF sizeMM: Size for the document in millimeters', ':param int resolution: Resolution in dots per Inch (dpi)', ':return: True, when exporting was successful', '', '.. seealso::', '', ' :py:meth:`renderDocument()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_renderer.QwtPlotRenderer.exportTo', , {'members': }, '(plot, documentname, sizeMM=None, resolution=85)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_renderer.QwtPlotRenderer.exportTo', , {'members': }, ['Execute a file dialog and render the plot to the selected file', '', ':param qwt.plot.QwtPlot plot: Plot widget', ':param str documentName: Default document name', ':param QSizeF sizeMM: Size for the document in millimeters', ':param int resolution: Resolution in dots per Inch (dpi)', ':return: True, when exporting was successful', '', '.. seealso::', '', ' :py:meth:`renderDocument()`', '']) [autodoc] output: .. py:class:: QwtPlotRenderer(parent=None) @@ -12486,7 +12522,7 @@ [app] emitting event: 'viewcode-follow-imported'('qwt.plot_renderer', 'QwtPlotRenderer.exportTo') [app] emitting event: 'viewcode-find-source'('qwt.plot_renderer',) reading sources... [ 78%] reference/plot_directpainter -[app] emitting event: 'env-purge-doc'(, 'reference/plot_directpainter') +[app] emitting event: 'env-purge-doc'(, 'reference/plot_directpainter') [app] emitting event: 'source-read'('reference/plot_directpainter', ['.. automodule:: qwt.plot_directpainter\n']) [autodoc] /build/reproducible-path/python-qwt-0.12.7/doc/reference/plot_directpainter.rst:1: input: .. automodule:: qwt.plot_directpainter @@ -12511,107 +12547,107 @@ [autodoc] import qwt.plot_directpainter => [autodoc] getattr(_, 'QwtPlotDirectPainter') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_directpainter.QwtPlotDirectPainter', , {'members': }, '(parent=None)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_directpainter.QwtPlotDirectPainter', , {'members': }, ['Painter object trying to paint incrementally', '', 'Often applications want to display samples while they are', 'collected. When there are too many samples complete replots', 'will be expensive to be processed in a collection cycle.', '', '`QwtPlotDirectPainter` offers an API to paint', 'subsets (f.e all additions points) without erasing/repainting', 'the plot canvas.', '', 'On certain environments it might be important to calculate a proper', 'clip region before painting. F.e. for Qt Embedded only the clipped part', 'of the backing store will be copied to a (maybe unaccelerated)', 'frame buffer.', '', '.. warning::', '', ' Incremental painting will only help when no replot is triggered', ' by another operation (like changing scales) and nothing needs', ' to be erased.', '', 'Paint attributes:', '', ' * `QwtPlotDirectPainter.AtomicPainter`:', '', ' Initializing a `QPainter` is an expensive operation.', ' When `AtomicPainter` is set each call of `drawSeries()` opens/closes', ' a temporary `QPainter`. Otherwise `QwtPlotDirectPainter` tries to', ' use the same `QPainter` as long as possible.', '', ' * `QwtPlotDirectPainter.FullRepaint`:', '', ' When `FullRepaint` is set the plot canvas is explicitly repainted', ' after the samples have been rendered.', '', ' * `QwtPlotDirectPainter.CopyBackingStore`:', '', ' When `QwtPlotCanvas.BackingStore` is enabled the painter', ' has to paint to the backing store and the widget. In certain', ' situations/environments it might be faster to paint to', ' the backing store only and then copy the backing store to the canvas.', ' This flag can also be useful for settings, where Qt fills the', ' the clip region with the widget background.', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'AtomicPainter', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'CopyBackingStore', 4, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'FullRepaint', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nPainter object trying to paint incrementally\n\nOften applications want to display samples while they are\ncollected. When there are too many samples complete replots\nwill be expensive to be processed in a collection cycle.\n\n`QwtPlotDirectPainter` offers an API to paint\nsubsets (f.e all additions points) without erasing/repainting\nthe plot canvas.\n\nOn certain environments it might be important to calculate a proper\nclip region before painting. F.e. for Qt Embedded only the clipped part\nof the backing store will be copied to a (maybe unaccelerated)\nframe buffer.\n\n.. warning::\n\n Incremental painting will only help when no replot is triggered\n by another operation (like changing scales) and nothing needs\n to be erased.\n\nPaint attributes:\n\n * `QwtPlotDirectPainter.AtomicPainter`:\n\n Initializing a `QPainter` is an expensive operation.\n When `AtomicPainter` is set each call of `drawSeries()` opens/closes\n a temporary `QPainter`. Otherwise `QwtPlotDirectPainter` tries to\n use the same `QPainter` as long as possible.\n\n * `QwtPlotDirectPainter.FullRepaint`:\n\n When `FullRepaint` is set the plot canvas is explicitly repainted\n after the samples have been rendered.\n\n * `QwtPlotDirectPainter.CopyBackingStore`:\n\n When `QwtPlotCanvas.BackingStore` is enabled the painter\n has to paint to the backing store and the widget. In certain\n situations/environments it might be faster to paint to\n the backing store only and then copy the backing store to the canvas.\n This flag can also be useful for settings, where Qt fills the\n the clip region with the widget background.\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 55, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_directpainter', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'clipRegion', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawSeries', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'eventFilter', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'hasClipping', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'reset', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setClipRegion', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setClipping', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_directpainter.QwtPlotDirectPainter', , {'members': }, '(parent=None)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_directpainter.QwtPlotDirectPainter', , {'members': }, ['Painter object trying to paint incrementally', '', 'Often applications want to display samples while they are', 'collected. When there are too many samples complete replots', 'will be expensive to be processed in a collection cycle.', '', '`QwtPlotDirectPainter` offers an API to paint', 'subsets (f.e all additions points) without erasing/repainting', 'the plot canvas.', '', 'On certain environments it might be important to calculate a proper', 'clip region before painting. F.e. for Qt Embedded only the clipped part', 'of the backing store will be copied to a (maybe unaccelerated)', 'frame buffer.', '', '.. warning::', '', ' Incremental painting will only help when no replot is triggered', ' by another operation (like changing scales) and nothing needs', ' to be erased.', '', 'Paint attributes:', '', ' * `QwtPlotDirectPainter.AtomicPainter`:', '', ' Initializing a `QPainter` is an expensive operation.', ' When `AtomicPainter` is set each call of `drawSeries()` opens/closes', ' a temporary `QPainter`. Otherwise `QwtPlotDirectPainter` tries to', ' use the same `QPainter` as long as possible.', '', ' * `QwtPlotDirectPainter.FullRepaint`:', '', ' When `FullRepaint` is set the plot canvas is explicitly repainted', ' after the samples have been rendered.', '', ' * `QwtPlotDirectPainter.CopyBackingStore`:', '', ' When `QwtPlotCanvas.BackingStore` is enabled the painter', ' has to paint to the backing store and the widget. In certain', ' situations/environments it might be faster to paint to', ' the backing store only and then copy the backing store to the canvas.', ' This flag can also be useful for settings, where Qt fills the', ' the clip region with the widget background.', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'AtomicPainter', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'CopyBackingStore', 4, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'FullRepaint', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nPainter object trying to paint incrementally\n\nOften applications want to display samples while they are\ncollected. When there are too many samples complete replots\nwill be expensive to be processed in a collection cycle.\n\n`QwtPlotDirectPainter` offers an API to paint\nsubsets (f.e all additions points) without erasing/repainting\nthe plot canvas.\n\nOn certain environments it might be important to calculate a proper\nclip region before painting. F.e. for Qt Embedded only the clipped part\nof the backing store will be copied to a (maybe unaccelerated)\nframe buffer.\n\n.. warning::\n\n Incremental painting will only help when no replot is triggered\n by another operation (like changing scales) and nothing needs\n to be erased.\n\nPaint attributes:\n\n * `QwtPlotDirectPainter.AtomicPainter`:\n\n Initializing a `QPainter` is an expensive operation.\n When `AtomicPainter` is set each call of `drawSeries()` opens/closes\n a temporary `QPainter`. Otherwise `QwtPlotDirectPainter` tries to\n use the same `QPainter` as long as possible.\n\n * `QwtPlotDirectPainter.FullRepaint`:\n\n When `FullRepaint` is set the plot canvas is explicitly repainted\n after the samples have been rendered.\n\n * `QwtPlotDirectPainter.CopyBackingStore`:\n\n When `QwtPlotCanvas.BackingStore` is enabled the painter\n has to paint to the backing store and the widget. In certain\n situations/environments it might be faster to paint to\n the backing store only and then copy the backing store to the canvas.\n This flag can also be useful for settings, where Qt fills the\n the clip region with the widget background.\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 55, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_directpainter', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'clipRegion', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawSeries', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'eventFilter', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'hasClipping', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'reset', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setClipRegion', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setClipping', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testAttribute', , False, {'members': }) [autodoc] from qwt.plot_directpainter import QwtPlotDirectPainter.setAttribute [autodoc] import qwt.plot_directpainter => [autodoc] getattr(_, 'QwtPlotDirectPainter') [autodoc] => [autodoc] getattr(_, 'setAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.setAttribute', , {'members': }, '(attribute, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.setAttribute', , {'members': }, ['Change an attribute', '', ':param int attribute: Attribute to change', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`testAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.setAttribute', , {'members': }, '(attribute, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.setAttribute', , {'members': }, ['Change an attribute', '', ':param int attribute: Attribute to change', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`testAttribute()`', '']) [autodoc] from qwt.plot_directpainter import QwtPlotDirectPainter.testAttribute [autodoc] import qwt.plot_directpainter => [autodoc] getattr(_, 'QwtPlotDirectPainter') [autodoc] => [autodoc] getattr(_, 'testAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.testAttribute', , {'members': }, '(attribute)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.testAttribute', , {'members': }, [':param int attribute: Attribute to be tested', ':return: True, when attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.testAttribute', , {'members': }, '(attribute)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.testAttribute', , {'members': }, [':param int attribute: Attribute to be tested', ':return: True, when attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setAttribute()`', '']) [autodoc] from qwt.plot_directpainter import QwtPlotDirectPainter.setClipping [autodoc] import qwt.plot_directpainter => [autodoc] getattr(_, 'QwtPlotDirectPainter') [autodoc] => [autodoc] getattr(_, 'setClipping') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.setClipping', , {'members': }, '(enable)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.setClipping', , {'members': }, ['En/Disables clipping', '', ':param bool enable: Enables clipping is true, disable it otherwise', '', '.. seealso::', '', ' :py:meth:`hasClipping()`, :py:meth:`clipRegion()`,', ' :py:meth:`setClipRegion()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.setClipping', , {'members': }, '(enable)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.setClipping', , {'members': }, ['En/Disables clipping', '', ':param bool enable: Enables clipping is true, disable it otherwise', '', '.. seealso::', '', ' :py:meth:`hasClipping()`, :py:meth:`clipRegion()`,', ' :py:meth:`setClipRegion()`', '']) [autodoc] from qwt.plot_directpainter import QwtPlotDirectPainter.hasClipping [autodoc] import qwt.plot_directpainter => [autodoc] getattr(_, 'QwtPlotDirectPainter') [autodoc] => [autodoc] getattr(_, 'hasClipping') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.hasClipping', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.hasClipping', , {'members': }, [':return: Return true, when clipping is enabled', '', '.. seealso::', '', ' :py:meth:`setClipping()`, :py:meth:`clipRegion()`,', ' :py:meth:`setClipRegion()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.hasClipping', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.hasClipping', , {'members': }, [':return: Return true, when clipping is enabled', '', '.. seealso::', '', ' :py:meth:`setClipping()`, :py:meth:`clipRegion()`,', ' :py:meth:`setClipRegion()`', '']) [autodoc] from qwt.plot_directpainter import QwtPlotDirectPainter.setClipRegion [autodoc] import qwt.plot_directpainter => [autodoc] getattr(_, 'QwtPlotDirectPainter') [autodoc] => [autodoc] getattr(_, 'setClipRegion') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.setClipRegion', , {'members': }, '(region)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.setClipRegion', , {'members': }, ['Assign a clip region and enable clipping', '', 'Depending on the environment setting a proper clip region might', 'improve the performance heavily. F.e. on Qt embedded only the clipped', 'part of the backing store will be copied to a (maybe unaccelerated)', 'frame buffer device.', '', ':param QRegion region: Clip region', '', '.. seealso::', '', ' :py:meth:`hasClipping()`, :py:meth:`setClipping()`,', ' :py:meth:`clipRegion()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.setClipRegion', , {'members': }, '(region)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.setClipRegion', , {'members': }, ['Assign a clip region and enable clipping', '', 'Depending on the environment setting a proper clip region might', 'improve the performance heavily. F.e. on Qt embedded only the clipped', 'part of the backing store will be copied to a (maybe unaccelerated)', 'frame buffer device.', '', ':param QRegion region: Clip region', '', '.. seealso::', '', ' :py:meth:`hasClipping()`, :py:meth:`setClipping()`,', ' :py:meth:`clipRegion()`', '']) [autodoc] from qwt.plot_directpainter import QwtPlotDirectPainter.clipRegion [autodoc] import qwt.plot_directpainter => [autodoc] getattr(_, 'QwtPlotDirectPainter') [autodoc] => [autodoc] getattr(_, 'clipRegion') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.clipRegion', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.clipRegion', , {'members': }, [':return: Return Currently set clip region.', '', '.. seealso::', '', ' :py:meth:`hasClipping()`, :py:meth:`setClipping()`,', ' :py:meth:`setClipRegion()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.clipRegion', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.clipRegion', , {'members': }, [':return: Return Currently set clip region.', '', '.. seealso::', '', ' :py:meth:`hasClipping()`, :py:meth:`setClipping()`,', ' :py:meth:`setClipRegion()`', '']) [autodoc] from qwt.plot_directpainter import QwtPlotDirectPainter.drawSeries [autodoc] import qwt.plot_directpainter => [autodoc] getattr(_, 'QwtPlotDirectPainter') [autodoc] => [autodoc] getattr(_, 'drawSeries') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.drawSeries', , {'members': }, '(seriesItem, from_, to)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.drawSeries', , {'members': }, ['Draw a set of points of a seriesItem.', '', 'When observing a measurement while it is running, new points have', 'to be added to an existing seriesItem. drawSeries() can be used to', 'display them avoiding a complete redraw of the canvas.', '', 'Setting `plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)`', 'will result in faster painting, if the paint engine of the canvas widget', 'supports this feature.', '', ':param qwt.plot_series.QwtPlotSeriesItem seriesItem: Item to be painted', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the series will be painted to its last point.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.drawSeries', , {'members': }, '(seriesItem, from_, to)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.drawSeries', , {'members': }, ['Draw a set of points of a seriesItem.', '', 'When observing a measurement while it is running, new points have', 'to be added to an existing seriesItem. drawSeries() can be used to', 'display them avoiding a complete redraw of the canvas.', '', 'Setting `plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)`', 'will result in faster painting, if the paint engine of the canvas widget', 'supports this feature.', '', ':param qwt.plot_series.QwtPlotSeriesItem seriesItem: Item to be painted', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the series will be painted to its last point.', '']) [autodoc] from qwt.plot_directpainter import QwtPlotDirectPainter.reset [autodoc] import qwt.plot_directpainter => [autodoc] getattr(_, 'QwtPlotDirectPainter') [autodoc] => [autodoc] getattr(_, 'reset') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.reset', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.reset', , {'members': }, ['Close the internal QPainter', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.reset', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.reset', , {'members': }, ['Close the internal QPainter', '']) [autodoc] from qwt.plot_directpainter import QwtPlotDirectPainter.eventFilter [autodoc] import qwt.plot_directpainter => [autodoc] getattr(_, 'QwtPlotDirectPainter') [autodoc] => [autodoc] getattr(_, 'eventFilter') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.eventFilter', , {'members': }, '(self, a0: Optional[QObject], a1: Optional[QEvent])', 'bool') -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.eventFilter', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.eventFilter', , {'members': }, '(self, a0: Optional[QObject], a1: Optional[QEvent])', 'bool') +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_directpainter.QwtPlotDirectPainter.eventFilter', , {'members': }, []) [autodoc] output: .. py:class:: QwtPlotDirectPainter(parent=None) @@ -12806,7 +12842,7 @@ [app] emitting event: 'viewcode-follow-imported'('qwt.plot_directpainter', 'QwtPlotDirectPainter.eventFilter') [app] emitting event: 'viewcode-find-source'('qwt.plot_directpainter',) reading sources... [ 81%] reference/plot_layout -[app] emitting event: 'env-purge-doc'(, 'reference/plot_layout') +[app] emitting event: 'env-purge-doc'(, 'reference/plot_layout') [app] emitting event: 'source-read'('reference/plot_layout', ['.. automodule:: qwt.plot_layout\n']) [autodoc] /build/reproducible-path/python-qwt-0.12.7/doc/reference/plot_layout.rst:1: input: .. automodule:: qwt.plot_layout @@ -12831,292 +12867,292 @@ [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_layout.QwtPlotLayout', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_layout.QwtPlotLayout', , {'members': }, ['Layout engine for QwtPlot.', '', 'It is used by the `QwtPlot` widget to organize its internal widgets', 'or by `QwtPlot.print()` to render its content to a QPaintDevice like', 'a QPrinter, QPixmap/QImage or QSvgRenderer.', '', '.. seealso::', '', ' :py:meth:`qwt.plot.QwtPlot.setPlotLayout()`', '', 'Valid options:', '', ' * `QwtPlotLayout.AlignScales`: Unused', ' * `QwtPlotLayout.IgnoreScrollbars`: Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is not rendered to widgets.', ' * `QwtPlotLayout.IgnoreFrames`: Ignore all frames.', ' * `QwtPlotLayout.IgnoreLegend`: Ignore the legend.', ' * `QwtPlotLayout.IgnoreTitle`: Ignore the title.', ' * `QwtPlotLayout.IgnoreFooter`: Ignore the footer.', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'AlignScales', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'IgnoreFooter', 32, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'IgnoreFrames', 4, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'IgnoreLegend', 8, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'IgnoreScrollbars', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'IgnoreTitle', 16, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.plot_layout', '__firstlineno__': 163, '__doc__': '\nLayout engine for QwtPlot.\n\nIt is used by the `QwtPlot` widget to organize its internal widgets\nor by `QwtPlot.print()` to render its content to a QPaintDevice like\na QPrinter, QPixmap/QImage or QSvgRenderer.\n\n.. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setPlotLayout()`\n\nValid options:\n\n * `QwtPlotLayout.AlignScales`: Unused\n * `QwtPlotLayout.IgnoreScrollbars`: Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is not rendered to widgets.\n * `QwtPlotLayout.IgnoreFrames`: Ignore all frames.\n * `QwtPlotLayout.IgnoreLegend`: Ignore the legend.\n * `QwtPlotLayout.IgnoreTitle`: Ignore the title.\n * `QwtPlotLayout.IgnoreFooter`: Ignore the footer.\n', 'AlignScales': 1, 'IgnoreScrollbars': 2, 'IgnoreFrames': 4, 'IgnoreLegend': 8, 'IgnoreTitle': 16, 'IgnoreFooter': 32, '__init__': , 'setCanvasMargin': , 'canvasMargin': , 'setAlignCanvasToScales': , 'alignCanvasToScale': , 'setSpacing': , 'spacing': , 'setLegendPosition': , 'legendPosition': , 'setLegendRatio': , 'legendRatio': , 'setTitleRect': , 'titleRect': , 'setFooterRect': , 'footerRect': , 'setLegendRect': , 'legendRect': , 'setScaleRect': , 'scaleRect': , 'setCanvasRect': , 'canvasRect': , 'invalidate': , 'minimumSizeHint': , 'layoutLegend': , 'alignLegend': , 'expandLineBreaks': , 'alignScales': , 'activate': , '__static_attributes__': ('__data',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nLayout engine for QwtPlot.\n\nIt is used by the `QwtPlot` widget to organize its internal widgets\nor by `QwtPlot.print()` to render its content to a QPaintDevice like\na QPrinter, QPixmap/QImage or QSvgRenderer.\n\n.. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setPlotLayout()`\n\nValid options:\n\n * `QwtPlotLayout.AlignScales`: Unused\n * `QwtPlotLayout.IgnoreScrollbars`: Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is not rendered to widgets.\n * `QwtPlotLayout.IgnoreFrames`: Ignore all frames.\n * `QwtPlotLayout.IgnoreLegend`: Ignore the legend.\n * `QwtPlotLayout.IgnoreTitle`: Ignore the title.\n * `QwtPlotLayout.IgnoreFooter`: Ignore the footer.\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 163, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_layout', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'activate', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'alignCanvasToScale', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'alignLegend', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'alignScales', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'canvasMargin', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'canvasRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'expandLineBreaks', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'footerRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invalidate', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'layoutLegend', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'legendPosition', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'legendRatio', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'legendRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'minimumSizeHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'scaleRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAlignCanvasToScales', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setCanvasMargin', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setCanvasRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setFooterRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLegendPosition', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLegendRatio', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLegendRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setScaleRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setSpacing', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setTitleRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'spacing', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'titleRect', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_layout.QwtPlotLayout', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_layout.QwtPlotLayout', , {'members': }, ['Layout engine for QwtPlot.', '', 'It is used by the `QwtPlot` widget to organize its internal widgets', 'or by `QwtPlot.print()` to render its content to a QPaintDevice like', 'a QPrinter, QPixmap/QImage or QSvgRenderer.', '', '.. seealso::', '', ' :py:meth:`qwt.plot.QwtPlot.setPlotLayout()`', '', 'Valid options:', '', ' * `QwtPlotLayout.AlignScales`: Unused', ' * `QwtPlotLayout.IgnoreScrollbars`: Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is not rendered to widgets.', ' * `QwtPlotLayout.IgnoreFrames`: Ignore all frames.', ' * `QwtPlotLayout.IgnoreLegend`: Ignore the legend.', ' * `QwtPlotLayout.IgnoreTitle`: Ignore the title.', ' * `QwtPlotLayout.IgnoreFooter`: Ignore the footer.', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'AlignScales', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'IgnoreFooter', 32, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'IgnoreFrames', 4, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'IgnoreLegend', 8, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'IgnoreScrollbars', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'IgnoreTitle', 16, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.plot_layout', '__firstlineno__': 163, '__doc__': '\nLayout engine for QwtPlot.\n\nIt is used by the `QwtPlot` widget to organize its internal widgets\nor by `QwtPlot.print()` to render its content to a QPaintDevice like\na QPrinter, QPixmap/QImage or QSvgRenderer.\n\n.. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setPlotLayout()`\n\nValid options:\n\n * `QwtPlotLayout.AlignScales`: Unused\n * `QwtPlotLayout.IgnoreScrollbars`: Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is not rendered to widgets.\n * `QwtPlotLayout.IgnoreFrames`: Ignore all frames.\n * `QwtPlotLayout.IgnoreLegend`: Ignore the legend.\n * `QwtPlotLayout.IgnoreTitle`: Ignore the title.\n * `QwtPlotLayout.IgnoreFooter`: Ignore the footer.\n', 'AlignScales': 1, 'IgnoreScrollbars': 2, 'IgnoreFrames': 4, 'IgnoreLegend': 8, 'IgnoreTitle': 16, 'IgnoreFooter': 32, '__init__': , 'setCanvasMargin': , 'canvasMargin': , 'setAlignCanvasToScales': , 'alignCanvasToScale': , 'setSpacing': , 'spacing': , 'setLegendPosition': , 'legendPosition': , 'setLegendRatio': , 'legendRatio': , 'setTitleRect': , 'titleRect': , 'setFooterRect': , 'footerRect': , 'setLegendRect': , 'legendRect': , 'setScaleRect': , 'scaleRect': , 'setCanvasRect': , 'canvasRect': , 'invalidate': , 'minimumSizeHint': , 'layoutLegend': , 'alignLegend': , 'expandLineBreaks': , 'alignScales': , 'activate': , '__static_attributes__': ('__data',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nLayout engine for QwtPlot.\n\nIt is used by the `QwtPlot` widget to organize its internal widgets\nor by `QwtPlot.print()` to render its content to a QPaintDevice like\na QPrinter, QPixmap/QImage or QSvgRenderer.\n\n.. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setPlotLayout()`\n\nValid options:\n\n * `QwtPlotLayout.AlignScales`: Unused\n * `QwtPlotLayout.IgnoreScrollbars`: Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is not rendered to widgets.\n * `QwtPlotLayout.IgnoreFrames`: Ignore all frames.\n * `QwtPlotLayout.IgnoreLegend`: Ignore the legend.\n * `QwtPlotLayout.IgnoreTitle`: Ignore the title.\n * `QwtPlotLayout.IgnoreFooter`: Ignore the footer.\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 163, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_layout', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'activate', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'alignCanvasToScale', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'alignLegend', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'alignScales', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'canvasMargin', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'canvasRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'expandLineBreaks', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'footerRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invalidate', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'layoutLegend', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'legendPosition', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'legendRatio', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'legendRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'minimumSizeHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'scaleRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAlignCanvasToScales', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setCanvasMargin', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setCanvasRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setFooterRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLegendPosition', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLegendRatio', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLegendRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setScaleRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setSpacing', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setTitleRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'spacing', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'titleRect', , False, {'members': }) [autodoc] from qwt.plot_layout import QwtPlotLayout.setCanvasMargin [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'setCanvasMargin') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setCanvasMargin', , {'members': }, '(margin, axis=-1)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setCanvasMargin', , {'members': }, ['Change a margin of the canvas. The margin is the space', 'above/below the scale ticks. A negative margin will', 'be set to -1, excluding the borders of the scales.', '', ':param int margin: New margin', ':param int axisId: Axis index', '', '.. seealso::', '', ' :py:meth:`canvasMargin()`', '', '.. warning::', '', ' The margin will have no effect when `alignCanvasToScale()` is True', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setCanvasMargin', , {'members': }, '(margin, axis=-1)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setCanvasMargin', , {'members': }, ['Change a margin of the canvas. The margin is the space', 'above/below the scale ticks. A negative margin will', 'be set to -1, excluding the borders of the scales.', '', ':param int margin: New margin', ':param int axisId: Axis index', '', '.. seealso::', '', ' :py:meth:`canvasMargin()`', '', '.. warning::', '', ' The margin will have no effect when `alignCanvasToScale()` is True', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.canvasMargin [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'canvasMargin') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.canvasMargin', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.canvasMargin', , {'members': }, [':param int axisId: Axis index', ':return: Margin around the scale tick borders', '', '.. seealso::', '', ' :py:meth:`setCanvasMargin()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.canvasMargin', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.canvasMargin', , {'members': }, [':param int axisId: Axis index', ':return: Margin around the scale tick borders', '', '.. seealso::', '', ' :py:meth:`setCanvasMargin()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.setAlignCanvasToScales [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'setAlignCanvasToScales') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setAlignCanvasToScales', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setAlignCanvasToScales', , {'members': }, ['Change the align-canvas-to-axis-scales setting.', '', '.. py:method:: setAlignCanvasToScales(on):', '', ' Set the align-canvas-to-axis-scales flag for all axes', '', ' :param bool on: True/False', '', '.. py:method:: setAlignCanvasToScales(axisId, on):', '', ' Change the align-canvas-to-axis-scales setting.', ' The canvas may:', '', ' - extend beyond the axis scale ends to maximize its size,', ' - align with the axis scale ends to control its size.', '', ' The axisId parameter is somehow confusing as it identifies a', ' border of the plot and not the axes, that are aligned. F.e when', ' `QwtPlot.yLeft` is set, the left end of the the x-axes', ' (`QwtPlot.xTop`, `QwtPlot.xBottom`) is aligned.', '', ' :param int axisId: Axis index', ' :param bool on: True/False', '', '.. seealso::', '', ' :py:meth:`setAlignCanvasToScale()`,', ' :py:meth:`alignCanvasToScale()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setAlignCanvasToScales', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setAlignCanvasToScales', , {'members': }, ['Change the align-canvas-to-axis-scales setting.', '', '.. py:method:: setAlignCanvasToScales(on):', '', ' Set the align-canvas-to-axis-scales flag for all axes', '', ' :param bool on: True/False', '', '.. py:method:: setAlignCanvasToScales(axisId, on):', '', ' Change the align-canvas-to-axis-scales setting.', ' The canvas may:', '', ' - extend beyond the axis scale ends to maximize its size,', ' - align with the axis scale ends to control its size.', '', ' The axisId parameter is somehow confusing as it identifies a', ' border of the plot and not the axes, that are aligned. F.e when', ' `QwtPlot.yLeft` is set, the left end of the the x-axes', ' (`QwtPlot.xTop`, `QwtPlot.xBottom`) is aligned.', '', ' :param int axisId: Axis index', ' :param bool on: True/False', '', '.. seealso::', '', ' :py:meth:`setAlignCanvasToScale()`,', ' :py:meth:`alignCanvasToScale()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.alignCanvasToScale [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'alignCanvasToScale') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.alignCanvasToScale', , {'members': }, '(axisId)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.alignCanvasToScale', , {'members': }, ['Return the align-canvas-to-axis-scales setting.', 'The canvas may:', '', ' - extend beyond the axis scale ends to maximize its size', ' - align with the axis scale ends to control its size.', '', ':param int axisId: Axis index', ':return: align-canvas-to-axis-scales setting', '', '.. seealso::', '', ' :py:meth:`setAlignCanvasToScale()`, :py:meth:`setCanvasMargin()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.alignCanvasToScale', , {'members': }, '(axisId)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.alignCanvasToScale', , {'members': }, ['Return the align-canvas-to-axis-scales setting.', 'The canvas may:', '', ' - extend beyond the axis scale ends to maximize its size', ' - align with the axis scale ends to control its size.', '', ':param int axisId: Axis index', ':return: align-canvas-to-axis-scales setting', '', '.. seealso::', '', ' :py:meth:`setAlignCanvasToScale()`, :py:meth:`setCanvasMargin()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.setSpacing [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'setSpacing') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setSpacing', , {'members': }, '(spacing)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setSpacing', , {'members': }, ['Change the spacing of the plot. The spacing is the distance', 'between the plot components.', '', ':param int spacing: New spacing', '', '.. seealso::', '', ' :py:meth:`setCanvasMargin()`, :py:meth:`spacing()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setSpacing', , {'members': }, '(spacing)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setSpacing', , {'members': }, ['Change the spacing of the plot. The spacing is the distance', 'between the plot components.', '', ':param int spacing: New spacing', '', '.. seealso::', '', ' :py:meth:`setCanvasMargin()`, :py:meth:`spacing()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.spacing [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'spacing') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.spacing', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.spacing', , {'members': }, [':return: Spacing', '', '.. seealso::', '', ' :py:meth:`margin()`, :py:meth:`setSpacing()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.spacing', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.spacing', , {'members': }, [':return: Spacing', '', '.. seealso::', '', ' :py:meth:`margin()`, :py:meth:`setSpacing()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.setLegendPosition [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'setLegendPosition') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setLegendPosition', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setLegendPosition', , {'members': }, ['Specify the position of the legend', '', '.. py:method:: setLegendPosition(pos, [ratio=0.]):', '', ' Specify the position of the legend', '', ' :param QwtPlot.LegendPosition pos: Legend position', ' :param float ratio: Ratio between legend and the bounding rectangle of title, footer, canvas and axes', '', ' The legend will be shrunk if it would need more space than the', ' given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of', ' <= 0.0 it will be reset to the default ratio. The default', ' vertical/horizontal ratio is 0.33/0.5.', '', ' Valid position values:', '', ' * `QwtPlot.LeftLegend`,', ' * `QwtPlot.RightLegend`,', ' * `QwtPlot.TopLegend`,', ' * `QwtPlot.BottomLegend`', '', '.. seealso::', '', ' :py:meth:`setLegendPosition()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setLegendPosition', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setLegendPosition', , {'members': }, ['Specify the position of the legend', '', '.. py:method:: setLegendPosition(pos, [ratio=0.]):', '', ' Specify the position of the legend', '', ' :param QwtPlot.LegendPosition pos: Legend position', ' :param float ratio: Ratio between legend and the bounding rectangle of title, footer, canvas and axes', '', ' The legend will be shrunk if it would need more space than the', ' given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of', ' <= 0.0 it will be reset to the default ratio. The default', ' vertical/horizontal ratio is 0.33/0.5.', '', ' Valid position values:', '', ' * `QwtPlot.LeftLegend`,', ' * `QwtPlot.RightLegend`,', ' * `QwtPlot.TopLegend`,', ' * `QwtPlot.BottomLegend`', '', '.. seealso::', '', ' :py:meth:`setLegendPosition()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.legendPosition [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'legendPosition') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.legendPosition', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.legendPosition', , {'members': }, [':return: Position of the legend', '', '.. seealso::', '', ' :py:meth:`legendPosition()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.legendPosition', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.legendPosition', , {'members': }, [':return: Position of the legend', '', '.. seealso::', '', ' :py:meth:`legendPosition()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.setLegendRatio [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'setLegendRatio') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setLegendRatio', , {'members': }, '(ratio)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setLegendRatio', , {'members': }, ['Specify the relative size of the legend in the plot', '', ':param float ratio: Ratio between legend and the bounding rectangle of title, footer, canvas and axes', '', 'The legend will be shrunk if it would need more space than the', 'given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of', '<= 0.0 it will be reset to the default ratio. The default', 'vertical/horizontal ratio is 0.33/0.5.', '', '.. seealso::', '', ' :py:meth:`legendRatio()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setLegendRatio', , {'members': }, '(ratio)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setLegendRatio', , {'members': }, ['Specify the relative size of the legend in the plot', '', ':param float ratio: Ratio between legend and the bounding rectangle of title, footer, canvas and axes', '', 'The legend will be shrunk if it would need more space than the', 'given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of', '<= 0.0 it will be reset to the default ratio. The default', 'vertical/horizontal ratio is 0.33/0.5.', '', '.. seealso::', '', ' :py:meth:`legendRatio()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.legendRatio [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'legendRatio') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.legendRatio', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.legendRatio', , {'members': }, [':return: The relative size of the legend in the plot.', '', '.. seealso::', '', ' :py:meth:`setLegendRatio()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.legendRatio', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.legendRatio', , {'members': }, [':return: The relative size of the legend in the plot.', '', '.. seealso::', '', ' :py:meth:`setLegendRatio()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.setTitleRect [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'setTitleRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setTitleRect', , {'members': }, '(rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setTitleRect', , {'members': }, ['Set the geometry for the title', '', 'This method is intended to be used from derived layouts', 'overloading `activate()`', '', ':param QRectF rect: Rectangle', '', '.. seealso::', '', ' :py:meth:`titleRect()`, :py:meth:`activate()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setTitleRect', , {'members': }, '(rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setTitleRect', , {'members': }, ['Set the geometry for the title', '', 'This method is intended to be used from derived layouts', 'overloading `activate()`', '', ':param QRectF rect: Rectangle', '', '.. seealso::', '', ' :py:meth:`titleRect()`, :py:meth:`activate()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.titleRect [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'titleRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.titleRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.titleRect', , {'members': }, [':return: Geometry for the title', '', '.. seealso::', '', ' :py:meth:`invalidate()`, :py:meth:`activate()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.titleRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.titleRect', , {'members': }, [':return: Geometry for the title', '', '.. seealso::', '', ' :py:meth:`invalidate()`, :py:meth:`activate()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.setFooterRect [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'setFooterRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setFooterRect', , {'members': }, '(rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setFooterRect', , {'members': }, ['Set the geometry for the footer', '', 'This method is intended to be used from derived layouts', 'overloading `activate()`', '', ':param QRectF rect: Rectangle', '', '.. seealso::', '', ' :py:meth:`footerRect()`, :py:meth:`activate()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setFooterRect', , {'members': }, '(rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setFooterRect', , {'members': }, ['Set the geometry for the footer', '', 'This method is intended to be used from derived layouts', 'overloading `activate()`', '', ':param QRectF rect: Rectangle', '', '.. seealso::', '', ' :py:meth:`footerRect()`, :py:meth:`activate()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.footerRect [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'footerRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.footerRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.footerRect', , {'members': }, [':return: Geometry for the footer', '', '.. seealso::', '', ' :py:meth:`invalidate()`, :py:meth:`activate()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.footerRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.footerRect', , {'members': }, [':return: Geometry for the footer', '', '.. seealso::', '', ' :py:meth:`invalidate()`, :py:meth:`activate()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.setLegendRect [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'setLegendRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setLegendRect', , {'members': }, '(rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setLegendRect', , {'members': }, ['Set the geometry for the legend', '', 'This method is intended to be used from derived layouts', 'overloading `activate()`', '', ':param QRectF rect: Rectangle for the legend', '', '.. seealso::', '', ' :py:meth:`footerRect()`, :py:meth:`activate()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setLegendRect', , {'members': }, '(rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setLegendRect', , {'members': }, ['Set the geometry for the legend', '', 'This method is intended to be used from derived layouts', 'overloading `activate()`', '', ':param QRectF rect: Rectangle for the legend', '', '.. seealso::', '', ' :py:meth:`footerRect()`, :py:meth:`activate()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.legendRect [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'legendRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.legendRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.legendRect', , {'members': }, [':return: Geometry for the legend', '', '.. seealso::', '', ' :py:meth:`invalidate()`, :py:meth:`activate()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.legendRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.legendRect', , {'members': }, [':return: Geometry for the legend', '', '.. seealso::', '', ' :py:meth:`invalidate()`, :py:meth:`activate()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.setScaleRect [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'setScaleRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setScaleRect', , {'members': }, '(axis, rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setScaleRect', , {'members': }, ['Set the geometry for an axis', '', 'This method is intended to be used from derived layouts', 'overloading `activate()`', '', ':param int axisId: Axis index', ':param QRectF rect: Rectangle for the scale', '', '.. seealso::', '', ' :py:meth:`scaleRect()`, :py:meth:`activate()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setScaleRect', , {'members': }, '(axis, rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setScaleRect', , {'members': }, ['Set the geometry for an axis', '', 'This method is intended to be used from derived layouts', 'overloading `activate()`', '', ':param int axisId: Axis index', ':param QRectF rect: Rectangle for the scale', '', '.. seealso::', '', ' :py:meth:`scaleRect()`, :py:meth:`activate()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.scaleRect [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'scaleRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.scaleRect', , {'members': }, '(axis)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.scaleRect', , {'members': }, [':param int axisId: Axis index', ':return: Geometry for the scale', '', '.. seealso::', '', ' :py:meth:`invalidate()`, :py:meth:`activate()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.scaleRect', , {'members': }, '(axis)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.scaleRect', , {'members': }, [':param int axisId: Axis index', ':return: Geometry for the scale', '', '.. seealso::', '', ' :py:meth:`invalidate()`, :py:meth:`activate()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.setCanvasRect [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'setCanvasRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setCanvasRect', , {'members': }, '(rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setCanvasRect', , {'members': }, ['Set the geometry for the canvas', '', 'This method is intended to be used from derived layouts', 'overloading `activate()`', '', ':param QRectF rect: Rectangle', '', '.. seealso::', '', ' :py:meth:`canvasRect()`, :py:meth:`activate()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.setCanvasRect', , {'members': }, '(rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.setCanvasRect', , {'members': }, ['Set the geometry for the canvas', '', 'This method is intended to be used from derived layouts', 'overloading `activate()`', '', ':param QRectF rect: Rectangle', '', '.. seealso::', '', ' :py:meth:`canvasRect()`, :py:meth:`activate()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.canvasRect [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'canvasRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.canvasRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.canvasRect', , {'members': }, [':return: Geometry for the canvas', '', '.. seealso::', '', ' :py:meth:`invalidate()`, :py:meth:`activate()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.canvasRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.canvasRect', , {'members': }, [':return: Geometry for the canvas', '', '.. seealso::', '', ' :py:meth:`invalidate()`, :py:meth:`activate()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.invalidate [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'invalidate') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.invalidate', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.invalidate', , {'members': }, ['Invalidate the geometry of all components.', '', '.. seealso::', '', ' :py:meth:`activate()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.invalidate', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.invalidate', , {'members': }, ['Invalidate the geometry of all components.', '', '.. seealso::', '', ' :py:meth:`activate()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.minimumSizeHint [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'minimumSizeHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.minimumSizeHint', , {'members': }, '(plot)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.minimumSizeHint', , {'members': }, [':param qwt.plot.QwtPlot plot: Plot widget', ':return: Minimum size hint', '', '.. seealso::', '', ' :py:meth:`qwt.plot.QwtPlot.minimumSizeHint()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.minimumSizeHint', , {'members': }, '(plot)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.minimumSizeHint', , {'members': }, [':param qwt.plot.QwtPlot plot: Plot widget', ':return: Minimum size hint', '', '.. seealso::', '', ' :py:meth:`qwt.plot.QwtPlot.minimumSizeHint()`', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.layoutLegend [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'layoutLegend') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.layoutLegend', , {'members': }, '(options, rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.layoutLegend', , {'members': }, ['Find the geometry for the legend', '', ':param options: Options how to layout the legend', ':param QRectF rect: Rectangle where to place the legend', ':return: Geometry for the legend', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.layoutLegend', , {'members': }, '(options, rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.layoutLegend', , {'members': }, ['Find the geometry for the legend', '', ':param options: Options how to layout the legend', ':param QRectF rect: Rectangle where to place the legend', ':return: Geometry for the legend', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.alignLegend [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'alignLegend') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.alignLegend', , {'members': }, '(canvasRect, legendRect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.alignLegend', , {'members': }, ['Align the legend to the canvas', '', ':param QRectF canvasRect: Geometry of the canvas', ':param QRectF legendRect: Maximum geometry for the legend', ':return: Geometry for the aligned legend', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.alignLegend', , {'members': }, '(canvasRect, legendRect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.alignLegend', , {'members': }, ['Align the legend to the canvas', '', ':param QRectF canvasRect: Geometry of the canvas', ':param QRectF legendRect: Maximum geometry for the legend', ':return: Geometry for the aligned legend', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.expandLineBreaks [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'expandLineBreaks') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.expandLineBreaks', , {'members': }, '(options, rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.expandLineBreaks', , {'members': }, ['Expand all line breaks in text labels, and calculate the height', 'of their widgets in orientation of the text.', '', ':param options: Options how to layout the legend', ':param QRectF rect: Bounding rectangle for title, footer, axes and canvas.', ':return: tuple `(dimTitle, dimFooter, dimAxes)`', '', 'Returns:', '', ' * `dimTitle`: Expanded height of the title widget', ' * `dimFooter`: Expanded height of the footer widget', ' * `dimAxes`: Expanded heights of the axis in axis orientation.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.expandLineBreaks', , {'members': }, '(options, rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.expandLineBreaks', , {'members': }, ['Expand all line breaks in text labels, and calculate the height', 'of their widgets in orientation of the text.', '', ':param options: Options how to layout the legend', ':param QRectF rect: Bounding rectangle for title, footer, axes and canvas.', ':return: tuple `(dimTitle, dimFooter, dimAxes)`', '', 'Returns:', '', ' * `dimTitle`: Expanded height of the title widget', ' * `dimFooter`: Expanded height of the footer widget', ' * `dimAxes`: Expanded heights of the axis in axis orientation.', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.alignScales [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'alignScales') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.alignScales', , {'members': }, '(options, canvasRect, scaleRect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.alignScales', , {'members': }, ['Align the ticks of the axis to the canvas borders using', 'the empty corners.', '', ':param options: Options how to layout the legend', ':param QRectF canvasRect: Geometry of the canvas ( IN/OUT )', ':param QRectF scaleRect: Geometry of the scales ( IN/OUT )', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.alignScales', , {'members': }, '(options, canvasRect, scaleRect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.alignScales', , {'members': }, ['Align the ticks of the axis to the canvas borders using', 'the empty corners.', '', ':param options: Options how to layout the legend', ':param QRectF canvasRect: Geometry of the canvas ( IN/OUT )', ':param QRectF scaleRect: Geometry of the scales ( IN/OUT )', '']) [autodoc] from qwt.plot_layout import QwtPlotLayout.activate [autodoc] import qwt.plot_layout => [autodoc] getattr(_, 'QwtPlotLayout') [autodoc] => [autodoc] getattr(_, 'activate') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.activate', , {'members': }, '(plot, plotRect, options=0)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.activate', , {'members': }, ['Recalculate the geometry of all components.', '', ':param qwt.plot.QwtPlot plot: Plot to be layout', ':param QRectF plotRect: Rectangle where to place the components', ':param options: Layout options', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_layout.QwtPlotLayout.activate', , {'members': }, '(plot, plotRect, options=0)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_layout.QwtPlotLayout.activate', , {'members': }, ['Recalculate the geometry of all components.', '', ':param qwt.plot.QwtPlot plot: Plot to be layout', ':param QRectF plotRect: Rectangle where to place the components', ':param options: Layout options', '']) [autodoc] output: .. py:class:: QwtPlotLayout() @@ -13642,7 +13678,7 @@ [app] emitting event: 'viewcode-follow-imported'('qwt.plot_layout', 'QwtPlotLayout.activate') [app] emitting event: 'viewcode-find-source'('qwt.plot_layout',) reading sources... [ 84%] reference/plot_series -[app] emitting event: 'env-purge-doc'(, 'reference/plot_series') +[app] emitting event: 'env-purge-doc'(, 'reference/plot_series') [app] emitting event: 'source-read'('reference/plot_series', ['.. automodule:: qwt.plot_series\n']) [autodoc] /build/reproducible-path/python-qwt-0.12.7/doc/reference/plot_series.rst:1: input: .. automodule:: qwt.plot_series @@ -13689,67 +13725,67 @@ [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtPlotSeriesItem') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_series.QwtPlotSeriesItem', , {'members': }, '(title)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_series.QwtPlotSeriesItem', , {'members': }, ['Base class for plot items representing a series of samples', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nBase class for plot items representing a series of samples\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 50, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_series', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'dataChanged', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawSeries', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'orientation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setOrientation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateScaleDiv', , True, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_series.QwtPlotSeriesItem', , {'members': }, '(title)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_series.QwtPlotSeriesItem', , {'members': }, ['Base class for plot items representing a series of samples', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nBase class for plot items representing a series of samples\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 50, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_series', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'dataChanged', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawSeries', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'orientation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setOrientation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateScaleDiv', , True, {'members': }) [autodoc] from qwt.plot_series import QwtPlotSeriesItem.setOrientation [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtPlotSeriesItem') [autodoc] => [autodoc] getattr(_, 'setOrientation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPlotSeriesItem.setOrientation', , {'members': }, '(orientation)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPlotSeriesItem.setOrientation', , {'members': }, ['Set the orientation of the item. Default is `Qt.Horizontal`.', '', 'The `orientation()` might be used in specific way by a plot item.', 'F.e. a QwtPlotCurve uses it to identify how to display the curve', 'int `QwtPlotCurve.Steps` or `QwtPlotCurve.Sticks` style.', '', '.. seealso::', '', ' :py:meth`orientation()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPlotSeriesItem.setOrientation', , {'members': }, '(orientation)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPlotSeriesItem.setOrientation', , {'members': }, ['Set the orientation of the item. Default is `Qt.Horizontal`.', '', 'The `orientation()` might be used in specific way by a plot item.', 'F.e. a QwtPlotCurve uses it to identify how to display the curve', 'int `QwtPlotCurve.Steps` or `QwtPlotCurve.Sticks` style.', '', '.. seealso::', '', ' :py:meth`orientation()`', '']) [autodoc] from qwt.plot_series import QwtPlotSeriesItem.orientation [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtPlotSeriesItem') [autodoc] => [autodoc] getattr(_, 'orientation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPlotSeriesItem.orientation', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPlotSeriesItem.orientation', , {'members': }, [':return: Orientation of the plot item', '', '.. seealso::', '', ' :py:meth`setOrientation()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPlotSeriesItem.orientation', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPlotSeriesItem.orientation', , {'members': }, [':return: Orientation of the plot item', '', '.. seealso::', '', ' :py:meth`setOrientation()`', '']) [autodoc] from qwt.plot_series import QwtPlotSeriesItem.draw [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtPlotSeriesItem') [autodoc] => [autodoc] getattr(_, 'draw') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPlotSeriesItem.draw', , {'members': }, '(painter, xMap, yMap, canvasRect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPlotSeriesItem.draw', , {'members': }, ['Draw the complete series', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPlotSeriesItem.draw', , {'members': }, '(painter, xMap, yMap, canvasRect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPlotSeriesItem.draw', , {'members': }, ['Draw the complete series', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', '']) [autodoc] from qwt.plot_series import QwtPlotSeriesItem.drawSeries [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtPlotSeriesItem') [autodoc] => [autodoc] getattr(_, 'drawSeries') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPlotSeriesItem.drawSeries', , {'members': }, '(painter, xMap, yMap, canvasRect, from_, to)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPlotSeriesItem.drawSeries', , {'members': }, ['Draw a subset of the samples', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' This method is implemented in `qwt.plot_curve.QwtPlotCurve`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPlotSeriesItem.drawSeries', , {'members': }, '(painter, xMap, yMap, canvasRect, from_, to)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPlotSeriesItem.drawSeries', , {'members': }, ['Draw a subset of the samples', '', ':param QPainter painter: Painter', ':param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.', ':param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.', ':param QRectF canvasRect: Contents rectangle of the canvas', ':param int from_: Index of the first point to be painted', ':param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.', '', '.. seealso::', '', ' This method is implemented in `qwt.plot_curve.QwtPlotCurve`', '']) [autodoc] from qwt.plot_series import QwtPlotSeriesItem.boundingRect [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtPlotSeriesItem') [autodoc] => [autodoc] getattr(_, 'boundingRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPlotSeriesItem.boundingRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPlotSeriesItem.boundingRect', , {'members': }, [':return: An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)', '', '.. note::', '', ' A width or height < 0.0 is ignored by the autoscaler', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPlotSeriesItem.boundingRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPlotSeriesItem.boundingRect', , {'members': }, [':return: An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)', '', '.. note::', '', ' A width or height < 0.0 is ignored by the autoscaler', '']) [autodoc] output: .. py:class:: QwtPlotSeriesItem(title) @@ -13833,56 +13869,56 @@ [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtSeriesData') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_series.QwtSeriesData', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_series.QwtSeriesData', , {'members': }, ['Abstract interface for iterating over samples', '', '`PythonQwt` offers several implementations of the QwtSeriesData API,', 'but in situations, where data of an application specific format', 'needs to be displayed, without having to copy it, it is recommended', 'to implement an individual data access.', '', 'A subclass of `QwtSeriesData` must implement:', '', ' - size():', '', ' Should return number of data points.', '', ' - sample()', '', ' Should return values x and y values of the sample at specific position', ' as QPointF object.', '', ' - boundingRect()', '', ' Should return the bounding rectangle of the data series.', ' It is used for autoscaling and might help certain algorithms for', ' displaying the data.', ' The member `_boundingRect` is intended for caching the calculated', ' rectangle.', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.plot_series', '__firstlineno__': 135, '__doc__': '\nAbstract interface for iterating over samples\n\n`PythonQwt` offers several implementations of the QwtSeriesData API,\nbut in situations, where data of an application specific format\nneeds to be displayed, without having to copy it, it is recommended\nto implement an individual data access.\n\nA subclass of `QwtSeriesData` must implement:\n\n - size():\n\n Should return number of data points.\n\n - sample()\n\n Should return values x and y values of the sample at specific position\n as QPointF object.\n\n - boundingRect()\n\n Should return the bounding rectangle of the data series.\n It is used for autoscaling and might help certain algorithms for\n displaying the data.\n The member `_boundingRect` is intended for caching the calculated\n rectangle.\n', '__init__': , 'setRectOfInterest': , 'size': , 'sample': , 'boundingRect': , '__static_attributes__': ('_boundingRect',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nAbstract interface for iterating over samples\n\n`PythonQwt` offers several implementations of the QwtSeriesData API,\nbut in situations, where data of an application specific format\nneeds to be displayed, without having to copy it, it is recommended\nto implement an individual data access.\n\nA subclass of `QwtSeriesData` must implement:\n\n - size():\n\n Should return number of data points.\n\n - sample()\n\n Should return values x and y values of the sample at specific position\n as QPointF object.\n\n - boundingRect()\n\n Should return the bounding rectangle of the data series.\n It is used for autoscaling and might help certain algorithms for\n displaying the data.\n The member `_boundingRect` is intended for caching the calculated\n rectangle.\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 135, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_series', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_boundingRect',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'sample', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setRectOfInterest', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'size', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_series.QwtSeriesData', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_series.QwtSeriesData', , {'members': }, ['Abstract interface for iterating over samples', '', '`PythonQwt` offers several implementations of the QwtSeriesData API,', 'but in situations, where data of an application specific format', 'needs to be displayed, without having to copy it, it is recommended', 'to implement an individual data access.', '', 'A subclass of `QwtSeriesData` must implement:', '', ' - size():', '', ' Should return number of data points.', '', ' - sample()', '', ' Should return values x and y values of the sample at specific position', ' as QPointF object.', '', ' - boundingRect()', '', ' Should return the bounding rectangle of the data series.', ' It is used for autoscaling and might help certain algorithms for', ' displaying the data.', ' The member `_boundingRect` is intended for caching the calculated', ' rectangle.', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.plot_series', '__firstlineno__': 135, '__doc__': '\nAbstract interface for iterating over samples\n\n`PythonQwt` offers several implementations of the QwtSeriesData API,\nbut in situations, where data of an application specific format\nneeds to be displayed, without having to copy it, it is recommended\nto implement an individual data access.\n\nA subclass of `QwtSeriesData` must implement:\n\n - size():\n\n Should return number of data points.\n\n - sample()\n\n Should return values x and y values of the sample at specific position\n as QPointF object.\n\n - boundingRect()\n\n Should return the bounding rectangle of the data series.\n It is used for autoscaling and might help certain algorithms for\n displaying the data.\n The member `_boundingRect` is intended for caching the calculated\n rectangle.\n', '__init__': , 'setRectOfInterest': , 'size': , 'sample': , 'boundingRect': , '__static_attributes__': ('_boundingRect',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nAbstract interface for iterating over samples\n\n`PythonQwt` offers several implementations of the QwtSeriesData API,\nbut in situations, where data of an application specific format\nneeds to be displayed, without having to copy it, it is recommended\nto implement an individual data access.\n\nA subclass of `QwtSeriesData` must implement:\n\n - size():\n\n Should return number of data points.\n\n - sample()\n\n Should return values x and y values of the sample at specific position\n as QPointF object.\n\n - boundingRect()\n\n Should return the bounding rectangle of the data series.\n It is used for autoscaling and might help certain algorithms for\n displaying the data.\n The member `_boundingRect` is intended for caching the calculated\n rectangle.\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 135, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_series', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_boundingRect',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'sample', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setRectOfInterest', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'size', , False, {'members': }) [autodoc] from qwt.plot_series import QwtSeriesData.setRectOfInterest [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtSeriesData') [autodoc] => [autodoc] getattr(_, 'setRectOfInterest') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesData.setRectOfInterest', , {'members': }, '(rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesData.setRectOfInterest', , {'members': }, ['Set a the "rect of interest"', '', 'QwtPlotSeriesItem defines the current area of the plot canvas', 'as "rectangle of interest" ( QwtPlotSeriesItem::updateScaleDiv() ).', 'It can be used to implement different levels of details.', '', 'The default implementation does nothing.', '', ':param QRectF rect: Rectangle of interest', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesData.setRectOfInterest', , {'members': }, '(rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesData.setRectOfInterest', , {'members': }, ['Set a the "rect of interest"', '', 'QwtPlotSeriesItem defines the current area of the plot canvas', 'as "rectangle of interest" ( QwtPlotSeriesItem::updateScaleDiv() ).', 'It can be used to implement different levels of details.', '', 'The default implementation does nothing.', '', ':param QRectF rect: Rectangle of interest', '']) [autodoc] from qwt.plot_series import QwtSeriesData.size [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtSeriesData') [autodoc] => [autodoc] getattr(_, 'size') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesData.size', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesData.size', , {'members': }, [':return: Number of samples', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesData.size', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesData.size', , {'members': }, [':return: Number of samples', '']) [autodoc] from qwt.plot_series import QwtSeriesData.sample [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtSeriesData') [autodoc] => [autodoc] getattr(_, 'sample') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesData.sample', , {'members': }, '(i)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesData.sample', , {'members': }, ['Return a sample', '', ':param int i: Index', ':return: Sample at position i', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesData.sample', , {'members': }, '(i)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesData.sample', , {'members': }, ['Return a sample', '', ':param int i: Index', ':return: Sample at position i', '']) [autodoc] from qwt.plot_series import QwtSeriesData.boundingRect [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtSeriesData') [autodoc] => [autodoc] getattr(_, 'boundingRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesData.boundingRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesData.boundingRect', , {'members': }, ['Calculate the bounding rect of all samples', '', 'The bounding rect is necessary for autoscaling and can be used', 'for a couple of painting optimizations.', '', ':return: Bounding rectangle', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesData.boundingRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesData.boundingRect', , {'members': }, ['Calculate the bounding rect of all samples', '', 'The bounding rect is necessary for autoscaling and can be used', 'for a couple of painting optimizations.', '', ':return: Bounding rectangle', '']) [autodoc] output: .. py:class:: QwtSeriesData() @@ -13967,65 +14003,65 @@ [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtPointArrayData') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_series.QwtPointArrayData', , {'members': }, '(x=None, y=None, size=None, finite=None)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_series.QwtPointArrayData', , {'members': }, ['Interface for iterating over two array objects', '', '.. py:class:: QwtCQwtPointArrayDataolorMap(x, y, [size=None])', '', ' :param x: Array of x values', ' :type x: list or tuple or numpy.array', ' :param y: Array of y values', ' :type y: list or tuple or numpy.array', ' :param int size: Size of the x and y arrays', ' :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nInterface for iterating over two array objects\n\n.. py:class:: QwtCQwtPointArrayDataolorMap(x, y, [size=None])\n\n :param x: Array of x values\n :type x: list or tuple or numpy.array\n :param y: Array of y values\n :type y: list or tuple or numpy.array\n :param int size: Size of the x and y arrays\n :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 208, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_series', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__x', '__y'), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'sample', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'size', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'xData', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'yData', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_series.QwtPointArrayData', , {'members': }, '(x=None, y=None, size=None, finite=None)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_series.QwtPointArrayData', , {'members': }, ['Interface for iterating over two array objects', '', '.. py:class:: QwtCQwtPointArrayDataolorMap(x, y, [size=None])', '', ' :param x: Array of x values', ' :type x: list or tuple or numpy.array', ' :param y: Array of y values', ' :type y: list or tuple or numpy.array', ' :param int size: Size of the x and y arrays', ' :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nInterface for iterating over two array objects\n\n.. py:class:: QwtCQwtPointArrayDataolorMap(x, y, [size=None])\n\n :param x: Array of x values\n :type x: list or tuple or numpy.array\n :param y: Array of y values\n :type y: list or tuple or numpy.array\n :param int size: Size of the x and y arrays\n :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 208, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_series', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__x', '__y'), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'sample', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'size', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'xData', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'yData', , False, {'members': }) [autodoc] from qwt.plot_series import QwtPointArrayData.boundingRect [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtPointArrayData') [autodoc] => [autodoc] getattr(_, 'boundingRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPointArrayData.boundingRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPointArrayData.boundingRect', , {'members': }, ['Calculate the bounding rectangle', '', 'The bounding rectangle is calculated once by iterating over all', 'points and is stored for all following requests.', '', ':return: Bounding rectangle', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPointArrayData.boundingRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPointArrayData.boundingRect', , {'members': }, ['Calculate the bounding rectangle', '', 'The bounding rectangle is calculated once by iterating over all', 'points and is stored for all following requests.', '', ':return: Bounding rectangle', '']) [autodoc] from qwt.plot_series import QwtPointArrayData.size [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtPointArrayData') [autodoc] => [autodoc] getattr(_, 'size') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPointArrayData.size', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPointArrayData.size', , {'members': }, [':return: Size of the data set', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPointArrayData.size', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPointArrayData.size', , {'members': }, [':return: Size of the data set', '']) [autodoc] from qwt.plot_series import QwtPointArrayData.sample [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtPointArrayData') [autodoc] => [autodoc] getattr(_, 'sample') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPointArrayData.sample', , {'members': }, '(index)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPointArrayData.sample', , {'members': }, [':param int index: Index', ':return: Sample at position `index`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPointArrayData.sample', , {'members': }, '(index)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPointArrayData.sample', , {'members': }, [':param int index: Index', ':return: Sample at position `index`', '']) [autodoc] from qwt.plot_series import QwtPointArrayData.xData [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtPointArrayData') [autodoc] => [autodoc] getattr(_, 'xData') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPointArrayData.xData', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPointArrayData.xData', , {'members': }, [':return: Array of the x-values', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPointArrayData.xData', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPointArrayData.xData', , {'members': }, [':return: Array of the x-values', '']) [autodoc] from qwt.plot_series import QwtPointArrayData.yData [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtPointArrayData') [autodoc] => [autodoc] getattr(_, 'yData') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPointArrayData.yData', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPointArrayData.yData', , {'members': }, [':return: Array of the y-values', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtPointArrayData.yData', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtPointArrayData.yData', , {'members': }, [':return: Array of the y-values', '']) [autodoc] output: .. py:class:: QwtPointArrayData(x=None, y=None, size=None, finite=None) @@ -14092,88 +14128,88 @@ [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtSeriesStore') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_series.QwtSeriesStore', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_series.QwtSeriesStore', , {'members': }, ['Class storing a `QwtSeriesData` object', '', '`QwtSeriesStore` and `QwtPlotSeriesItem` are intended as base classes for', 'all plot items iterating over a series of samples.', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.plot_series', '__firstlineno__': 292, '__doc__': '\nClass storing a `QwtSeriesData` object\n\n`QwtSeriesStore` and `QwtPlotSeriesItem` are intended as base classes for\nall plot items iterating over a series of samples.\n', '__init__': , 'setData': , 'dataChanged': , 'data': , 'sample': , 'dataSize': , 'dataRect': , 'setRectOfInterest': , 'swapData': , '__static_attributes__': ('__series',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nClass storing a `QwtSeriesData` object\n\n`QwtSeriesStore` and `QwtPlotSeriesItem` are intended as base classes for\nall plot items iterating over a series of samples.\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 292, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_series', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__series',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'data', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'dataChanged', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'dataRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'dataSize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'sample', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setData', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setRectOfInterest', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'swapData', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.plot_series.QwtSeriesStore', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.plot_series.QwtSeriesStore', , {'members': }, ['Class storing a `QwtSeriesData` object', '', '`QwtSeriesStore` and `QwtPlotSeriesItem` are intended as base classes for', 'all plot items iterating over a series of samples.', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.plot_series', '__firstlineno__': 292, '__doc__': '\nClass storing a `QwtSeriesData` object\n\n`QwtSeriesStore` and `QwtPlotSeriesItem` are intended as base classes for\nall plot items iterating over a series of samples.\n', '__init__': , 'setData': , 'dataChanged': , 'data': , 'sample': , 'dataSize': , 'dataRect': , 'setRectOfInterest': , 'swapData': , '__static_attributes__': ('__series',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nClass storing a `QwtSeriesData` object\n\n`QwtSeriesStore` and `QwtPlotSeriesItem` are intended as base classes for\nall plot items iterating over a series of samples.\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 292, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.plot_series', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__series',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'data', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'dataChanged', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'dataRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'dataSize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'sample', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setData', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setRectOfInterest', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'swapData', , False, {'members': }) [autodoc] from qwt.plot_series import QwtSeriesStore.setData [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtSeriesStore') [autodoc] => [autodoc] getattr(_, 'setData') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.setData', , {'members': }, '(series)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.setData', , {'members': }, ['Assign a series of samples', '', ':param qwt.plot_series.QwtSeriesData series: Data', '', '.. warning::', '', ' The item takes ownership of the data object, deleting it', ' when its not used anymore.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.setData', , {'members': }, '(series)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.setData', , {'members': }, ['Assign a series of samples', '', ':param qwt.plot_series.QwtSeriesData series: Data', '', '.. warning::', '', ' The item takes ownership of the data object, deleting it', ' when its not used anymore.', '']) [autodoc] from qwt.plot_series import QwtSeriesStore.data [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtSeriesStore') [autodoc] => [autodoc] getattr(_, 'data') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.data', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.data', , {'members': }, [':return: the series data', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.data', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.data', , {'members': }, [':return: the series data', '']) [autodoc] from qwt.plot_series import QwtSeriesStore.sample [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtSeriesStore') [autodoc] => [autodoc] getattr(_, 'sample') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.sample', , {'members': }, '(index)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.sample', , {'members': }, [':param int index: Index', ':return: Sample at position index', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.sample', , {'members': }, '(index)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.sample', , {'members': }, [':param int index: Index', ':return: Sample at position index', '']) [autodoc] from qwt.plot_series import QwtSeriesStore.dataSize [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtSeriesStore') [autodoc] => [autodoc] getattr(_, 'dataSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.dataSize', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.dataSize', , {'members': }, [':return: Number of samples of the series', '', '.. seealso::', '', ' :py:meth:`setData()`,', ' :py:meth:`qwt.plot_series.QwtSeriesData.size()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.dataSize', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.dataSize', , {'members': }, [':return: Number of samples of the series', '', '.. seealso::', '', ' :py:meth:`setData()`,', ' :py:meth:`qwt.plot_series.QwtSeriesData.size()`', '']) [autodoc] from qwt.plot_series import QwtSeriesStore.dataRect [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtSeriesStore') [autodoc] => [autodoc] getattr(_, 'dataRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.dataRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.dataRect', , {'members': }, [':return: Bounding rectangle of the series or an invalid rectangle, when no series is stored', '', '.. seealso::', '', ' :py:meth:`qwt.plot_series.QwtSeriesData.boundingRect()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.dataRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.dataRect', , {'members': }, [':return: Bounding rectangle of the series or an invalid rectangle, when no series is stored', '', '.. seealso::', '', ' :py:meth:`qwt.plot_series.QwtSeriesData.boundingRect()`', '']) [autodoc] from qwt.plot_series import QwtSeriesStore.setRectOfInterest [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtSeriesStore') [autodoc] => [autodoc] getattr(_, 'setRectOfInterest') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.setRectOfInterest', , {'members': }, '(rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.setRectOfInterest', , {'members': }, ['Set a the "rect of interest" for the series', '', ':param QRectF rect: Rectangle of interest', '', '.. seealso::', '', ' :py:meth:`qwt.plot_series.QwtSeriesData.setRectOfInterest()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.setRectOfInterest', , {'members': }, '(rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.setRectOfInterest', , {'members': }, ['Set a the "rect of interest" for the series', '', ':param QRectF rect: Rectangle of interest', '', '.. seealso::', '', ' :py:meth:`qwt.plot_series.QwtSeriesData.setRectOfInterest()`', '']) [autodoc] from qwt.plot_series import QwtSeriesStore.swapData [autodoc] import qwt.plot_series => [autodoc] getattr(_, 'QwtSeriesStore') [autodoc] => [autodoc] getattr(_, 'swapData') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.swapData', , {'members': }, '(series)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.swapData', , {'members': }, ['Replace a series without deleting the previous one', '', ':param qwt.plot_series.QwtSeriesData series: New series', ':return: Previously assigned series', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.plot_series.QwtSeriesStore.swapData', , {'members': }, '(series)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.plot_series.QwtSeriesStore.swapData', , {'members': }, ['Replace a series without deleting the previous one', '', ':param qwt.plot_series.QwtSeriesData series: New series', ':return: Previously assigned series', '']) [autodoc] output: .. py:class:: QwtSeriesStore() @@ -14339,7 +14375,7 @@ [app] emitting event: 'viewcode-follow-imported'('qwt.plot_series', 'QwtSeriesStore.swapData') [app] emitting event: 'viewcode-find-source'('qwt.plot_series',) reading sources... [ 88%] reference/scale -[app] emitting event: 'env-purge-doc'(, 'reference/scale') +[app] emitting event: 'env-purge-doc'(, 'reference/scale') [app] emitting event: 'source-read'('reference/scale', ['Scales\n------\n\n.. automodule:: qwt.scale_map\n\n.. automodule:: qwt.scale_widget\n\n.. automodule:: qwt.scale_div\n\n.. automodule:: qwt.scale_engine\n\n.. automodule:: qwt.scale_draw\n']) [autodoc] /build/reproducible-path/python-qwt-0.12.7/doc/reference/scale.rst:4: input: .. automodule:: qwt.scale_map @@ -14365,169 +14401,169 @@ [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_map.QwtScaleMap', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_map.QwtScaleMap', , {'members': }, ['A scale map', '', '`QwtScaleMap` offers transformations from the coordinate system', 'of a scale into the linear coordinate system of a paint device', 'and vice versa.', '', 'The scale and paint device intervals are both set to [0,1].', '', '.. py:class:: QwtScaleMap([other=None])', '', ' Constructor (eventually, copy constructor)', '', ' :param qwt.scale_map.QwtScaleMap other: Other scale map', '', '.. py:class:: QwtScaleMap(p1, p2, s1, s2)', ' :noindex:', '', ' Constructor (was provided by `PyQwt` but not by `Qwt`)', '', ' :param int p1: First border of the paint interval', ' :param int p2: Second border of the paint interval', ' :param float s1: First border of the scale interval', ' :param float s2: Second border of the scale interval', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.scale_map', '__firstlineno__': 21, '__doc__': '\nA scale map\n\n`QwtScaleMap` offers transformations from the coordinate system\nof a scale into the linear coordinate system of a paint device\nand vice versa.\n\nThe scale and paint device intervals are both set to [0,1].\n\n.. py:class:: QwtScaleMap([other=None])\n\n Constructor (eventually, copy constructor)\n\n :param qwt.scale_map.QwtScaleMap other: Other scale map\n\n.. py:class:: QwtScaleMap(p1, p2, s1, s2)\n :noindex:\n\n Constructor (was provided by `PyQwt` but not by `Qwt`)\n\n :param int p1: First border of the paint interval\n :param int p2: Second border of the paint interval\n :param float s1: First border of the scale interval\n :param float s2: Second border of the scale interval\n', '__init__': , '__eq__': , 's1': , 's2': , 'p1': , 'p2': , 'pDist': , 'sDist': , 'transform_scalar': , 'invTransform_scalar': , 'isInverting': , 'setTransformation': , 'transformation': , 'setScaleInterval': , 'setPaintInterval': , 'updateFactor': , 'transform': , 'invTransform': , '__static_attributes__': ('__cnv', '__p1', '__p2', '__s1', '__s2', '__transform', '__ts1'), '__dict__': , '__weakref__': , '__hash__': None, '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA scale map\n\n`QwtScaleMap` offers transformations from the coordinate system\nof a scale into the linear coordinate system of a paint device\nand vice versa.\n\nThe scale and paint device intervals are both set to [0,1].\n\n.. py:class:: QwtScaleMap([other=None])\n\n Constructor (eventually, copy constructor)\n\n :param qwt.scale_map.QwtScaleMap other: Other scale map\n\n.. py:class:: QwtScaleMap(p1, p2, s1, s2)\n :noindex:\n\n Constructor (was provided by `PyQwt` but not by `Qwt`)\n\n :param int p1: First border of the paint interval\n :param int p2: Second border of the paint interval\n :param float s1: First border of the scale interval\n :param float s2: Second border of the scale interval\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__eq__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 21, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__hash__', None, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_map', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__cnv', '__p1', '__p2', '__s1', '__s2', '__transform', '__ts1'), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invTransform', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invTransform_scalar', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isInverting', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'p1', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'p2', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'pDist', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 's1', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 's2', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'sDist', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setPaintInterval', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setScaleInterval', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setTransformation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'transform', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'transform_scalar', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'transformation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateFactor', , True, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_map.QwtScaleMap', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_map.QwtScaleMap', , {'members': }, ['A scale map', '', '`QwtScaleMap` offers transformations from the coordinate system', 'of a scale into the linear coordinate system of a paint device', 'and vice versa.', '', 'The scale and paint device intervals are both set to [0,1].', '', '.. py:class:: QwtScaleMap([other=None])', '', ' Constructor (eventually, copy constructor)', '', ' :param qwt.scale_map.QwtScaleMap other: Other scale map', '', '.. py:class:: QwtScaleMap(p1, p2, s1, s2)', ' :noindex:', '', ' Constructor (was provided by `PyQwt` but not by `Qwt`)', '', ' :param int p1: First border of the paint interval', ' :param int p2: Second border of the paint interval', ' :param float s1: First border of the scale interval', ' :param float s2: Second border of the scale interval', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.scale_map', '__firstlineno__': 21, '__doc__': '\nA scale map\n\n`QwtScaleMap` offers transformations from the coordinate system\nof a scale into the linear coordinate system of a paint device\nand vice versa.\n\nThe scale and paint device intervals are both set to [0,1].\n\n.. py:class:: QwtScaleMap([other=None])\n\n Constructor (eventually, copy constructor)\n\n :param qwt.scale_map.QwtScaleMap other: Other scale map\n\n.. py:class:: QwtScaleMap(p1, p2, s1, s2)\n :noindex:\n\n Constructor (was provided by `PyQwt` but not by `Qwt`)\n\n :param int p1: First border of the paint interval\n :param int p2: Second border of the paint interval\n :param float s1: First border of the scale interval\n :param float s2: Second border of the scale interval\n', '__init__': , '__eq__': , 's1': , 's2': , 'p1': , 'p2': , 'pDist': , 'sDist': , 'transform_scalar': , 'invTransform_scalar': , 'isInverting': , 'setTransformation': , 'transformation': , 'setScaleInterval': , 'setPaintInterval': , 'updateFactor': , 'transform': , 'invTransform': , '__static_attributes__': ('__cnv', '__p1', '__p2', '__s1', '__s2', '__transform', '__ts1'), '__dict__': , '__weakref__': , '__hash__': None, '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA scale map\n\n`QwtScaleMap` offers transformations from the coordinate system\nof a scale into the linear coordinate system of a paint device\nand vice versa.\n\nThe scale and paint device intervals are both set to [0,1].\n\n.. py:class:: QwtScaleMap([other=None])\n\n Constructor (eventually, copy constructor)\n\n :param qwt.scale_map.QwtScaleMap other: Other scale map\n\n.. py:class:: QwtScaleMap(p1, p2, s1, s2)\n :noindex:\n\n Constructor (was provided by `PyQwt` but not by `Qwt`)\n\n :param int p1: First border of the paint interval\n :param int p2: Second border of the paint interval\n :param float s1: First border of the scale interval\n :param float s2: Second border of the scale interval\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__eq__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 21, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__hash__', None, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_map', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__cnv', '__p1', '__p2', '__s1', '__s2', '__transform', '__ts1'), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invTransform', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invTransform_scalar', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isInverting', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'p1', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'p2', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'pDist', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 's1', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 's2', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'sDist', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setPaintInterval', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setScaleInterval', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setTransformation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'transform', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'transform_scalar', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'transformation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateFactor', , True, {'members': }) [autodoc] from qwt.scale_map import QwtScaleMap.s1 [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 's1') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.s1', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.s1', , {'members': }, [':return: First border of the scale interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.s1', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.s1', , {'members': }, [':return: First border of the scale interval', '']) [autodoc] from qwt.scale_map import QwtScaleMap.s2 [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 's2') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.s2', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.s2', , {'members': }, [':return: Second border of the scale interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.s2', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.s2', , {'members': }, [':return: Second border of the scale interval', '']) [autodoc] from qwt.scale_map import QwtScaleMap.p1 [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 'p1') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.p1', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.p1', , {'members': }, [':return: First border of the paint interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.p1', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.p1', , {'members': }, [':return: First border of the paint interval', '']) [autodoc] from qwt.scale_map import QwtScaleMap.p2 [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 'p2') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.p2', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.p2', , {'members': }, [':return: Second border of the paint interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.p2', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.p2', , {'members': }, [':return: Second border of the paint interval', '']) [autodoc] from qwt.scale_map import QwtScaleMap.pDist [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 'pDist') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.pDist', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.pDist', , {'members': }, [':return: `abs(p2() - p1())`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.pDist', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.pDist', , {'members': }, [':return: `abs(p2() - p1())`', '']) [autodoc] from qwt.scale_map import QwtScaleMap.sDist [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 'sDist') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.sDist', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.sDist', , {'members': }, [':return: `abs(s2() - s1())`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.sDist', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.sDist', , {'members': }, [':return: `abs(s2() - s1())`', '']) [autodoc] from qwt.scale_map import QwtScaleMap.transform_scalar [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 'transform_scalar') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.transform_scalar', , {'members': }, '(s)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.transform_scalar', , {'members': }, ['Transform a point related to the scale interval into an point', 'related to the interval of the paint device', '', ':param float s: Value relative to the coordinates of the scale', ':return: Transformed value', '', '.. seealso::', '', ' :py:meth:`invTransform_scalar()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.transform_scalar', , {'members': }, '(s)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.transform_scalar', , {'members': }, ['Transform a point related to the scale interval into an point', 'related to the interval of the paint device', '', ':param float s: Value relative to the coordinates of the scale', ':return: Transformed value', '', '.. seealso::', '', ' :py:meth:`invTransform_scalar()`', '']) [autodoc] from qwt.scale_map import QwtScaleMap.invTransform_scalar [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 'invTransform_scalar') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.invTransform_scalar', , {'members': }, '(p)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.invTransform_scalar', , {'members': }, ['Transform an paint device value into a value in the', 'interval of the scale.', '', ':param float p: Value relative to the coordinates of the paint device', ':return: Transformed value', '', '.. seealso::', '', ' :py:meth:`transform_scalar()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.invTransform_scalar', , {'members': }, '(p)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.invTransform_scalar', , {'members': }, ['Transform an paint device value into a value in the', 'interval of the scale.', '', ':param float p: Value relative to the coordinates of the paint device', ':return: Transformed value', '', '.. seealso::', '', ' :py:meth:`transform_scalar()`', '']) [autodoc] from qwt.scale_map import QwtScaleMap.isInverting [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 'isInverting') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.isInverting', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.isInverting', , {'members': }, [':return: True, when ( p1() < p2() ) != ( s1() < s2() )', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.isInverting', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.isInverting', , {'members': }, [':return: True, when ( p1() < p2() ) != ( s1() < s2() )', '']) [autodoc] from qwt.scale_map import QwtScaleMap.setTransformation [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 'setTransformation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.setTransformation', , {'members': }, '(transform)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.setTransformation', , {'members': }, ['Initialize the map with a transformation', '', ':param qwt.transform.QwtTransform transform: Transformation', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.setTransformation', , {'members': }, '(transform)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.setTransformation', , {'members': }, ['Initialize the map with a transformation', '', ':param qwt.transform.QwtTransform transform: Transformation', '']) [autodoc] from qwt.scale_map import QwtScaleMap.transformation [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 'transformation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.transformation', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.transformation', , {'members': }, [':return: the transformation', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.transformation', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.transformation', , {'members': }, [':return: the transformation', '']) [autodoc] from qwt.scale_map import QwtScaleMap.setScaleInterval [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 'setScaleInterval') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.setScaleInterval', , {'members': }, '(s1, s2)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.setScaleInterval', , {'members': }, ['Specify the borders of the scale interval', '', ':param float s1: first border', ':param float s2: second border', '', '.. warning::', '', ' Scales might be aligned to transformation depending boundaries', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.setScaleInterval', , {'members': }, '(s1, s2)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.setScaleInterval', , {'members': }, ['Specify the borders of the scale interval', '', ':param float s1: first border', ':param float s2: second border', '', '.. warning::', '', ' Scales might be aligned to transformation depending boundaries', '']) [autodoc] from qwt.scale_map import QwtScaleMap.setPaintInterval [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 'setPaintInterval') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.setPaintInterval', , {'members': }, '(p1, p2)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.setPaintInterval', , {'members': }, ['Specify the borders of the paint device interval', '', ':param float p1: first border', ':param float p2: second border', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.setPaintInterval', , {'members': }, '(p1, p2)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.setPaintInterval', , {'members': }, ['Specify the borders of the paint device interval', '', ':param float p1: first border', ':param float p2: second border', '']) [autodoc] from qwt.scale_map import QwtScaleMap.transform [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 'transform') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.transform', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.transform', , {'members': }, ['Transform a rectangle from scale to paint coordinates.', '', 'Transfom a scalar:', '', ':param float scalar: Scalar', '', 'Transfom a rectangle:', '', ':param qwt.scale_map.QwtScaleMap xMap: X map', ':param qwt.scale_map.QwtScaleMap yMap: Y map', ':param QRectF rect: Rectangle in paint coordinates', '', 'Transfom a point:', '', ':param qwt.scale_map.QwtScaleMap xMap: X map', ':param qwt.scale_map.QwtScaleMap yMap: Y map', ':param QPointF pos: Position in scale coordinates', '', '.. seealso::', '', ' :py:meth:`invTransform()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.transform', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.transform', , {'members': }, ['Transform a rectangle from scale to paint coordinates.', '', 'Transfom a scalar:', '', ':param float scalar: Scalar', '', 'Transfom a rectangle:', '', ':param qwt.scale_map.QwtScaleMap xMap: X map', ':param qwt.scale_map.QwtScaleMap yMap: Y map', ':param QRectF rect: Rectangle in paint coordinates', '', 'Transfom a point:', '', ':param qwt.scale_map.QwtScaleMap xMap: X map', ':param qwt.scale_map.QwtScaleMap yMap: Y map', ':param QPointF pos: Position in scale coordinates', '', '.. seealso::', '', ' :py:meth:`invTransform()`', '']) [autodoc] from qwt.scale_map import QwtScaleMap.invTransform [autodoc] import qwt.scale_map => [autodoc] getattr(_, 'QwtScaleMap') [autodoc] => [autodoc] getattr(_, 'invTransform') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.invTransform', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.invTransform', , {'members': }, ['Transform from paint to scale coordinates', '', 'Scalar: scalemap.invTransform(scalar)', 'Point (QPointF): scalemap.invTransform(xMap, yMap, pos)', 'Rectangle (QRectF): scalemap.invTransform(xMap, yMap, rect)', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_map.QwtScaleMap.invTransform', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_map.QwtScaleMap.invTransform', , {'members': }, ['Transform from paint to scale coordinates', '', 'Scalar: scalemap.invTransform(scalar)', 'Point (QPointF): scalemap.invTransform(xMap, yMap, pos)', 'Rectangle (QRectF): scalemap.invTransform(xMap, yMap, rect)', '']) [autodoc] output: .. py:class:: QwtScaleMap(*args) @@ -14741,443 +14777,443 @@ [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_widget.QwtScaleWidget', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_widget.QwtScaleWidget', , {'members': }, ['A Widget which contains a scale', '', 'This Widget can be used to decorate composite widgets with', 'a scale.', '', 'Layout flags:', '', ' * `QwtScaleWidget.TitleInverted`: The title of vertical scales is painted from top to bottom. Otherwise it is painted from bottom to top.', '', '.. py:class:: QwtScaleWidget([parent=None])', '', ' Alignment default is `QwtScaleDraw.LeftScale`.', '', ' :param parent: Parent widget', ' :type parent: QWidget or None', '', '.. py:class:: QwtScaleWidget(align, parent)', ' :noindex:', '', ' :param int align: Alignment', ' :param QWidget parent: Parent widget', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'TitleInverted', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA Widget which contains a scale\n\nThis Widget can be used to decorate composite widgets with\na scale.\n\nLayout flags:\n\n * `QwtScaleWidget.TitleInverted`: The title of vertical scales is painted from top to bottom. Otherwise it is painted from bottom to top.\n\n.. py:class:: QwtScaleWidget([parent=None])\n\n Alignment default is `QwtScaleDraw.LeftScale`.\n\n :param parent: Parent widget\n :type parent: QWidget or None\n\n.. py:class:: QwtScaleWidget(align, parent)\n :noindex:\n\n :param int align: Alignment\n :param QWidget parent: Parent widget\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 54, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_widget', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'alignment', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'colorBarInterval', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'colorBarRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'colorBarWidth', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'colorMap', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'dimForLength', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawColorBar', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawTitle', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'endBorderDist', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'getBorderDistHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'getMinBorderDist', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'initScale', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isColorBarEnabled', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'layoutScale', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'margin', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'minimumSizeHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'paintEvent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'resizeEvent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'scaleChange', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'scaleDivChanged', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'scaleDraw', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAlignment', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setBorderDist', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setColorBarEnabled', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setColorBarWidth', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setColorMap', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLabelAlignment', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLabelAutoSize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLabelRotation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLayoutFlag', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setMargin', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setMinBorderDist', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setScaleDiv', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setScaleDraw', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setSpacing', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setTitle', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setTransformation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'sizeHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'spacing', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'startBorderDist', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testLayoutFlag', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'title', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'titleHeightForWidth', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_widget.QwtScaleWidget', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_widget.QwtScaleWidget', , {'members': }, ['A Widget which contains a scale', '', 'This Widget can be used to decorate composite widgets with', 'a scale.', '', 'Layout flags:', '', ' * `QwtScaleWidget.TitleInverted`: The title of vertical scales is painted from top to bottom. Otherwise it is painted from bottom to top.', '', '.. py:class:: QwtScaleWidget([parent=None])', '', ' Alignment default is `QwtScaleDraw.LeftScale`.', '', ' :param parent: Parent widget', ' :type parent: QWidget or None', '', '.. py:class:: QwtScaleWidget(align, parent)', ' :noindex:', '', ' :param int align: Alignment', ' :param QWidget parent: Parent widget', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'TitleInverted', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA Widget which contains a scale\n\nThis Widget can be used to decorate composite widgets with\na scale.\n\nLayout flags:\n\n * `QwtScaleWidget.TitleInverted`: The title of vertical scales is painted from top to bottom. Otherwise it is painted from bottom to top.\n\n.. py:class:: QwtScaleWidget([parent=None])\n\n Alignment default is `QwtScaleDraw.LeftScale`.\n\n :param parent: Parent widget\n :type parent: QWidget or None\n\n.. py:class:: QwtScaleWidget(align, parent)\n :noindex:\n\n :param int align: Alignment\n :param QWidget parent: Parent widget\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 54, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_widget', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'alignment', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'colorBarInterval', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'colorBarRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'colorBarWidth', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'colorMap', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'dimForLength', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawColorBar', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawTitle', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'endBorderDist', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'getBorderDistHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'getMinBorderDist', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'initScale', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isColorBarEnabled', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'layoutScale', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'margin', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'minimumSizeHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'paintEvent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'resizeEvent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'scaleChange', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'scaleDivChanged', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'scaleDraw', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAlignment', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setBorderDist', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setColorBarEnabled', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setColorBarWidth', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setColorMap', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLabelAlignment', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLabelAutoSize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLabelRotation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLayoutFlag', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setMargin', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setMinBorderDist', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setScaleDiv', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setScaleDraw', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setSpacing', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setTitle', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setTransformation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'sizeHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'spacing', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'startBorderDist', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testLayoutFlag', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'title', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'titleHeightForWidth', , False, {'members': }) [autodoc] from qwt.scale_widget import QwtScaleWidget.initScale [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'initScale') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.initScale', , {'members': }, '(align)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.initScale', , {'members': }, ['Initialize the scale', '', ':param int align: Alignment', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.initScale', , {'members': }, '(align)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.initScale', , {'members': }, ['Initialize the scale', '', ':param int align: Alignment', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setLayoutFlag [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setLayoutFlag') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setLayoutFlag', , {'members': }, '(flag, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setLayoutFlag', , {'members': }, ['Toggle an layout flag', '', ':param int flag: Layout flag', ':param bool on: True/False', '', '.. seealso::', '', ' :py:meth:`testLayoutFlag()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setLayoutFlag', , {'members': }, '(flag, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setLayoutFlag', , {'members': }, ['Toggle an layout flag', '', ':param int flag: Layout flag', ':param bool on: True/False', '', '.. seealso::', '', ' :py:meth:`testLayoutFlag()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.testLayoutFlag [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'testLayoutFlag') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.testLayoutFlag', , {'members': }, '(flag)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.testLayoutFlag', , {'members': }, ['Test a layout flag', '', ':param int flag: Layout flag', ':return: True/False', '', '.. seealso::', '', ' :py:meth:`setLayoutFlag()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.testLayoutFlag', , {'members': }, '(flag)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.testLayoutFlag', , {'members': }, ['Test a layout flag', '', ':param int flag: Layout flag', ':return: True/False', '', '.. seealso::', '', ' :py:meth:`setLayoutFlag()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setTitle [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setTitle') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setTitle', , {'members': }, '(title)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setTitle', , {'members': }, ['Give title new text contents', '', ':param title: New title', ':type title: qwt.text.QwtText or str', '', '.. seealso::', '', ' :py:meth:`title()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setTitle', , {'members': }, '(title)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setTitle', , {'members': }, ['Give title new text contents', '', ':param title: New title', ':type title: qwt.text.QwtText or str', '', '.. seealso::', '', ' :py:meth:`title()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setAlignment [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setAlignment') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setAlignment', , {'members': }, '(alignment)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setAlignment', , {'members': }, ['Change the alignment', '', ':param int alignment: New alignment', '', 'Valid alignment values: see :py:class:`qwt.scale_draw.QwtScaleDraw`', '', '.. seealso::', '', ' :py:meth:`alignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setAlignment', , {'members': }, '(alignment)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setAlignment', , {'members': }, ['Change the alignment', '', ':param int alignment: New alignment', '', 'Valid alignment values: see :py:class:`qwt.scale_draw.QwtScaleDraw`', '', '.. seealso::', '', ' :py:meth:`alignment()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.alignment [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'alignment') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.alignment', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.alignment', , {'members': }, [':return: position', '', '.. seealso::', '', ' :py:meth:`setAlignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.alignment', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.alignment', , {'members': }, [':return: position', '', '.. seealso::', '', ' :py:meth:`setAlignment()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setBorderDist [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setBorderDist') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setBorderDist', , {'members': }, '(dist1, dist2)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setBorderDist', , {'members': }, ["Specify distances of the scale's endpoints from the", "widget's borders. The actual borders will never be less", 'than minimum border distance.', '', ':param int dist1: Left or top Distance', ':param int dist2: Right or bottom distance', '', '.. seealso::', '', ' :py:meth:`borderDist()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setBorderDist', , {'members': }, '(dist1, dist2)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setBorderDist', , {'members': }, ["Specify distances of the scale's endpoints from the", "widget's borders. The actual borders will never be less", 'than minimum border distance.', '', ':param int dist1: Left or top Distance', ':param int dist2: Right or bottom distance', '', '.. seealso::', '', ' :py:meth:`borderDist()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setMargin [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setMargin') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setMargin', , {'members': }, '(margin)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setMargin', , {'members': }, ['Specify the margin to the colorBar/base line.', '', ':param int margin: Margin', '', '.. seealso::', '', ' :py:meth:`margin()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setMargin', , {'members': }, '(margin)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setMargin', , {'members': }, ['Specify the margin to the colorBar/base line.', '', ':param int margin: Margin', '', '.. seealso::', '', ' :py:meth:`margin()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setSpacing [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setSpacing') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setSpacing', , {'members': }, '(spacing)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setSpacing', , {'members': }, ['Specify the distance between color bar, scale and title', '', ':param int spacing: Spacing', '', '.. seealso::', '', ' :py:meth:`spacing()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setSpacing', , {'members': }, '(spacing)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setSpacing', , {'members': }, ['Specify the distance between color bar, scale and title', '', ':param int spacing: Spacing', '', '.. seealso::', '', ' :py:meth:`spacing()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setLabelAlignment [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setLabelAlignment') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setLabelAlignment', , {'members': }, '(alignment)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setLabelAlignment', , {'members': }, ['Change the alignment for the labels.', '', ':param int spacing: Spacing', '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()`,', ' :py:meth:`setLabelRotation()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setLabelAlignment', , {'members': }, '(alignment)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setLabelAlignment', , {'members': }, ['Change the alignment for the labels.', '', ':param int spacing: Spacing', '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()`,', ' :py:meth:`setLabelRotation()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setLabelRotation [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setLabelRotation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setLabelRotation', , {'members': }, '(rotation)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setLabelRotation', , {'members': }, ['Change the rotation for the labels.', '', ':param float rotation: Rotation', '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelRotation()`,', ' :py:meth:`setLabelFlags()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setLabelRotation', , {'members': }, '(rotation)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setLabelRotation', , {'members': }, ['Change the rotation for the labels.', '', ':param float rotation: Rotation', '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelRotation()`,', ' :py:meth:`setLabelFlags()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setLabelAutoSize [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setLabelAutoSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setLabelAutoSize', , {'members': }, '(state)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setLabelAutoSize', , {'members': }, ['Set the automatic size option for labels (default: on).', '', ':param bool state: On/off', '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setLabelAutoSize', , {'members': }, '(state)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setLabelAutoSize', , {'members': }, ['Set the automatic size option for labels (default: on).', '', ':param bool state: On/off', '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setScaleDraw [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setScaleDraw') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setScaleDraw', , {'members': }, '(scaleDraw)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setScaleDraw', , {'members': }, ['Set a scale draw', '', 'scaleDraw has to be created with new and will be deleted in', 'class destructor or the next call of `setScaleDraw()`.', 'scaleDraw will be initialized with the attributes of', 'the previous scaleDraw object.', '', ':param qwt.scale_draw.QwtScaleDraw scaleDraw: ScaleDraw object', '', '.. seealso::', '', ' :py:meth:`scaleDraw()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setScaleDraw', , {'members': }, '(scaleDraw)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setScaleDraw', , {'members': }, ['Set a scale draw', '', 'scaleDraw has to be created with new and will be deleted in', 'class destructor or the next call of `setScaleDraw()`.', 'scaleDraw will be initialized with the attributes of', 'the previous scaleDraw object.', '', ':param qwt.scale_draw.QwtScaleDraw scaleDraw: ScaleDraw object', '', '.. seealso::', '', ' :py:meth:`scaleDraw()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.scaleDraw [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'scaleDraw') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.scaleDraw', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.scaleDraw', , {'members': }, [':return: scaleDraw of this scale', '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtScaleDraw.setScaleDraw()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.scaleDraw', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.scaleDraw', , {'members': }, [':return: scaleDraw of this scale', '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtScaleDraw.setScaleDraw()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.title [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'title') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.title', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.title', , {'members': }, [':return: title', '', '.. seealso::', '', ' :py:meth:`setTitle`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.title', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.title', , {'members': }, [':return: title', '', '.. seealso::', '', ' :py:meth:`setTitle`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.startBorderDist [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'startBorderDist') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.startBorderDist', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.startBorderDist', , {'members': }, [':return: start border distance', '', '.. seealso::', '', ' :py:meth:`setBorderDist`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.startBorderDist', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.startBorderDist', , {'members': }, [':return: start border distance', '', '.. seealso::', '', ' :py:meth:`setBorderDist`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.endBorderDist [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'endBorderDist') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.endBorderDist', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.endBorderDist', , {'members': }, [':return: end border distance', '', '.. seealso::', '', ' :py:meth:`setBorderDist`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.endBorderDist', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.endBorderDist', , {'members': }, [':return: end border distance', '', '.. seealso::', '', ' :py:meth:`setBorderDist`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.margin [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'margin') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.margin', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.margin', , {'members': }, [':return: margin', '', '.. seealso::', '', ' :py:meth:`setMargin`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.margin', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.margin', , {'members': }, [':return: margin', '', '.. seealso::', '', ' :py:meth:`setMargin`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.spacing [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'spacing') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.spacing', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.spacing', , {'members': }, [':return: distance between scale and title', '', '.. seealso::', '', ' :py:meth:`setSpacing`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.spacing', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.spacing', , {'members': }, [':return: distance between scale and title', '', '.. seealso::', '', ' :py:meth:`setSpacing`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.paintEvent [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'paintEvent') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.paintEvent', , {'members': }, '(self, a0: Optional[QPaintEvent])', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.paintEvent', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.paintEvent', , {'members': }, '(self, a0: Optional[QPaintEvent])', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.paintEvent', , {'members': }, []) [autodoc] from qwt.scale_widget import QwtScaleWidget.draw [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'draw') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.draw', , {'members': }, '(painter)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.draw', , {'members': }, ['Draw the scale', '', ':param QPainter painter: Painter', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.draw', , {'members': }, '(painter)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.draw', , {'members': }, ['Draw the scale', '', ':param QPainter painter: Painter', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.colorBarRect [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'colorBarRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.colorBarRect', , {'members': }, '(rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.colorBarRect', , {'members': }, ['Calculate the the rectangle for the color bar', '', ':param QRectF rect: Bounding rectangle for all components of the scale', ':return: Rectangle for the color bar', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.colorBarRect', , {'members': }, '(rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.colorBarRect', , {'members': }, ['Calculate the the rectangle for the color bar', '', ':param QRectF rect: Bounding rectangle for all components of the scale', ':return: Rectangle for the color bar', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.resizeEvent [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'resizeEvent') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.resizeEvent', , {'members': }, '(self, a0: Optional[QResizeEvent])', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.resizeEvent', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.resizeEvent', , {'members': }, '(self, a0: Optional[QResizeEvent])', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.resizeEvent', , {'members': }, []) [autodoc] from qwt.scale_widget import QwtScaleWidget.layoutScale [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'layoutScale') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.layoutScale', , {'members': }, '(update_geometry=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.layoutScale', , {'members': }, ["Recalculate the scale's geometry and layout based on", 'the current geometry and fonts.', '', ':param bool update_geometry: Notify the layout system and call update to redraw the scale', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.layoutScale', , {'members': }, '(update_geometry=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.layoutScale', , {'members': }, ["Recalculate the scale's geometry and layout based on", 'the current geometry and fonts.', '', ':param bool update_geometry: Notify the layout system and call update to redraw the scale', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.drawColorBar [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'drawColorBar') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.drawColorBar', , {'members': }, '(painter, rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.drawColorBar', , {'members': }, ['Draw the color bar of the scale widget', '', ':param QPainter painter: Painter', ':param QRectF rect: Bounding rectangle for the color bar', '', '.. seealso::', '', ' :py:meth:`setColorBarEnabled()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.drawColorBar', , {'members': }, '(painter, rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.drawColorBar', , {'members': }, ['Draw the color bar of the scale widget', '', ':param QPainter painter: Painter', ':param QRectF rect: Bounding rectangle for the color bar', '', '.. seealso::', '', ' :py:meth:`setColorBarEnabled()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.drawTitle [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'drawTitle') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.drawTitle', , {'members': }, '(painter, align, rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.drawTitle', , {'members': }, ['Rotate and paint a title according to its position into a given rectangle.', '', ':param QPainter painter: Painter', ':param int align: Alignment', ':param QRectF rect: Bounding rectangle', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.drawTitle', , {'members': }, '(painter, align, rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.drawTitle', , {'members': }, ['Rotate and paint a title according to its position into a given rectangle.', '', ':param QPainter painter: Painter', ':param int align: Alignment', ':param QRectF rect: Bounding rectangle', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.scaleChange [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'scaleChange') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.scaleChange', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.scaleChange', , {'members': }, ['Notify a change of the scale', '', 'This method can be overloaded by derived classes. The default', 'implementation updates the geometry and repaints the widget.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.scaleChange', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.scaleChange', , {'members': }, ['Notify a change of the scale', '', 'This method can be overloaded by derived classes. The default', 'implementation updates the geometry and repaints the widget.', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.sizeHint [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'sizeHint') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.sizeHint', , {'members': }, '(self)', 'QSize') -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.sizeHint', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.sizeHint', , {'members': }, '(self)', 'QSize') +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.sizeHint', , {'members': }, []) [autodoc] from qwt.scale_widget import QwtScaleWidget.minimumSizeHint [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'minimumSizeHint') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.minimumSizeHint', , {'members': }, '(self)', 'QSize') -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.minimumSizeHint', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.minimumSizeHint', , {'members': }, '(self)', 'QSize') +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.minimumSizeHint', , {'members': }, []) [autodoc] from qwt.scale_widget import QwtScaleWidget.titleHeightForWidth [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'titleHeightForWidth') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.titleHeightForWidth', , {'members': }, '(width)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.titleHeightForWidth', , {'members': }, ['Find the height of the title for a given width.', '', ':param int width: Width', ':return: Height', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.titleHeightForWidth', , {'members': }, '(width)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.titleHeightForWidth', , {'members': }, ['Find the height of the title for a given width.', '', ':param int width: Width', ':return: Height', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.dimForLength [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'dimForLength') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.dimForLength', , {'members': }, '(length, scaleFont)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.dimForLength', , {'members': }, ['Find the minimum dimension for a given length.', 'dim is the height, length the width seen in direction of the title.', '', ':param int length: width for horizontal, height for vertical scales', ':param QFont scaleFont: Font of the scale', ':return: height for horizontal, width for vertical scales', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.dimForLength', , {'members': }, '(length, scaleFont)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.dimForLength', , {'members': }, ['Find the minimum dimension for a given length.', 'dim is the height, length the width seen in direction of the title.', '', ':param int length: width for horizontal, height for vertical scales', ':param QFont scaleFont: Font of the scale', ':return: height for horizontal, width for vertical scales', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.getBorderDistHint [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'getBorderDistHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.getBorderDistHint', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.getBorderDistHint', , {'members': }, ['Calculate a hint for the border distances.', '', 'This member function calculates the distance', "of the scale's endpoints from the widget borders which", 'is required for the mark labels to fit into the widget.', 'The maximum of this distance an the minimum border distance', 'is returned.', '', ':param int start: Return parameter for the border width at the beginning of the scale', ':param int end: Return parameter for the border width at the end of the scale', '', '.. warning::', '', ' The minimum border distance depends on the font.', '', '.. seealso::', '', ' :py:meth:`setMinBorderDist()`, :py:meth:`getMinBorderDist()`,', ' :py:meth:`setBorderDist()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.getBorderDistHint', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.getBorderDistHint', , {'members': }, ['Calculate a hint for the border distances.', '', 'This member function calculates the distance', "of the scale's endpoints from the widget borders which", 'is required for the mark labels to fit into the widget.', 'The maximum of this distance an the minimum border distance', 'is returned.', '', ':param int start: Return parameter for the border width at the beginning of the scale', ':param int end: Return parameter for the border width at the end of the scale', '', '.. warning::', '', ' The minimum border distance depends on the font.', '', '.. seealso::', '', ' :py:meth:`setMinBorderDist()`, :py:meth:`getMinBorderDist()`,', ' :py:meth:`setBorderDist()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setMinBorderDist [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setMinBorderDist') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setMinBorderDist', , {'members': }, '(start, end)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setMinBorderDist', , {'members': }, ["Set a minimum value for the distances of the scale's endpoints from", 'the widget borders. This is useful to avoid that the scales', 'are "jumping", when the tick labels or their positions change', 'often.', '', ':param int start: Minimum for the start border', ':param int end: Minimum for the end border', '', '.. seealso::', '', ' :py:meth:`getMinBorderDist()`, :py:meth:`getBorderDistHint()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setMinBorderDist', , {'members': }, '(start, end)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setMinBorderDist', , {'members': }, ["Set a minimum value for the distances of the scale's endpoints from", 'the widget borders. This is useful to avoid that the scales', 'are "jumping", when the tick labels or their positions change', 'often.', '', ':param int start: Minimum for the start border', ':param int end: Minimum for the end border', '', '.. seealso::', '', ' :py:meth:`getMinBorderDist()`, :py:meth:`getBorderDistHint()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.getMinBorderDist [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'getMinBorderDist') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.getMinBorderDist', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.getMinBorderDist', , {'members': }, ["Get the minimum value for the distances of the scale's endpoints from", 'the widget borders.', '', ':param int start: Return parameter for the border width at the beginning of the scale', ':param int end: Return parameter for the border width at the end of the scale', '', '.. seealso::', '', ' :py:meth:`setMinBorderDist()`, :py:meth:`getBorderDistHint()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.getMinBorderDist', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.getMinBorderDist', , {'members': }, ["Get the minimum value for the distances of the scale's endpoints from", 'the widget borders.', '', ':param int start: Return parameter for the border width at the beginning of the scale', ':param int end: Return parameter for the border width at the end of the scale', '', '.. seealso::', '', ' :py:meth:`setMinBorderDist()`, :py:meth:`getBorderDistHint()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setScaleDiv [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setScaleDiv') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setScaleDiv', , {'members': }, '(scaleDiv)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setScaleDiv', , {'members': }, ['Assign a scale division', '', 'The scale division determines where to set the tick marks.', '', ':param qwt.scale_div.QwtScaleDiv scaleDiv: Scale Division', '', '.. seealso::', '', ' For more information about scale divisions,', ' see :py:class:`qwt.scale_div.QwtScaleDiv`.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setScaleDiv', , {'members': }, '(scaleDiv)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setScaleDiv', , {'members': }, ['Assign a scale division', '', 'The scale division determines where to set the tick marks.', '', ':param qwt.scale_div.QwtScaleDiv scaleDiv: Scale Division', '', '.. seealso::', '', ' For more information about scale divisions,', ' see :py:class:`qwt.scale_div.QwtScaleDiv`.', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setTransformation [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setTransformation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setTransformation', , {'members': }, '(transformation)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setTransformation', , {'members': }, ['Set the transformation', '', ':param qwt.transform.Transform transformation: Transformation', '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtAbstractScaleDraw.scaleDraw()`,', ' :py:class:`qwt.scale_map.QwtScaleMap`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setTransformation', , {'members': }, '(transformation)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setTransformation', , {'members': }, ['Set the transformation', '', ':param qwt.transform.Transform transformation: Transformation', '', '.. seealso::', '', ' :py:meth:`qwt.scale_draw.QwtAbstractScaleDraw.scaleDraw()`,', ' :py:class:`qwt.scale_map.QwtScaleMap`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setColorBarEnabled [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setColorBarEnabled') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setColorBarEnabled', , {'members': }, '(on)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setColorBarEnabled', , {'members': }, ['En/disable a color bar associated to the scale', '', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`isColorBarEnabled()`, :py:meth:`setColorBarWidth()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setColorBarEnabled', , {'members': }, '(on)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setColorBarEnabled', , {'members': }, ['En/disable a color bar associated to the scale', '', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`isColorBarEnabled()`, :py:meth:`setColorBarWidth()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.isColorBarEnabled [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'isColorBarEnabled') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.isColorBarEnabled', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.isColorBarEnabled', , {'members': }, [':return: True, when the color bar is enabled', '', '.. seealso::', '', ' :py:meth:`setColorBarEnabled()`, :py:meth:`setColorBarWidth()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.isColorBarEnabled', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.isColorBarEnabled', , {'members': }, [':return: True, when the color bar is enabled', '', '.. seealso::', '', ' :py:meth:`setColorBarEnabled()`, :py:meth:`setColorBarWidth()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setColorBarWidth [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setColorBarWidth') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setColorBarWidth', , {'members': }, '(width)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setColorBarWidth', , {'members': }, ['Set the width of the color bar', '', ':param int width: Width', '', '.. seealso::', '', ' :py:meth:`colorBarWidth()`, :py:meth:`setColorBarEnabled()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setColorBarWidth', , {'members': }, '(width)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setColorBarWidth', , {'members': }, ['Set the width of the color bar', '', ':param int width: Width', '', '.. seealso::', '', ' :py:meth:`colorBarWidth()`, :py:meth:`setColorBarEnabled()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.colorBarWidth [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'colorBarWidth') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.colorBarWidth', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.colorBarWidth', , {'members': }, [':return: Width of the color bar', '', '.. seealso::', '', ' :py:meth:`setColorBarWidth()`, :py:meth:`setColorBarEnabled()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.colorBarWidth', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.colorBarWidth', , {'members': }, [':return: Width of the color bar', '', '.. seealso::', '', ' :py:meth:`setColorBarWidth()`, :py:meth:`setColorBarEnabled()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.colorBarInterval [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'colorBarInterval') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.colorBarInterval', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.colorBarInterval', , {'members': }, [':return: Value interval for the color bar', '', '.. seealso::', '', ' :py:meth:`setColorMap()`, :py:meth:`colorMap()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.colorBarInterval', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.colorBarInterval', , {'members': }, [':return: Value interval for the color bar', '', '.. seealso::', '', ' :py:meth:`setColorMap()`, :py:meth:`colorMap()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.setColorMap [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'setColorMap') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setColorMap', , {'members': }, '(interval, colorMap)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setColorMap', , {'members': }, ['Set the color map and value interval, that are used for displaying', 'the color bar.', '', ':param qwt.interval.QwtInterval interval: Value interval', ':param qwt.color_map.QwtColorMap colorMap: Color map', '', '.. seealso::', '', ' :py:meth:`colorMap()`, :py:meth:`colorBarInterval()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.setColorMap', , {'members': }, '(interval, colorMap)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.setColorMap', , {'members': }, ['Set the color map and value interval, that are used for displaying', 'the color bar.', '', ':param qwt.interval.QwtInterval interval: Value interval', ':param qwt.color_map.QwtColorMap colorMap: Color map', '', '.. seealso::', '', ' :py:meth:`colorMap()`, :py:meth:`colorBarInterval()`', '']) [autodoc] from qwt.scale_widget import QwtScaleWidget.colorMap [autodoc] import qwt.scale_widget => [autodoc] getattr(_, 'QwtScaleWidget') [autodoc] => [autodoc] getattr(_, 'colorMap') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.colorMap', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.colorMap', , {'members': }, [':return: Color map', '', '.. seealso::', '', ' :py:meth:`setColorMap()`, :py:meth:`colorBarInterval()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_widget.QwtScaleWidget.colorMap', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_widget.QwtScaleWidget.colorMap', , {'members': }, [':return: Color map', '', '.. seealso::', '', ' :py:meth:`setColorMap()`, :py:meth:`colorBarInterval()`', '']) [autodoc] output: .. py:class:: QwtScaleWidget(*args) @@ -15754,174 +15790,174 @@ [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_div.QwtScaleDiv', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_div.QwtScaleDiv', , {'members': }, ['A class representing a scale division', '', 'A Qwt scale is defined by its boundaries and 3 list', 'for the positions of the major, medium and minor ticks.', '', 'The `upperLimit()` might be smaller than the `lowerLimit()`', 'to indicate inverted scales.', '', 'Scale divisions can be calculated from a `QwtScaleEngine`.', '', '.. seealso::', '', ' :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`,', ' :py:meth:`qwt.plot.QwtPlot.setAxisScaleDiv()`', '', 'Scale tick types:', '', ' * `QwtScaleDiv.NoTick`: No ticks', ' * `QwtScaleDiv.MinorTick`: Minor ticks', ' * `QwtScaleDiv.MediumTick`: Medium ticks', ' * `QwtScaleDiv.MajorTick`: Major ticks', ' * `QwtScaleDiv.NTickTypes`: Number of valid tick types', '', '.. py:class:: QwtScaleDiv()', '', ' Basic constructor. Lower bound = Upper bound = 0.', '', '.. py:class:: QwtScaleDiv(interval, ticks)', ' :noindex:', '', ' :param qwt.interval.QwtInterval interval: Interval', ' :param list ticks: list of major, medium and minor ticks', '', '.. py:class:: QwtScaleDiv(lowerBound, upperBound)', ' :noindex:', '', ' :param float lowerBound: First boundary', ' :param float upperBound: Second boundary', '', '.. py:class:: QwtScaleDiv(lowerBound, upperBound, ticks)', ' :noindex:', '', ' :param float lowerBound: First boundary', ' :param float upperBound: Second boundary', ' :param list ticks: list of major, medium and minor ticks', '', '.. py:class:: QwtScaleDiv(lowerBound, upperBound, minorTicks, mediumTicks, majorTicks)', ' :noindex:', '', ' :param float lowerBound: First boundary', ' :param float upperBound: Second boundary', ' :param list minorTicks: list of minor ticks', ' :param list mediumTicks: list of medium ticks', ' :param list majorTicks: list of major ticks', '', '.. note::', '', ' lowerBound might be greater than upperBound for inverted scales', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'MajorTick', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'MediumTick', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'MinorTick', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'NTickTypes', 3, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'NoTick', -1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.scale_div', '__firstlineno__': 21, '__doc__': '\nA class representing a scale division\n\nA Qwt scale is defined by its boundaries and 3 list\nfor the positions of the major, medium and minor ticks.\n\nThe `upperLimit()` might be smaller than the `lowerLimit()`\nto indicate inverted scales.\n\nScale divisions can be calculated from a `QwtScaleEngine`.\n\n.. seealso::\n\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`,\n :py:meth:`qwt.plot.QwtPlot.setAxisScaleDiv()`\n\nScale tick types:\n\n * `QwtScaleDiv.NoTick`: No ticks\n * `QwtScaleDiv.MinorTick`: Minor ticks\n * `QwtScaleDiv.MediumTick`: Medium ticks\n * `QwtScaleDiv.MajorTick`: Major ticks\n * `QwtScaleDiv.NTickTypes`: Number of valid tick types\n\n.. py:class:: QwtScaleDiv()\n\n Basic constructor. Lower bound = Upper bound = 0.\n\n.. py:class:: QwtScaleDiv(interval, ticks)\n :noindex:\n\n :param qwt.interval.QwtInterval interval: Interval\n :param list ticks: list of major, medium and minor ticks\n\n.. py:class:: QwtScaleDiv(lowerBound, upperBound)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n\n.. py:class:: QwtScaleDiv(lowerBound, upperBound, ticks)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n :param list ticks: list of major, medium and minor ticks\n\n.. py:class:: QwtScaleDiv(lowerBound, upperBound, minorTicks, mediumTicks, majorTicks)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n :param list minorTicks: list of minor ticks\n :param list mediumTicks: list of medium ticks\n :param list majorTicks: list of major ticks\n\n.. note::\n\n lowerBound might be greater than upperBound for inverted scales\n', 'NoTick': -1, 'MinorTick': 0, 'MediumTick': 1, 'MajorTick': 2, 'NTickTypes': 3, '__init__': , 'setInterval': , 'interval': , 'setLowerBound': , 'lowerBound': , 'setUpperBound': , 'upperBound': , 'range': , '__eq__': , '__ne__': , 'isEmpty': , 'isIncreasing': , 'contains': , 'invert': , 'inverted': , 'bounded': , 'setTicks': , 'ticks': , '__static_attributes__': ('__lowerBound', '__ticks', '__upperBound'), '__dict__': , '__weakref__': , '__hash__': None, '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA class representing a scale division\n\nA Qwt scale is defined by its boundaries and 3 list\nfor the positions of the major, medium and minor ticks.\n\nThe `upperLimit()` might be smaller than the `lowerLimit()`\nto indicate inverted scales.\n\nScale divisions can be calculated from a `QwtScaleEngine`.\n\n.. seealso::\n\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`,\n :py:meth:`qwt.plot.QwtPlot.setAxisScaleDiv()`\n\nScale tick types:\n\n * `QwtScaleDiv.NoTick`: No ticks\n * `QwtScaleDiv.MinorTick`: Minor ticks\n * `QwtScaleDiv.MediumTick`: Medium ticks\n * `QwtScaleDiv.MajorTick`: Major ticks\n * `QwtScaleDiv.NTickTypes`: Number of valid tick types\n\n.. py:class:: QwtScaleDiv()\n\n Basic constructor. Lower bound = Upper bound = 0.\n\n.. py:class:: QwtScaleDiv(interval, ticks)\n :noindex:\n\n :param qwt.interval.QwtInterval interval: Interval\n :param list ticks: list of major, medium and minor ticks\n\n.. py:class:: QwtScaleDiv(lowerBound, upperBound)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n\n.. py:class:: QwtScaleDiv(lowerBound, upperBound, ticks)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n :param list ticks: list of major, medium and minor ticks\n\n.. py:class:: QwtScaleDiv(lowerBound, upperBound, minorTicks, mediumTicks, majorTicks)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n :param list minorTicks: list of minor ticks\n :param list mediumTicks: list of medium ticks\n :param list majorTicks: list of major ticks\n\n.. note::\n\n lowerBound might be greater than upperBound for inverted scales\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__eq__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 21, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__hash__', None, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_div', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__ne__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__lowerBound', '__ticks', '__upperBound'), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'bounded', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'contains', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'interval', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invert', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'inverted', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isEmpty', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isIncreasing', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'lowerBound', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'range', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setInterval', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLowerBound', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setTicks', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setUpperBound', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'ticks', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'upperBound', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_div.QwtScaleDiv', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_div.QwtScaleDiv', , {'members': }, ['A class representing a scale division', '', 'A Qwt scale is defined by its boundaries and 3 list', 'for the positions of the major, medium and minor ticks.', '', 'The `upperLimit()` might be smaller than the `lowerLimit()`', 'to indicate inverted scales.', '', 'Scale divisions can be calculated from a `QwtScaleEngine`.', '', '.. seealso::', '', ' :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`,', ' :py:meth:`qwt.plot.QwtPlot.setAxisScaleDiv()`', '', 'Scale tick types:', '', ' * `QwtScaleDiv.NoTick`: No ticks', ' * `QwtScaleDiv.MinorTick`: Minor ticks', ' * `QwtScaleDiv.MediumTick`: Medium ticks', ' * `QwtScaleDiv.MajorTick`: Major ticks', ' * `QwtScaleDiv.NTickTypes`: Number of valid tick types', '', '.. py:class:: QwtScaleDiv()', '', ' Basic constructor. Lower bound = Upper bound = 0.', '', '.. py:class:: QwtScaleDiv(interval, ticks)', ' :noindex:', '', ' :param qwt.interval.QwtInterval interval: Interval', ' :param list ticks: list of major, medium and minor ticks', '', '.. py:class:: QwtScaleDiv(lowerBound, upperBound)', ' :noindex:', '', ' :param float lowerBound: First boundary', ' :param float upperBound: Second boundary', '', '.. py:class:: QwtScaleDiv(lowerBound, upperBound, ticks)', ' :noindex:', '', ' :param float lowerBound: First boundary', ' :param float upperBound: Second boundary', ' :param list ticks: list of major, medium and minor ticks', '', '.. py:class:: QwtScaleDiv(lowerBound, upperBound, minorTicks, mediumTicks, majorTicks)', ' :noindex:', '', ' :param float lowerBound: First boundary', ' :param float upperBound: Second boundary', ' :param list minorTicks: list of minor ticks', ' :param list mediumTicks: list of medium ticks', ' :param list majorTicks: list of major ticks', '', '.. note::', '', ' lowerBound might be greater than upperBound for inverted scales', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'MajorTick', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'MediumTick', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'MinorTick', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'NTickTypes', 3, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'NoTick', -1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.scale_div', '__firstlineno__': 21, '__doc__': '\nA class representing a scale division\n\nA Qwt scale is defined by its boundaries and 3 list\nfor the positions of the major, medium and minor ticks.\n\nThe `upperLimit()` might be smaller than the `lowerLimit()`\nto indicate inverted scales.\n\nScale divisions can be calculated from a `QwtScaleEngine`.\n\n.. seealso::\n\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`,\n :py:meth:`qwt.plot.QwtPlot.setAxisScaleDiv()`\n\nScale tick types:\n\n * `QwtScaleDiv.NoTick`: No ticks\n * `QwtScaleDiv.MinorTick`: Minor ticks\n * `QwtScaleDiv.MediumTick`: Medium ticks\n * `QwtScaleDiv.MajorTick`: Major ticks\n * `QwtScaleDiv.NTickTypes`: Number of valid tick types\n\n.. py:class:: QwtScaleDiv()\n\n Basic constructor. Lower bound = Upper bound = 0.\n\n.. py:class:: QwtScaleDiv(interval, ticks)\n :noindex:\n\n :param qwt.interval.QwtInterval interval: Interval\n :param list ticks: list of major, medium and minor ticks\n\n.. py:class:: QwtScaleDiv(lowerBound, upperBound)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n\n.. py:class:: QwtScaleDiv(lowerBound, upperBound, ticks)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n :param list ticks: list of major, medium and minor ticks\n\n.. py:class:: QwtScaleDiv(lowerBound, upperBound, minorTicks, mediumTicks, majorTicks)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n :param list minorTicks: list of minor ticks\n :param list mediumTicks: list of medium ticks\n :param list majorTicks: list of major ticks\n\n.. note::\n\n lowerBound might be greater than upperBound for inverted scales\n', 'NoTick': -1, 'MinorTick': 0, 'MediumTick': 1, 'MajorTick': 2, 'NTickTypes': 3, '__init__': , 'setInterval': , 'interval': , 'setLowerBound': , 'lowerBound': , 'setUpperBound': , 'upperBound': , 'range': , '__eq__': , '__ne__': , 'isEmpty': , 'isIncreasing': , 'contains': , 'invert': , 'inverted': , 'bounded': , 'setTicks': , 'ticks': , '__static_attributes__': ('__lowerBound', '__ticks', '__upperBound'), '__dict__': , '__weakref__': , '__hash__': None, '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA class representing a scale division\n\nA Qwt scale is defined by its boundaries and 3 list\nfor the positions of the major, medium and minor ticks.\n\nThe `upperLimit()` might be smaller than the `lowerLimit()`\nto indicate inverted scales.\n\nScale divisions can be calculated from a `QwtScaleEngine`.\n\n.. seealso::\n\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`,\n :py:meth:`qwt.plot.QwtPlot.setAxisScaleDiv()`\n\nScale tick types:\n\n * `QwtScaleDiv.NoTick`: No ticks\n * `QwtScaleDiv.MinorTick`: Minor ticks\n * `QwtScaleDiv.MediumTick`: Medium ticks\n * `QwtScaleDiv.MajorTick`: Major ticks\n * `QwtScaleDiv.NTickTypes`: Number of valid tick types\n\n.. py:class:: QwtScaleDiv()\n\n Basic constructor. Lower bound = Upper bound = 0.\n\n.. py:class:: QwtScaleDiv(interval, ticks)\n :noindex:\n\n :param qwt.interval.QwtInterval interval: Interval\n :param list ticks: list of major, medium and minor ticks\n\n.. py:class:: QwtScaleDiv(lowerBound, upperBound)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n\n.. py:class:: QwtScaleDiv(lowerBound, upperBound, ticks)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n :param list ticks: list of major, medium and minor ticks\n\n.. py:class:: QwtScaleDiv(lowerBound, upperBound, minorTicks, mediumTicks, majorTicks)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n :param list minorTicks: list of minor ticks\n :param list mediumTicks: list of medium ticks\n :param list majorTicks: list of major ticks\n\n.. note::\n\n lowerBound might be greater than upperBound for inverted scales\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__eq__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 21, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__hash__', None, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_div', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__ne__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__lowerBound', '__ticks', '__upperBound'), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'bounded', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'contains', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'interval', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invert', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'inverted', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isEmpty', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isIncreasing', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'lowerBound', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'range', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setInterval', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLowerBound', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setTicks', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setUpperBound', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'ticks', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'upperBound', , False, {'members': }) [autodoc] from qwt.scale_div import QwtScaleDiv.setInterval [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'setInterval') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.setInterval', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.setInterval', , {'members': }, ['Change the interval', '', '.. py:method:: setInterval(lowerBound, upperBound)', ' :noindex:', '', ' :param float lowerBound: First boundary', ' :param float upperBound: Second boundary', '', '.. py:method:: setInterval(interval)', ' :noindex:', '', ' :param qwt.interval.QwtInterval interval: Interval', '', '.. note::', '', ' lowerBound might be greater than upperBound for inverted scales', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.setInterval', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.setInterval', , {'members': }, ['Change the interval', '', '.. py:method:: setInterval(lowerBound, upperBound)', ' :noindex:', '', ' :param float lowerBound: First boundary', ' :param float upperBound: Second boundary', '', '.. py:method:: setInterval(interval)', ' :noindex:', '', ' :param qwt.interval.QwtInterval interval: Interval', '', '.. note::', '', ' lowerBound might be greater than upperBound for inverted scales', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.interval [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'interval') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.interval', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.interval', , {'members': }, [':return: Interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.interval', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.interval', , {'members': }, [':return: Interval', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.setLowerBound [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'setLowerBound') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.setLowerBound', , {'members': }, '(lowerBound)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.setLowerBound', , {'members': }, ['Set the first boundary', '', ':param float lowerBound: First boundary', '', '.. seealso::', '', ' :py:meth:`lowerBound()`, :py:meth:`setUpperBound()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.setLowerBound', , {'members': }, '(lowerBound)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.setLowerBound', , {'members': }, ['Set the first boundary', '', ':param float lowerBound: First boundary', '', '.. seealso::', '', ' :py:meth:`lowerBound()`, :py:meth:`setUpperBound()`', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.lowerBound [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'lowerBound') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.lowerBound', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.lowerBound', , {'members': }, [':return: the first boundary', '', '.. seealso::', '', ' :py:meth:`upperBound()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.lowerBound', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.lowerBound', , {'members': }, [':return: the first boundary', '', '.. seealso::', '', ' :py:meth:`upperBound()`', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.setUpperBound [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'setUpperBound') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.setUpperBound', , {'members': }, '(upperBound)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.setUpperBound', , {'members': }, ['Set the second boundary', '', ':param float lowerBound: Second boundary', '', '.. seealso::', '', ' :py:meth:`upperBound()`, :py:meth:`setLowerBound()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.setUpperBound', , {'members': }, '(upperBound)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.setUpperBound', , {'members': }, ['Set the second boundary', '', ':param float lowerBound: Second boundary', '', '.. seealso::', '', ' :py:meth:`upperBound()`, :py:meth:`setLowerBound()`', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.upperBound [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'upperBound') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.upperBound', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.upperBound', , {'members': }, [':return: the second boundary', '', '.. seealso::', '', ' :py:meth:`lowerBound()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.upperBound', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.upperBound', , {'members': }, [':return: the second boundary', '', '.. seealso::', '', ' :py:meth:`lowerBound()`', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.range [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'range') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.range', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.range', , {'members': }, [':return: upperBound() - lowerBound()', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.range', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.range', , {'members': }, [':return: upperBound() - lowerBound()', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.isEmpty [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'isEmpty') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.isEmpty', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.isEmpty', , {'members': }, ['Check if the scale division is empty( lowerBound() == upperBound() )', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.isEmpty', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.isEmpty', , {'members': }, ['Check if the scale division is empty( lowerBound() == upperBound() )', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.isIncreasing [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'isIncreasing') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.isIncreasing', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.isIncreasing', , {'members': }, ['Check if the scale division is increasing( lowerBound() <= upperBound() )', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.isIncreasing', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.isIncreasing', , {'members': }, ['Check if the scale division is increasing( lowerBound() <= upperBound() )', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.contains [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'contains') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.contains', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.contains', , {'members': }, ['Return if a value is between lowerBound() and upperBound()', '', ':param float value: Value', ':return: True/False', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.contains', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.contains', , {'members': }, ['Return if a value is between lowerBound() and upperBound()', '', ':param float value: Value', ':return: True/False', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.invert [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'invert') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.invert', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.invert', , {'members': }, ['Invert the scale division', '', '.. seealso::', '', ' :py:meth:`inverted()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.invert', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.invert', , {'members': }, ['Invert the scale division', '', '.. seealso::', '', ' :py:meth:`inverted()`', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.inverted [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'inverted') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.inverted', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.inverted', , {'members': }, [':return: A scale division with inverted boundaries and ticks', '', '.. seealso::', '', ' :py:meth:`invert()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.inverted', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.inverted', , {'members': }, [':return: A scale division with inverted boundaries and ticks', '', '.. seealso::', '', ' :py:meth:`invert()`', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.bounded [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'bounded') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.bounded', , {'members': }, '(lowerBound, upperBound)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.bounded', , {'members': }, ['Return a scale division with an interval [lowerBound, upperBound]', 'where all ticks outside this interval are removed', '', ':param float lowerBound: First boundary', ':param float lowerBound: Second boundary', ':return: Scale division with all ticks inside of the given interval', '', '.. note::', '', ' lowerBound might be greater than upperBound for inverted scales', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.bounded', , {'members': }, '(lowerBound, upperBound)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.bounded', , {'members': }, ['Return a scale division with an interval [lowerBound, upperBound]', 'where all ticks outside this interval are removed', '', ':param float lowerBound: First boundary', ':param float lowerBound: Second boundary', ':return: Scale division with all ticks inside of the given interval', '', '.. note::', '', ' lowerBound might be greater than upperBound for inverted scales', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.setTicks [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'setTicks') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.setTicks', , {'members': }, '(tickType, ticks)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.setTicks', , {'members': }, ['Assign ticks', '', ':param int type: MinorTick, MediumTick or MajorTick', ':param list ticks: Values of the tick positions', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.setTicks', , {'members': }, '(tickType, ticks)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.setTicks', , {'members': }, ['Assign ticks', '', ':param int type: MinorTick, MediumTick or MajorTick', ':param list ticks: Values of the tick positions', '']) [autodoc] from qwt.scale_div import QwtScaleDiv.ticks [autodoc] import qwt.scale_div => [autodoc] getattr(_, 'QwtScaleDiv') [autodoc] => [autodoc] getattr(_, 'ticks') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.ticks', , {'members': }, '(tickType)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.ticks', , {'members': }, ['Return a list of ticks', '', ':param int type: MinorTick, MediumTick or MajorTick', ':return: Tick list', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_div.QwtScaleDiv.ticks', , {'members': }, '(tickType)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_div.QwtScaleDiv.ticks', , {'members': }, ['Return a list of ticks', '', ':param int type: MinorTick, MediumTick or MajorTick', ':return: Tick list', '']) [autodoc] output: .. py:class:: QwtScaleDiv(*args) @@ -16197,211 +16233,211 @@ [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_engine.QwtScaleEngine', , {'members': }, '(base=10)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_engine.QwtScaleEngine', , {'members': }, ['Base class for scale engines.', '', 'A scale engine tries to find "reasonable" ranges and step sizes', 'for scales.', '', 'The layout of the scale can be varied with `setAttribute()`.', '', '`PythonQwt` offers implementations for logarithmic and linear scales.', '', 'Layout attributes:', '', ' * `QwtScaleEngine.NoAttribute`: No attributes', ' * `QwtScaleEngine.IncludeReference`: Build a scale which includes the', ' `reference()` value', ' * `QwtScaleEngine.Symmetric`: Build a scale which is symmetric to the', ' `reference()` value', ' * `QwtScaleEngine.Floating`: The endpoints of the scale are supposed to', ' be equal the outmost included values plus the specified margins (see', ' `setMargins()`). If this attribute is *not* set, the endpoints of the', ' scale will be integer multiples of the step size.', ' * `QwtScaleEngine.Inverted`: Turn the scale upside down', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'Floating', 4, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'IncludeReference', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Inverted', 8, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'NoAttribute', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Symmetric', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.scale_engine', '__firstlineno__': 165, '__doc__': '\nBase class for scale engines.\n\nA scale engine tries to find "reasonable" ranges and step sizes\nfor scales.\n\nThe layout of the scale can be varied with `setAttribute()`.\n\n`PythonQwt` offers implementations for logarithmic and linear scales.\n\nLayout attributes:\n\n * `QwtScaleEngine.NoAttribute`: No attributes\n * `QwtScaleEngine.IncludeReference`: Build a scale which includes the\n `reference()` value\n * `QwtScaleEngine.Symmetric`: Build a scale which is symmetric to the\n `reference()` value\n * `QwtScaleEngine.Floating`: The endpoints of the scale are supposed to\n be equal the outmost included values plus the specified margins (see\n `setMargins()`). If this attribute is *not* set, the endpoints of the\n scale will be integer multiples of the step size.\n * `QwtScaleEngine.Inverted`: Turn the scale upside down\n', 'NoAttribute': 0, 'IncludeReference': 1, 'Symmetric': 2, 'Floating': 4, 'Inverted': 8, '__init__': , 'autoScale': , 'divideScale': , 'setTransformation': , 'transformation': , 'lowerMargin': , 'upperMargin': , 'setMargins': , 'divideInterval': , 'contains': , 'strip': , 'buildInterval': , 'setAttribute': , 'testAttribute': , 'setAttributes': , 'attributes': , 'setReference': , 'reference': , 'setBase': , 'base': , '__static_attributes__': ('__data',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nBase class for scale engines.\n\nA scale engine tries to find "reasonable" ranges and step sizes\nfor scales.\n\nThe layout of the scale can be varied with `setAttribute()`.\n\n`PythonQwt` offers implementations for logarithmic and linear scales.\n\nLayout attributes:\n\n * `QwtScaleEngine.NoAttribute`: No attributes\n * `QwtScaleEngine.IncludeReference`: Build a scale which includes the\n `reference()` value\n * `QwtScaleEngine.Symmetric`: Build a scale which is symmetric to the\n `reference()` value\n * `QwtScaleEngine.Floating`: The endpoints of the scale are supposed to\n be equal the outmost included values plus the specified margins (see\n `setMargins()`). If this attribute is *not* set, the endpoints of the\n scale will be integer multiples of the step size.\n * `QwtScaleEngine.Inverted`: Turn the scale upside down\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 165, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_engine', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'attributes', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'autoScale', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'base', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'buildInterval', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'contains', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'divideInterval', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'divideScale', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'lowerMargin', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'reference', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAttributes', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setBase', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setMargins', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setReference', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setTransformation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'strip', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'transformation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'upperMargin', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_engine.QwtScaleEngine', , {'members': }, '(base=10)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_engine.QwtScaleEngine', , {'members': }, ['Base class for scale engines.', '', 'A scale engine tries to find "reasonable" ranges and step sizes', 'for scales.', '', 'The layout of the scale can be varied with `setAttribute()`.', '', '`PythonQwt` offers implementations for logarithmic and linear scales.', '', 'Layout attributes:', '', ' * `QwtScaleEngine.NoAttribute`: No attributes', ' * `QwtScaleEngine.IncludeReference`: Build a scale which includes the', ' `reference()` value', ' * `QwtScaleEngine.Symmetric`: Build a scale which is symmetric to the', ' `reference()` value', ' * `QwtScaleEngine.Floating`: The endpoints of the scale are supposed to', ' be equal the outmost included values plus the specified margins (see', ' `setMargins()`). If this attribute is *not* set, the endpoints of the', ' scale will be integer multiples of the step size.', ' * `QwtScaleEngine.Inverted`: Turn the scale upside down', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'Floating', 4, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'IncludeReference', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Inverted', 8, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'NoAttribute', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Symmetric', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.scale_engine', '__firstlineno__': 165, '__doc__': '\nBase class for scale engines.\n\nA scale engine tries to find "reasonable" ranges and step sizes\nfor scales.\n\nThe layout of the scale can be varied with `setAttribute()`.\n\n`PythonQwt` offers implementations for logarithmic and linear scales.\n\nLayout attributes:\n\n * `QwtScaleEngine.NoAttribute`: No attributes\n * `QwtScaleEngine.IncludeReference`: Build a scale which includes the\n `reference()` value\n * `QwtScaleEngine.Symmetric`: Build a scale which is symmetric to the\n `reference()` value\n * `QwtScaleEngine.Floating`: The endpoints of the scale are supposed to\n be equal the outmost included values plus the specified margins (see\n `setMargins()`). If this attribute is *not* set, the endpoints of the\n scale will be integer multiples of the step size.\n * `QwtScaleEngine.Inverted`: Turn the scale upside down\n', 'NoAttribute': 0, 'IncludeReference': 1, 'Symmetric': 2, 'Floating': 4, 'Inverted': 8, '__init__': , 'autoScale': , 'divideScale': , 'setTransformation': , 'transformation': , 'lowerMargin': , 'upperMargin': , 'setMargins': , 'divideInterval': , 'contains': , 'strip': , 'buildInterval': , 'setAttribute': , 'testAttribute': , 'setAttributes': , 'attributes': , 'setReference': , 'reference': , 'setBase': , 'base': , '__static_attributes__': ('__data',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nBase class for scale engines.\n\nA scale engine tries to find "reasonable" ranges and step sizes\nfor scales.\n\nThe layout of the scale can be varied with `setAttribute()`.\n\n`PythonQwt` offers implementations for logarithmic and linear scales.\n\nLayout attributes:\n\n * `QwtScaleEngine.NoAttribute`: No attributes\n * `QwtScaleEngine.IncludeReference`: Build a scale which includes the\n `reference()` value\n * `QwtScaleEngine.Symmetric`: Build a scale which is symmetric to the\n `reference()` value\n * `QwtScaleEngine.Floating`: The endpoints of the scale are supposed to\n be equal the outmost included values plus the specified margins (see\n `setMargins()`). If this attribute is *not* set, the endpoints of the\n scale will be integer multiples of the step size.\n * `QwtScaleEngine.Inverted`: Turn the scale upside down\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 165, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_engine', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'attributes', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'autoScale', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'base', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'buildInterval', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'contains', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'divideInterval', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'divideScale', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'lowerMargin', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'reference', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAttributes', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setBase', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setMargins', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setReference', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setTransformation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'strip', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'transformation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'upperMargin', , False, {'members': }) [autodoc] from qwt.scale_engine import QwtScaleEngine.autoScale [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'autoScale') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.autoScale', , {'members': }, '(maxNumSteps, x1, x2, stepSize)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.autoScale', , {'members': }, ['Align and divide an interval', '', ':param int maxNumSteps: Max. number of steps', ':param float x1: First limit of the interval (In/Out)', ':param float x2: Second limit of the interval (In/Out)', ':param float stepSize: Step size', ':return: tuple (x1, x2, stepSize)', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.autoScale', , {'members': }, '(maxNumSteps, x1, x2, stepSize)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.autoScale', , {'members': }, ['Align and divide an interval', '', ':param int maxNumSteps: Max. number of steps', ':param float x1: First limit of the interval (In/Out)', ':param float x2: Second limit of the interval (In/Out)', ':param float stepSize: Step size', ':return: tuple (x1, x2, stepSize)', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.divideScale [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'divideScale') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.divideScale', , {'members': }, '(x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.divideScale', , {'members': }, ['Calculate a scale division', '', ':param float x1: First interval limit', ':param float x2: Second interval limit', ':param int maxMajorSteps: Maximum for the number of major steps', ':param int maxMinorSteps: Maximum number of minor steps', ':param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one', ':return: Calculated scale division', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.divideScale', , {'members': }, '(x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.divideScale', , {'members': }, ['Calculate a scale division', '', ':param float x1: First interval limit', ':param float x2: Second interval limit', ':param int maxMajorSteps: Maximum for the number of major steps', ':param int maxMinorSteps: Maximum number of minor steps', ':param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one', ':return: Calculated scale division', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.setTransformation [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'setTransformation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.setTransformation', , {'members': }, '(transform)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.setTransformation', , {'members': }, ['Assign a transformation', '', ':param qwt.transform.QwtTransform transform: Transformation', '', 'The transformation object is used as factory for clones', 'that are returned by `transformation()`', '', 'The scale engine takes ownership of the transformation.', '', '.. seealso::', '', ' :py:meth:`QwtTransform.copy()`, :py:meth:`transformation()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.setTransformation', , {'members': }, '(transform)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.setTransformation', , {'members': }, ['Assign a transformation', '', ':param qwt.transform.QwtTransform transform: Transformation', '', 'The transformation object is used as factory for clones', 'that are returned by `transformation()`', '', 'The scale engine takes ownership of the transformation.', '', '.. seealso::', '', ' :py:meth:`QwtTransform.copy()`, :py:meth:`transformation()`', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.transformation [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'transformation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.transformation', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.transformation', , {'members': }, ['Create and return a clone of the transformation', 'of the engine. When the engine has no special transformation', 'None is returned, indicating no transformation.', '', ':return: A clone of the transfomation', '', '.. seealso::', '', ' :py:meth:`setTransformation()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.transformation', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.transformation', , {'members': }, ['Create and return a clone of the transformation', 'of the engine. When the engine has no special transformation', 'None is returned, indicating no transformation.', '', ':return: A clone of the transfomation', '', '.. seealso::', '', ' :py:meth:`setTransformation()`', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.lowerMargin [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'lowerMargin') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.lowerMargin', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.lowerMargin', , {'members': }, [':return: the margin at the lower end of the scale', '', 'The default margin is 0.', '', '.. seealso::', '', ' :py:meth:`setMargins()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.lowerMargin', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.lowerMargin', , {'members': }, [':return: the margin at the lower end of the scale', '', 'The default margin is 0.', '', '.. seealso::', '', ' :py:meth:`setMargins()`', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.upperMargin [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'upperMargin') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.upperMargin', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.upperMargin', , {'members': }, [':return: the margin at the upper end of the scale', '', 'The default margin is 0.', '', '.. seealso::', '', ' :py:meth:`setMargins()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.upperMargin', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.upperMargin', , {'members': }, [':return: the margin at the upper end of the scale', '', 'The default margin is 0.', '', '.. seealso::', '', ' :py:meth:`setMargins()`', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.setMargins [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'setMargins') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.setMargins', , {'members': }, '(lower, upper)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.setMargins', , {'members': }, ["Specify margins at the scale's endpoints", '', ":param float lower: minimum distance between the scale's lower boundary and the smallest enclosed value", ":param float upper: minimum distance between the scale's upper boundary and the greatest enclosed value", ':return: A clone of the transfomation', '', 'Margins can be used to leave a minimum amount of space between', 'the enclosed intervals and the boundaries of the scale.', '', '.. warning::', '', ' `QwtLogScaleEngine` measures the margins in decades.', '', '.. seealso::', '', ' :py:meth:`upperMargin()`, :py:meth:`lowerMargin()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.setMargins', , {'members': }, '(lower, upper)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.setMargins', , {'members': }, ["Specify margins at the scale's endpoints", '', ":param float lower: minimum distance between the scale's lower boundary and the smallest enclosed value", ":param float upper: minimum distance between the scale's upper boundary and the greatest enclosed value", ':return: A clone of the transfomation', '', 'Margins can be used to leave a minimum amount of space between', 'the enclosed intervals and the boundaries of the scale.', '', '.. warning::', '', ' `QwtLogScaleEngine` measures the margins in decades.', '', '.. seealso::', '', ' :py:meth:`upperMargin()`, :py:meth:`lowerMargin()`', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.divideInterval [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'divideInterval') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.divideInterval', , {'members': }, '(intervalSize, numSteps)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.divideInterval', , {'members': }, ['Calculate a step size for a given interval', '', ':param float intervalSize: Interval size', ':param float numSteps: Number of steps', ':return: Step size', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.divideInterval', , {'members': }, '(intervalSize, numSteps)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.divideInterval', , {'members': }, ['Calculate a step size for a given interval', '', ':param float intervalSize: Interval size', ':param float numSteps: Number of steps', ':return: Step size', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.contains [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'contains') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.contains', , {'members': }, '(interval, value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.contains', , {'members': }, ['Check if an interval "contains" a value', '', ':param float intervalSize: Interval size', ':param float value: Value', ':return: True, when the value is inside the interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.contains', , {'members': }, '(interval, value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.contains', , {'members': }, ['Check if an interval "contains" a value', '', ':param float intervalSize: Interval size', ':param float value: Value', ':return: True, when the value is inside the interval', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.strip [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'strip') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.strip', , {'members': }, '(ticks, interval)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.strip', , {'members': }, ['Remove ticks from a list, that are not inside an interval', '', ':param list ticks: Tick list', ':param qwt.interval.QwtInterval interval: Interval', ':return: Stripped tick list', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.strip', , {'members': }, '(ticks, interval)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.strip', , {'members': }, ['Remove ticks from a list, that are not inside an interval', '', ':param list ticks: Tick list', ':param qwt.interval.QwtInterval interval: Interval', ':return: Stripped tick list', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.buildInterval [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'buildInterval') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.buildInterval', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.buildInterval', , {'members': }, ['Build an interval around a value', '', 'In case of v == 0.0 the interval is [-0.5, 0.5],', 'otherwide it is [0.5 * v, 1.5 * v]', '', ':param float value: Initial value', ':return: Calculated interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.buildInterval', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.buildInterval', , {'members': }, ['Build an interval around a value', '', 'In case of v == 0.0 the interval is [-0.5, 0.5],', 'otherwide it is [0.5 * v, 1.5 * v]', '', ':param float value: Initial value', ':return: Calculated interval', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.setAttribute [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'setAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.setAttribute', , {'members': }, '(attribute, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.setAttribute', , {'members': }, ['Change a scale attribute', '', ':param int attribute: Attribute to change', ':param bool on: On/Off', ':return: Calculated interval', '', '.. seealso::', '', ' :py:meth:`testAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.setAttribute', , {'members': }, '(attribute, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.setAttribute', , {'members': }, ['Change a scale attribute', '', ':param int attribute: Attribute to change', ':param bool on: On/Off', ':return: Calculated interval', '', '.. seealso::', '', ' :py:meth:`testAttribute()`', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.testAttribute [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'testAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.testAttribute', , {'members': }, '(attribute)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.testAttribute', , {'members': }, [':param int attribute: Attribute to be tested', ':return: True, if attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.testAttribute', , {'members': }, '(attribute)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.testAttribute', , {'members': }, [':param int attribute: Attribute to be tested', ':return: True, if attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setAttribute()`', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.setAttributes [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'setAttributes') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.setAttributes', , {'members': }, '(attributes)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.setAttributes', , {'members': }, ['Change the scale attribute', '', ':param attributes: Set scale attributes', '', '.. seealso::', '', ' :py:meth:`attributes()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.setAttributes', , {'members': }, '(attributes)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.setAttributes', , {'members': }, ['Change the scale attribute', '', ':param attributes: Set scale attributes', '', '.. seealso::', '', ' :py:meth:`attributes()`', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.attributes [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'attributes') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.attributes', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.attributes', , {'members': }, [':return: Scale attributes', '', '.. seealso::', '', ' :py:meth:`setAttributes()`, :py:meth:`testAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.attributes', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.attributes', , {'members': }, [':return: Scale attributes', '', '.. seealso::', '', ' :py:meth:`setAttributes()`, :py:meth:`testAttribute()`', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.setReference [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'setReference') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.setReference', , {'members': }, '(r)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.setReference', , {'members': }, ['Specify a reference point', '', ':param float r: new reference value', '', 'The reference point is needed if options `IncludeReference` or', '`Symmetric` are active. Its default value is 0.0.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.setReference', , {'members': }, '(r)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.setReference', , {'members': }, ['Specify a reference point', '', ':param float r: new reference value', '', 'The reference point is needed if options `IncludeReference` or', '`Symmetric` are active. Its default value is 0.0.', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.reference [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'reference') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.reference', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.reference', , {'members': }, [':return: the reference value', '', '.. seealso::', '', ' :py:meth:`setReference()`, :py:meth:`setAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.reference', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.reference', , {'members': }, [':return: the reference value', '', '.. seealso::', '', ' :py:meth:`setReference()`, :py:meth:`setAttribute()`', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.setBase [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'setBase') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.setBase', , {'members': }, '(base)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.setBase', , {'members': }, ['Set the base of the scale engine', '', 'While a base of 10 is what 99.9% of all applications need', 'certain scales might need a different base: f.e 2', '', 'The default setting is 10', '', ':param int base: Base of the engine', '', '.. seealso::', '', ' :py:meth:`base()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.setBase', , {'members': }, '(base)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.setBase', , {'members': }, ['Set the base of the scale engine', '', 'While a base of 10 is what 99.9% of all applications need', 'certain scales might need a different base: f.e 2', '', 'The default setting is 10', '', ':param int base: Base of the engine', '', '.. seealso::', '', ' :py:meth:`base()`', '']) [autodoc] from qwt.scale_engine import QwtScaleEngine.base [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtScaleEngine') [autodoc] => [autodoc] getattr(_, 'base') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.base', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.base', , {'members': }, [':return: Base of the scale engine', '', '.. seealso::', '', ' :py:meth:`setBase()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtScaleEngine.base', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtScaleEngine.base', , {'members': }, [':return: Base of the scale engine', '', '.. seealso::', '', ' :py:meth:`setBase()`', '']) [autodoc] output: .. py:class:: QwtScaleEngine(base=10) @@ -16695,75 +16731,75 @@ [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLinearScaleEngine') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_engine.QwtLinearScaleEngine', , {'members': }, '(base=10)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_engine.QwtLinearScaleEngine', , {'members': }, ['A scale engine for linear scales', '', 'The step size will fit into the pattern', '\\f$\\left\\{ 1,2,5\\right\\} \\cdot 10^{n}\\f$, where n is an integer.', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA scale engine for linear scales\n\nThe step size will fit into the pattern\n\\f$\\left\\{ 1,2,5\\right\\} \\cdot 10^{n}\\f$, where n is an integer.\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 465, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_engine', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'align', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'autoScale', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'buildMajorTicks', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'buildMinorTicks', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'buildTicks', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'divideScale', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_engine.QwtLinearScaleEngine', , {'members': }, '(base=10)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_engine.QwtLinearScaleEngine', , {'members': }, ['A scale engine for linear scales', '', 'The step size will fit into the pattern', '\\f$\\left\\{ 1,2,5\\right\\} \\cdot 10^{n}\\f$, where n is an integer.', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA scale engine for linear scales\n\nThe step size will fit into the pattern\n\\f$\\left\\{ 1,2,5\\right\\} \\cdot 10^{n}\\f$, where n is an integer.\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 465, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_engine', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'align', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'autoScale', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'buildMajorTicks', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'buildMinorTicks', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'buildTicks', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'divideScale', , False, {'members': }) [autodoc] from qwt.scale_engine import QwtLinearScaleEngine.autoScale [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLinearScaleEngine') [autodoc] => [autodoc] getattr(_, 'autoScale') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLinearScaleEngine.autoScale', , {'members': }, '(maxNumSteps, x1, x2, stepSize)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLinearScaleEngine.autoScale', , {'members': }, ['Align and divide an interval', '', ':param int maxNumSteps: Max. number of steps', ':param float x1: First limit of the interval (In/Out)', ':param float x2: Second limit of the interval (In/Out)', ':param float stepSize: Step size', ':return: tuple (x1, x2, stepSize)', '', '.. seealso::', '', ' :py:meth:`setAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLinearScaleEngine.autoScale', , {'members': }, '(maxNumSteps, x1, x2, stepSize)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLinearScaleEngine.autoScale', , {'members': }, ['Align and divide an interval', '', ':param int maxNumSteps: Max. number of steps', ':param float x1: First limit of the interval (In/Out)', ':param float x2: Second limit of the interval (In/Out)', ':param float stepSize: Step size', ':return: tuple (x1, x2, stepSize)', '', '.. seealso::', '', ' :py:meth:`setAttribute()`', '']) [autodoc] from qwt.scale_engine import QwtLinearScaleEngine.divideScale [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLinearScaleEngine') [autodoc] => [autodoc] getattr(_, 'divideScale') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLinearScaleEngine.divideScale', , {'members': }, '(x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLinearScaleEngine.divideScale', , {'members': }, ['Calculate a scale division for an interval', '', ':param float x1: First interval limit', ':param float x2: Second interval limit', ':param int maxMajorSteps: Maximum for the number of major steps', ':param int maxMinorSteps: Maximum number of minor steps', ':param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one', ':return: Calculated scale division', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLinearScaleEngine.divideScale', , {'members': }, '(x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLinearScaleEngine.divideScale', , {'members': }, ['Calculate a scale division for an interval', '', ':param float x1: First interval limit', ':param float x2: Second interval limit', ':param int maxMajorSteps: Maximum for the number of major steps', ':param int maxMinorSteps: Maximum number of minor steps', ':param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one', ':return: Calculated scale division', '']) [autodoc] from qwt.scale_engine import QwtLinearScaleEngine.buildTicks [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLinearScaleEngine') [autodoc] => [autodoc] getattr(_, 'buildTicks') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLinearScaleEngine.buildTicks', , {'members': }, '(interval, stepSize, maxMinorSteps)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLinearScaleEngine.buildTicks', , {'members': }, ['Calculate ticks for an interval', '', ':param qwt.interval.QwtInterval interval: Interval', ':param float stepSize: Step size', ':param int maxMinorSteps: Maximum number of minor steps', ':return: Calculated ticks', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLinearScaleEngine.buildTicks', , {'members': }, '(interval, stepSize, maxMinorSteps)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLinearScaleEngine.buildTicks', , {'members': }, ['Calculate ticks for an interval', '', ':param qwt.interval.QwtInterval interval: Interval', ':param float stepSize: Step size', ':param int maxMinorSteps: Maximum number of minor steps', ':return: Calculated ticks', '']) [autodoc] from qwt.scale_engine import QwtLinearScaleEngine.buildMajorTicks [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLinearScaleEngine') [autodoc] => [autodoc] getattr(_, 'buildMajorTicks') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLinearScaleEngine.buildMajorTicks', , {'members': }, '(interval, stepSize)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLinearScaleEngine.buildMajorTicks', , {'members': }, ['Calculate major ticks for an interval', '', ':param qwt.interval.QwtInterval interval: Interval', ':param float stepSize: Step size', ':return: Calculated ticks', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLinearScaleEngine.buildMajorTicks', , {'members': }, '(interval, stepSize)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLinearScaleEngine.buildMajorTicks', , {'members': }, ['Calculate major ticks for an interval', '', ':param qwt.interval.QwtInterval interval: Interval', ':param float stepSize: Step size', ':return: Calculated ticks', '']) [autodoc] from qwt.scale_engine import QwtLinearScaleEngine.buildMinorTicks [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLinearScaleEngine') [autodoc] => [autodoc] getattr(_, 'buildMinorTicks') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLinearScaleEngine.buildMinorTicks', , {'members': }, '(ticks, maxMinorSteps, stepSize)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLinearScaleEngine.buildMinorTicks', , {'members': }, ['Calculate minor ticks for an interval', '', ':param list ticks: Major ticks (returned)', ':param int maxMinorSteps: Maximum number of minor steps', ':param float stepSize: Step size', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLinearScaleEngine.buildMinorTicks', , {'members': }, '(ticks, maxMinorSteps, stepSize)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLinearScaleEngine.buildMinorTicks', , {'members': }, ['Calculate minor ticks for an interval', '', ':param list ticks: Major ticks (returned)', ':param int maxMinorSteps: Maximum number of minor steps', ':param float stepSize: Step size', '']) [autodoc] from qwt.scale_engine import QwtLinearScaleEngine.align [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLinearScaleEngine') [autodoc] => [autodoc] getattr(_, 'align') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLinearScaleEngine.align', , {'members': }, '(interval, stepSize)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLinearScaleEngine.align', , {'members': }, ['Align an interval to a step size', '', 'The limits of an interval are aligned that both are integer', 'multiples of the step size.', '', ':param qwt.interval.QwtInterval interval: Interval', ':param float stepSize: Step size', ':return: Aligned interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLinearScaleEngine.align', , {'members': }, '(interval, stepSize)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLinearScaleEngine.align', , {'members': }, ['Align an interval to a step size', '', 'The limits of an interval are aligned that both are integer', 'multiples of the step size.', '', ':param qwt.interval.QwtInterval interval: Interval', ':param float stepSize: Step size', ':return: Aligned interval', '']) [autodoc] output: .. py:class:: QwtLinearScaleEngine(base=10) @@ -16861,75 +16897,75 @@ [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLogScaleEngine') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_engine.QwtLogScaleEngine', , {'members': }, '(base=10)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_engine.QwtLogScaleEngine', , {'members': }, ['A scale engine for logarithmic scales', '', 'The step size is measured in *decades* and the major step size will be', 'adjusted to fit the pattern {1,2,3,5}.10**n, where n is a natural number', 'including zero.', '', '.. warning::', '', ' The step size as well as the margins are measured in *decades*.', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA scale engine for logarithmic scales\n\nThe step size is measured in *decades* and the major step size will be\nadjusted to fit the pattern {1,2,3,5}.10**n, where n is a natural number\nincluding zero.\n\n.. warning::\n\n The step size as well as the margins are measured in *decades*.\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 626, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_engine', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'align', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'autoScale', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'buildMajorTicks', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'buildMinorTicks', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'buildTicks', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'divideScale', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_engine.QwtLogScaleEngine', , {'members': }, '(base=10)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_engine.QwtLogScaleEngine', , {'members': }, ['A scale engine for logarithmic scales', '', 'The step size is measured in *decades* and the major step size will be', 'adjusted to fit the pattern {1,2,3,5}.10**n, where n is a natural number', 'including zero.', '', '.. warning::', '', ' The step size as well as the margins are measured in *decades*.', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA scale engine for logarithmic scales\n\nThe step size is measured in *decades* and the major step size will be\nadjusted to fit the pattern {1,2,3,5}.10**n, where n is a natural number\nincluding zero.\n\n.. warning::\n\n The step size as well as the margins are measured in *decades*.\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 626, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_engine', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'align', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'autoScale', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'buildMajorTicks', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'buildMinorTicks', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'buildTicks', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'divideScale', , False, {'members': }) [autodoc] from qwt.scale_engine import QwtLogScaleEngine.autoScale [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLogScaleEngine') [autodoc] => [autodoc] getattr(_, 'autoScale') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLogScaleEngine.autoScale', , {'members': }, '(maxNumSteps, x1, x2, stepSize)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLogScaleEngine.autoScale', , {'members': }, ['Align and divide an interval', '', ':param int maxNumSteps: Max. number of steps', ':param float x1: First limit of the interval (In/Out)', ':param float x2: Second limit of the interval (In/Out)', ':param float stepSize: Step size', ':return: tuple (x1, x2, stepSize)', '', '.. seealso::', '', ' :py:meth:`setAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLogScaleEngine.autoScale', , {'members': }, '(maxNumSteps, x1, x2, stepSize)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLogScaleEngine.autoScale', , {'members': }, ['Align and divide an interval', '', ':param int maxNumSteps: Max. number of steps', ':param float x1: First limit of the interval (In/Out)', ':param float x2: Second limit of the interval (In/Out)', ':param float stepSize: Step size', ':return: tuple (x1, x2, stepSize)', '', '.. seealso::', '', ' :py:meth:`setAttribute()`', '']) [autodoc] from qwt.scale_engine import QwtLogScaleEngine.divideScale [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLogScaleEngine') [autodoc] => [autodoc] getattr(_, 'divideScale') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLogScaleEngine.divideScale', , {'members': }, '(x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLogScaleEngine.divideScale', , {'members': }, ['Calculate a scale division for an interval', '', ':param float x1: First interval limit', ':param float x2: Second interval limit', ':param int maxMajorSteps: Maximum for the number of major steps', ':param int maxMinorSteps: Maximum number of minor steps', ':param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one', ':return: Calculated scale division', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLogScaleEngine.divideScale', , {'members': }, '(x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLogScaleEngine.divideScale', , {'members': }, ['Calculate a scale division for an interval', '', ':param float x1: First interval limit', ':param float x2: Second interval limit', ':param int maxMajorSteps: Maximum for the number of major steps', ':param int maxMinorSteps: Maximum number of minor steps', ':param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one', ':return: Calculated scale division', '']) [autodoc] from qwt.scale_engine import QwtLogScaleEngine.buildTicks [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLogScaleEngine') [autodoc] => [autodoc] getattr(_, 'buildTicks') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLogScaleEngine.buildTicks', , {'members': }, '(interval, stepSize, maxMinorSteps)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLogScaleEngine.buildTicks', , {'members': }, ['Calculate ticks for an interval', '', ':param qwt.interval.QwtInterval interval: Interval', ':param float stepSize: Step size', ':param int maxMinorSteps: Maximum number of minor steps', ':return: Calculated ticks', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLogScaleEngine.buildTicks', , {'members': }, '(interval, stepSize, maxMinorSteps)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLogScaleEngine.buildTicks', , {'members': }, ['Calculate ticks for an interval', '', ':param qwt.interval.QwtInterval interval: Interval', ':param float stepSize: Step size', ':param int maxMinorSteps: Maximum number of minor steps', ':return: Calculated ticks', '']) [autodoc] from qwt.scale_engine import QwtLogScaleEngine.buildMajorTicks [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLogScaleEngine') [autodoc] => [autodoc] getattr(_, 'buildMajorTicks') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLogScaleEngine.buildMajorTicks', , {'members': }, '(interval, stepSize)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLogScaleEngine.buildMajorTicks', , {'members': }, ['Calculate major ticks for an interval', '', ':param qwt.interval.QwtInterval interval: Interval', ':param float stepSize: Step size', ':return: Calculated ticks', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLogScaleEngine.buildMajorTicks', , {'members': }, '(interval, stepSize)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLogScaleEngine.buildMajorTicks', , {'members': }, ['Calculate major ticks for an interval', '', ':param qwt.interval.QwtInterval interval: Interval', ':param float stepSize: Step size', ':return: Calculated ticks', '']) [autodoc] from qwt.scale_engine import QwtLogScaleEngine.buildMinorTicks [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLogScaleEngine') [autodoc] => [autodoc] getattr(_, 'buildMinorTicks') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLogScaleEngine.buildMinorTicks', , {'members': }, '(ticks, maxMinorSteps, stepSize)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLogScaleEngine.buildMinorTicks', , {'members': }, ['Calculate minor ticks for an interval', '', ':param list ticks: Major ticks (returned)', ':param int maxMinorSteps: Maximum number of minor steps', ':param float stepSize: Step size', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLogScaleEngine.buildMinorTicks', , {'members': }, '(ticks, maxMinorSteps, stepSize)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLogScaleEngine.buildMinorTicks', , {'members': }, ['Calculate minor ticks for an interval', '', ':param list ticks: Major ticks (returned)', ':param int maxMinorSteps: Maximum number of minor steps', ':param float stepSize: Step size', '']) [autodoc] from qwt.scale_engine import QwtLogScaleEngine.align [autodoc] import qwt.scale_engine => [autodoc] getattr(_, 'QwtLogScaleEngine') [autodoc] => [autodoc] getattr(_, 'align') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLogScaleEngine.align', , {'members': }, '(interval, stepSize)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLogScaleEngine.align', , {'members': }, ['Align an interval to a step size', '', 'The limits of an interval are aligned that both are integer', 'multiples of the step size.', '', ':param qwt.interval.QwtInterval interval: Interval', ':param float stepSize: Step size', ':return: Aligned interval', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_engine.QwtLogScaleEngine.align', , {'members': }, '(interval, stepSize)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_engine.QwtLogScaleEngine.align', , {'members': }, ['Align an interval to a step size', '', 'The limits of an interval are aligned that both are integer', 'multiples of the step size.', '', ':param qwt.interval.QwtInterval interval: Interval', ':param float stepSize: Step size', ':return: Aligned interval', '']) [autodoc] output: .. py:class:: QwtLogScaleEngine(base=10) @@ -17055,269 +17091,269 @@ [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_draw.QwtAbstractScaleDraw', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_draw.QwtAbstractScaleDraw', , {'members': }, ['A abstract base class for drawing scales', '', '`QwtAbstractScaleDraw` can be used to draw linear or logarithmic scales.', '', 'After a scale division has been specified as a `QwtScaleDiv` object', 'using `setScaleDiv()`, the scale can be drawn with the `draw()` member.', '', 'Scale components:', '', ' * `QwtAbstractScaleDraw.Backbone`: Backbone = the line where the ticks are located', ' * `QwtAbstractScaleDraw.Ticks`: Ticks', ' * `QwtAbstractScaleDraw.Labels`: Labels', '', '.. py:class:: QwtAbstractScaleDraw()', '', ' The range of the scale is initialized to [0, 100],', ' The spacing (distance between ticks and labels) is', ' set to 4, the tick lengths are set to 4,6 and 8 pixels', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'Backbone', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Labels', 4, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Ticks', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.scale_draw', '__firstlineno__': 72, '__doc__': '\nA abstract base class for drawing scales\n\n`QwtAbstractScaleDraw` can be used to draw linear or logarithmic scales.\n\nAfter a scale division has been specified as a `QwtScaleDiv` object\nusing `setScaleDiv()`, the scale can be drawn with the `draw()` member.\n\nScale components:\n\n * `QwtAbstractScaleDraw.Backbone`: Backbone = the line where the ticks are located\n * `QwtAbstractScaleDraw.Ticks`: Ticks\n * `QwtAbstractScaleDraw.Labels`: Labels\n\n.. py:class:: QwtAbstractScaleDraw()\n\n The range of the scale is initialized to [0, 100],\n The spacing (distance between ticks and labels) is\n set to 4, the tick lengths are set to 4,6 and 8 pixels\n', 'Backbone': 1, 'Ticks': 2, 'Labels': 4, '__init__': , 'extent': , 'drawTick': , 'drawBackbone': , 'drawLabel': , 'enableComponent': , 'hasComponent': , 'setScaleDiv': , 'setTransformation': , 'scaleMap': , 'scaleDiv': , 'setPenWidth': , 'penWidth': , 'draw': , 'setSpacing': , 'spacing': , 'setMinimumExtent': , 'minimumExtent': , 'setTickLength': , 'tickLength': , 'maxTickLength': , 'setTickLighterFactor': , 'tickLighterFactor': , 'label': , 'tickLabel': , 'invalidateCache': , '__static_attributes__': ('__data',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA abstract base class for drawing scales\n\n`QwtAbstractScaleDraw` can be used to draw linear or logarithmic scales.\n\nAfter a scale division has been specified as a `QwtScaleDiv` object\nusing `setScaleDiv()`, the scale can be drawn with the `draw()` member.\n\nScale components:\n\n * `QwtAbstractScaleDraw.Backbone`: Backbone = the line where the ticks are located\n * `QwtAbstractScaleDraw.Ticks`: Ticks\n * `QwtAbstractScaleDraw.Labels`: Labels\n\n.. py:class:: QwtAbstractScaleDraw()\n\n The range of the scale is initialized to [0, 100],\n The spacing (distance between ticks and labels) is\n set to 4, the tick lengths are set to 4,6 and 8 pixels\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 72, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_draw', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawBackbone', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawLabel', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawTick', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'enableComponent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'extent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'hasComponent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invalidateCache', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'label', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'maxTickLength', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'minimumExtent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'penWidth', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'scaleDiv', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'scaleMap', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setMinimumExtent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setPenWidth', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setScaleDiv', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setSpacing', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setTickLength', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setTickLighterFactor', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setTransformation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'spacing', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'tickLabel', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'tickLength', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'tickLighterFactor', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_draw.QwtAbstractScaleDraw', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_draw.QwtAbstractScaleDraw', , {'members': }, ['A abstract base class for drawing scales', '', '`QwtAbstractScaleDraw` can be used to draw linear or logarithmic scales.', '', 'After a scale division has been specified as a `QwtScaleDiv` object', 'using `setScaleDiv()`, the scale can be drawn with the `draw()` member.', '', 'Scale components:', '', ' * `QwtAbstractScaleDraw.Backbone`: Backbone = the line where the ticks are located', ' * `QwtAbstractScaleDraw.Ticks`: Ticks', ' * `QwtAbstractScaleDraw.Labels`: Labels', '', '.. py:class:: QwtAbstractScaleDraw()', '', ' The range of the scale is initialized to [0, 100],', ' The spacing (distance between ticks and labels) is', ' set to 4, the tick lengths are set to 4,6 and 8 pixels', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'Backbone', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Labels', 4, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Ticks', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.scale_draw', '__firstlineno__': 72, '__doc__': '\nA abstract base class for drawing scales\n\n`QwtAbstractScaleDraw` can be used to draw linear or logarithmic scales.\n\nAfter a scale division has been specified as a `QwtScaleDiv` object\nusing `setScaleDiv()`, the scale can be drawn with the `draw()` member.\n\nScale components:\n\n * `QwtAbstractScaleDraw.Backbone`: Backbone = the line where the ticks are located\n * `QwtAbstractScaleDraw.Ticks`: Ticks\n * `QwtAbstractScaleDraw.Labels`: Labels\n\n.. py:class:: QwtAbstractScaleDraw()\n\n The range of the scale is initialized to [0, 100],\n The spacing (distance between ticks and labels) is\n set to 4, the tick lengths are set to 4,6 and 8 pixels\n', 'Backbone': 1, 'Ticks': 2, 'Labels': 4, '__init__': , 'extent': , 'drawTick': , 'drawBackbone': , 'drawLabel': , 'enableComponent': , 'hasComponent': , 'setScaleDiv': , 'setTransformation': , 'scaleMap': , 'scaleDiv': , 'setPenWidth': , 'penWidth': , 'draw': , 'setSpacing': , 'spacing': , 'setMinimumExtent': , 'minimumExtent': , 'setTickLength': , 'tickLength': , 'maxTickLength': , 'setTickLighterFactor': , 'tickLighterFactor': , 'label': , 'tickLabel': , 'invalidateCache': , '__static_attributes__': ('__data',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA abstract base class for drawing scales\n\n`QwtAbstractScaleDraw` can be used to draw linear or logarithmic scales.\n\nAfter a scale division has been specified as a `QwtScaleDiv` object\nusing `setScaleDiv()`, the scale can be drawn with the `draw()` member.\n\nScale components:\n\n * `QwtAbstractScaleDraw.Backbone`: Backbone = the line where the ticks are located\n * `QwtAbstractScaleDraw.Ticks`: Ticks\n * `QwtAbstractScaleDraw.Labels`: Labels\n\n.. py:class:: QwtAbstractScaleDraw()\n\n The range of the scale is initialized to [0, 100],\n The spacing (distance between ticks and labels) is\n set to 4, the tick lengths are set to 4,6 and 8 pixels\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 72, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_draw', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawBackbone', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawLabel', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawTick', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'enableComponent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'extent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'hasComponent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invalidateCache', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'label', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'maxTickLength', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'minimumExtent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'penWidth', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'scaleDiv', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'scaleMap', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setMinimumExtent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setPenWidth', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setScaleDiv', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setSpacing', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setTickLength', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setTickLighterFactor', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setTransformation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'spacing', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'tickLabel', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'tickLength', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'tickLighterFactor', , False, {'members': }) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.extent [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'extent') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.extent', , {'members': }, '(font)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.extent', , {'members': }, ['Calculate the extent', '', 'The extent is the distance from the baseline to the outermost', 'pixel of the scale draw in opposite to its orientation.', 'It is at least minimumExtent() pixels.', '', ':param QFont font: Font used for drawing the tick labels', ':return: Number of pixels', '', '.. seealso::', '', ' :py:meth:`setMinimumExtent()`, :py:meth:`minimumExtent()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.extent', , {'members': }, '(font)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.extent', , {'members': }, ['Calculate the extent', '', 'The extent is the distance from the baseline to the outermost', 'pixel of the scale draw in opposite to its orientation.', 'It is at least minimumExtent() pixels.', '', ':param QFont font: Font used for drawing the tick labels', ':return: Number of pixels', '', '.. seealso::', '', ' :py:meth:`setMinimumExtent()`, :py:meth:`minimumExtent()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.drawTick [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'drawTick') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.drawTick', , {'members': }, '(painter, value, len_)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.drawTick', , {'members': }, ['Draw a tick', '', ':param QPainter painter: Painter', ':param float value: Value of the tick', ':param float len: Length of the tick', '', '.. seealso::', '', ' :py:meth:`drawBackbone()`, :py:meth:`drawLabel()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.drawTick', , {'members': }, '(painter, value, len_)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.drawTick', , {'members': }, ['Draw a tick', '', ':param QPainter painter: Painter', ':param float value: Value of the tick', ':param float len: Length of the tick', '', '.. seealso::', '', ' :py:meth:`drawBackbone()`, :py:meth:`drawLabel()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.drawBackbone [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'drawBackbone') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.drawBackbone', , {'members': }, '(painter)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.drawBackbone', , {'members': }, ['Draws the baseline of the scale', '', ':param QPainter painter: Painter', '', '.. seealso::', '', ' :py:meth:`drawTick()`, :py:meth:`drawLabel()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.drawBackbone', , {'members': }, '(painter)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.drawBackbone', , {'members': }, ['Draws the baseline of the scale', '', ':param QPainter painter: Painter', '', '.. seealso::', '', ' :py:meth:`drawTick()`, :py:meth:`drawLabel()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.drawLabel [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'drawLabel') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.drawLabel', , {'members': }, '(painter, value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.drawLabel', , {'members': }, ['Draws the label for a major scale tick', '', ':param QPainter painter: Painter', ':param float value: Value', '', '.. seealso::', '', ' :py:meth:`drawTick()`, :py:meth:`drawBackbone()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.drawLabel', , {'members': }, '(painter, value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.drawLabel', , {'members': }, ['Draws the label for a major scale tick', '', ':param QPainter painter: Painter', ':param float value: Value', '', '.. seealso::', '', ' :py:meth:`drawTick()`, :py:meth:`drawBackbone()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.enableComponent [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'enableComponent') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.enableComponent', , {'members': }, '(component, enable)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.enableComponent', , {'members': }, ['En/Disable a component of the scale', '', ':param int component: Scale component', ':param bool enable: On/Off', '', '.. seealso::', '', ' :py:meth:`hasComponent()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.enableComponent', , {'members': }, '(component, enable)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.enableComponent', , {'members': }, ['En/Disable a component of the scale', '', ':param int component: Scale component', ':param bool enable: On/Off', '', '.. seealso::', '', ' :py:meth:`hasComponent()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.hasComponent [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'hasComponent') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.hasComponent', , {'members': }, '(component)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.hasComponent', , {'members': }, ['Check if a component is enabled', '', ':param int component: Component type', ':return: True, when component is enabled', '', '.. seealso::', '', ' :py:meth:`enableComponent()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.hasComponent', , {'members': }, '(component)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.hasComponent', , {'members': }, ['Check if a component is enabled', '', ':param int component: Component type', ':return: True, when component is enabled', '', '.. seealso::', '', ' :py:meth:`enableComponent()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.setScaleDiv [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'setScaleDiv') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setScaleDiv', , {'members': }, '(scaleDiv)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setScaleDiv', , {'members': }, ['Change the scale division', '', ':param qwt.scale_div.QwtScaleDiv scaleDiv: New scale division', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setScaleDiv', , {'members': }, '(scaleDiv)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setScaleDiv', , {'members': }, ['Change the scale division', '', ':param qwt.scale_div.QwtScaleDiv scaleDiv: New scale division', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.setTransformation [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'setTransformation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setTransformation', , {'members': }, '(transformation)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setTransformation', , {'members': }, ['Change the transformation of the scale', '', ':param qwt.transform.QwtTransform transformation: New scale transformation', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setTransformation', , {'members': }, '(transformation)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setTransformation', , {'members': }, ['Change the transformation of the scale', '', ':param qwt.transform.QwtTransform transformation: New scale transformation', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.scaleMap [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'scaleMap') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.scaleMap', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.scaleMap', , {'members': }, [':return: Map how to translate between scale and pixel values', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.scaleMap', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.scaleMap', , {'members': }, [':return: Map how to translate between scale and pixel values', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.scaleDiv [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'scaleDiv') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.scaleDiv', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.scaleDiv', , {'members': }, [':return: scale division', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.scaleDiv', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.scaleDiv', , {'members': }, [':return: scale division', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.setPenWidth [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'setPenWidth') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setPenWidth', , {'members': }, '(width)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setPenWidth', , {'members': }, ['Specify the width of the scale pen', '', ':param int width: Pen width', '', '.. seealso::', '', ' :py:meth:`penWidth()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setPenWidth', , {'members': }, '(width)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setPenWidth', , {'members': }, ['Specify the width of the scale pen', '', ':param int width: Pen width', '', '.. seealso::', '', ' :py:meth:`penWidth()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.penWidth [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'penWidth') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.penWidth', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.penWidth', , {'members': }, [':return: Scale pen width', '', '.. seealso::', '', ' :py:meth:`setPenWidth()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.penWidth', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.penWidth', , {'members': }, [':return: Scale pen width', '', '.. seealso::', '', ' :py:meth:`setPenWidth()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.draw [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'draw') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.draw', , {'members': }, '(painter, palette)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.draw', , {'members': }, ['Draw the scale', '', ':param QPainter painter: The painter', ':param QPalette palette: Palette, text color is used for the labels,', ' foreground color for ticks and backbone', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.draw', , {'members': }, '(painter, palette)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.draw', , {'members': }, ['Draw the scale', '', ':param QPainter painter: The painter', ':param QPalette palette: Palette, text color is used for the labels,', ' foreground color for ticks and backbone', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.setSpacing [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'setSpacing') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setSpacing', , {'members': }, '(spacing)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setSpacing', , {'members': }, ['Set the spacing between tick and labels', '', 'The spacing is the distance between ticks and labels.', 'The default spacing is 4 pixels.', '', ':param float spacing: Spacing', '', '.. seealso::', '', ' :py:meth:`spacing()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setSpacing', , {'members': }, '(spacing)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setSpacing', , {'members': }, ['Set the spacing between tick and labels', '', 'The spacing is the distance between ticks and labels.', 'The default spacing is 4 pixels.', '', ':param float spacing: Spacing', '', '.. seealso::', '', ' :py:meth:`spacing()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.spacing [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'spacing') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.spacing', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.spacing', , {'members': }, ['Get the spacing', '', 'The spacing is the distance between ticks and labels.', 'The default spacing is 4 pixels.', '', ':return: Spacing', '', '.. seealso::', '', ' :py:meth:`setSpacing()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.spacing', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.spacing', , {'members': }, ['Get the spacing', '', 'The spacing is the distance between ticks and labels.', 'The default spacing is 4 pixels.', '', ':return: Spacing', '', '.. seealso::', '', ' :py:meth:`setSpacing()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.setMinimumExtent [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'setMinimumExtent') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setMinimumExtent', , {'members': }, '(minExtent)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setMinimumExtent', , {'members': }, ['Set a minimum for the extent', '', 'The extent is calculated from the components of the', 'scale draw. In situations, where the labels are', 'changing and the layout depends on the extent (f.e scrolling', 'a scale), setting an upper limit as minimum extent will', 'avoid jumps of the layout.', '', ':param float minExtent: Minimum extent', '', '.. seealso::', '', ' :py:meth:`extent()`, :py:meth:`minimumExtent()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setMinimumExtent', , {'members': }, '(minExtent)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setMinimumExtent', , {'members': }, ['Set a minimum for the extent', '', 'The extent is calculated from the components of the', 'scale draw. In situations, where the labels are', 'changing and the layout depends on the extent (f.e scrolling', 'a scale), setting an upper limit as minimum extent will', 'avoid jumps of the layout.', '', ':param float minExtent: Minimum extent', '', '.. seealso::', '', ' :py:meth:`extent()`, :py:meth:`minimumExtent()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.minimumExtent [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'minimumExtent') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.minimumExtent', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.minimumExtent', , {'members': }, ['Get the minimum extent', '', ':return: Minimum extent', '', '.. seealso::', '', ' :py:meth:`extent()`, :py:meth:`setMinimumExtent()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.minimumExtent', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.minimumExtent', , {'members': }, ['Get the minimum extent', '', ':return: Minimum extent', '', '.. seealso::', '', ' :py:meth:`extent()`, :py:meth:`setMinimumExtent()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.setTickLength [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'setTickLength') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setTickLength', , {'members': }, '(tick_type, length)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setTickLength', , {'members': }, ['Set the length of the ticks', '', ':param int tick_type: Tick type', ':param float length: New length', '', '.. warning::', '', ' the length is limited to [0..1000]', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setTickLength', , {'members': }, '(tick_type, length)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setTickLength', , {'members': }, ['Set the length of the ticks', '', ':param int tick_type: Tick type', ':param float length: New length', '', '.. warning::', '', ' the length is limited to [0..1000]', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.tickLength [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'tickLength') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.tickLength', , {'members': }, '(tick_type)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.tickLength', , {'members': }, [':param int tick_type: Tick type', ':return: Length of the ticks', '', '.. seealso::', '', ' :py:meth:`setTickLength()`, :py:meth:`maxTickLength()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.tickLength', , {'members': }, '(tick_type)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.tickLength', , {'members': }, [':param int tick_type: Tick type', ':return: Length of the ticks', '', '.. seealso::', '', ' :py:meth:`setTickLength()`, :py:meth:`maxTickLength()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.maxTickLength [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'maxTickLength') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.maxTickLength', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.maxTickLength', , {'members': }, [':return: Length of the longest tick', '', 'Useful for layout calculations', '', '.. seealso::', '', ' :py:meth:`tickLength()`, :py:meth:`setTickLength()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.maxTickLength', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.maxTickLength', , {'members': }, [':return: Length of the longest tick', '', 'Useful for layout calculations', '', '.. seealso::', '', ' :py:meth:`tickLength()`, :py:meth:`setTickLength()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.setTickLighterFactor [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'setTickLighterFactor') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setTickLighterFactor', , {'members': }, '(tick_type, factor)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setTickLighterFactor', , {'members': }, ['Set the color lighter factor of the ticks', '', ':param int tick_type: Tick type', ':param int factor: New factor', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setTickLighterFactor', , {'members': }, '(tick_type, factor)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.setTickLighterFactor', , {'members': }, ['Set the color lighter factor of the ticks', '', ':param int tick_type: Tick type', ':param int factor: New factor', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.tickLighterFactor [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'tickLighterFactor') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.tickLighterFactor', , {'members': }, '(tick_type)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.tickLighterFactor', , {'members': }, [':param int tick_type: Tick type', ':return: Color lighter factor of the ticks', '', '.. seealso::', '', ' :py:meth:`setTickLighterFactor()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.tickLighterFactor', , {'members': }, '(tick_type)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.tickLighterFactor', , {'members': }, [':param int tick_type: Tick type', ':return: Color lighter factor of the ticks', '', '.. seealso::', '', ' :py:meth:`setTickLighterFactor()`', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.label [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'label') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.label', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.label', , {'members': }, ['Convert a value into its representing label', '', 'The value is converted to a plain text using', '`QLocale().toString(value)`.', 'This method is often overloaded by applications to have individual', 'labels.', '', ':param float value: Value', ':return: Label string', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.label', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.label', , {'members': }, ['Convert a value into its representing label', '', 'The value is converted to a plain text using', '`QLocale().toString(value)`.', 'This method is often overloaded by applications to have individual', 'labels.', '', ':param float value: Value', ':return: Label string', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.tickLabel [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'tickLabel') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.tickLabel', , {'members': }, '(font, value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.tickLabel', , {'members': }, ['Convert a value into its representing label and cache it.', '', 'The conversion between value and label is called very often', 'in the layout and painting code. Unfortunately the', 'calculation of the label sizes might be slow (really slow', "for rich text in Qt4), so it's necessary to cache the labels.", '', ':param QFont font: Font', ':param float value: Value', ':return: Tuple (tick label, text size)', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.tickLabel', , {'members': }, '(font, value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.tickLabel', , {'members': }, ['Convert a value into its representing label and cache it.', '', 'The conversion between value and label is called very often', 'in the layout and painting code. Unfortunately the', 'calculation of the label sizes might be slow (really slow', "for rich text in Qt4), so it's necessary to cache the labels.", '', ':param QFont font: Font', ':param float value: Value', ':return: Tuple (tick label, text size)', '']) [autodoc] from qwt.scale_draw import QwtAbstractScaleDraw.invalidateCache [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtAbstractScaleDraw') [autodoc] => [autodoc] getattr(_, 'invalidateCache') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.invalidateCache', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.invalidateCache', , {'members': }, ['Invalidate the cache used by `tickLabel()`', '', 'The cache is invalidated, when a new `QwtScaleDiv` is set. If', 'the labels need to be changed. while the same `QwtScaleDiv` is set,', '`invalidateCache()` needs to be called manually.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.invalidateCache', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtAbstractScaleDraw.invalidateCache', , {'members': }, ['Invalidate the cache used by `tickLabel()`', '', 'The cache is invalidated, when a new `QwtScaleDiv` is set. If', 'the labels need to be changed. while the same `QwtScaleDiv` is set,', '`invalidateCache()` needs to be called manually.', '']) [autodoc] output: .. py:class:: QwtAbstractScaleDraw() @@ -17673,292 +17709,292 @@ [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_draw.QwtScaleDraw', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_draw.QwtScaleDraw', , {'members': }, ['A class for drawing scales', '', 'QwtScaleDraw can be used to draw linear or logarithmic scales.', 'A scale has a position, an alignment and a length, which can be specified .', 'The labels can be rotated and aligned', 'to the ticks using `setLabelRotation()` and `setLabelAlignment()`.', '', 'After a scale division has been specified as a QwtScaleDiv object', 'using `QwtAbstractScaleDraw.setScaleDiv(scaleDiv)`,', 'the scale can be drawn with the `QwtAbstractScaleDraw.draw()` member.', '', 'Alignment of the scale draw:', '', ' * `QwtScaleDraw.BottomScale`: The scale is below', ' * `QwtScaleDraw.TopScale`: The scale is above', ' * `QwtScaleDraw.LeftScale`: The scale is left', ' * `QwtScaleDraw.RightScale`: The scale is right', '', '.. py:class:: QwtScaleDraw()', '', ' The range of the scale is initialized to [0, 100],', ' The position is at (0, 0) with a length of 100.', ' The orientation is `QwtAbstractScaleDraw.Bottom`.', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'BottomScale', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Flags', (, , , ), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'LeftScale', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'RightScale', 3, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'TopScale', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA class for drawing scales\n\nQwtScaleDraw can be used to draw linear or logarithmic scales.\nA scale has a position, an alignment and a length, which can be specified .\nThe labels can be rotated and aligned\nto the ticks using `setLabelRotation()` and `setLabelAlignment()`.\n\nAfter a scale division has been specified as a QwtScaleDiv object\nusing `QwtAbstractScaleDraw.setScaleDiv(scaleDiv)`,\nthe scale can be drawn with the `QwtAbstractScaleDraw.draw()` member.\n\nAlignment of the scale draw:\n\n * `QwtScaleDraw.BottomScale`: The scale is below\n * `QwtScaleDraw.TopScale`: The scale is above\n * `QwtScaleDraw.LeftScale`: The scale is left\n * `QwtScaleDraw.RightScale`: The scale is right\n\n.. py:class:: QwtScaleDraw()\n\n The range of the scale is initialized to [0, 100],\n The position is at (0, 0) with a length of 100.\n The orientation is `QwtAbstractScaleDraw.Bottom`.\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 484, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_draw', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data', '_max_label_sizes'), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '_get_max_label_size', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'alignment', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'boundingLabelRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawBackbone', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawLabel', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawTick', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'extent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'getBorderDistHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'labelAlignment', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'labelAutoSize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'labelPosition', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'labelRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'labelRotation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'labelSize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'labelTransformation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'length', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'maxLabelHeight', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'maxLabelWidth', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'minLabelDist', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'minLength', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'move', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'orientation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'pos', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setAlignment', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLabelAlignment', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLabelAutoSize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLabelRotation', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLength', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'updateMap', , True, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.scale_draw.QwtScaleDraw', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.scale_draw.QwtScaleDraw', , {'members': }, ['A class for drawing scales', '', 'QwtScaleDraw can be used to draw linear or logarithmic scales.', 'A scale has a position, an alignment and a length, which can be specified .', 'The labels can be rotated and aligned', 'to the ticks using `setLabelRotation()` and `setLabelAlignment()`.', '', 'After a scale division has been specified as a QwtScaleDiv object', 'using `QwtAbstractScaleDraw.setScaleDiv(scaleDiv)`,', 'the scale can be drawn with the `QwtAbstractScaleDraw.draw()` member.', '', 'Alignment of the scale draw:', '', ' * `QwtScaleDraw.BottomScale`: The scale is below', ' * `QwtScaleDraw.TopScale`: The scale is above', ' * `QwtScaleDraw.LeftScale`: The scale is left', ' * `QwtScaleDraw.RightScale`: The scale is right', '', '.. py:class:: QwtScaleDraw()', '', ' The range of the scale is initialized to [0, 100],', ' The position is at (0, 0) with a length of 100.', ' The orientation is `QwtAbstractScaleDraw.Bottom`.', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'BottomScale', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Flags', (, , , ), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'LeftScale', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'RightScale', 3, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'TopScale', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA class for drawing scales\n\nQwtScaleDraw can be used to draw linear or logarithmic scales.\nA scale has a position, an alignment and a length, which can be specified .\nThe labels can be rotated and aligned\nto the ticks using `setLabelRotation()` and `setLabelAlignment()`.\n\nAfter a scale division has been specified as a QwtScaleDiv object\nusing `QwtAbstractScaleDraw.setScaleDiv(scaleDiv)`,\nthe scale can be drawn with the `QwtAbstractScaleDraw.draw()` member.\n\nAlignment of the scale draw:\n\n * `QwtScaleDraw.BottomScale`: The scale is below\n * `QwtScaleDraw.TopScale`: The scale is above\n * `QwtScaleDraw.LeftScale`: The scale is left\n * `QwtScaleDraw.RightScale`: The scale is right\n\n.. py:class:: QwtScaleDraw()\n\n The range of the scale is initialized to [0, 100],\n The position is at (0, 0) with a length of 100.\n The orientation is `QwtAbstractScaleDraw.Bottom`.\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 484, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.scale_draw', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data', '_max_label_sizes'), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '_get_max_label_size', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'alignment', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'boundingLabelRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawBackbone', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawLabel', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawTick', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'extent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'getBorderDistHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'labelAlignment', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'labelAutoSize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'labelPosition', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'labelRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'labelRotation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'labelSize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'labelTransformation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'length', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'maxLabelHeight', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'maxLabelWidth', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'minLabelDist', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'minLength', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'move', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'orientation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'pos', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setAlignment', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLabelAlignment', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLabelAutoSize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLabelRotation', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLength', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'updateMap', , True, {'members': }) [autodoc] from qwt.scale_draw import QwtScaleDraw.alignment [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'alignment') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.alignment', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.alignment', , {'members': }, [':return: Alignment of the scale', '', '.. seealso::', '', ' :py:meth:`setAlignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.alignment', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.alignment', , {'members': }, [':return: Alignment of the scale', '', '.. seealso::', '', ' :py:meth:`setAlignment()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.setAlignment [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'setAlignment') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.setAlignment', , {'members': }, '(align)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.setAlignment', , {'members': }, ['Set the alignment of the scale', '', ':param int align: Alignment of the scale', '', 'Alignment of the scale draw:', '', ' * `QwtScaleDraw.BottomScale`: The scale is below', ' * `QwtScaleDraw.TopScale`: The scale is above', ' * `QwtScaleDraw.LeftScale`: The scale is left', ' * `QwtScaleDraw.RightScale`: The scale is right', '', ' The default alignment is `QwtScaleDraw.BottomScale`', '', '.. seealso::', '', ' :py:meth:`alignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.setAlignment', , {'members': }, '(align)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.setAlignment', , {'members': }, ['Set the alignment of the scale', '', ':param int align: Alignment of the scale', '', 'Alignment of the scale draw:', '', ' * `QwtScaleDraw.BottomScale`: The scale is below', ' * `QwtScaleDraw.TopScale`: The scale is above', ' * `QwtScaleDraw.LeftScale`: The scale is left', ' * `QwtScaleDraw.RightScale`: The scale is right', '', ' The default alignment is `QwtScaleDraw.BottomScale`', '', '.. seealso::', '', ' :py:meth:`alignment()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.orientation [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'orientation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.orientation', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.orientation', , {'members': }, ['Return the orientation', '', 'TopScale, BottomScale are horizontal (`Qt.Horizontal`) scales,', 'LeftScale, RightScale are vertical (`Qt.Vertical`) scales.', '', ':return: Orientation of the scale', '', '.. seealso::', '', ' :py:meth:`alignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.orientation', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.orientation', , {'members': }, ['Return the orientation', '', 'TopScale, BottomScale are horizontal (`Qt.Horizontal`) scales,', 'LeftScale, RightScale are vertical (`Qt.Vertical`) scales.', '', ':return: Orientation of the scale', '', '.. seealso::', '', ' :py:meth:`alignment()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.getBorderDistHint [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'getBorderDistHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.getBorderDistHint', , {'members': }, '(font)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.getBorderDistHint', , {'members': }, ['Determine the minimum border distance', '', 'This member function returns the minimum space', "needed to draw the mark labels at the scale's endpoints.", '', ':param QFont font: Font', ':return: tuple `(start, end)`', '', 'Returned tuple:', '', ' * start: Start border distance', ' * end: End border distance', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.getBorderDistHint', , {'members': }, '(font)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.getBorderDistHint', , {'members': }, ['Determine the minimum border distance', '', 'This member function returns the minimum space', "needed to draw the mark labels at the scale's endpoints.", '', ':param QFont font: Font', ':return: tuple `(start, end)`', '', 'Returned tuple:', '', ' * start: Start border distance', ' * end: End border distance', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.minLabelDist [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'minLabelDist') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.minLabelDist', , {'members': }, '(font)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.minLabelDist', , {'members': }, ['Determine the minimum distance between two labels, that is necessary', "that the texts don't overlap.", '', ':param QFont font: Font', ':return: The maximum width of a label', '', '.. seealso::', '', ' :py:meth:`getBorderDistHint()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.minLabelDist', , {'members': }, '(font)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.minLabelDist', , {'members': }, ['Determine the minimum distance between two labels, that is necessary', "that the texts don't overlap.", '', ':param QFont font: Font', ':return: The maximum width of a label', '', '.. seealso::', '', ' :py:meth:`getBorderDistHint()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.extent [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'extent') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.extent', , {'members': }, '(font)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.extent', , {'members': }, ['Calculate the width/height that is needed for a', 'vertical/horizontal scale.', '', 'The extent is calculated from the pen width of the backbone,', 'the major tick length, the spacing and the maximum width/height', 'of the labels.', '', ':param QFont font: Font used for painting the labels', ':return: Extent', '', '.. seealso::', '', ' :py:meth:`minLength()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.extent', , {'members': }, '(font)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.extent', , {'members': }, ['Calculate the width/height that is needed for a', 'vertical/horizontal scale.', '', 'The extent is calculated from the pen width of the backbone,', 'the major tick length, the spacing and the maximum width/height', 'of the labels.', '', ':param QFont font: Font used for painting the labels', ':return: Extent', '', '.. seealso::', '', ' :py:meth:`minLength()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.minLength [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'minLength') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.minLength', , {'members': }, '(font)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.minLength', , {'members': }, ['Calculate the minimum length that is needed to draw the scale', '', ':param QFont font: Font used for painting the labels', ':return: Minimum length that is needed to draw the scale', '', '.. seealso::', '', ' :py:meth:`extent()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.minLength', , {'members': }, '(font)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.minLength', , {'members': }, ['Calculate the minimum length that is needed to draw the scale', '', ':param QFont font: Font used for painting the labels', ':return: Minimum length that is needed to draw the scale', '', '.. seealso::', '', ' :py:meth:`extent()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.labelPosition [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'labelPosition') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelPosition', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelPosition', , {'members': }, ['Find the position, where to paint a label', '', 'The position has a distance that depends on the length of the ticks', 'in direction of the `alignment()`.', '', ':param float value: Value', ':return: Position, where to paint a label', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelPosition', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelPosition', , {'members': }, ['Find the position, where to paint a label', '', 'The position has a distance that depends on the length of the ticks', 'in direction of the `alignment()`.', '', ':param float value: Value', ':return: Position, where to paint a label', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.drawTick [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'drawTick') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.drawTick', , {'members': }, '(painter, value, len_)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.drawTick', , {'members': }, ['Draw a tick', '', ':param QPainter painter: Painter', ':param float value: Value of the tick', ':param float len: Length of the tick', '', '.. seealso::', '', ' :py:meth:`drawBackbone()`, :py:meth:`drawLabel()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.drawTick', , {'members': }, '(painter, value, len_)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.drawTick', , {'members': }, ['Draw a tick', '', ':param QPainter painter: Painter', ':param float value: Value of the tick', ':param float len: Length of the tick', '', '.. seealso::', '', ' :py:meth:`drawBackbone()`, :py:meth:`drawLabel()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.drawBackbone [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'drawBackbone') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.drawBackbone', , {'members': }, '(painter)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.drawBackbone', , {'members': }, ['Draws the baseline of the scale', '', ':param QPainter painter: Painter', '', '.. seealso::', '', ' :py:meth:`drawTick()`, :py:meth:`drawLabel()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.drawBackbone', , {'members': }, '(painter)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.drawBackbone', , {'members': }, ['Draws the baseline of the scale', '', ':param QPainter painter: Painter', '', '.. seealso::', '', ' :py:meth:`drawTick()`, :py:meth:`drawLabel()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.move [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'move') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.move', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.move', , {'members': }, ['Move the position of the scale', '', 'The meaning of the parameter pos depends on the alignment:', '', ' * `QwtScaleDraw.LeftScale`:', '', ' The origin is the topmost point of the backbone. The backbone is a', ' vertical line. Scale marks and labels are drawn at the left of the', ' backbone.', '', ' * `QwtScaleDraw.RightScale`:', '', ' The origin is the topmost point of the backbone. The backbone is a', ' vertical line. Scale marks and labels are drawn at the right of', ' the backbone.', '', ' * `QwtScaleDraw.TopScale`:', '', ' The origin is the leftmost point of the backbone. The backbone is', ' a horizontal line. Scale marks and labels are drawn above the', ' backbone.', '', ' * `QwtScaleDraw.BottomScale`:', '', ' The origin is the leftmost point of the backbone. The backbone is', ' a horizontal line Scale marks and labels are drawn below the', ' backbone.', '', '.. py:method:: move(x, y)', ' :noindex:', '', ' :param float x: X coordinate', ' :param float y: Y coordinate', '', '.. py:method:: move(pos)', ' :noindex:', '', ' :param QPointF pos: position', '', '.. seealso::', '', ' :py:meth:`pos()`, :py:meth:`setLength()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.move', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.move', , {'members': }, ['Move the position of the scale', '', 'The meaning of the parameter pos depends on the alignment:', '', ' * `QwtScaleDraw.LeftScale`:', '', ' The origin is the topmost point of the backbone. The backbone is a', ' vertical line. Scale marks and labels are drawn at the left of the', ' backbone.', '', ' * `QwtScaleDraw.RightScale`:', '', ' The origin is the topmost point of the backbone. The backbone is a', ' vertical line. Scale marks and labels are drawn at the right of', ' the backbone.', '', ' * `QwtScaleDraw.TopScale`:', '', ' The origin is the leftmost point of the backbone. The backbone is', ' a horizontal line. Scale marks and labels are drawn above the', ' backbone.', '', ' * `QwtScaleDraw.BottomScale`:', '', ' The origin is the leftmost point of the backbone. The backbone is', ' a horizontal line Scale marks and labels are drawn below the', ' backbone.', '', '.. py:method:: move(x, y)', ' :noindex:', '', ' :param float x: X coordinate', ' :param float y: Y coordinate', '', '.. py:method:: move(pos)', ' :noindex:', '', ' :param QPointF pos: position', '', '.. seealso::', '', ' :py:meth:`pos()`, :py:meth:`setLength()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.pos [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'pos') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.pos', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.pos', , {'members': }, [':return: Origin of the scale', '', '.. seealso::', '', ' :py:meth:`pos()`, :py:meth:`setLength()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.pos', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.pos', , {'members': }, [':return: Origin of the scale', '', '.. seealso::', '', ' :py:meth:`pos()`, :py:meth:`setLength()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.setLength [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'setLength') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.setLength', , {'members': }, '(length)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.setLength', , {'members': }, ['Set the length of the backbone.', '', "The length doesn't include the space needed for overlapping labels.", '', ':param float length: Length of the backbone', '', '.. seealso::', '', ' :py:meth:`move()`, :py:meth:`minLabelDist()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.setLength', , {'members': }, '(length)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.setLength', , {'members': }, ['Set the length of the backbone.', '', "The length doesn't include the space needed for overlapping labels.", '', ':param float length: Length of the backbone', '', '.. seealso::', '', ' :py:meth:`move()`, :py:meth:`minLabelDist()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.length [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'length') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.length', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.length', , {'members': }, [':return: the length of the backbone', '', '.. seealso::', '', ' :py:meth:`setLength()`, :py:meth:`pos()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.length', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.length', , {'members': }, [':return: the length of the backbone', '', '.. seealso::', '', ' :py:meth:`setLength()`, :py:meth:`pos()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.drawLabel [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'drawLabel') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.drawLabel', , {'members': }, '(painter, value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.drawLabel', , {'members': }, ['Draws the label for a major scale tick', '', ':param QPainter painter: Painter', ':param float value: Value', '', '.. seealso::', '', ' :py:meth:`drawTick()`, :py:meth:`drawBackbone()`,', ' :py:meth:`boundingLabelRect()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.drawLabel', , {'members': }, '(painter, value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.drawLabel', , {'members': }, ['Draws the label for a major scale tick', '', ':param QPainter painter: Painter', ':param float value: Value', '', '.. seealso::', '', ' :py:meth:`drawTick()`, :py:meth:`drawBackbone()`,', ' :py:meth:`boundingLabelRect()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.boundingLabelRect [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'boundingLabelRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.boundingLabelRect', , {'members': }, '(font, value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.boundingLabelRect', , {'members': }, ['Find the bounding rectangle for the label.', '', 'The coordinates of the rectangle are absolute (calculated from', '`pos()`) in direction of the tick.', '', ':param QFont font: Font used for painting', ':param float value: Value', ':return: Bounding rectangle', '', '.. seealso::', '', ' :py:meth:`labelRect()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.boundingLabelRect', , {'members': }, '(font, value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.boundingLabelRect', , {'members': }, ['Find the bounding rectangle for the label.', '', 'The coordinates of the rectangle are absolute (calculated from', '`pos()`) in direction of the tick.', '', ':param QFont font: Font used for painting', ':param float value: Value', ':return: Bounding rectangle', '', '.. seealso::', '', ' :py:meth:`labelRect()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.labelTransformation [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'labelTransformation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelTransformation', , {'members': }, '(pos, size)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelTransformation', , {'members': }, ['Calculate the transformation that is needed to paint a label', 'depending on its alignment and rotation.', '', ':param QPointF pos: Position where to paint the label', ':param QSizeF size: Size of the label', ':return: Transformation matrix', '', '.. seealso::', '', ' :py:meth:`setLabelAlignment()`, :py:meth:`setLabelRotation()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelTransformation', , {'members': }, '(pos, size)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelTransformation', , {'members': }, ['Calculate the transformation that is needed to paint a label', 'depending on its alignment and rotation.', '', ':param QPointF pos: Position where to paint the label', ':param QSizeF size: Size of the label', ':return: Transformation matrix', '', '.. seealso::', '', ' :py:meth:`setLabelAlignment()`, :py:meth:`setLabelRotation()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.labelRect [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'labelRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelRect', , {'members': }, '(font, value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelRect', , {'members': }, ['Find the bounding rectangle for the label. The coordinates of', 'the rectangle are relative to spacing + tick length from the backbone', 'in direction of the tick.', '', ':param QFont font: Font used for painting', ':param float value: Value', ':return: Bounding rectangle that is needed to draw a label', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelRect', , {'members': }, '(font, value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelRect', , {'members': }, ['Find the bounding rectangle for the label. The coordinates of', 'the rectangle are relative to spacing + tick length from the backbone', 'in direction of the tick.', '', ':param QFont font: Font used for painting', ':param float value: Value', ':return: Bounding rectangle that is needed to draw a label', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.labelSize [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'labelSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelSize', , {'members': }, '(font, value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelSize', , {'members': }, ['Calculate the size that is needed to draw a label', '', ':param QFont font: Label font', ':param float value: Value', ':return: Size that is needed to draw a label', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelSize', , {'members': }, '(font, value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelSize', , {'members': }, ['Calculate the size that is needed to draw a label', '', ':param QFont font: Label font', ':param float value: Value', ':return: Size that is needed to draw a label', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.setLabelRotation [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'setLabelRotation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.setLabelRotation', , {'members': }, '(rotation)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.setLabelRotation', , {'members': }, ['Rotate all labels.', '', 'When changing the rotation, it might be necessary to', 'adjust the label flags too. Finding a useful combination is', 'often the result of try and error.', '', ':param float rotation: Angle in degrees. When changing the label rotation, the', ' label flags often needs to be adjusted too.', '', '.. seealso::', '', ' :py:meth:`setLabelAlignment()`, :py:meth:`labelRotation()`,', ' :py:meth:`labelAlignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.setLabelRotation', , {'members': }, '(rotation)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.setLabelRotation', , {'members': }, ['Rotate all labels.', '', 'When changing the rotation, it might be necessary to', 'adjust the label flags too. Finding a useful combination is', 'often the result of try and error.', '', ':param float rotation: Angle in degrees. When changing the label rotation, the', ' label flags often needs to be adjusted too.', '', '.. seealso::', '', ' :py:meth:`setLabelAlignment()`, :py:meth:`labelRotation()`,', ' :py:meth:`labelAlignment()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.labelRotation [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'labelRotation') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelRotation', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelRotation', , {'members': }, [':return: the label rotation', '', '.. seealso::', '', ' :py:meth:`setLabelRotation()`, :py:meth:`labelAlignment()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelRotation', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelRotation', , {'members': }, [':return: the label rotation', '', '.. seealso::', '', ' :py:meth:`setLabelRotation()`, :py:meth:`labelAlignment()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.setLabelAlignment [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'setLabelAlignment') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.setLabelAlignment', , {'members': }, '(alignment)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.setLabelAlignment', , {'members': }, ['Change the label flags', '', 'Labels are aligned to the point tick length + spacing away from the', 'backbone.', '', 'The alignment is relative to the orientation of the label text.', 'In case of an flags of 0 the label will be aligned', 'depending on the orientation of the scale:', '', ' * `QwtScaleDraw.TopScale`: `Qt.AlignHCenter | Qt.AlignTop`', ' * `QwtScaleDraw.BottomScale`: `Qt.AlignHCenter | Qt.AlignBottom`', ' * `QwtScaleDraw.LeftScale`: `Qt.AlignLeft | Qt.AlignVCenter`', ' * `QwtScaleDraw.RightScale`: `Qt.AlignRight | Qt.AlignVCenter`', '', 'Changing the alignment is often necessary for rotated labels.', '', ":param Qt.Alignment alignment Or'd `Qt.AlignmentFlags`", '', '.. seealso::', '', ' :py:meth:`setLabelRotation()`, :py:meth:`labelRotation()`,', ' :py:meth:`labelAlignment()`', '', '.. warning::', '', ' The various alignments might be confusing. The alignment of the', ' label is not the alignment of the scale and is not the alignment', ' of the flags (`QwtText.flags()`) returned from', ' `QwtAbstractScaleDraw.label()`.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.setLabelAlignment', , {'members': }, '(alignment)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.setLabelAlignment', , {'members': }, ['Change the label flags', '', 'Labels are aligned to the point tick length + spacing away from the', 'backbone.', '', 'The alignment is relative to the orientation of the label text.', 'In case of an flags of 0 the label will be aligned', 'depending on the orientation of the scale:', '', ' * `QwtScaleDraw.TopScale`: `Qt.AlignHCenter | Qt.AlignTop`', ' * `QwtScaleDraw.BottomScale`: `Qt.AlignHCenter | Qt.AlignBottom`', ' * `QwtScaleDraw.LeftScale`: `Qt.AlignLeft | Qt.AlignVCenter`', ' * `QwtScaleDraw.RightScale`: `Qt.AlignRight | Qt.AlignVCenter`', '', 'Changing the alignment is often necessary for rotated labels.', '', ":param Qt.Alignment alignment Or'd `Qt.AlignmentFlags`", '', '.. seealso::', '', ' :py:meth:`setLabelRotation()`, :py:meth:`labelRotation()`,', ' :py:meth:`labelAlignment()`', '', '.. warning::', '', ' The various alignments might be confusing. The alignment of the', ' label is not the alignment of the scale and is not the alignment', ' of the flags (`QwtText.flags()`) returned from', ' `QwtAbstractScaleDraw.label()`.', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.labelAlignment [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'labelAlignment') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelAlignment', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelAlignment', , {'members': }, [':return: the label flags', '', '.. seealso::', '', ' :py:meth:`setLabelAlignment()`, :py:meth:`labelRotation()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelAlignment', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelAlignment', , {'members': }, [':return: the label flags', '', '.. seealso::', '', ' :py:meth:`setLabelAlignment()`, :py:meth:`labelRotation()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.setLabelAutoSize [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'setLabelAutoSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.setLabelAutoSize', , {'members': }, '(state)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.setLabelAutoSize', , {'members': }, ['Set label automatic size option state', '', 'When drawing text labels, if automatic size mode is enabled (default', 'behavior), the axes are drawn in order to optimize layout space and', 'depends on text label individual sizes. Otherwise, width and height', "won't change when axis range is changing.", '', 'This option is not implemented in Qwt C++ library: this may be used', 'either as an optimization (updating plot layout is faster when this', 'option is enabled) or as an appearance preference (with Qwt default', 'behavior, the size of axes may change when zooming and/or panning', 'plot canvas which in some cases may not be desired).', '', ':param bool state: On/off', '', '.. seealso::', '', ' :py:meth:`labelAutoSize()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.setLabelAutoSize', , {'members': }, '(state)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.setLabelAutoSize', , {'members': }, ['Set label automatic size option state', '', 'When drawing text labels, if automatic size mode is enabled (default', 'behavior), the axes are drawn in order to optimize layout space and', 'depends on text label individual sizes. Otherwise, width and height', "won't change when axis range is changing.", '', 'This option is not implemented in Qwt C++ library: this may be used', 'either as an optimization (updating plot layout is faster when this', 'option is enabled) or as an appearance preference (with Qwt default', 'behavior, the size of axes may change when zooming and/or panning', 'plot canvas which in some cases may not be desired).', '', ':param bool state: On/off', '', '.. seealso::', '', ' :py:meth:`labelAutoSize()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.labelAutoSize [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'labelAutoSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelAutoSize', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelAutoSize', , {'members': }, [':return: True if automatic size option is enabled for labels', '', '.. seealso::', '', ' :py:meth:`setLabelAutoSize()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.labelAutoSize', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.labelAutoSize', , {'members': }, [':return: True if automatic size option is enabled for labels', '', '.. seealso::', '', ' :py:meth:`setLabelAutoSize()`', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.maxLabelWidth [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'maxLabelWidth') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.maxLabelWidth', , {'members': }, '(font)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.maxLabelWidth', , {'members': }, [':param QFont font: Font', ':return: the maximum width of a label', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.maxLabelWidth', , {'members': }, '(font)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.maxLabelWidth', , {'members': }, [':param QFont font: Font', ':return: the maximum width of a label', '']) [autodoc] from qwt.scale_draw import QwtScaleDraw.maxLabelHeight [autodoc] import qwt.scale_draw => [autodoc] getattr(_, 'QwtScaleDraw') [autodoc] => [autodoc] getattr(_, 'maxLabelHeight') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.maxLabelHeight', , {'members': }, '(font)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.maxLabelHeight', , {'members': }, [':param QFont font: Font', ':return: the maximum height of a label', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.scale_draw.QwtScaleDraw.maxLabelHeight', , {'members': }, '(font)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.scale_draw.QwtScaleDraw.maxLabelHeight', , {'members': }, [':param QFont font: Font', ':return: the maximum height of a label', '']) [autodoc] output: .. py:class:: QwtScaleDraw() @@ -18995,7 +19031,7 @@ [app] emitting event: 'viewcode-follow-imported'('qwt.scale_draw', 'QwtScaleDraw.maxLabelHeight') [app] emitting event: 'viewcode-find-source'('qwt.scale_draw',) reading sources... [ 91%] reference/symbol -[app] emitting event: 'env-purge-doc'(, 'reference/symbol') +[app] emitting event: 'env-purge-doc'(, 'reference/symbol') [app] emitting event: 'source-read'('reference/symbol', ['.. automodule:: qwt.symbol\n']) [autodoc] /build/reproducible-path/python-qwt-0.12.7/doc/reference/symbol.rst:1: input: .. automodule:: qwt.symbol @@ -19020,69 +19056,69 @@ [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.symbol.QwtSymbol', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.symbol.QwtSymbol', , {'members': }, ['A class for drawing symbols', '', 'Symbol styles:', '', ' * `QwtSymbol.NoSymbol`: No Style. The symbol cannot be drawn.', ' * `QwtSymbol.Ellipse`: Ellipse or circle', ' * `QwtSymbol.Rect`: Rectangle', ' * `QwtSymbol.Diamond`: Diamond', ' * `QwtSymbol.Triangle`: Triangle pointing upwards', ' * `QwtSymbol.DTriangle`: Triangle pointing downwards', ' * `QwtSymbol.UTriangle`: Triangle pointing upwards', ' * `QwtSymbol.LTriangle`: Triangle pointing left', ' * `QwtSymbol.RTriangle`: Triangle pointing right', ' * `QwtSymbol.Cross`: Cross (+)', ' * `QwtSymbol.XCross`: Diagonal cross (X)', ' * `QwtSymbol.HLine`: Horizontal line', ' * `QwtSymbol.VLine`: Vertical line', ' * `QwtSymbol.Star1`: X combined with +', ' * `QwtSymbol.Star2`: Six-pointed star', ' * `QwtSymbol.Hexagon`: Hexagon', ' * `QwtSymbol.Path`: The symbol is represented by a painter path, where', ' the origin (0, 0) of the path coordinate system is mapped to the', ' position of the symbol', '', ' ..seealso::', '', ' :py:meth:`setPath()`, :py:meth:`path()`', ' * `QwtSymbol.Pixmap`: The symbol is represented by a pixmap.', ' The pixmap is centered or aligned to its pin point.', '', ' ..seealso::', '', ' :py:meth:`setPinPoint()`', ' * `QwtSymbol.Graphic`: The symbol is represented by a graphic.', ' The graphic is centered or aligned to its pin point.', '', ' ..seealso::', '', ' :py:meth:`setPinPoint()`', ' * `QwtSymbol.SvgDocument`: The symbol is represented by a SVG graphic.', ' The graphic is centered or aligned to its pin point.', '', ' ..seealso::', '', ' :py:meth:`setPinPoint()`', ' * `QwtSymbol.UserStyle`: Styles >= `QwtSymbol.UserStyle` are reserved', ' for derived classes of `QwtSymbol` that overload `drawSymbols()` with', ' additional application specific symbol types.', '', 'Cache policies:', '', ' Depending on the render engine and the complexity of the', ' symbol shape it might be faster to render the symbol', ' to a pixmap and to paint this pixmap.', '', ' F.e. the raster paint engine is a pure software renderer', ' where in cache mode a draw operation usually ends in', ' raster operation with the the backing store, that are usually', ' faster, than the algorithms for rendering polygons.', ' But the opposite can be expected for graphic pipelines', ' that can make use of hardware acceleration.', '', ' The default setting is AutoCache', '', ' ..seealso::', '', ' :py:meth:`setCachePolicy()`, :py:meth:`cachePolicy()`', '', ' .. note::', '', ' The policy has no effect, when the symbol is painted', ' to a vector graphics format (PDF, SVG).', '', ' .. warning::', '', ' Since Qt 4.8 raster is the default backend on X11', '', ' Valid cache policies:', '', " * `QwtSymbol.NoCache`: Don't use a pixmap cache", ' * `QwtSymbol.Cache`: Always use a pixmap cache', ' * `QwtSymbol.AutoCache`: Use a cache when the symbol is rendered', ' with the software renderer (`QPaintEngine.Raster`)', '', '.. py:class:: QwtSymbol([style=QwtSymbol.NoSymbol])', '', ' The symbol is constructed with gray interior,', " black outline with zero width, no size and style 'NoSymbol'.", '', ' :param int style: Symbol Style', '', '.. py:class:: QwtSymbol(style, brush, pen, size)', ' :noindex:', '', ' :param int style: Symbol Style', ' :param QBrush brush: Brush to fill the interior', ' :param QPen pen: Outline pen', ' :param QSize size: Size', '', '.. py:class:: QwtSymbol(path, brush, pen)', ' :noindex:', '', ' :param QPainterPath path: Painter path', ' :param QBrush brush: Brush to fill the interior', ' :param QPen pen: Outline pen', '', '.. seealso::', '', ' :py:meth:`setPath()`, :py:meth:`setBrush()`,', ' :py:meth:`setPen()`, :py:meth:`setSize()`', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'AutoCache', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Cache', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Cross', 8, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'DTriangle', 4, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Diamond', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Ellipse', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Graphic', 17, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'HLine', 10, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Hexagon', 14, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'LTriangle', 6, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'NoCache', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'NoSymbol', -1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Path', 15, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Pixmap', 16, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'RTriangle', 7, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Rect', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Star1', 12, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Star2', 13, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Style', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'SvgDocument', 18, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'Triangle', 3, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'UTriangle', 5, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'UserStyle', 1000, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'VLine', 11, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'XCross', 9, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.symbol', '__firstlineno__': 386, '__doc__': "\nA class for drawing symbols\n\nSymbol styles:\n\n * `QwtSymbol.NoSymbol`: No Style. The symbol cannot be drawn.\n * `QwtSymbol.Ellipse`: Ellipse or circle\n * `QwtSymbol.Rect`: Rectangle\n * `QwtSymbol.Diamond`: Diamond\n * `QwtSymbol.Triangle`: Triangle pointing upwards\n * `QwtSymbol.DTriangle`: Triangle pointing downwards\n * `QwtSymbol.UTriangle`: Triangle pointing upwards\n * `QwtSymbol.LTriangle`: Triangle pointing left\n * `QwtSymbol.RTriangle`: Triangle pointing right\n * `QwtSymbol.Cross`: Cross (+)\n * `QwtSymbol.XCross`: Diagonal cross (X)\n * `QwtSymbol.HLine`: Horizontal line\n * `QwtSymbol.VLine`: Vertical line\n * `QwtSymbol.Star1`: X combined with +\n * `QwtSymbol.Star2`: Six-pointed star\n * `QwtSymbol.Hexagon`: Hexagon\n * `QwtSymbol.Path`: The symbol is represented by a painter path, where\n the origin (0, 0) of the path coordinate system is mapped to the\n position of the symbol\n\n ..seealso::\n\n :py:meth:`setPath()`, :py:meth:`path()`\n * `QwtSymbol.Pixmap`: The symbol is represented by a pixmap.\n The pixmap is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.Graphic`: The symbol is represented by a graphic.\n The graphic is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.SvgDocument`: The symbol is represented by a SVG graphic.\n The graphic is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.UserStyle`: Styles >= `QwtSymbol.UserStyle` are reserved\n for derived classes of `QwtSymbol` that overload `drawSymbols()` with\n additional application specific symbol types.\n\nCache policies:\n\n Depending on the render engine and the complexity of the\n symbol shape it might be faster to render the symbol\n to a pixmap and to paint this pixmap.\n\n F.e. the raster paint engine is a pure software renderer\n where in cache mode a draw operation usually ends in\n raster operation with the the backing store, that are usually\n faster, than the algorithms for rendering polygons.\n But the opposite can be expected for graphic pipelines\n that can make use of hardware acceleration.\n\n The default setting is AutoCache\n\n ..seealso::\n\n :py:meth:`setCachePolicy()`, :py:meth:`cachePolicy()`\n\n .. note::\n\n The policy has no effect, when the symbol is painted\n to a vector graphics format (PDF, SVG).\n\n .. warning::\n\n Since Qt 4.8 raster is the default backend on X11\n\n Valid cache policies:\n\n * `QwtSymbol.NoCache`: Don't use a pixmap cache\n * `QwtSymbol.Cache`: Always use a pixmap cache\n * `QwtSymbol.AutoCache`: Use a cache when the symbol is rendered\n with the software renderer (`QPaintEngine.Raster`)\n\n.. py:class:: QwtSymbol([style=QwtSymbol.NoSymbol])\n\n The symbol is constructed with gray interior,\n black outline with zero width, no size and style 'NoSymbol'.\n\n :param int style: Symbol Style\n\n.. py:class:: QwtSymbol(style, brush, pen, size)\n :noindex:\n\n :param int style: Symbol Style\n :param QBrush brush: Brush to fill the interior\n :param QPen pen: Outline pen\n :param QSize size: Size\n\n.. py:class:: QwtSymbol(path, brush, pen)\n :noindex:\n\n :param QPainterPath path: Painter path\n :param QBrush brush: Brush to fill the interior\n :param QPen pen: Outline pen\n\n.. seealso::\n\n :py:meth:`setPath()`, :py:meth:`setBrush()`,\n :py:meth:`setPen()`, :py:meth:`setSize()`\n", 'Style': , 'NoSymbol': -1, 'Ellipse': 0, 'Rect': 1, 'Diamond': 2, 'Triangle': 3, 'DTriangle': 4, 'UTriangle': 5, 'LTriangle': 6, 'RTriangle': 7, 'Cross': 8, 'XCross': 9, 'HLine': 10, 'VLine': 11, 'Star1': 12, 'Star2': 13, 'Hexagon': 14, 'Path': 15, 'Pixmap': 16, 'Graphic': 17, 'SvgDocument': 18, 'UserStyle': 1000, 'NoCache': 0, 'Cache': 1, 'AutoCache': 2, '__init__': , 'make': )>, 'setCachePolicy': , 'cachePolicy': , 'setPath': , 'path': , 'setPixmap': , 'pixmap': , 'setGraphic': , 'graphic': , 'setSvgDocument': , 'setSize': , 'size': , 'setBrush': , 'brush': , 'setPen': , 'pen': , 'setColor': , 'setPinPoint': , 'pinPoint': , 'setPinPointEnabled': , 'isPinPointEnabled': , 'drawSymbols': , 'drawSymbol': , 'renderSymbols': , 'boundingRect': , 'invalidateCache': , 'setStyle': , 'style': , '__static_attributes__': ('__data',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', "\nA class for drawing symbols\n\nSymbol styles:\n\n * `QwtSymbol.NoSymbol`: No Style. The symbol cannot be drawn.\n * `QwtSymbol.Ellipse`: Ellipse or circle\n * `QwtSymbol.Rect`: Rectangle\n * `QwtSymbol.Diamond`: Diamond\n * `QwtSymbol.Triangle`: Triangle pointing upwards\n * `QwtSymbol.DTriangle`: Triangle pointing downwards\n * `QwtSymbol.UTriangle`: Triangle pointing upwards\n * `QwtSymbol.LTriangle`: Triangle pointing left\n * `QwtSymbol.RTriangle`: Triangle pointing right\n * `QwtSymbol.Cross`: Cross (+)\n * `QwtSymbol.XCross`: Diagonal cross (X)\n * `QwtSymbol.HLine`: Horizontal line\n * `QwtSymbol.VLine`: Vertical line\n * `QwtSymbol.Star1`: X combined with +\n * `QwtSymbol.Star2`: Six-pointed star\n * `QwtSymbol.Hexagon`: Hexagon\n * `QwtSymbol.Path`: The symbol is represented by a painter path, where\n the origin (0, 0) of the path coordinate system is mapped to the\n position of the symbol\n\n ..seealso::\n\n :py:meth:`setPath()`, :py:meth:`path()`\n * `QwtSymbol.Pixmap`: The symbol is represented by a pixmap.\n The pixmap is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.Graphic`: The symbol is represented by a graphic.\n The graphic is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.SvgDocument`: The symbol is represented by a SVG graphic.\n The graphic is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.UserStyle`: Styles >= `QwtSymbol.UserStyle` are reserved\n for derived classes of `QwtSymbol` that overload `drawSymbols()` with\n additional application specific symbol types.\n\nCache policies:\n\n Depending on the render engine and the complexity of the\n symbol shape it might be faster to render the symbol\n to a pixmap and to paint this pixmap.\n\n F.e. the raster paint engine is a pure software renderer\n where in cache mode a draw operation usually ends in\n raster operation with the the backing store, that are usually\n faster, than the algorithms for rendering polygons.\n But the opposite can be expected for graphic pipelines\n that can make use of hardware acceleration.\n\n The default setting is AutoCache\n\n ..seealso::\n\n :py:meth:`setCachePolicy()`, :py:meth:`cachePolicy()`\n\n .. note::\n\n The policy has no effect, when the symbol is painted\n to a vector graphics format (PDF, SVG).\n\n .. warning::\n\n Since Qt 4.8 raster is the default backend on X11\n\n Valid cache policies:\n\n * `QwtSymbol.NoCache`: Don't use a pixmap cache\n * `QwtSymbol.Cache`: Always use a pixmap cache\n * `QwtSymbol.AutoCache`: Use a cache when the symbol is rendered\n with the software renderer (`QPaintEngine.Raster`)\n\n.. py:class:: QwtSymbol([style=QwtSymbol.NoSymbol])\n\n The symbol is constructed with gray interior,\n black outline with zero width, no size and style 'NoSymbol'.\n\n :param int style: Symbol Style\n\n.. py:class:: QwtSymbol(style, brush, pen, size)\n :noindex:\n\n :param int style: Symbol Style\n :param QBrush brush: Brush to fill the interior\n :param QPen pen: Outline pen\n :param QSize size: Size\n\n.. py:class:: QwtSymbol(path, brush, pen)\n :noindex:\n\n :param QPainterPath path: Painter path\n :param QBrush brush: Brush to fill the interior\n :param QPen pen: Outline pen\n\n.. seealso::\n\n :py:meth:`setPath()`, :py:meth:`setBrush()`,\n :py:meth:`setPen()`, :py:meth:`setSize()`\n", True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 386, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.symbol', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'brush', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'cachePolicy', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawSymbol', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawSymbols', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'graphic', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invalidateCache', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isPinPointEnabled', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'make', >, False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'path', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'pen', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'pinPoint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'pixmap', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'renderSymbols', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setBrush', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setCachePolicy', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setColor', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setGraphic', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setPath', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setPen', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setPinPoint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setPinPointEnabled', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setPixmap', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setSize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setStyle', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setSvgDocument', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'size', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'style', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.symbol.QwtSymbol', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.symbol.QwtSymbol', , {'members': }, ['A class for drawing symbols', '', 'Symbol styles:', '', ' * `QwtSymbol.NoSymbol`: No Style. The symbol cannot be drawn.', ' * `QwtSymbol.Ellipse`: Ellipse or circle', ' * `QwtSymbol.Rect`: Rectangle', ' * `QwtSymbol.Diamond`: Diamond', ' * `QwtSymbol.Triangle`: Triangle pointing upwards', ' * `QwtSymbol.DTriangle`: Triangle pointing downwards', ' * `QwtSymbol.UTriangle`: Triangle pointing upwards', ' * `QwtSymbol.LTriangle`: Triangle pointing left', ' * `QwtSymbol.RTriangle`: Triangle pointing right', ' * `QwtSymbol.Cross`: Cross (+)', ' * `QwtSymbol.XCross`: Diagonal cross (X)', ' * `QwtSymbol.HLine`: Horizontal line', ' * `QwtSymbol.VLine`: Vertical line', ' * `QwtSymbol.Star1`: X combined with +', ' * `QwtSymbol.Star2`: Six-pointed star', ' * `QwtSymbol.Hexagon`: Hexagon', ' * `QwtSymbol.Path`: The symbol is represented by a painter path, where', ' the origin (0, 0) of the path coordinate system is mapped to the', ' position of the symbol', '', ' ..seealso::', '', ' :py:meth:`setPath()`, :py:meth:`path()`', ' * `QwtSymbol.Pixmap`: The symbol is represented by a pixmap.', ' The pixmap is centered or aligned to its pin point.', '', ' ..seealso::', '', ' :py:meth:`setPinPoint()`', ' * `QwtSymbol.Graphic`: The symbol is represented by a graphic.', ' The graphic is centered or aligned to its pin point.', '', ' ..seealso::', '', ' :py:meth:`setPinPoint()`', ' * `QwtSymbol.SvgDocument`: The symbol is represented by a SVG graphic.', ' The graphic is centered or aligned to its pin point.', '', ' ..seealso::', '', ' :py:meth:`setPinPoint()`', ' * `QwtSymbol.UserStyle`: Styles >= `QwtSymbol.UserStyle` are reserved', ' for derived classes of `QwtSymbol` that overload `drawSymbols()` with', ' additional application specific symbol types.', '', 'Cache policies:', '', ' Depending on the render engine and the complexity of the', ' symbol shape it might be faster to render the symbol', ' to a pixmap and to paint this pixmap.', '', ' F.e. the raster paint engine is a pure software renderer', ' where in cache mode a draw operation usually ends in', ' raster operation with the the backing store, that are usually', ' faster, than the algorithms for rendering polygons.', ' But the opposite can be expected for graphic pipelines', ' that can make use of hardware acceleration.', '', ' The default setting is AutoCache', '', ' ..seealso::', '', ' :py:meth:`setCachePolicy()`, :py:meth:`cachePolicy()`', '', ' .. note::', '', ' The policy has no effect, when the symbol is painted', ' to a vector graphics format (PDF, SVG).', '', ' .. warning::', '', ' Since Qt 4.8 raster is the default backend on X11', '', ' Valid cache policies:', '', " * `QwtSymbol.NoCache`: Don't use a pixmap cache", ' * `QwtSymbol.Cache`: Always use a pixmap cache', ' * `QwtSymbol.AutoCache`: Use a cache when the symbol is rendered', ' with the software renderer (`QPaintEngine.Raster`)', '', '.. py:class:: QwtSymbol([style=QwtSymbol.NoSymbol])', '', ' The symbol is constructed with gray interior,', " black outline with zero width, no size and style 'NoSymbol'.", '', ' :param int style: Symbol Style', '', '.. py:class:: QwtSymbol(style, brush, pen, size)', ' :noindex:', '', ' :param int style: Symbol Style', ' :param QBrush brush: Brush to fill the interior', ' :param QPen pen: Outline pen', ' :param QSize size: Size', '', '.. py:class:: QwtSymbol(path, brush, pen)', ' :noindex:', '', ' :param QPainterPath path: Painter path', ' :param QBrush brush: Brush to fill the interior', ' :param QPen pen: Outline pen', '', '.. seealso::', '', ' :py:meth:`setPath()`, :py:meth:`setBrush()`,', ' :py:meth:`setPen()`, :py:meth:`setSize()`', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'AutoCache', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Cache', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Cross', 8, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'DTriangle', 4, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Diamond', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Ellipse', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Graphic', 17, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'HLine', 10, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Hexagon', 14, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'LTriangle', 6, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'NoCache', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'NoSymbol', -1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Path', 15, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Pixmap', 16, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'RTriangle', 7, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Rect', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Star1', 12, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Star2', 13, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Style', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'SvgDocument', 18, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'Triangle', 3, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'UTriangle', 5, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'UserStyle', 1000, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'VLine', 11, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'XCross', 9, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.symbol', '__firstlineno__': 386, '__doc__': "\nA class for drawing symbols\n\nSymbol styles:\n\n * `QwtSymbol.NoSymbol`: No Style. The symbol cannot be drawn.\n * `QwtSymbol.Ellipse`: Ellipse or circle\n * `QwtSymbol.Rect`: Rectangle\n * `QwtSymbol.Diamond`: Diamond\n * `QwtSymbol.Triangle`: Triangle pointing upwards\n * `QwtSymbol.DTriangle`: Triangle pointing downwards\n * `QwtSymbol.UTriangle`: Triangle pointing upwards\n * `QwtSymbol.LTriangle`: Triangle pointing left\n * `QwtSymbol.RTriangle`: Triangle pointing right\n * `QwtSymbol.Cross`: Cross (+)\n * `QwtSymbol.XCross`: Diagonal cross (X)\n * `QwtSymbol.HLine`: Horizontal line\n * `QwtSymbol.VLine`: Vertical line\n * `QwtSymbol.Star1`: X combined with +\n * `QwtSymbol.Star2`: Six-pointed star\n * `QwtSymbol.Hexagon`: Hexagon\n * `QwtSymbol.Path`: The symbol is represented by a painter path, where\n the origin (0, 0) of the path coordinate system is mapped to the\n position of the symbol\n\n ..seealso::\n\n :py:meth:`setPath()`, :py:meth:`path()`\n * `QwtSymbol.Pixmap`: The symbol is represented by a pixmap.\n The pixmap is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.Graphic`: The symbol is represented by a graphic.\n The graphic is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.SvgDocument`: The symbol is represented by a SVG graphic.\n The graphic is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.UserStyle`: Styles >= `QwtSymbol.UserStyle` are reserved\n for derived classes of `QwtSymbol` that overload `drawSymbols()` with\n additional application specific symbol types.\n\nCache policies:\n\n Depending on the render engine and the complexity of the\n symbol shape it might be faster to render the symbol\n to a pixmap and to paint this pixmap.\n\n F.e. the raster paint engine is a pure software renderer\n where in cache mode a draw operation usually ends in\n raster operation with the the backing store, that are usually\n faster, than the algorithms for rendering polygons.\n But the opposite can be expected for graphic pipelines\n that can make use of hardware acceleration.\n\n The default setting is AutoCache\n\n ..seealso::\n\n :py:meth:`setCachePolicy()`, :py:meth:`cachePolicy()`\n\n .. note::\n\n The policy has no effect, when the symbol is painted\n to a vector graphics format (PDF, SVG).\n\n .. warning::\n\n Since Qt 4.8 raster is the default backend on X11\n\n Valid cache policies:\n\n * `QwtSymbol.NoCache`: Don't use a pixmap cache\n * `QwtSymbol.Cache`: Always use a pixmap cache\n * `QwtSymbol.AutoCache`: Use a cache when the symbol is rendered\n with the software renderer (`QPaintEngine.Raster`)\n\n.. py:class:: QwtSymbol([style=QwtSymbol.NoSymbol])\n\n The symbol is constructed with gray interior,\n black outline with zero width, no size and style 'NoSymbol'.\n\n :param int style: Symbol Style\n\n.. py:class:: QwtSymbol(style, brush, pen, size)\n :noindex:\n\n :param int style: Symbol Style\n :param QBrush brush: Brush to fill the interior\n :param QPen pen: Outline pen\n :param QSize size: Size\n\n.. py:class:: QwtSymbol(path, brush, pen)\n :noindex:\n\n :param QPainterPath path: Painter path\n :param QBrush brush: Brush to fill the interior\n :param QPen pen: Outline pen\n\n.. seealso::\n\n :py:meth:`setPath()`, :py:meth:`setBrush()`,\n :py:meth:`setPen()`, :py:meth:`setSize()`\n", 'Style': , 'NoSymbol': -1, 'Ellipse': 0, 'Rect': 1, 'Diamond': 2, 'Triangle': 3, 'DTriangle': 4, 'UTriangle': 5, 'LTriangle': 6, 'RTriangle': 7, 'Cross': 8, 'XCross': 9, 'HLine': 10, 'VLine': 11, 'Star1': 12, 'Star2': 13, 'Hexagon': 14, 'Path': 15, 'Pixmap': 16, 'Graphic': 17, 'SvgDocument': 18, 'UserStyle': 1000, 'NoCache': 0, 'Cache': 1, 'AutoCache': 2, '__init__': , 'make': )>, 'setCachePolicy': , 'cachePolicy': , 'setPath': , 'path': , 'setPixmap': , 'pixmap': , 'setGraphic': , 'graphic': , 'setSvgDocument': , 'setSize': , 'size': , 'setBrush': , 'brush': , 'setPen': , 'pen': , 'setColor': , 'setPinPoint': , 'pinPoint': , 'setPinPointEnabled': , 'isPinPointEnabled': , 'drawSymbols': , 'drawSymbol': , 'renderSymbols': , 'boundingRect': , 'invalidateCache': , 'setStyle': , 'style': , '__static_attributes__': ('__data',), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', "\nA class for drawing symbols\n\nSymbol styles:\n\n * `QwtSymbol.NoSymbol`: No Style. The symbol cannot be drawn.\n * `QwtSymbol.Ellipse`: Ellipse or circle\n * `QwtSymbol.Rect`: Rectangle\n * `QwtSymbol.Diamond`: Diamond\n * `QwtSymbol.Triangle`: Triangle pointing upwards\n * `QwtSymbol.DTriangle`: Triangle pointing downwards\n * `QwtSymbol.UTriangle`: Triangle pointing upwards\n * `QwtSymbol.LTriangle`: Triangle pointing left\n * `QwtSymbol.RTriangle`: Triangle pointing right\n * `QwtSymbol.Cross`: Cross (+)\n * `QwtSymbol.XCross`: Diagonal cross (X)\n * `QwtSymbol.HLine`: Horizontal line\n * `QwtSymbol.VLine`: Vertical line\n * `QwtSymbol.Star1`: X combined with +\n * `QwtSymbol.Star2`: Six-pointed star\n * `QwtSymbol.Hexagon`: Hexagon\n * `QwtSymbol.Path`: The symbol is represented by a painter path, where\n the origin (0, 0) of the path coordinate system is mapped to the\n position of the symbol\n\n ..seealso::\n\n :py:meth:`setPath()`, :py:meth:`path()`\n * `QwtSymbol.Pixmap`: The symbol is represented by a pixmap.\n The pixmap is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.Graphic`: The symbol is represented by a graphic.\n The graphic is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.SvgDocument`: The symbol is represented by a SVG graphic.\n The graphic is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.UserStyle`: Styles >= `QwtSymbol.UserStyle` are reserved\n for derived classes of `QwtSymbol` that overload `drawSymbols()` with\n additional application specific symbol types.\n\nCache policies:\n\n Depending on the render engine and the complexity of the\n symbol shape it might be faster to render the symbol\n to a pixmap and to paint this pixmap.\n\n F.e. the raster paint engine is a pure software renderer\n where in cache mode a draw operation usually ends in\n raster operation with the the backing store, that are usually\n faster, than the algorithms for rendering polygons.\n But the opposite can be expected for graphic pipelines\n that can make use of hardware acceleration.\n\n The default setting is AutoCache\n\n ..seealso::\n\n :py:meth:`setCachePolicy()`, :py:meth:`cachePolicy()`\n\n .. note::\n\n The policy has no effect, when the symbol is painted\n to a vector graphics format (PDF, SVG).\n\n .. warning::\n\n Since Qt 4.8 raster is the default backend on X11\n\n Valid cache policies:\n\n * `QwtSymbol.NoCache`: Don't use a pixmap cache\n * `QwtSymbol.Cache`: Always use a pixmap cache\n * `QwtSymbol.AutoCache`: Use a cache when the symbol is rendered\n with the software renderer (`QPaintEngine.Raster`)\n\n.. py:class:: QwtSymbol([style=QwtSymbol.NoSymbol])\n\n The symbol is constructed with gray interior,\n black outline with zero width, no size and style 'NoSymbol'.\n\n :param int style: Symbol Style\n\n.. py:class:: QwtSymbol(style, brush, pen, size)\n :noindex:\n\n :param int style: Symbol Style\n :param QBrush brush: Brush to fill the interior\n :param QPen pen: Outline pen\n :param QSize size: Size\n\n.. py:class:: QwtSymbol(path, brush, pen)\n :noindex:\n\n :param QPainterPath path: Painter path\n :param QBrush brush: Brush to fill the interior\n :param QPen pen: Outline pen\n\n.. seealso::\n\n :py:meth:`setPath()`, :py:meth:`setBrush()`,\n :py:meth:`setPen()`, :py:meth:`setSize()`\n", True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 386, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.symbol', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'boundingRect', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'brush', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'cachePolicy', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawSymbol', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawSymbols', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'graphic', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invalidateCache', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isPinPointEnabled', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'make', >, False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'path', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'pen', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'pinPoint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'pixmap', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'renderSymbols', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setBrush', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setCachePolicy', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setColor', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setGraphic', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setPath', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setPen', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setPinPoint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setPinPointEnabled', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setPixmap', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setSize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setStyle', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setSvgDocument', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'size', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'style', , False, {'members': }) [autodoc] from qwt.symbol import QwtSymbol.Style [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') @@ -19097,251 +19133,251 @@ [autodoc] getattr(_, 'make') [autodoc] => > [app] emitting event: 'autodoc-before-process-signature'(>, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.make', >, {'members': }, '(style=None, brush=None, pen=None, size=None, path=None, pixmap=None, graphic=None, svgdocument=None, pinpoint=None)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.make', >, {'members': }, ['Create and setup a new `QwtSymbol` object (convenience function).', '', ':param style: Symbol Style', ':type style: int or None', ':param brush: Brush to fill the interior', ':type brush: QBrush or None', ':param pen: Outline pen', ':type pen: QPen or None', ':param size: Size', ':type size: QSize or None', ':param path: Painter path', ':type path: QPainterPath or None', ':param path: Painter path', ':type path: QPainterPath or None', ':param pixmap: Pixmap as symbol', ':type pixmap: QPixmap or None', ':param graphic: Graphic', ':type graphic: qwt.graphic.QwtGraphic or None', ':param svgdocument: SVG icon as symbol', '', '.. seealso::', '', ' :py:meth:`setPixmap()`, :py:meth:`setGraphic()`, :py:meth:`setPath()`', '']) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.make', >, {'members': }, '(style=None, brush=None, pen=None, size=None, path=None, pixmap=None, graphic=None, svgdocument=None, pinpoint=None)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.make', >, {'members': }, ['Create and setup a new `QwtSymbol` object (convenience function).', '', ':param style: Symbol Style', ':type style: int or None', ':param brush: Brush to fill the interior', ':type brush: QBrush or None', ':param pen: Outline pen', ':type pen: QPen or None', ':param size: Size', ':type size: QSize or None', ':param path: Painter path', ':type path: QPainterPath or None', ':param path: Painter path', ':type path: QPainterPath or None', ':param pixmap: Pixmap as symbol', ':type pixmap: QPixmap or None', ':param graphic: Graphic', ':type graphic: qwt.graphic.QwtGraphic or None', ':param svgdocument: SVG icon as symbol', '', '.. seealso::', '', ' :py:meth:`setPixmap()`, :py:meth:`setGraphic()`, :py:meth:`setPath()`', '']) [autodoc] from qwt.symbol import QwtSymbol.setCachePolicy [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'setCachePolicy') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setCachePolicy', , {'members': }, '(policy)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setCachePolicy', , {'members': }, ['Change the cache policy', '', 'The default policy is AutoCache', '', ':param int policy: Cache policy', '', '.. seealso::', '', ' :py:meth:`cachePolicy()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setCachePolicy', , {'members': }, '(policy)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setCachePolicy', , {'members': }, ['Change the cache policy', '', 'The default policy is AutoCache', '', ':param int policy: Cache policy', '', '.. seealso::', '', ' :py:meth:`cachePolicy()`', '']) [autodoc] from qwt.symbol import QwtSymbol.cachePolicy [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'cachePolicy') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.cachePolicy', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.cachePolicy', , {'members': }, [':return: Cache policy', '', '.. seealso::', '', ' :py:meth:`setCachePolicy()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.cachePolicy', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.cachePolicy', , {'members': }, [':return: Cache policy', '', '.. seealso::', '', ' :py:meth:`setCachePolicy()`', '']) [autodoc] from qwt.symbol import QwtSymbol.setPath [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'setPath') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setPath', , {'members': }, '(path)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setPath', , {'members': }, ['Set a painter path as symbol', '', 'The symbol is represented by a painter path, where the', 'origin (0, 0) of the path coordinate system is mapped to', 'the position of the symbol.', '', 'When the symbol has valid size the painter path gets scaled', 'to fit into the size. Otherwise the symbol size depends on', 'the bounding rectangle of the path.', '', 'The following code defines a symbol drawing an arrow::', '', ' from qtpy.QtGui import QApplication, QPen, QPainterPath, QTransform', ' from qtpy.QtCore import Qt, QPointF', ' from qwt import QwtPlot, QwtPlotCurve, QwtSymbol', ' import numpy as np', '', ' app = QApplication([])', '', ' # --- Construct custom symbol ---', '', ' path = QPainterPath()', ' path.moveTo(0, 8)', ' path.lineTo(0, 5)', ' path.lineTo(-3, 5)', ' path.lineTo(0, 0)', ' path.lineTo(3, 5)', ' path.lineTo(0, 5)', '', ' transform = QTransform()', ' transform.rotate(-30.0)', ' path = transform.map(path)', '', ' pen = QPen(Qt.black, 2 );', ' pen.setJoinStyle(Qt.MiterJoin)', '', ' symbol = QwtSymbol()', ' symbol.setPen(pen)', ' symbol.setBrush(Qt.red)', ' symbol.setPath(path)', ' symbol.setPinPoint(QPointF(0., 0.))', ' symbol.setSize(10, 14)', '', ' # --- Test it within a simple plot ---', '', ' curve = QwtPlotCurve()', ' curve_pen = QPen(Qt.blue)', ' curve_pen.setStyle(Qt.DotLine)', ' curve.setPen(curve_pen)', ' curve.setSymbol(symbol)', ' x = np.linspace(0, 10, 10)', ' curve.setData(x, np.sin(x))', '', ' plot = QwtPlot()', ' curve.attach(plot)', ' plot.resize(600, 300)', ' plot.replot()', ' plot.show()', '', ' app.exec_()', '', '.. image:: /_static/symbol_path_example.png', '', ':param QPainterPath path: Painter path', '', '.. seealso::', '', ' :py:meth:`path()`, :py:meth:`setSize()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setPath', , {'members': }, '(path)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setPath', , {'members': }, ['Set a painter path as symbol', '', 'The symbol is represented by a painter path, where the', 'origin (0, 0) of the path coordinate system is mapped to', 'the position of the symbol.', '', 'When the symbol has valid size the painter path gets scaled', 'to fit into the size. Otherwise the symbol size depends on', 'the bounding rectangle of the path.', '', 'The following code defines a symbol drawing an arrow::', '', ' from qtpy.QtGui import QApplication, QPen, QPainterPath, QTransform', ' from qtpy.QtCore import Qt, QPointF', ' from qwt import QwtPlot, QwtPlotCurve, QwtSymbol', ' import numpy as np', '', ' app = QApplication([])', '', ' # --- Construct custom symbol ---', '', ' path = QPainterPath()', ' path.moveTo(0, 8)', ' path.lineTo(0, 5)', ' path.lineTo(-3, 5)', ' path.lineTo(0, 0)', ' path.lineTo(3, 5)', ' path.lineTo(0, 5)', '', ' transform = QTransform()', ' transform.rotate(-30.0)', ' path = transform.map(path)', '', ' pen = QPen(Qt.black, 2 );', ' pen.setJoinStyle(Qt.MiterJoin)', '', ' symbol = QwtSymbol()', ' symbol.setPen(pen)', ' symbol.setBrush(Qt.red)', ' symbol.setPath(path)', ' symbol.setPinPoint(QPointF(0., 0.))', ' symbol.setSize(10, 14)', '', ' # --- Test it within a simple plot ---', '', ' curve = QwtPlotCurve()', ' curve_pen = QPen(Qt.blue)', ' curve_pen.setStyle(Qt.DotLine)', ' curve.setPen(curve_pen)', ' curve.setSymbol(symbol)', ' x = np.linspace(0, 10, 10)', ' curve.setData(x, np.sin(x))', '', ' plot = QwtPlot()', ' curve.attach(plot)', ' plot.resize(600, 300)', ' plot.replot()', ' plot.show()', '', ' app.exec_()', '', '.. image:: /_static/symbol_path_example.png', '', ':param QPainterPath path: Painter path', '', '.. seealso::', '', ' :py:meth:`path()`, :py:meth:`setSize()`', '']) [autodoc] from qwt.symbol import QwtSymbol.path [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'path') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.path', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.path', , {'members': }, [':return: Painter path for displaying the symbol', '', '.. seealso::', '', ' :py:meth:`setPath()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.path', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.path', , {'members': }, [':return: Painter path for displaying the symbol', '', '.. seealso::', '', ' :py:meth:`setPath()`', '']) [autodoc] from qwt.symbol import QwtSymbol.setPixmap [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'setPixmap') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setPixmap', , {'members': }, '(pixmap)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setPixmap', , {'members': }, ['Set a pixmap as symbol', '', ':param QPixmap pixmap: Pixmap', '', '.. seealso::', '', ' :py:meth:`pixmap()`, :py:meth:`setGraphic()`', '', '.. note::', '', ' The `style()` is set to `QwtSymbol.Pixmap`', '', '.. note::', '', ' `brush()` and `pen()` have no effect', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setPixmap', , {'members': }, '(pixmap)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setPixmap', , {'members': }, ['Set a pixmap as symbol', '', ':param QPixmap pixmap: Pixmap', '', '.. seealso::', '', ' :py:meth:`pixmap()`, :py:meth:`setGraphic()`', '', '.. note::', '', ' The `style()` is set to `QwtSymbol.Pixmap`', '', '.. note::', '', ' `brush()` and `pen()` have no effect', '']) [autodoc] from qwt.symbol import QwtSymbol.pixmap [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'pixmap') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.pixmap', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.pixmap', , {'members': }, [':return: Assigned pixmap', '', '.. seealso::', '', ' :py:meth:`setPixmap()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.pixmap', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.pixmap', , {'members': }, [':return: Assigned pixmap', '', '.. seealso::', '', ' :py:meth:`setPixmap()`', '']) [autodoc] from qwt.symbol import QwtSymbol.setGraphic [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'setGraphic') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setGraphic', , {'members': }, '(graphic)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setGraphic', , {'members': }, ['Set a graphic as symbol', '', ':param qwt.graphic.QwtGraphic graphic: Graphic', '', '.. seealso::', '', ' :py:meth:`graphic()`, :py:meth:`setPixmap()`', '', '.. note::', '', ' The `style()` is set to `QwtSymbol.Graphic`', '', '.. note::', '', ' `brush()` and `pen()` have no effect', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setGraphic', , {'members': }, '(graphic)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setGraphic', , {'members': }, ['Set a graphic as symbol', '', ':param qwt.graphic.QwtGraphic graphic: Graphic', '', '.. seealso::', '', ' :py:meth:`graphic()`, :py:meth:`setPixmap()`', '', '.. note::', '', ' The `style()` is set to `QwtSymbol.Graphic`', '', '.. note::', '', ' `brush()` and `pen()` have no effect', '']) [autodoc] from qwt.symbol import QwtSymbol.graphic [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'graphic') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.graphic', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.graphic', , {'members': }, [':return: Assigned graphic', '', '.. seealso::', '', ' :py:meth:`setGraphic()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.graphic', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.graphic', , {'members': }, [':return: Assigned graphic', '', '.. seealso::', '', ' :py:meth:`setGraphic()`', '']) [autodoc] from qwt.symbol import QwtSymbol.setSvgDocument [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'setSvgDocument') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setSvgDocument', , {'members': }, '(svgDocument)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setSvgDocument', , {'members': }, ['Set a SVG icon as symbol', '', ':param svgDocument: SVG icon', '', '.. seealso::', '', ' :py:meth:`setGraphic()`, :py:meth:`setPixmap()`', '', '.. note::', '', ' The `style()` is set to `QwtSymbol.SvgDocument`', '', '.. note::', '', ' `brush()` and `pen()` have no effect', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setSvgDocument', , {'members': }, '(svgDocument)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setSvgDocument', , {'members': }, ['Set a SVG icon as symbol', '', ':param svgDocument: SVG icon', '', '.. seealso::', '', ' :py:meth:`setGraphic()`, :py:meth:`setPixmap()`', '', '.. note::', '', ' The `style()` is set to `QwtSymbol.SvgDocument`', '', '.. note::', '', ' `brush()` and `pen()` have no effect', '']) [autodoc] from qwt.symbol import QwtSymbol.setSize [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'setSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setSize', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setSize', , {'members': }, ["Specify the symbol's size", '', '.. py:method:: setSize(width, [height=-1])', ' :noindex:', '', ' :param int width: Width', ' :param int height: Height', '', '.. py:method:: setSize(size)', ' :noindex:', '', ' :param QSize size: Size', '', '.. seealso::', '', ' :py:meth:`size()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setSize', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setSize', , {'members': }, ["Specify the symbol's size", '', '.. py:method:: setSize(width, [height=-1])', ' :noindex:', '', ' :param int width: Width', ' :param int height: Height', '', '.. py:method:: setSize(size)', ' :noindex:', '', ' :param QSize size: Size', '', '.. seealso::', '', ' :py:meth:`size()`', '']) [autodoc] from qwt.symbol import QwtSymbol.size [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'size') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.size', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.size', , {'members': }, [':return: Size', '', '.. seealso::', '', ' :py:meth:`setSize()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.size', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.size', , {'members': }, [':return: Size', '', '.. seealso::', '', ' :py:meth:`setSize()`', '']) [autodoc] from qwt.symbol import QwtSymbol.setBrush [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'setBrush') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setBrush', , {'members': }, '(brush)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setBrush', , {'members': }, ['Assign a brush', '', 'The brush is used to draw the interior of the symbol.', '', ':param QBrush brush: Brush', '', '.. seealso::', '', ' :py:meth:`brush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setBrush', , {'members': }, '(brush)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setBrush', , {'members': }, ['Assign a brush', '', 'The brush is used to draw the interior of the symbol.', '', ':param QBrush brush: Brush', '', '.. seealso::', '', ' :py:meth:`brush()`', '']) [autodoc] from qwt.symbol import QwtSymbol.brush [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'brush') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.brush', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.brush', , {'members': }, [':return: Brush', '', '.. seealso::', '', ' :py:meth:`setBrush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.brush', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.brush', , {'members': }, [':return: Brush', '', '.. seealso::', '', ' :py:meth:`setBrush()`', '']) [autodoc] from qwt.symbol import QwtSymbol.setPen [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'setPen') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setPen', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setPen', , {'members': }, ['Build and/or assign a pen, depending on the arguments.', '', '.. py:method:: setPen(color, width, style)', ' :noindex:', '', ' Build and assign a pen', '', ' In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it', ' non cosmetic (see `QPen.isCosmetic()`). This method signature has', ' been introduced to hide this incompatibility.', '', ' :param QColor color: Pen color', ' :param float width: Pen width', ' :param Qt.PenStyle style: Pen style', '', '.. py:method:: setPen(pen)', ' :noindex:', '', ' Assign a pen', '', ' :param QPen pen: New pen', '', '.. seealso::', '', ' :py:meth:`pen()`, :py:meth:`brush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setPen', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setPen', , {'members': }, ['Build and/or assign a pen, depending on the arguments.', '', '.. py:method:: setPen(color, width, style)', ' :noindex:', '', ' Build and assign a pen', '', ' In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it', ' non cosmetic (see `QPen.isCosmetic()`). This method signature has', ' been introduced to hide this incompatibility.', '', ' :param QColor color: Pen color', ' :param float width: Pen width', ' :param Qt.PenStyle style: Pen style', '', '.. py:method:: setPen(pen)', ' :noindex:', '', ' Assign a pen', '', ' :param QPen pen: New pen', '', '.. seealso::', '', ' :py:meth:`pen()`, :py:meth:`brush()`', '']) [autodoc] from qwt.symbol import QwtSymbol.pen [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'pen') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.pen', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.pen', , {'members': }, [':return: Pen', '', '.. seealso::', '', ' :py:meth:`setPen()`, :py:meth:`brush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.pen', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.pen', , {'members': }, [':return: Pen', '', '.. seealso::', '', ' :py:meth:`setPen()`, :py:meth:`brush()`', '']) [autodoc] from qwt.symbol import QwtSymbol.setColor [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'setColor') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setColor', , {'members': }, '(color)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setColor', , {'members': }, ['Set the color of the symbol', '', 'Change the color of the brush for symbol types with a filled area.', 'For all other symbol types the color will be assigned to the pen.', '', ':param QColor color: Color', '', '.. seealso::', '', ' :py:meth:`setPen()`, :py:meth:`setBrush()`,', ' :py:meth:`brush()`, :py:meth:`pen()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setColor', , {'members': }, '(color)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setColor', , {'members': }, ['Set the color of the symbol', '', 'Change the color of the brush for symbol types with a filled area.', 'For all other symbol types the color will be assigned to the pen.', '', ':param QColor color: Color', '', '.. seealso::', '', ' :py:meth:`setPen()`, :py:meth:`setBrush()`,', ' :py:meth:`brush()`, :py:meth:`pen()`', '']) [autodoc] from qwt.symbol import QwtSymbol.setPinPoint [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'setPinPoint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setPinPoint', , {'members': }, '(pos, enable=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setPinPoint', , {'members': }, ['Set and enable a pin point', '', 'The position of a complex symbol is not always aligned to its center', '( f.e an arrow, where the peak points to a position ). The pin point', 'defines the position inside of a Pixmap, Graphic, SvgDocument', 'or PainterPath symbol where the represented point has to', 'be aligned to.', '', ':param QPointF pos: Position', ':enable bool enable: En/Disable the pin point alignment', '', '.. seealso::', '', ' :py:meth:`pinPoint()`, :py:meth:`setPinPointEnabled()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setPinPoint', , {'members': }, '(pos, enable=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setPinPoint', , {'members': }, ['Set and enable a pin point', '', 'The position of a complex symbol is not always aligned to its center', '( f.e an arrow, where the peak points to a position ). The pin point', 'defines the position inside of a Pixmap, Graphic, SvgDocument', 'or PainterPath symbol where the represented point has to', 'be aligned to.', '', ':param QPointF pos: Position', ':enable bool enable: En/Disable the pin point alignment', '', '.. seealso::', '', ' :py:meth:`pinPoint()`, :py:meth:`setPinPointEnabled()`', '']) [autodoc] from qwt.symbol import QwtSymbol.pinPoint [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'pinPoint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.pinPoint', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.pinPoint', , {'members': }, [':return: Pin point', '', '.. seealso::', '', ' :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.pinPoint', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.pinPoint', , {'members': }, [':return: Pin point', '', '.. seealso::', '', ' :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()`', '']) [autodoc] from qwt.symbol import QwtSymbol.setPinPointEnabled [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'setPinPointEnabled') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setPinPointEnabled', , {'members': }, '(on)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setPinPointEnabled', , {'members': }, ['En/Disable the pin point alignment', '', ':param bool on: Enabled, when on is true', '', '.. seealso::', '', ' :py:meth:`setPinPoint()`, :py:meth:`isPinPointEnabled()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setPinPointEnabled', , {'members': }, '(on)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setPinPointEnabled', , {'members': }, ['En/Disable the pin point alignment', '', ':param bool on: Enabled, when on is true', '', '.. seealso::', '', ' :py:meth:`setPinPoint()`, :py:meth:`isPinPointEnabled()`', '']) [autodoc] from qwt.symbol import QwtSymbol.isPinPointEnabled [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'isPinPointEnabled') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.isPinPointEnabled', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.isPinPointEnabled', , {'members': }, [':return: True, when the pin point translation is enabled', '', '.. seealso::', '', ' :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.isPinPointEnabled', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.isPinPointEnabled', , {'members': }, [':return: True, when the pin point translation is enabled', '', '.. seealso::', '', ' :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()`', '']) [autodoc] from qwt.symbol import QwtSymbol.drawSymbols [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'drawSymbols') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.drawSymbols', , {'members': }, '(painter, points)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.drawSymbols', , {'members': }, ['Render an array of symbols', '', 'Painting several symbols is more effective than drawing symbols', 'one by one, as a couple of layout calculations and setting of pen/brush', 'can be done once for the complete array.', '', ':param QPainter painter: Painter', ':param QPolygonF points: Positions of the symbols in screen coordinates', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.drawSymbols', , {'members': }, '(painter, points)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.drawSymbols', , {'members': }, ['Render an array of symbols', '', 'Painting several symbols is more effective than drawing symbols', 'one by one, as a couple of layout calculations and setting of pen/brush', 'can be done once for the complete array.', '', ':param QPainter painter: Painter', ':param QPolygonF points: Positions of the symbols in screen coordinates', '']) [autodoc] from qwt.symbol import QwtSymbol.drawSymbol [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'drawSymbol') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.drawSymbol', , {'members': }, '(painter, point_or_rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.drawSymbol', , {'members': }, ['Draw the symbol into a rectangle', '', 'The symbol is painted centered and scaled into the target rectangle.', 'It is always painted uncached and the pin point is ignored.', '', 'This method is primarily intended for drawing a symbol to the legend.', '', ':param QPainter painter: Painter', ':param point_or_rect: Position or target rectangle of the symbol in screen coordinates', ':type point_or_rect: QPointF or QPoint or QRectF', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.drawSymbol', , {'members': }, '(painter, point_or_rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.drawSymbol', , {'members': }, ['Draw the symbol into a rectangle', '', 'The symbol is painted centered and scaled into the target rectangle.', 'It is always painted uncached and the pin point is ignored.', '', 'This method is primarily intended for drawing a symbol to the legend.', '', ':param QPainter painter: Painter', ':param point_or_rect: Position or target rectangle of the symbol in screen coordinates', ':type point_or_rect: QPointF or QPoint or QRectF', '']) [autodoc] from qwt.symbol import QwtSymbol.renderSymbols [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'renderSymbols') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.renderSymbols', , {'members': }, '(painter, points)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.renderSymbols', , {'members': }, ['Render the symbol to series of points', '', ':param QPainter painter: Painter', ':param point_or_rect: Positions of the symbols', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.renderSymbols', , {'members': }, '(painter, points)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.renderSymbols', , {'members': }, ['Render the symbol to series of points', '', ':param QPainter painter: Painter', ':param point_or_rect: Positions of the symbols', '']) [autodoc] from qwt.symbol import QwtSymbol.boundingRect [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'boundingRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.boundingRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.boundingRect', , {'members': }, ['Calculate the bounding rectangle for a symbol at position (0,0).', '', ':return: Bounding rectangle', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.boundingRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.boundingRect', , {'members': }, ['Calculate the bounding rectangle for a symbol at position (0,0).', '', ':return: Bounding rectangle', '']) [autodoc] from qwt.symbol import QwtSymbol.invalidateCache [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'invalidateCache') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.invalidateCache', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.invalidateCache', , {'members': }, ['Invalidate the cached symbol pixmap', '', 'The symbol invalidates its cache, whenever an attribute is changed', 'that has an effect ob how to display a symbol. In case of derived', 'classes with individual styles (>= `QwtSymbol.UserStyle`) it', 'might be necessary to call invalidateCache() for attributes', 'that are relevant for this style.', '', '.. seealso::', '', ' :py:meth:`setCachePolicy()`, :py:meth:`drawSymbols()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.invalidateCache', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.invalidateCache', , {'members': }, ['Invalidate the cached symbol pixmap', '', 'The symbol invalidates its cache, whenever an attribute is changed', 'that has an effect ob how to display a symbol. In case of derived', 'classes with individual styles (>= `QwtSymbol.UserStyle`) it', 'might be necessary to call invalidateCache() for attributes', 'that are relevant for this style.', '', '.. seealso::', '', ' :py:meth:`setCachePolicy()`, :py:meth:`drawSymbols()`', '']) [autodoc] from qwt.symbol import QwtSymbol.setStyle [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'setStyle') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setStyle', , {'members': }, '(style)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setStyle', , {'members': }, ['Specify the symbol style', '', ':param int style: Style', '', '.. seealso::', '', ' :py:meth:`style()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.setStyle', , {'members': }, '(style)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.setStyle', , {'members': }, ['Specify the symbol style', '', ':param int style: Style', '', '.. seealso::', '', ' :py:meth:`style()`', '']) [autodoc] from qwt.symbol import QwtSymbol.style [autodoc] import qwt.symbol => [autodoc] getattr(_, 'QwtSymbol') [autodoc] => [autodoc] getattr(_, 'style') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.style', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.style', , {'members': }, [':return: Current symbol style', '', '.. seealso::', '', ' :py:meth:`setStyle()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.symbol.QwtSymbol.style', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.symbol.QwtSymbol.style', , {'members': }, [':return: Current symbol style', '', '.. seealso::', '', ' :py:meth:`setStyle()`', '']) [autodoc] output: .. py:class:: QwtSymbol(*args) @@ -20070,7 +20106,7 @@ [app] emitting event: 'viewcode-follow-imported'('qwt.symbol', 'QwtSymbol.style') [app] emitting event: 'viewcode-find-source'('qwt.symbol',) reading sources... [ 94%] reference/text -[app] emitting event: 'env-purge-doc'(, 'reference/text') +[app] emitting event: 'env-purge-doc'(, 'reference/text') [app] emitting event: 'source-read'('reference/text', ['.. automodule:: qwt.text\n']) [autodoc] /build/reproducible-path/python-qwt-0.12.7/doc/reference/text.rst:1: input: .. automodule:: qwt.text @@ -20126,55 +20162,55 @@ [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.text.QwtText', , {'members': }, '(text=None, textFormat=None, other=None)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.text.QwtText', , {'members': }, ['A class representing a text', '', 'A `QwtText` is a text including a set of attributes how to render it.', '', ' - Format:', '', ' A text might include control sequences (f.e tags) describing', ' how to render it. Each format (f.e MathML, TeX, Qt Rich Text)', ' has its own set of control sequences, that can be handles by', ' a special `QwtTextEngine` for this format.', '', ' - Background:', '', ' A text might have a background, defined by a `QPen` and `QBrush`', ' to improve its visibility. The corners of the background might', ' be rounded.', '', ' - Font:', '', ' A text might have an individual font.', '', ' - Color', '', ' A text might have an individual color.', '', ' - Render Flags', '', ' Flags from `Qt.AlignmentFlag` and `Qt.TextFlag` used like in', ' `QPainter.drawText()`.', '', '..seealso::', '', ' :py:meth:`qwt.text.QwtTextEngine`,', ' :py:meth:`qwt.text.QwtTextLabel`', '', 'Text formats:', '', ' * `QwtText.AutoText`:', '', ' The text format is determined using `QwtTextEngine.mightRender()` for', ' all available text engines in increasing order > PlainText.', ' If none of the text engines can render the text is rendered', ' like `QwtText.PlainText`.', '', ' * `QwtText.PlainText`:', '', ' Draw the text as it is, using a QwtPlainTextEngine.', '', ' * `QwtText.RichText`:', '', ' Use the Scribe framework (Qt Rich Text) to render the text.', '', ' * `QwtText.OtherFormat`:', '', ' The number of text formats can be extended using `setTextEngine`.', ' Formats >= `QwtText.OtherFormat` are not used by Qwt.', '', 'Paint attributes:', '', ' * `QwtText.PaintUsingTextFont`: The text has an individual font.', ' * `QwtText.PaintUsingTextColor`: The text has an individual color.', ' * `QwtText.PaintBackground`: The text has an individual background.', '', 'Layout attributes:', '', ' * `QwtText.MinimumLayout`:', '', ' Layout the text without its margins. This mode is useful if a', ' text needs to be aligned accurately, like the tick labels of a scale.', ' If `QwtTextEngine.textMargins` is not implemented for the format', ' of the text, `MinimumLayout` has no effect.', '', '.. py:class:: QwtText([text=None], [textFormat=None], [other=None])', '', ' :param str text: Text content', ' :param int textFormat: Text format', ' :param qwt.text.QwtText other: Object to copy (text and textFormat arguments are ignored)', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'AutoText', 0, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'MinimumLayout', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'OtherFormat', 100, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'PaintBackground', 4, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'PaintUsingTextColor', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'PaintUsingTextFont', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'PlainText', 1, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'RichText', 2, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__map', {1: , 2: }, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.text', '__firstlineno__': 486, '__doc__': '\nA class representing a text\n\nA `QwtText` is a text including a set of attributes how to render it.\n\n - Format:\n\n A text might include control sequences (f.e tags) describing\n how to render it. Each format (f.e MathML, TeX, Qt Rich Text)\n has its own set of control sequences, that can be handles by\n a special `QwtTextEngine` for this format.\n\n - Background:\n\n A text might have a background, defined by a `QPen` and `QBrush`\n to improve its visibility. The corners of the background might\n be rounded.\n\n - Font:\n\n A text might have an individual font.\n\n - Color\n\n A text might have an individual color.\n\n - Render Flags\n\n Flags from `Qt.AlignmentFlag` and `Qt.TextFlag` used like in\n `QPainter.drawText()`.\n\n..seealso::\n\n :py:meth:`qwt.text.QwtTextEngine`,\n :py:meth:`qwt.text.QwtTextLabel`\n\nText formats:\n\n * `QwtText.AutoText`:\n\n The text format is determined using `QwtTextEngine.mightRender()` for\n all available text engines in increasing order > PlainText.\n If none of the text engines can render the text is rendered\n like `QwtText.PlainText`.\n\n * `QwtText.PlainText`:\n\n Draw the text as it is, using a QwtPlainTextEngine.\n\n * `QwtText.RichText`:\n\n Use the Scribe framework (Qt Rich Text) to render the text.\n\n * `QwtText.OtherFormat`:\n\n The number of text formats can be extended using `setTextEngine`.\n Formats >= `QwtText.OtherFormat` are not used by Qwt.\n\nPaint attributes:\n\n * `QwtText.PaintUsingTextFont`: The text has an individual font.\n * `QwtText.PaintUsingTextColor`: The text has an individual color.\n * `QwtText.PaintBackground`: The text has an individual background.\n\nLayout attributes:\n\n * `QwtText.MinimumLayout`:\n\n Layout the text without its margins. This mode is useful if a\n text needs to be aligned accurately, like the tick labels of a scale.\n If `QwtTextEngine.textMargins` is not implemented for the format\n of the text, `MinimumLayout` has no effect.\n\n.. py:class:: QwtText([text=None], [textFormat=None], [other=None])\n\n :param str text: Text content\n :param int textFormat: Text format\n :param qwt.text.QwtText other: Object to copy (text and textFormat arguments are ignored)\n', 'AutoText': 0, 'PlainText': 1, 'RichText': 2, 'OtherFormat': 100, 'PaintUsingTextFont': 1, 'PaintUsingTextColor': 2, 'PaintBackground': 4, 'MinimumLayout': 1, '_QwtText__map': {1: , 2: }, '__init__': , 'make': )>, '__eq__': , '__ne__': , 'isEmpty': , 'setText': , 'text': , 'setRenderFlags': , 'renderFlags': , 'setFont': , 'font': , 'usedFont': , 'setColor': , 'color': , 'usedColor': , 'setBorderRadius': , 'borderRadius': , 'setBorderPen': , 'borderPen': , 'setBackgroundBrush': , 'backgroundBrush': , 'setPaintAttribute': , 'testPaintAttribute': , 'setLayoutAttribute': , 'testLayoutAttribute': , 'heightForWidth': , 'textSize': , 'draw': , 'textEngine': , 'setTextEngine': , '__static_attributes__': ('__data', '__layoutCache'), '__dict__': , '__weakref__': , '__hash__': None, '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA class representing a text\n\nA `QwtText` is a text including a set of attributes how to render it.\n\n - Format:\n\n A text might include control sequences (f.e tags) describing\n how to render it. Each format (f.e MathML, TeX, Qt Rich Text)\n has its own set of control sequences, that can be handles by\n a special `QwtTextEngine` for this format.\n\n - Background:\n\n A text might have a background, defined by a `QPen` and `QBrush`\n to improve its visibility. The corners of the background might\n be rounded.\n\n - Font:\n\n A text might have an individual font.\n\n - Color\n\n A text might have an individual color.\n\n - Render Flags\n\n Flags from `Qt.AlignmentFlag` and `Qt.TextFlag` used like in\n `QPainter.drawText()`.\n\n..seealso::\n\n :py:meth:`qwt.text.QwtTextEngine`,\n :py:meth:`qwt.text.QwtTextLabel`\n\nText formats:\n\n * `QwtText.AutoText`:\n\n The text format is determined using `QwtTextEngine.mightRender()` for\n all available text engines in increasing order > PlainText.\n If none of the text engines can render the text is rendered\n like `QwtText.PlainText`.\n\n * `QwtText.PlainText`:\n\n Draw the text as it is, using a QwtPlainTextEngine.\n\n * `QwtText.RichText`:\n\n Use the Scribe framework (Qt Rich Text) to render the text.\n\n * `QwtText.OtherFormat`:\n\n The number of text formats can be extended using `setTextEngine`.\n Formats >= `QwtText.OtherFormat` are not used by Qwt.\n\nPaint attributes:\n\n * `QwtText.PaintUsingTextFont`: The text has an individual font.\n * `QwtText.PaintUsingTextColor`: The text has an individual color.\n * `QwtText.PaintBackground`: The text has an individual background.\n\nLayout attributes:\n\n * `QwtText.MinimumLayout`:\n\n Layout the text without its margins. This mode is useful if a\n text needs to be aligned accurately, like the tick labels of a scale.\n If `QwtTextEngine.textMargins` is not implemented for the format\n of the text, `MinimumLayout` has no effect.\n\n.. py:class:: QwtText([text=None], [textFormat=None], [other=None])\n\n :param str text: Text content\n :param int textFormat: Text format\n :param qwt.text.QwtText other: Object to copy (text and textFormat arguments are ignored)\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__eq__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 486, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__hash__', None, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.text', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__ne__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data', '__layoutCache'), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'backgroundBrush', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'borderPen', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'borderRadius', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'color', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'font', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'heightForWidth', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'isEmpty', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'make', >, False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'renderFlags', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setBackgroundBrush', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setBorderPen', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setBorderRadius', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setColor', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setFont', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setLayoutAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setPaintAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setRenderFlags', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setText', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setTextEngine', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testLayoutAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'testPaintAttribute', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'text', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'textEngine', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'textSize', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'usedColor', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'usedFont', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.text.QwtText', , {'members': }, '(text=None, textFormat=None, other=None)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.text.QwtText', , {'members': }, ['A class representing a text', '', 'A `QwtText` is a text including a set of attributes how to render it.', '', ' - Format:', '', ' A text might include control sequences (f.e tags) describing', ' how to render it. Each format (f.e MathML, TeX, Qt Rich Text)', ' has its own set of control sequences, that can be handles by', ' a special `QwtTextEngine` for this format.', '', ' - Background:', '', ' A text might have a background, defined by a `QPen` and `QBrush`', ' to improve its visibility. The corners of the background might', ' be rounded.', '', ' - Font:', '', ' A text might have an individual font.', '', ' - Color', '', ' A text might have an individual color.', '', ' - Render Flags', '', ' Flags from `Qt.AlignmentFlag` and `Qt.TextFlag` used like in', ' `QPainter.drawText()`.', '', '..seealso::', '', ' :py:meth:`qwt.text.QwtTextEngine`,', ' :py:meth:`qwt.text.QwtTextLabel`', '', 'Text formats:', '', ' * `QwtText.AutoText`:', '', ' The text format is determined using `QwtTextEngine.mightRender()` for', ' all available text engines in increasing order > PlainText.', ' If none of the text engines can render the text is rendered', ' like `QwtText.PlainText`.', '', ' * `QwtText.PlainText`:', '', ' Draw the text as it is, using a QwtPlainTextEngine.', '', ' * `QwtText.RichText`:', '', ' Use the Scribe framework (Qt Rich Text) to render the text.', '', ' * `QwtText.OtherFormat`:', '', ' The number of text formats can be extended using `setTextEngine`.', ' Formats >= `QwtText.OtherFormat` are not used by Qwt.', '', 'Paint attributes:', '', ' * `QwtText.PaintUsingTextFont`: The text has an individual font.', ' * `QwtText.PaintUsingTextColor`: The text has an individual color.', ' * `QwtText.PaintBackground`: The text has an individual background.', '', 'Layout attributes:', '', ' * `QwtText.MinimumLayout`:', '', ' Layout the text without its margins. This mode is useful if a', ' text needs to be aligned accurately, like the tick labels of a scale.', ' If `QwtTextEngine.textMargins` is not implemented for the format', ' of the text, `MinimumLayout` has no effect.', '', '.. py:class:: QwtText([text=None], [textFormat=None], [other=None])', '', ' :param str text: Text content', ' :param int textFormat: Text format', ' :param qwt.text.QwtText other: Object to copy (text and textFormat arguments are ignored)', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'AutoText', 0, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'MinimumLayout', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'OtherFormat', 100, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'PaintBackground', 4, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'PaintUsingTextColor', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'PaintUsingTextFont', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'PlainText', 1, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'RichText', 2, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__map', {1: , 2: }, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.text', '__firstlineno__': 486, '__doc__': '\nA class representing a text\n\nA `QwtText` is a text including a set of attributes how to render it.\n\n - Format:\n\n A text might include control sequences (f.e tags) describing\n how to render it. Each format (f.e MathML, TeX, Qt Rich Text)\n has its own set of control sequences, that can be handles by\n a special `QwtTextEngine` for this format.\n\n - Background:\n\n A text might have a background, defined by a `QPen` and `QBrush`\n to improve its visibility. The corners of the background might\n be rounded.\n\n - Font:\n\n A text might have an individual font.\n\n - Color\n\n A text might have an individual color.\n\n - Render Flags\n\n Flags from `Qt.AlignmentFlag` and `Qt.TextFlag` used like in\n `QPainter.drawText()`.\n\n..seealso::\n\n :py:meth:`qwt.text.QwtTextEngine`,\n :py:meth:`qwt.text.QwtTextLabel`\n\nText formats:\n\n * `QwtText.AutoText`:\n\n The text format is determined using `QwtTextEngine.mightRender()` for\n all available text engines in increasing order > PlainText.\n If none of the text engines can render the text is rendered\n like `QwtText.PlainText`.\n\n * `QwtText.PlainText`:\n\n Draw the text as it is, using a QwtPlainTextEngine.\n\n * `QwtText.RichText`:\n\n Use the Scribe framework (Qt Rich Text) to render the text.\n\n * `QwtText.OtherFormat`:\n\n The number of text formats can be extended using `setTextEngine`.\n Formats >= `QwtText.OtherFormat` are not used by Qwt.\n\nPaint attributes:\n\n * `QwtText.PaintUsingTextFont`: The text has an individual font.\n * `QwtText.PaintUsingTextColor`: The text has an individual color.\n * `QwtText.PaintBackground`: The text has an individual background.\n\nLayout attributes:\n\n * `QwtText.MinimumLayout`:\n\n Layout the text without its margins. This mode is useful if a\n text needs to be aligned accurately, like the tick labels of a scale.\n If `QwtTextEngine.textMargins` is not implemented for the format\n of the text, `MinimumLayout` has no effect.\n\n.. py:class:: QwtText([text=None], [textFormat=None], [other=None])\n\n :param str text: Text content\n :param int textFormat: Text format\n :param qwt.text.QwtText other: Object to copy (text and textFormat arguments are ignored)\n', 'AutoText': 0, 'PlainText': 1, 'RichText': 2, 'OtherFormat': 100, 'PaintUsingTextFont': 1, 'PaintUsingTextColor': 2, 'PaintBackground': 4, 'MinimumLayout': 1, '_QwtText__map': {1: , 2: }, '__init__': , 'make': )>, '__eq__': , '__ne__': , 'isEmpty': , 'setText': , 'text': , 'setRenderFlags': , 'renderFlags': , 'setFont': , 'font': , 'usedFont': , 'setColor': , 'color': , 'usedColor': , 'setBorderRadius': , 'borderRadius': , 'setBorderPen': , 'borderPen': , 'setBackgroundBrush': , 'backgroundBrush': , 'setPaintAttribute': , 'testPaintAttribute': , 'setLayoutAttribute': , 'testLayoutAttribute': , 'heightForWidth': , 'textSize': , 'draw': , 'textEngine': , 'setTextEngine': , '__static_attributes__': ('__data', '__layoutCache'), '__dict__': , '__weakref__': , '__hash__': None, '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA class representing a text\n\nA `QwtText` is a text including a set of attributes how to render it.\n\n - Format:\n\n A text might include control sequences (f.e tags) describing\n how to render it. Each format (f.e MathML, TeX, Qt Rich Text)\n has its own set of control sequences, that can be handles by\n a special `QwtTextEngine` for this format.\n\n - Background:\n\n A text might have a background, defined by a `QPen` and `QBrush`\n to improve its visibility. The corners of the background might\n be rounded.\n\n - Font:\n\n A text might have an individual font.\n\n - Color\n\n A text might have an individual color.\n\n - Render Flags\n\n Flags from `Qt.AlignmentFlag` and `Qt.TextFlag` used like in\n `QPainter.drawText()`.\n\n..seealso::\n\n :py:meth:`qwt.text.QwtTextEngine`,\n :py:meth:`qwt.text.QwtTextLabel`\n\nText formats:\n\n * `QwtText.AutoText`:\n\n The text format is determined using `QwtTextEngine.mightRender()` for\n all available text engines in increasing order > PlainText.\n If none of the text engines can render the text is rendered\n like `QwtText.PlainText`.\n\n * `QwtText.PlainText`:\n\n Draw the text as it is, using a QwtPlainTextEngine.\n\n * `QwtText.RichText`:\n\n Use the Scribe framework (Qt Rich Text) to render the text.\n\n * `QwtText.OtherFormat`:\n\n The number of text formats can be extended using `setTextEngine`.\n Formats >= `QwtText.OtherFormat` are not used by Qwt.\n\nPaint attributes:\n\n * `QwtText.PaintUsingTextFont`: The text has an individual font.\n * `QwtText.PaintUsingTextColor`: The text has an individual color.\n * `QwtText.PaintBackground`: The text has an individual background.\n\nLayout attributes:\n\n * `QwtText.MinimumLayout`:\n\n Layout the text without its margins. This mode is useful if a\n text needs to be aligned accurately, like the tick labels of a scale.\n If `QwtTextEngine.textMargins` is not implemented for the format\n of the text, `MinimumLayout` has no effect.\n\n.. py:class:: QwtText([text=None], [textFormat=None], [other=None])\n\n :param str text: Text content\n :param int textFormat: Text format\n :param qwt.text.QwtText other: Object to copy (text and textFormat arguments are ignored)\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__eq__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 486, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__hash__', None, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.text', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__ne__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data', '__layoutCache'), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'backgroundBrush', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'borderPen', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'borderRadius', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'color', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'font', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'heightForWidth', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'isEmpty', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'make', >, False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'renderFlags', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setBackgroundBrush', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setBorderPen', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setBorderRadius', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setColor', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setFont', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setLayoutAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setPaintAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setRenderFlags', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setText', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setTextEngine', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testLayoutAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'testPaintAttribute', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'text', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'textEngine', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'textSize', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'usedColor', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'usedFont', , False, {'members': }) [autodoc] from qwt.text import QwtText.make [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') @@ -20182,242 +20218,242 @@ [autodoc] getattr(_, 'make') [autodoc] => > [app] emitting event: 'autodoc-before-process-signature'(>, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.make', >, {'members': }, '(text=None, textformat=None, renderflags=None, font=None, family=None, pointsize=None, weight=None, color=None, borderradius=None, borderpen=None, brush=None)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.make', >, {'members': }, ['Create and setup a new `QwtText` object (convenience function).', '', ':param str text: Text content', ':param int textformat: Text format', ':param int renderflags: Flags from `Qt.AlignmentFlag` and `Qt.TextFlag`', ':param font: Font', ':type font: QFont or None', ':param family: Font family (default: Helvetica)', ':type family: str or None', ':param pointsize: Font point size (default: 10)', ':type pointsize: int or None', ':param weight: Font weight (default: QFont.Normal)', ':type weight: int or None', ':param color: Pen color', ':type color: QColor or str or None', ':param borderradius: Radius for the corners of the border frame', ':type borderradius: float or None', ':param borderpen: Background pen', ':type borderpen: QPen or None', ':param brush: Background brush', ':type brush: QBrush or None', '', '.. seealso::', '', ' :py:meth:`setText()`', '']) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.make', >, {'members': }, '(text=None, textformat=None, renderflags=None, font=None, family=None, pointsize=None, weight=None, color=None, borderradius=None, borderpen=None, brush=None)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.make', >, {'members': }, ['Create and setup a new `QwtText` object (convenience function).', '', ':param str text: Text content', ':param int textformat: Text format', ':param int renderflags: Flags from `Qt.AlignmentFlag` and `Qt.TextFlag`', ':param font: Font', ':type font: QFont or None', ':param family: Font family (default: Helvetica)', ':type family: str or None', ':param pointsize: Font point size (default: 10)', ':type pointsize: int or None', ':param weight: Font weight (default: QFont.Normal)', ':type weight: int or None', ':param color: Pen color', ':type color: QColor or str or None', ':param borderradius: Radius for the corners of the border frame', ':type borderradius: float or None', ':param borderpen: Background pen', ':type borderpen: QPen or None', ':param brush: Background brush', ':type brush: QBrush or None', '', '.. seealso::', '', ' :py:meth:`setText()`', '']) [autodoc] from qwt.text import QwtText.isEmpty [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'isEmpty') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.isEmpty', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.isEmpty', , {'members': }, [':return: True if text is empty', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.isEmpty', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.isEmpty', , {'members': }, [':return: True if text is empty', '']) [autodoc] from qwt.text import QwtText.setText [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'setText') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setText', , {'members': }, '(text, textFormat=None)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setText', , {'members': }, ['Assign a new text content', '', ':param str text: Text content', ':param int textFormat: Text format', '', '.. seealso::', '', ' :py:meth:`text()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setText', , {'members': }, '(text, textFormat=None)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setText', , {'members': }, ['Assign a new text content', '', ':param str text: Text content', ':param int textFormat: Text format', '', '.. seealso::', '', ' :py:meth:`text()`', '']) [autodoc] from qwt.text import QwtText.text [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'text') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.text', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.text', , {'members': }, [':return: Text content', '', '.. seealso::', '', ' :py:meth:`setText()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.text', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.text', , {'members': }, [':return: Text content', '', '.. seealso::', '', ' :py:meth:`setText()`', '']) [autodoc] from qwt.text import QwtText.setRenderFlags [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'setRenderFlags') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setRenderFlags', , {'members': }, '(renderFlags)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setRenderFlags', , {'members': }, ['Change the render flags', '', 'The default setting is `Qt.AlignCenter`', '', ':param int renderFlags: Bitwise OR of the flags used like in `QPainter.drawText()`', '', '.. seealso::', '', ' :py:meth:`renderFlags()`,', ' :py:meth:`qwt.text.QwtTextEngine.draw()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setRenderFlags', , {'members': }, '(renderFlags)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setRenderFlags', , {'members': }, ['Change the render flags', '', 'The default setting is `Qt.AlignCenter`', '', ':param int renderFlags: Bitwise OR of the flags used like in `QPainter.drawText()`', '', '.. seealso::', '', ' :py:meth:`renderFlags()`,', ' :py:meth:`qwt.text.QwtTextEngine.draw()`', '']) [autodoc] from qwt.text import QwtText.renderFlags [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'renderFlags') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.renderFlags', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.renderFlags', , {'members': }, [':return: Render flags', '', '.. seealso::', '', ' :py:meth:`setRenderFlags()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.renderFlags', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.renderFlags', , {'members': }, [':return: Render flags', '', '.. seealso::', '', ' :py:meth:`setRenderFlags()`', '']) [autodoc] from qwt.text import QwtText.setFont [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'setFont') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setFont', , {'members': }, '(font)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setFont', , {'members': }, ['Set the font.', '', ':param QFont font: Font', '', '.. note::', '', ' Setting the font might have no effect, when', ' the text contains control sequences for setting fonts.', '', '.. seealso::', '', ' :py:meth:`font()`, :py:meth:`usedFont()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setFont', , {'members': }, '(font)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setFont', , {'members': }, ['Set the font.', '', ':param QFont font: Font', '', '.. note::', '', ' Setting the font might have no effect, when', ' the text contains control sequences for setting fonts.', '', '.. seealso::', '', ' :py:meth:`font()`, :py:meth:`usedFont()`', '']) [autodoc] from qwt.text import QwtText.font [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'font') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.font', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.font', , {'members': }, [':return: Return the font', '', '.. seealso::', '', ' :py:meth:`setFont()`, :py:meth:`usedFont()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.font', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.font', , {'members': }, [':return: Return the font', '', '.. seealso::', '', ' :py:meth:`setFont()`, :py:meth:`usedFont()`', '']) [autodoc] from qwt.text import QwtText.usedFont [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'usedFont') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.usedFont', , {'members': }, '(defaultFont)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.usedFont', , {'members': }, ['Return the font of the text, if it has one.', 'Otherwise return defaultFont.', '', ':param QFont defaultFont: Default font', ':return: Font used for drawing the text', '', '.. seealso::', '', ' :py:meth:`setFont()`, :py:meth:`font()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.usedFont', , {'members': }, '(defaultFont)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.usedFont', , {'members': }, ['Return the font of the text, if it has one.', 'Otherwise return defaultFont.', '', ':param QFont defaultFont: Default font', ':return: Font used for drawing the text', '', '.. seealso::', '', ' :py:meth:`setFont()`, :py:meth:`font()`', '']) [autodoc] from qwt.text import QwtText.setColor [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'setColor') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setColor', , {'members': }, '(color)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setColor', , {'members': }, ['Set the pen color used for drawing the text.', '', ':param QColor color: Color', '', '.. note::', '', ' Setting the color might have no effect, when', ' the text contains control sequences for setting colors.', '', '.. seealso::', '', ' :py:meth:`color()`, :py:meth:`usedColor()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setColor', , {'members': }, '(color)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setColor', , {'members': }, ['Set the pen color used for drawing the text.', '', ':param QColor color: Color', '', '.. note::', '', ' Setting the color might have no effect, when', ' the text contains control sequences for setting colors.', '', '.. seealso::', '', ' :py:meth:`color()`, :py:meth:`usedColor()`', '']) [autodoc] from qwt.text import QwtText.color [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'color') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.color', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.color', , {'members': }, [':return: Return the pen color, used for painting the text', '', '.. seealso::', '', ' :py:meth:`setColor()`, :py:meth:`usedColor()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.color', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.color', , {'members': }, [':return: Return the pen color, used for painting the text', '', '.. seealso::', '', ' :py:meth:`setColor()`, :py:meth:`usedColor()`', '']) [autodoc] from qwt.text import QwtText.usedColor [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'usedColor') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.usedColor', , {'members': }, '(defaultColor)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.usedColor', , {'members': }, ['Return the color of the text, if it has one.', 'Otherwise return defaultColor.', '', ':param QColor defaultColor: Default color', ':return: Color used for drawing the text', '', '.. seealso::', '', ' :py:meth:`setColor()`, :py:meth:`color()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.usedColor', , {'members': }, '(defaultColor)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.usedColor', , {'members': }, ['Return the color of the text, if it has one.', 'Otherwise return defaultColor.', '', ':param QColor defaultColor: Default color', ':return: Color used for drawing the text', '', '.. seealso::', '', ' :py:meth:`setColor()`, :py:meth:`color()`', '']) [autodoc] from qwt.text import QwtText.setBorderRadius [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'setBorderRadius') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setBorderRadius', , {'members': }, '(radius)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setBorderRadius', , {'members': }, ['Set the radius for the corners of the border frame', '', ':param float radius: Radius of a rounded corner', '', '.. seealso::', '', ' :py:meth:`borderRadius()`, :py:meth:`setBorderPen()`,', ' :py:meth:`setBackgroundBrush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setBorderRadius', , {'members': }, '(radius)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setBorderRadius', , {'members': }, ['Set the radius for the corners of the border frame', '', ':param float radius: Radius of a rounded corner', '', '.. seealso::', '', ' :py:meth:`borderRadius()`, :py:meth:`setBorderPen()`,', ' :py:meth:`setBackgroundBrush()`', '']) [autodoc] from qwt.text import QwtText.borderRadius [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'borderRadius') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.borderRadius', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.borderRadius', , {'members': }, [':return: Radius for the corners of the border frame', '', '.. seealso::', '', ' :py:meth:`setBorderRadius()`, :py:meth:`borderPen()`,', ' :py:meth:`backgroundBrush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.borderRadius', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.borderRadius', , {'members': }, [':return: Radius for the corners of the border frame', '', '.. seealso::', '', ' :py:meth:`setBorderRadius()`, :py:meth:`borderPen()`,', ' :py:meth:`backgroundBrush()`', '']) [autodoc] from qwt.text import QwtText.setBorderPen [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'setBorderPen') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setBorderPen', , {'members': }, '(pen)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setBorderPen', , {'members': }, ['Set the background pen', '', ':param QPen pen: Background pen', '', '.. seealso::', '', ' :py:meth:`borderPen()`, :py:meth:`setBackgroundBrush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setBorderPen', , {'members': }, '(pen)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setBorderPen', , {'members': }, ['Set the background pen', '', ':param QPen pen: Background pen', '', '.. seealso::', '', ' :py:meth:`borderPen()`, :py:meth:`setBackgroundBrush()`', '']) [autodoc] from qwt.text import QwtText.borderPen [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'borderPen') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.borderPen', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.borderPen', , {'members': }, [':return: Background pen', '', '.. seealso::', '', ' :py:meth:`setBorderPen()`, :py:meth:`backgroundBrush()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.borderPen', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.borderPen', , {'members': }, [':return: Background pen', '', '.. seealso::', '', ' :py:meth:`setBorderPen()`, :py:meth:`backgroundBrush()`', '']) [autodoc] from qwt.text import QwtText.setBackgroundBrush [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'setBackgroundBrush') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setBackgroundBrush', , {'members': }, '(brush)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setBackgroundBrush', , {'members': }, ['Set the background brush', '', ':param QBrush brush: Background brush', '', '.. seealso::', '', ' :py:meth:`backgroundBrush()`, :py:meth:`setBorderPen()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setBackgroundBrush', , {'members': }, '(brush)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setBackgroundBrush', , {'members': }, ['Set the background brush', '', ':param QBrush brush: Background brush', '', '.. seealso::', '', ' :py:meth:`backgroundBrush()`, :py:meth:`setBorderPen()`', '']) [autodoc] from qwt.text import QwtText.backgroundBrush [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'backgroundBrush') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.backgroundBrush', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.backgroundBrush', , {'members': }, [':return: Background brush', '', '.. seealso::', '', ' :py:meth:`setBackgroundBrush()`, :py:meth:`borderPen()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.backgroundBrush', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.backgroundBrush', , {'members': }, [':return: Background brush', '', '.. seealso::', '', ' :py:meth:`setBackgroundBrush()`, :py:meth:`borderPen()`', '']) [autodoc] from qwt.text import QwtText.setPaintAttribute [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'setPaintAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setPaintAttribute', , {'members': }, '(attribute, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setPaintAttribute', , {'members': }, ['Change a paint attribute', '', ':param int attribute: Paint attribute', ':param bool on: On/Off', '', '.. note::', '', ' Used by `setFont()`, `setColor()`, `setBorderPen()`', ' and `setBackgroundBrush()`', '', '.. seealso::', '', ' :py:meth:`testPaintAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setPaintAttribute', , {'members': }, '(attribute, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setPaintAttribute', , {'members': }, ['Change a paint attribute', '', ':param int attribute: Paint attribute', ':param bool on: On/Off', '', '.. note::', '', ' Used by `setFont()`, `setColor()`, `setBorderPen()`', ' and `setBackgroundBrush()`', '', '.. seealso::', '', ' :py:meth:`testPaintAttribute()`', '']) [autodoc] from qwt.text import QwtText.testPaintAttribute [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'testPaintAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.testPaintAttribute', , {'members': }, '(attribute)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.testPaintAttribute', , {'members': }, ['Test a paint attribute', '', ':param int attribute: Paint attribute', ':return: True, if attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setPaintAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.testPaintAttribute', , {'members': }, '(attribute)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.testPaintAttribute', , {'members': }, ['Test a paint attribute', '', ':param int attribute: Paint attribute', ':return: True, if attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setPaintAttribute()`', '']) [autodoc] from qwt.text import QwtText.setLayoutAttribute [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'setLayoutAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setLayoutAttribute', , {'members': }, '(attribute, on=True)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setLayoutAttribute', , {'members': }, ['Change a layout attribute', '', ':param int attribute: Layout attribute', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`testLayoutAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setLayoutAttribute', , {'members': }, '(attribute, on=True)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setLayoutAttribute', , {'members': }, ['Change a layout attribute', '', ':param int attribute: Layout attribute', ':param bool on: On/Off', '', '.. seealso::', '', ' :py:meth:`testLayoutAttribute()`', '']) [autodoc] from qwt.text import QwtText.testLayoutAttribute [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'testLayoutAttribute') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.testLayoutAttribute', , {'members': }, '(attribute)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.testLayoutAttribute', , {'members': }, ['Test a layout attribute', '', ':param int attribute: Layout attribute', ':return: True, if attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setLayoutAttribute()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.testLayoutAttribute', , {'members': }, '(attribute)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.testLayoutAttribute', , {'members': }, ['Test a layout attribute', '', ':param int attribute: Layout attribute', ':return: True, if attribute is enabled', '', '.. seealso::', '', ' :py:meth:`setLayoutAttribute()`', '']) [autodoc] from qwt.text import QwtText.heightForWidth [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'heightForWidth') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.heightForWidth', , {'members': }, '(width, defaultFont=None)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.heightForWidth', , {'members': }, ['Find the height for a given width', '', ':param float width: Width', ':param QFont defaultFont: Font, used for the calculation if the text has no font', ':return: Calculated height', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.heightForWidth', , {'members': }, '(width, defaultFont=None)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.heightForWidth', , {'members': }, ['Find the height for a given width', '', ':param float width: Width', ':param QFont defaultFont: Font, used for the calculation if the text has no font', ':return: Calculated height', '']) [autodoc] from qwt.text import QwtText.textSize [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'textSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.textSize', , {'members': }, '(defaultFont)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.textSize', , {'members': }, ['Returns the size, that is needed to render text', '', ':param QFont defaultFont Font, used for the calculation if the text has no font', ':return: Caluclated size', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.textSize', , {'members': }, '(defaultFont)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.textSize', , {'members': }, ['Returns the size, that is needed to render text', '', ':param QFont defaultFont Font, used for the calculation if the text has no font', ':return: Caluclated size', '']) [autodoc] from qwt.text import QwtText.draw [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'draw') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.draw', , {'members': }, '(painter, rect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.draw', , {'members': }, ['Draw a text into a rectangle', '', ':param QPainter painter: Painter', ':param QRectF rect: Rectangle', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.draw', , {'members': }, '(painter, rect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.draw', , {'members': }, ['Draw a text into a rectangle', '', ':param QPainter painter: Painter', ':param QRectF rect: Rectangle', '']) [autodoc] from qwt.text import QwtText.textEngine [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'textEngine') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.textEngine', , {'members': }, '(text=None, format_=None)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.textEngine', , {'members': }, ['Find the text engine for a text format', '', 'In case of `QwtText.AutoText` the first text engine', '(beside `QwtPlainTextEngine`) is returned, where', '`QwtTextEngine.mightRender` returns true.', 'If there is none `QwtPlainTextEngine` is returned.', '', 'If no text engine is registered for the format `QwtPlainTextEngine`', 'is returned.', '', ':param str text: Text, needed in case of AutoText', ':param int format: Text format', ':return: Corresponding text engine', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.textEngine', , {'members': }, '(text=None, format_=None)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.textEngine', , {'members': }, ['Find the text engine for a text format', '', 'In case of `QwtText.AutoText` the first text engine', '(beside `QwtPlainTextEngine`) is returned, where', '`QwtTextEngine.mightRender` returns true.', 'If there is none `QwtPlainTextEngine` is returned.', '', 'If no text engine is registered for the format `QwtPlainTextEngine`', 'is returned.', '', ':param str text: Text, needed in case of AutoText', ':param int format: Text format', ':return: Corresponding text engine', '']) [autodoc] from qwt.text import QwtText.setTextEngine [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtText') [autodoc] => [autodoc] getattr(_, 'setTextEngine') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setTextEngine', , {'members': }, '(format_, engine)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setTextEngine', , {'members': }, ['Assign/Replace a text engine for a text format', '', 'With setTextEngine it is possible to extend `PythonQwt` with', 'other types of text formats.', '', 'For `QwtText.PlainText` it is not allowed to assign a engine to None.', '', ':param int format_: Text format', ':param qwt.text.QwtTextEngine engine: Text engine', '', '.. seealso::', '', ' :py:meth:`setPaintAttribute()`', '', '.. warning::', '', ' Using `QwtText.AutoText` does nothing.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtText.setTextEngine', , {'members': }, '(format_, engine)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtText.setTextEngine', , {'members': }, ['Assign/Replace a text engine for a text format', '', 'With setTextEngine it is possible to extend `PythonQwt` with', 'other types of text formats.', '', 'For `QwtText.PlainText` it is not allowed to assign a engine to None.', '', ':param int format_: Text format', ':param qwt.text.QwtTextEngine engine: Text engine', '', '.. seealso::', '', ' :py:meth:`setPaintAttribute()`', '', '.. warning::', '', ' Using `QwtText.AutoText` does nothing.', '']) [autodoc] output: .. py:class:: QwtText(text=None, textFormat=None, other=None) @@ -20898,176 +20934,176 @@ [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.text.QwtTextLabel', , {'members': }, '(*args)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.text.QwtTextLabel', , {'members': }, ['A Widget which displays a QwtText', '', '.. py:class:: QwtTextLabel(parent)', '', ' :param QWidget parent: Parent widget', '', '.. py:class:: QwtTextLabel([text=None], [parent=None])', ' :noindex:', '', ' :param str text: Text', ' :param QWidget parent: Parent widget', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA Widget which displays a QwtText\n\n.. py:class:: QwtTextLabel(parent)\n\n :param QWidget parent: Parent widget\n\n.. py:class:: QwtTextLabel([text=None], [parent=None])\n :noindex:\n\n :param str text: Text\n :param QWidget parent: Parent widget\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 1118, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.text', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'clear', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'defaultIndent', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawContents', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'drawText', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'heightForWidth', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'indent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'init', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'margin', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'minimumSizeHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'paintEvent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'plainText', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setIndent', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setMargin', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setPlainText', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'setText', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'sizeHint', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'text', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'textRect', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.text.QwtTextLabel', , {'members': }, '(*args)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.text.QwtTextLabel', , {'members': }, ['A Widget which displays a QwtText', '', '.. py:class:: QwtTextLabel(parent)', '', ' :param QWidget parent: Parent widget', '', '.. py:class:: QwtTextLabel([text=None], [parent=None])', ' :noindex:', '', ' :param str text: Text', ' :param QWidget parent: Parent widget', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA Widget which displays a QwtText\n\n.. py:class:: QwtTextLabel(parent)\n\n :param QWidget parent: Parent widget\n\n.. py:class:: QwtTextLabel([text=None], [parent=None])\n :noindex:\n\n :param str text: Text\n :param QWidget parent: Parent widget\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 1118, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.text', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__data',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'clear', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'defaultIndent', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawContents', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'drawText', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'heightForWidth', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'indent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'init', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'margin', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'minimumSizeHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'paintEvent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'plainText', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setIndent', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setMargin', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setPlainText', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'setText', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'sizeHint', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'text', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'textRect', , False, {'members': }) [autodoc] from qwt.text import QwtTextLabel.setPlainText [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'setPlainText') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.setPlainText', , {'members': }, '(text)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.setPlainText', , {'members': }, ['Interface for the designer plugin - does the same as setText()', '', ':param str text: Text', '', '.. seealso::', '', ' :py:meth:`plainText()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.setPlainText', , {'members': }, '(text)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.setPlainText', , {'members': }, ['Interface for the designer plugin - does the same as setText()', '', ':param str text: Text', '', '.. seealso::', '', ' :py:meth:`plainText()`', '']) [autodoc] from qwt.text import QwtTextLabel.plainText [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'plainText') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.plainText', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.plainText', , {'members': }, ['Interface for the designer plugin', '', ':return: Text as plain text', '', '.. seealso::', '', ' :py:meth:`setPlainText()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.plainText', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.plainText', , {'members': }, ['Interface for the designer plugin', '', ':return: Text as plain text', '', '.. seealso::', '', ' :py:meth:`setPlainText()`', '']) [autodoc] from qwt.text import QwtTextLabel.setText [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'setText') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.setText', , {'members': }, '(text, textFormat=0)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.setText', , {'members': }, ["Change the label's text, keeping all other QwtText attributes", '', ':param text: New text', ':type text: qwt.text.QwtText or str', ':param int textFormat: Format of text', '', '.. seealso::', '', ' :py:meth:`text()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.setText', , {'members': }, '(text, textFormat=0)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.setText', , {'members': }, ["Change the label's text, keeping all other QwtText attributes", '', ':param text: New text', ':type text: qwt.text.QwtText or str', ':param int textFormat: Format of text', '', '.. seealso::', '', ' :py:meth:`text()`', '']) [autodoc] from qwt.text import QwtTextLabel.text [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'text') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.text', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.text', , {'members': }, [':return: Return the text', '', '.. seealso::', '', ' :py:meth:`setText()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.text', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.text', , {'members': }, [':return: Return the text', '', '.. seealso::', '', ' :py:meth:`setText()`', '']) [autodoc] from qwt.text import QwtTextLabel.clear [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'clear') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.clear', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.clear', , {'members': }, ['Clear the text and all `QwtText` attributes', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.clear', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.clear', , {'members': }, ['Clear the text and all `QwtText` attributes', '']) [autodoc] from qwt.text import QwtTextLabel.indent [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'indent') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.indent', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.indent', , {'members': }, [":return: Label's text indent in pixels", '', '.. seealso::', '', ' :py:meth:`setIndent()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.indent', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.indent', , {'members': }, [":return: Label's text indent in pixels", '', '.. seealso::', '', ' :py:meth:`setIndent()`', '']) [autodoc] from qwt.text import QwtTextLabel.setIndent [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'setIndent') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.setIndent', , {'members': }, '(indent)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.setIndent', , {'members': }, ["Set label's text indent in pixels", '', ':param int indent: Indentation in pixels', '', '.. seealso::', '', ' :py:meth:`indent()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.setIndent', , {'members': }, '(indent)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.setIndent', , {'members': }, ["Set label's text indent in pixels", '', ':param int indent: Indentation in pixels', '', '.. seealso::', '', ' :py:meth:`indent()`', '']) [autodoc] from qwt.text import QwtTextLabel.margin [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'margin') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.margin', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.margin', , {'members': }, [":return: Label's text indent in pixels", '', '.. seealso::', '', ' :py:meth:`setMargin()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.margin', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.margin', , {'members': }, [":return: Label's text indent in pixels", '', '.. seealso::', '', ' :py:meth:`setMargin()`', '']) [autodoc] from qwt.text import QwtTextLabel.setMargin [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'setMargin') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.setMargin', , {'members': }, '(margin)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.setMargin', , {'members': }, ["Set label's margin in pixels", '', ':param int margin: Margin in pixels', '', '.. seealso::', '', ' :py:meth:`margin()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.setMargin', , {'members': }, '(margin)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.setMargin', , {'members': }, ["Set label's margin in pixels", '', ':param int margin: Margin in pixels', '', '.. seealso::', '', ' :py:meth:`margin()`', '']) [autodoc] from qwt.text import QwtTextLabel.sizeHint [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'sizeHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.sizeHint', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.sizeHint', , {'members': }, ['Return a size hint', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.sizeHint', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.sizeHint', , {'members': }, ['Return a size hint', '']) [autodoc] from qwt.text import QwtTextLabel.minimumSizeHint [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'minimumSizeHint') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.minimumSizeHint', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.minimumSizeHint', , {'members': }, ['Return a minimum size hint', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.minimumSizeHint', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.minimumSizeHint', , {'members': }, ['Return a minimum size hint', '']) [autodoc] from qwt.text import QwtTextLabel.heightForWidth [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'heightForWidth') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.heightForWidth', , {'members': }, '(width)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.heightForWidth', , {'members': }, [':param int width: Width', ':return: Preferred height for this widget, given the width.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.heightForWidth', , {'members': }, '(width)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.heightForWidth', , {'members': }, [':param int width: Width', ':return: Preferred height for this widget, given the width.', '']) [autodoc] from qwt.text import QwtTextLabel.paintEvent [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'paintEvent') -[autodoc] => -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.paintEvent', , {'members': }, '(self, a0: Optional[QPaintEvent])', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.paintEvent', , {'members': }, []) +[autodoc] => +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.paintEvent', , {'members': }, '(self, a0: Optional[QPaintEvent])', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.paintEvent', , {'members': }, []) [autodoc] from qwt.text import QwtTextLabel.drawContents [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'drawContents') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.drawContents', , {'members': }, '(painter)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.drawContents', , {'members': }, ['Redraw the text and focus indicator', '', ':param QPainter painter: Painter', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.drawContents', , {'members': }, '(painter)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.drawContents', , {'members': }, ['Redraw the text and focus indicator', '', ':param QPainter painter: Painter', '']) [autodoc] from qwt.text import QwtTextLabel.drawText [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'drawText') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.drawText', , {'members': }, '(painter, textRect)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.drawText', , {'members': }, ['Redraw the text', '', ':param QPainter painter: Painter', ':param QRectF textRect: Text rectangle', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.drawText', , {'members': }, '(painter, textRect)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.drawText', , {'members': }, ['Redraw the text', '', ':param QPainter painter: Painter', ':param QRectF textRect: Text rectangle', '']) [autodoc] from qwt.text import QwtTextLabel.textRect [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextLabel') [autodoc] => [autodoc] getattr(_, 'textRect') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.textRect', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.textRect', , {'members': }, ['Calculate geometry for the text in widget coordinates', '', ':return: Geometry for the text', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextLabel.textRect', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextLabel.textRect', , {'members': }, ['Calculate geometry for the text in widget coordinates', '', ':return: Geometry for the text', '']) [autodoc] output: .. py:class:: QwtTextLabel(*args) @@ -21258,66 +21294,66 @@ [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextEngine') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.text.QwtTextEngine', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.text.QwtTextEngine', , {'members': }, ['Abstract base class for rendering text strings', '', 'A text engine is responsible for rendering texts for a', 'specific text format. They are used by `QwtText` to render a text.', '', '`QwtPlainTextEngine` and `QwtRichTextEngine` are part of the', '`PythonQwt` library.', '', '.. seealso::', '', ' :py:meth:`qwt.text.QwtText.setTextEngine()`', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.text', '__firstlineno__': 114, '__doc__': '\nAbstract base class for rendering text strings\n\nA text engine is responsible for rendering texts for a\nspecific text format. They are used by `QwtText` to render a text.\n\n`QwtPlainTextEngine` and `QwtRichTextEngine` are part of the\n`PythonQwt` library.\n\n.. seealso::\n\n :py:meth:`qwt.text.QwtText.setTextEngine()`\n', '__init__': , 'heightForWidth': , 'textSize': , 'mightRender': , 'textMargins': , 'draw': , '__static_attributes__': (), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nAbstract base class for rendering text strings\n\nA text engine is responsible for rendering texts for a\nspecific text format. They are used by `QwtText` to render a text.\n\n`QwtPlainTextEngine` and `QwtRichTextEngine` are part of the\n`PythonQwt` library.\n\n.. seealso::\n\n :py:meth:`qwt.text.QwtText.setTextEngine()`\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 114, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.text', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'heightForWidth', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'mightRender', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'textMargins', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'textSize', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.text.QwtTextEngine', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.text.QwtTextEngine', , {'members': }, ['Abstract base class for rendering text strings', '', 'A text engine is responsible for rendering texts for a', 'specific text format. They are used by `QwtText` to render a text.', '', '`QwtPlainTextEngine` and `QwtRichTextEngine` are part of the', '`PythonQwt` library.', '', '.. seealso::', '', ' :py:meth:`qwt.text.QwtText.setTextEngine()`', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.text', '__firstlineno__': 114, '__doc__': '\nAbstract base class for rendering text strings\n\nA text engine is responsible for rendering texts for a\nspecific text format. They are used by `QwtText` to render a text.\n\n`QwtPlainTextEngine` and `QwtRichTextEngine` are part of the\n`PythonQwt` library.\n\n.. seealso::\n\n :py:meth:`qwt.text.QwtText.setTextEngine()`\n', '__init__': , 'heightForWidth': , 'textSize': , 'mightRender': , 'textMargins': , 'draw': , '__static_attributes__': (), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nAbstract base class for rendering text strings\n\nA text engine is responsible for rendering texts for a\nspecific text format. They are used by `QwtText` to render a text.\n\n`QwtPlainTextEngine` and `QwtRichTextEngine` are part of the\n`PythonQwt` library.\n\n.. seealso::\n\n :py:meth:`qwt.text.QwtText.setTextEngine()`\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 114, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.text', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'heightForWidth', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'mightRender', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'textMargins', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'textSize', , False, {'members': }) [autodoc] from qwt.text import QwtTextEngine.heightForWidth [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextEngine') [autodoc] => [autodoc] getattr(_, 'heightForWidth') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextEngine.heightForWidth', , {'members': }, '(font, flags, text, width)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextEngine.heightForWidth', , {'members': }, ['Find the height for a given width', '', ':param QFont font: Font of the text', ':param int flags: Bitwise OR of the flags used like in QPainter::drawText', ':param str text: Text to be rendered', ':param float width: Width', ':return: Calculated height', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextEngine.heightForWidth', , {'members': }, '(font, flags, text, width)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextEngine.heightForWidth', , {'members': }, ['Find the height for a given width', '', ':param QFont font: Font of the text', ':param int flags: Bitwise OR of the flags used like in QPainter::drawText', ':param str text: Text to be rendered', ':param float width: Width', ':return: Calculated height', '']) [autodoc] from qwt.text import QwtTextEngine.textSize [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextEngine') [autodoc] => [autodoc] getattr(_, 'textSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextEngine.textSize', , {'members': }, '(font, flags, text)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextEngine.textSize', , {'members': }, ['Returns the size, that is needed to render text', '', ':param QFont font: Font of the text', ':param int flags: Bitwise OR of the flags like in for QPainter::drawText', ':param str text: Text to be rendered', ':return: Calculated size', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextEngine.textSize', , {'members': }, '(font, flags, text)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextEngine.textSize', , {'members': }, ['Returns the size, that is needed to render text', '', ':param QFont font: Font of the text', ':param int flags: Bitwise OR of the flags like in for QPainter::drawText', ':param str text: Text to be rendered', ':return: Calculated size', '']) [autodoc] from qwt.text import QwtTextEngine.mightRender [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextEngine') [autodoc] => [autodoc] getattr(_, 'mightRender') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextEngine.mightRender', , {'members': }, '(text)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextEngine.mightRender', , {'members': }, ['Test if a string can be rendered by this text engine', '', ':param str text: Text to be tested', ':return: True, if it can be rendered', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextEngine.mightRender', , {'members': }, '(text)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextEngine.mightRender', , {'members': }, ['Test if a string can be rendered by this text engine', '', ':param str text: Text to be tested', ':return: True, if it can be rendered', '']) [autodoc] from qwt.text import QwtTextEngine.textMargins [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextEngine') [autodoc] => [autodoc] getattr(_, 'textMargins') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextEngine.textMargins', , {'members': }, '(font)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextEngine.textMargins', , {'members': }, ['Return margins around the texts', '', 'The textSize might include margins around the', 'text, like QFontMetrics::descent(). In situations', 'where texts need to be aligned in detail, knowing', 'these margins might improve the layout calculations.', '', ':param QFont font: Font of the text', ':return: tuple (left, right, top, bottom) representing margins', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextEngine.textMargins', , {'members': }, '(font)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextEngine.textMargins', , {'members': }, ['Return margins around the texts', '', 'The textSize might include margins around the', 'text, like QFontMetrics::descent(). In situations', 'where texts need to be aligned in detail, knowing', 'these margins might improve the layout calculations.', '', ':param QFont font: Font of the text', ':return: tuple (left, right, top, bottom) representing margins', '']) [autodoc] from qwt.text import QwtTextEngine.draw [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtTextEngine') [autodoc] => [autodoc] getattr(_, 'draw') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextEngine.draw', , {'members': }, '(painter, rect, flags, text)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextEngine.draw', , {'members': }, ['Draw the text in a clipping rectangle', '', ':param QPainter painter: Painter', ':param QRectF rect: Clipping rectangle', ':param int flags: Bitwise OR of the flags like in for QPainter::drawText()', ':param str text: Text to be rendered', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtTextEngine.draw', , {'members': }, '(painter, rect, flags, text)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtTextEngine.draw', , {'members': }, ['Draw the text in a clipping rectangle', '', ':param QPainter painter: Painter', ':param QRectF rect: Clipping rectangle', ':param int flags: Bitwise OR of the flags like in for QPainter::drawText()', ':param str text: Text to be rendered', '']) [autodoc] output: .. py:class:: QwtTextEngine() @@ -21406,69 +21442,69 @@ [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtPlainTextEngine') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.text.QwtPlainTextEngine', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.text.QwtPlainTextEngine', , {'members': }, ['A text engine for plain texts', '', '`QwtPlainTextEngine` renders texts using the basic `Qt` classes', '`QPainter` and `QFontMetrics`.', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA text engine for plain texts\n\n`QwtPlainTextEngine` renders texts using the basic `Qt` classes\n`QPainter` and `QFontMetrics`.\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 217, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.text', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_fm_cache', '_fm_cache_f', 'qrectf_max'), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'effectiveAscent', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'findAscent', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'fontmetrics', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'fontmetrics_f', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'heightForWidth', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'mightRender', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'textMargins', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'textSize', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.text.QwtPlainTextEngine', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.text.QwtPlainTextEngine', , {'members': }, ['A text engine for plain texts', '', '`QwtPlainTextEngine` renders texts using the basic `Qt` classes', '`QPainter` and `QFontMetrics`.', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA text engine for plain texts\n\n`QwtPlainTextEngine` renders texts using the basic `Qt` classes\n`QPainter` and `QFontMetrics`.\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 217, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.text', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('_fm_cache', '_fm_cache_f', 'qrectf_max'), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'effectiveAscent', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'findAscent', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'fontmetrics', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'fontmetrics_f', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'heightForWidth', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'mightRender', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'textMargins', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'textSize', , False, {'members': }) [autodoc] from qwt.text import QwtPlainTextEngine.heightForWidth [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtPlainTextEngine') [autodoc] => [autodoc] getattr(_, 'heightForWidth') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtPlainTextEngine.heightForWidth', , {'members': }, '(font, flags, text, width)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtPlainTextEngine.heightForWidth', , {'members': }, ['Find the height for a given width', '', ':param QFont font: Font of the text', ':param int flags: Bitwise OR of the flags used like in QPainter::drawText', ':param str text: Text to be rendered', ':param float width: Width', ':return: Calculated height', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtPlainTextEngine.heightForWidth', , {'members': }, '(font, flags, text, width)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtPlainTextEngine.heightForWidth', , {'members': }, ['Find the height for a given width', '', ':param QFont font: Font of the text', ':param int flags: Bitwise OR of the flags used like in QPainter::drawText', ':param str text: Text to be rendered', ':param float width: Width', ':return: Calculated height', '']) [autodoc] from qwt.text import QwtPlainTextEngine.textSize [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtPlainTextEngine') [autodoc] => [autodoc] getattr(_, 'textSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtPlainTextEngine.textSize', , {'members': }, '(font, flags, text)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtPlainTextEngine.textSize', , {'members': }, ['Returns the size, that is needed to render text', '', ':param QFont font: Font of the text', ':param int flags: Bitwise OR of the flags like in for QPainter::drawText', ':param str text: Text to be rendered', ':return: Calculated size', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtPlainTextEngine.textSize', , {'members': }, '(font, flags, text)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtPlainTextEngine.textSize', , {'members': }, ['Returns the size, that is needed to render text', '', ':param QFont font: Font of the text', ':param int flags: Bitwise OR of the flags like in for QPainter::drawText', ':param str text: Text to be rendered', ':return: Calculated size', '']) [autodoc] from qwt.text import QwtPlainTextEngine.textMargins [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtPlainTextEngine') [autodoc] => [autodoc] getattr(_, 'textMargins') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtPlainTextEngine.textMargins', , {'members': }, '(font)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtPlainTextEngine.textMargins', , {'members': }, ['Return margins around the texts', '', 'The textSize might include margins around the', 'text, like QFontMetrics::descent(). In situations', 'where texts need to be aligned in detail, knowing', 'these margins might improve the layout calculations.', '', ':param QFont font: Font of the text', ':return: tuple (left, right, top, bottom) representing margins', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtPlainTextEngine.textMargins', , {'members': }, '(font)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtPlainTextEngine.textMargins', , {'members': }, ['Return margins around the texts', '', 'The textSize might include margins around the', 'text, like QFontMetrics::descent(). In situations', 'where texts need to be aligned in detail, knowing', 'these margins might improve the layout calculations.', '', ':param QFont font: Font of the text', ':return: tuple (left, right, top, bottom) representing margins', '']) [autodoc] from qwt.text import QwtPlainTextEngine.draw [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtPlainTextEngine') [autodoc] => [autodoc] getattr(_, 'draw') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtPlainTextEngine.draw', , {'members': }, '(painter, rect, flags, text)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtPlainTextEngine.draw', , {'members': }, ['Draw the text in a clipping rectangle', '', ':param QPainter painter: Painter', ':param QRectF rect: Clipping rectangle', ':param int flags: Bitwise OR of the flags like in for QPainter::drawText()', ':param str text: Text to be rendered', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtPlainTextEngine.draw', , {'members': }, '(painter, rect, flags, text)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtPlainTextEngine.draw', , {'members': }, ['Draw the text in a clipping rectangle', '', ':param QPainter painter: Painter', ':param QRectF rect: Clipping rectangle', ':param int flags: Bitwise OR of the flags like in for QPainter::drawText()', ':param str text: Text to be rendered', '']) [autodoc] from qwt.text import QwtPlainTextEngine.mightRender [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtPlainTextEngine') [autodoc] => [autodoc] getattr(_, 'mightRender') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtPlainTextEngine.mightRender', , {'members': }, '(text)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtPlainTextEngine.mightRender', , {'members': }, ['Test if a string can be rendered by this text engine', '', ':param str text: Text to be tested', ':return: True, if it can be rendered', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtPlainTextEngine.mightRender', , {'members': }, '(text)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtPlainTextEngine.mightRender', , {'members': }, ['Test if a string can be rendered by this text engine', '', ':param str text: Text to be tested', ':return: True, if it can be rendered', '']) [autodoc] output: .. py:class:: QwtPlainTextEngine() @@ -21549,66 +21585,66 @@ [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtRichTextEngine') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.text.QwtRichTextEngine', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.text.QwtRichTextEngine', , {'members': }, ['A text engine for `Qt` rich texts', '', '`QwtRichTextEngine` renders `Qt` rich texts using the classes', 'of the Scribe framework of `Qt`.', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA text engine for `Qt` rich texts\n\n`QwtRichTextEngine` renders `Qt` rich texts using the classes\nof the Scribe framework of `Qt`.\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 350, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.text', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'heightForWidth', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'mightRender', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'taggedText', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'textMargins', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'textSize', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.text.QwtRichTextEngine', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.text.QwtRichTextEngine', , {'members': }, ['A text engine for `Qt` rich texts', '', '`QwtRichTextEngine` renders `Qt` rich texts using the classes', 'of the Scribe framework of `Qt`.', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA text engine for `Qt` rich texts\n\n`QwtRichTextEngine` renders `Qt` rich texts using the classes\nof the Scribe framework of `Qt`.\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 350, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.text', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'draw', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'heightForWidth', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'mightRender', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'taggedText', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'textMargins', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'textSize', , False, {'members': }) [autodoc] from qwt.text import QwtRichTextEngine.heightForWidth [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtRichTextEngine') [autodoc] => [autodoc] getattr(_, 'heightForWidth') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtRichTextEngine.heightForWidth', , {'members': }, '(font, flags, text, width)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtRichTextEngine.heightForWidth', , {'members': }, ['Find the height for a given width', '', ':param QFont font: Font of the text', ':param int flags: Bitwise OR of the flags used like in QPainter::drawText', ':param str text: Text to be rendered', ':param float width: Width', ':return: Calculated height', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtRichTextEngine.heightForWidth', , {'members': }, '(font, flags, text, width)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtRichTextEngine.heightForWidth', , {'members': }, ['Find the height for a given width', '', ':param QFont font: Font of the text', ':param int flags: Bitwise OR of the flags used like in QPainter::drawText', ':param str text: Text to be rendered', ':param float width: Width', ':return: Calculated height', '']) [autodoc] from qwt.text import QwtRichTextEngine.textSize [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtRichTextEngine') [autodoc] => [autodoc] getattr(_, 'textSize') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtRichTextEngine.textSize', , {'members': }, '(font, flags, text)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtRichTextEngine.textSize', , {'members': }, ['Returns the size, that is needed to render text', '', ':param QFont font: Font of the text', ':param int flags: Bitwise OR of the flags like in for QPainter::drawText', ':param str text: Text to be rendered', ':return: Calculated size', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtRichTextEngine.textSize', , {'members': }, '(font, flags, text)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtRichTextEngine.textSize', , {'members': }, ['Returns the size, that is needed to render text', '', ':param QFont font: Font of the text', ':param int flags: Bitwise OR of the flags like in for QPainter::drawText', ':param str text: Text to be rendered', ':return: Calculated size', '']) [autodoc] from qwt.text import QwtRichTextEngine.draw [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtRichTextEngine') [autodoc] => [autodoc] getattr(_, 'draw') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtRichTextEngine.draw', , {'members': }, '(painter, rect, flags, text)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtRichTextEngine.draw', , {'members': }, ['Draw the text in a clipping rectangle', '', ':param QPainter painter: Painter', ':param QRectF rect: Clipping rectangle', ':param int flags: Bitwise OR of the flags like in for QPainter::drawText()', ':param str text: Text to be rendered', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtRichTextEngine.draw', , {'members': }, '(painter, rect, flags, text)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtRichTextEngine.draw', , {'members': }, ['Draw the text in a clipping rectangle', '', ':param QPainter painter: Painter', ':param QRectF rect: Clipping rectangle', ':param int flags: Bitwise OR of the flags like in for QPainter::drawText()', ':param str text: Text to be rendered', '']) [autodoc] from qwt.text import QwtRichTextEngine.mightRender [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtRichTextEngine') [autodoc] => [autodoc] getattr(_, 'mightRender') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtRichTextEngine.mightRender', , {'members': }, '(text)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtRichTextEngine.mightRender', , {'members': }, ['Test if a string can be rendered by this text engine', '', ':param str text: Text to be tested', ':return: True, if it can be rendered', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtRichTextEngine.mightRender', , {'members': }, '(text)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtRichTextEngine.mightRender', , {'members': }, ['Test if a string can be rendered by this text engine', '', ':param str text: Text to be tested', ':return: True, if it can be rendered', '']) [autodoc] from qwt.text import QwtRichTextEngine.textMargins [autodoc] import qwt.text => [autodoc] getattr(_, 'QwtRichTextEngine') [autodoc] => [autodoc] getattr(_, 'textMargins') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtRichTextEngine.textMargins', , {'members': }, '(font)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtRichTextEngine.textMargins', , {'members': }, ['Return margins around the texts', '', 'The textSize might include margins around the', 'text, like QFontMetrics::descent(). In situations', 'where texts need to be aligned in detail, knowing', 'these margins might improve the layout calculations.', '', ':param QFont font: Font of the text', ':return: tuple (left, right, top, bottom) representing margins', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.text.QwtRichTextEngine.textMargins', , {'members': }, '(font)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.text.QwtRichTextEngine.textMargins', , {'members': }, ['Return margins around the texts', '', 'The textSize might include margins around the', 'text, like QFontMetrics::descent(). In situations', 'where texts need to be aligned in detail, knowing', 'these margins might improve the layout calculations.', '', ':param QFont font: Font of the text', ':return: tuple (left, right, top, bottom) representing margins', '']) [autodoc] output: .. py:class:: QwtRichTextEngine() @@ -21891,7 +21927,7 @@ [app] emitting event: 'viewcode-follow-imported'('qwt.text', 'QwtRichTextEngine.textMargins') [app] emitting event: 'viewcode-find-source'('qwt.text',) reading sources... [ 97%] reference/toqimage -[app] emitting event: 'env-purge-doc'(, 'reference/toqimage') +[app] emitting event: 'env-purge-doc'(, 'reference/toqimage') [app] emitting event: 'source-read'('reference/toqimage', ['.. automodule:: qwt.toqimage\n']) [autodoc] /build/reproducible-path/python-qwt-0.12.7/doc/reference/toqimage.rst:1: input: .. automodule:: qwt.toqimage @@ -21913,10 +21949,10 @@ [autodoc] from qwt.toqimage import array_to_qimage [autodoc] import qwt.toqimage => [autodoc] getattr(_, 'array_to_qimage') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, False) -[app] emitting event: 'autodoc-process-signature'('function', 'qwt.toqimage.array_to_qimage', , {}, '(arr, copy=False)', None) -[app] emitting event: 'autodoc-process-docstring'('function', 'qwt.toqimage.array_to_qimage', , {}, ['Convert NumPy array to QImage object', '', ':param numpy.array arr: NumPy array', ':param bool copy: if True, make a copy of the array', ':return: QImage object', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, False) +[app] emitting event: 'autodoc-process-signature'('function', 'qwt.toqimage.array_to_qimage', , {}, '(arr, copy=False)', None) +[app] emitting event: 'autodoc-process-docstring'('function', 'qwt.toqimage.array_to_qimage', , {}, ['Convert NumPy array to QImage object', '', ':param numpy.array arr: NumPy array', ':param bool copy: if True, make a copy of the array', ':return: QImage object', '']) [autodoc] output: .. py:function:: array_to_qimage(arr, copy=False) @@ -21935,7 +21971,7 @@ [app] emitting event: 'viewcode-follow-imported'('qwt.toqimage', 'array_to_qimage') [app] emitting event: 'viewcode-find-source'('qwt.toqimage',) reading sources... [100%] reference/transform -[app] emitting event: 'env-purge-doc'(, 'reference/transform') +[app] emitting event: 'env-purge-doc'(, 'reference/transform') [app] emitting event: 'source-read'('reference/transform', ['.. automodule:: qwt.transform\n']) [autodoc] /build/reproducible-path/python-qwt-0.12.7/doc/reference/transform.rst:1: input: .. automodule:: qwt.transform @@ -21982,56 +22018,56 @@ [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtTransform') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.transform.QwtTransform', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.transform.QwtTransform', , {'members': }, ['A transformation between coordinate systems', '', 'QwtTransform manipulates values, when being mapped between', 'the scale and the paint device coordinate system.', '', 'A transformation consists of 2 methods:', '', ' - transform', ' - invTransform', '', 'where one is is the inverse function of the other.', '', 'When p1, p2 are the boundaries of the paint device coordinates', 'and s1, s2 the boundaries of the scale, QwtScaleMap uses the', 'following calculations::', '', ' p = p1 + (p2 - p1) * ( T(s) - T(s1) / (T(s2) - T(s1)) )', ' s = invT( T(s1) + ( T(s2) - T(s1) ) * (p - p1) / (p2 - p1) )', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.transform', '__firstlineno__': 40, '__doc__': '\nA transformation between coordinate systems\n\nQwtTransform manipulates values, when being mapped between\nthe scale and the paint device coordinate system.\n\nA transformation consists of 2 methods:\n\n - transform\n - invTransform\n\nwhere one is is the inverse function of the other.\n\nWhen p1, p2 are the boundaries of the paint device coordinates\nand s1, s2 the boundaries of the scale, QwtScaleMap uses the\nfollowing calculations::\n\n p = p1 + (p2 - p1) * ( T(s) - T(s1) / (T(s2) - T(s1)) )\n s = invT( T(s1) + ( T(s2) - T(s1) ) * (p - p1) / (p2 - p1) )\n', '__init__': , 'bounded': , 'transform': , 'invTransform': , 'copy': , '__static_attributes__': (), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA transformation between coordinate systems\n\nQwtTransform manipulates values, when being mapped between\nthe scale and the paint device coordinate system.\n\nA transformation consists of 2 methods:\n\n - transform\n - invTransform\n\nwhere one is is the inverse function of the other.\n\nWhen p1, p2 are the boundaries of the paint device coordinates\nand s1, s2 the boundaries of the scale, QwtScaleMap uses the\nfollowing calculations::\n\n p = p1 + (p2 - p1) * ( T(s) - T(s1) / (T(s2) - T(s1)) )\n s = invT( T(s1) + ( T(s2) - T(s1) ) * (p - p1) / (p2 - p1) )\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 40, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.transform', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'bounded', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'copy', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invTransform', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'transform', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.transform.QwtTransform', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.transform.QwtTransform', , {'members': }, ['A transformation between coordinate systems', '', 'QwtTransform manipulates values, when being mapped between', 'the scale and the paint device coordinate system.', '', 'A transformation consists of 2 methods:', '', ' - transform', ' - invTransform', '', 'where one is is the inverse function of the other.', '', 'When p1, p2 are the boundaries of the paint device coordinates', 'and s1, s2 the boundaries of the scale, QwtScaleMap uses the', 'following calculations::', '', ' p = p1 + (p2 - p1) * ( T(s) - T(s1) / (T(s2) - T(s1)) )', ' s = invT( T(s1) + ( T(s2) - T(s1) ) * (p - p1) / (p2 - p1) )', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__dict__', mappingproxy({'__module__': 'qwt.transform', '__firstlineno__': 40, '__doc__': '\nA transformation between coordinate systems\n\nQwtTransform manipulates values, when being mapped between\nthe scale and the paint device coordinate system.\n\nA transformation consists of 2 methods:\n\n - transform\n - invTransform\n\nwhere one is is the inverse function of the other.\n\nWhen p1, p2 are the boundaries of the paint device coordinates\nand s1, s2 the boundaries of the scale, QwtScaleMap uses the\nfollowing calculations::\n\n p = p1 + (p2 - p1) * ( T(s) - T(s1) / (T(s2) - T(s1)) )\n s = invT( T(s1) + ( T(s2) - T(s1) ) * (p - p1) / (p2 - p1) )\n', '__init__': , 'bounded': , 'transform': , 'invTransform': , 'copy': , '__static_attributes__': (), '__dict__': , '__weakref__': , '__annotations__': {}}), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA transformation between coordinate systems\n\nQwtTransform manipulates values, when being mapped between\nthe scale and the paint device coordinate system.\n\nA transformation consists of 2 methods:\n\n - transform\n - invTransform\n\nwhere one is is the inverse function of the other.\n\nWhen p1, p2 are the boundaries of the paint device coordinates\nand s1, s2 the boundaries of the scale, QwtScaleMap uses the\nfollowing calculations::\n\n p = p1 + (p2 - p1) * ( T(s) - T(s1) / (T(s2) - T(s1)) )\n s = invT( T(s1) + ( T(s2) - T(s1) ) * (p - p1) / (p2 - p1) )\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 40, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.transform', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__weakref__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'bounded', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'copy', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invTransform', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'transform', , False, {'members': }) [autodoc] from qwt.transform import QwtTransform.bounded [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtTransform') [autodoc] => [autodoc] getattr(_, 'bounded') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtTransform.bounded', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtTransform.bounded', , {'members': }, ['Modify value to be a valid value for the transformation.', 'The default implementation does nothing.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtTransform.bounded', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtTransform.bounded', , {'members': }, ['Modify value to be a valid value for the transformation.', 'The default implementation does nothing.', '']) [autodoc] from qwt.transform import QwtTransform.transform [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtTransform') [autodoc] => [autodoc] getattr(_, 'transform') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtTransform.transform', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtTransform.transform', , {'members': }, ['Transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`invTransform()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtTransform.transform', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtTransform.transform', , {'members': }, ['Transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`invTransform()`', '']) [autodoc] from qwt.transform import QwtTransform.invTransform [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtTransform') [autodoc] => [autodoc] getattr(_, 'invTransform') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtTransform.invTransform', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtTransform.invTransform', , {'members': }, ['Inverse transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`transform()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtTransform.invTransform', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtTransform.invTransform', , {'members': }, ['Inverse transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`transform()`', '']) [autodoc] from qwt.transform import QwtTransform.copy [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtTransform') [autodoc] => [autodoc] getattr(_, 'copy') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtTransform.copy', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtTransform.copy', , {'members': }, [':return: Clone of the transformation', '', 'The default implementation does nothing.', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtTransform.copy', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtTransform.copy', , {'members': }, [':return: Clone of the transformation', '', 'The default implementation does nothing.', '']) [autodoc] output: .. py:class:: QwtTransform() @@ -22110,44 +22146,44 @@ [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtNullTransform') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.transform.QwtNullTransform', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.transform.QwtNullTransform', , {'members': }, []) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', None, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 107, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.transform', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'copy', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invTransform', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'transform', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.transform.QwtNullTransform', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.transform.QwtNullTransform', , {'members': }, []) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', None, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 107, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.transform', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'copy', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invTransform', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'transform', , False, {'members': }) [autodoc] from qwt.transform import QwtNullTransform.transform [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtNullTransform') [autodoc] => [autodoc] getattr(_, 'transform') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtNullTransform.transform', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtNullTransform.transform', , {'members': }, ['Transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`invTransform()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtNullTransform.transform', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtNullTransform.transform', , {'members': }, ['Transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`invTransform()`', '']) [autodoc] from qwt.transform import QwtNullTransform.invTransform [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtNullTransform') [autodoc] => [autodoc] getattr(_, 'invTransform') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtNullTransform.invTransform', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtNullTransform.invTransform', , {'members': }, ['Inverse transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`transform()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtNullTransform.invTransform', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtNullTransform.invTransform', , {'members': }, ['Inverse transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`transform()`', '']) [autodoc] from qwt.transform import QwtNullTransform.copy [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtNullTransform') [autodoc] => [autodoc] getattr(_, 'copy') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtNullTransform.copy', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtNullTransform.copy', , {'members': }, [':return: Clone of the transformation', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtNullTransform.copy', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtNullTransform.copy', , {'members': }, [':return: Clone of the transformation', '']) [autodoc] output: .. py:class:: QwtNullTransform() @@ -22197,56 +22233,56 @@ [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtLogTransform') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.transform.QwtLogTransform', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.transform.QwtLogTransform', , {'members': }, ['Logarithmic transformation', '', '`QwtLogTransform` modifies the values using `numpy.log()` and', '`numpy.exp()`.', '', '.. note::', '', ' In the calculations of `QwtScaleMap` the base of the log function', ' has no effect on the mapping. So `QwtLogTransform` can be used', ' for logarithmic scale in base 2 or base 10 or any other base.', '', 'Extremum values:', '', ' * `QwtLogTransform.LogMin`: Smallest allowed value for logarithmic', ' scales: 1.0e-150', ' * `QwtLogTransform.LogMax`: Largest allowed value for logarithmic', ' scales: 1.0e150', '']) -[app] emitting event: 'autodoc-skip-member'('class', 'LogMax', 1e+150, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'LogMin', 1e-150, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nLogarithmic transformation\n\n`QwtLogTransform` modifies the values using `numpy.log()` and\n`numpy.exp()`.\n\n.. note::\n\n In the calculations of `QwtScaleMap` the base of the log function\n has no effect on the mapping. So `QwtLogTransform` can be used\n for logarithmic scale in base 2 or base 10 or any other base.\n\nExtremum values:\n\n * `QwtLogTransform.LogMin`: Smallest allowed value for logarithmic\n scales: 1.0e-150\n * `QwtLogTransform.LogMax`: Largest allowed value for logarithmic\n scales: 1.0e150\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 141, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.transform', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'bounded', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'copy', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invTransform', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'transform', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.transform.QwtLogTransform', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.transform.QwtLogTransform', , {'members': }, ['Logarithmic transformation', '', '`QwtLogTransform` modifies the values using `numpy.log()` and', '`numpy.exp()`.', '', '.. note::', '', ' In the calculations of `QwtScaleMap` the base of the log function', ' has no effect on the mapping. So `QwtLogTransform` can be used', ' for logarithmic scale in base 2 or base 10 or any other base.', '', 'Extremum values:', '', ' * `QwtLogTransform.LogMin`: Smallest allowed value for logarithmic', ' scales: 1.0e-150', ' * `QwtLogTransform.LogMax`: Largest allowed value for logarithmic', ' scales: 1.0e150', '']) +[app] emitting event: 'autodoc-skip-member'('class', 'LogMax', 1e+150, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'LogMin', 1e-150, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nLogarithmic transformation\n\n`QwtLogTransform` modifies the values using `numpy.log()` and\n`numpy.exp()`.\n\n.. note::\n\n In the calculations of `QwtScaleMap` the base of the log function\n has no effect on the mapping. So `QwtLogTransform` can be used\n for logarithmic scale in base 2 or base 10 or any other base.\n\nExtremum values:\n\n * `QwtLogTransform.LogMin`: Smallest allowed value for logarithmic\n scales: 1.0e-150\n * `QwtLogTransform.LogMax`: Largest allowed value for logarithmic\n scales: 1.0e150\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 141, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.transform', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', (), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'bounded', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'copy', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invTransform', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'transform', , False, {'members': }) [autodoc] from qwt.transform import QwtLogTransform.bounded [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtLogTransform') [autodoc] => [autodoc] getattr(_, 'bounded') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtLogTransform.bounded', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtLogTransform.bounded', , {'members': }, ['Modify value to be a valid value for the transformation.', '', ':param float value: Value to be bounded', ':return: Value modified', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtLogTransform.bounded', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtLogTransform.bounded', , {'members': }, ['Modify value to be a valid value for the transformation.', '', ':param float value: Value to be bounded', ':return: Value modified', '']) [autodoc] from qwt.transform import QwtLogTransform.transform [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtLogTransform') [autodoc] => [autodoc] getattr(_, 'transform') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtLogTransform.transform', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtLogTransform.transform', , {'members': }, ['Transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`invTransform()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtLogTransform.transform', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtLogTransform.transform', , {'members': }, ['Transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`invTransform()`', '']) [autodoc] from qwt.transform import QwtLogTransform.invTransform [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtLogTransform') [autodoc] => [autodoc] getattr(_, 'invTransform') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtLogTransform.invTransform', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtLogTransform.invTransform', , {'members': }, ['Inverse transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`transform()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtLogTransform.invTransform', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtLogTransform.invTransform', , {'members': }, ['Inverse transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`transform()`', '']) [autodoc] from qwt.transform import QwtLogTransform.copy [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtLogTransform') [autodoc] => [autodoc] getattr(_, 'copy') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtLogTransform.copy', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtLogTransform.copy', , {'members': }, [':return: Clone of the transformation', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtLogTransform.copy', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtLogTransform.copy', , {'members': }, [':return: Clone of the transformation', '']) [autodoc] output: .. py:class:: QwtLogTransform() @@ -22323,45 +22359,45 @@ [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtPowerTransform') [autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('class', 'qwt.transform.QwtPowerTransform', , {'members': }, '(exponent)', None) -[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.transform.QwtPowerTransform', , {'members': }, ['A transformation using `numpy.pow()`', '', '`QwtPowerTransform` preserves the sign of a value.', 'F.e. a transformation with a factor of 2', 'transforms a value of -3 to -9 and v.v. Thus `QwtPowerTransform`', 'can be used for scales including negative values.', '']) -[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA transformation using `numpy.pow()`\n\n`QwtPowerTransform` preserves the sign of a value.\nF.e. a transformation with a factor of 2\ntransforms a value of -3 to -9 and v.v. Thus `QwtPowerTransform`\ncan be used for scales including negative values.\n', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 207, True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.transform', True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__exponent',), True, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'copy', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'invTransform', , False, {'members': }) -[app] emitting event: 'autodoc-skip-member'('class', 'transform', , False, {'members': }) +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('class', 'qwt.transform.QwtPowerTransform', , {'members': }, '(exponent)', None) +[app] emitting event: 'autodoc-process-docstring'('class', 'qwt.transform.QwtPowerTransform', , {'members': }, ['A transformation using `numpy.pow()`', '', '`QwtPowerTransform` preserves the sign of a value.', 'F.e. a transformation with a factor of 2', 'transforms a value of -3 to -9 and v.v. Thus `QwtPowerTransform`', 'can be used for scales including negative values.', '']) +[app] emitting event: 'autodoc-skip-member'('class', '__annotations__', {}, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__doc__', '\nA transformation using `numpy.pow()`\n\n`QwtPowerTransform` preserves the sign of a value.\nF.e. a transformation with a factor of 2\ntransforms a value of -3 to -9 and v.v. Thus `QwtPowerTransform`\ncan be used for scales including negative values.\n', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__firstlineno__', 207, True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__init__', , True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__module__', 'qwt.transform', True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', '__static_attributes__', ('__exponent',), True, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'copy', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'invTransform', , False, {'members': }) +[app] emitting event: 'autodoc-skip-member'('class', 'transform', , False, {'members': }) [autodoc] from qwt.transform import QwtPowerTransform.transform [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtPowerTransform') [autodoc] => [autodoc] getattr(_, 'transform') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtPowerTransform.transform', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtPowerTransform.transform', , {'members': }, ['Transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`invTransform()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtPowerTransform.transform', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtPowerTransform.transform', , {'members': }, ['Transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`invTransform()`', '']) [autodoc] from qwt.transform import QwtPowerTransform.invTransform [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtPowerTransform') [autodoc] => [autodoc] getattr(_, 'invTransform') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtPowerTransform.invTransform', , {'members': }, '(value)', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtPowerTransform.invTransform', , {'members': }, ['Inverse transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`transform()`', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtPowerTransform.invTransform', , {'members': }, '(value)', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtPowerTransform.invTransform', , {'members': }, ['Inverse transformation function', '', ':param float value: Value', ':return: Modified value', '', '.. seealso::', '', ' :py:meth:`transform()`', '']) [autodoc] from qwt.transform import QwtPowerTransform.copy [autodoc] import qwt.transform => [autodoc] getattr(_, 'QwtPowerTransform') [autodoc] => [autodoc] getattr(_, 'copy') -[autodoc] => -[app] emitting event: 'autodoc-before-process-signature'(, True) -[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtPowerTransform.copy', , {'members': }, '()', None) -[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtPowerTransform.copy', , {'members': }, [':return: Clone of the transformation', '']) +[autodoc] => +[app] emitting event: 'autodoc-before-process-signature'(, True) +[app] emitting event: 'autodoc-process-signature'('method', 'qwt.transform.QwtPowerTransform.copy', , {'members': }, '()', None) +[app] emitting event: 'autodoc-process-docstring'('method', 'qwt.transform.QwtPowerTransform.copy', , {'members': }, [':return: Clone of the transformation', '']) [autodoc] output: .. py:class:: QwtPowerTransform(exponent) @@ -22470,1064 +22506,1064 @@ [app] emitting event: 'viewcode-follow-imported'('qwt.transform', 'QwtPowerTransform.copy') [app] emitting event: 'viewcode-find-source'('qwt.transform',) -[app] emitting event: 'env-updated'(,) -looking for now-outdated files... [app] emitting event: 'env-get-updated'(,) +[app] emitting event: 'env-updated'(,) +looking for now-outdated files... [app] emitting event: 'env-get-updated'(,) none found pickling environment... done -checking consistency... [app] emitting event: 'env-check-consistency'(,) +checking consistency... [app] emitting event: 'env-check-consistency'(,) done -[app] emitting event: 'write-started'(,) +[app] emitting event: 'write-started'(,) docnames to write: examples/bodedemo, examples/cartesian, examples/cpudemo, examples/curvebenchmark1, examples/curvebenchmark2, examples/curvedemo1, examples/curvedemo2, examples/data, examples/errorbar, examples/eventfilter, examples/image, examples/index, examples/logcurve, examples/mapdemo, examples/multidemo, examples/simple, examples/vertical, index, installation, overview, reference/graphic, reference/index, reference/interval, reference/plot, reference/plot_directpainter, reference/plot_layout, reference/plot_series, reference/scale, reference/symbol, reference/text, reference/toqimage, reference/transform preparing documents... done copying assets... copying static files... +Writing evaluated template result to /build/reproducible-path/python-qwt-0.12.7/build/html/_static/documentation_options.js Writing evaluated template result to /build/reproducible-path/python-qwt-0.12.7/build/html/_static/language_data.js Writing evaluated template result to /build/reproducible-path/python-qwt-0.12.7/build/html/_static/basic.css -Writing evaluated template result to /build/reproducible-path/python-qwt-0.12.7/build/html/_static/documentation_options.js -Writing evaluated template result to /build/reproducible-path/python-qwt-0.12.7/build/html/_static/sidebar.js Writing evaluated template result to /build/reproducible-path/python-qwt-0.12.7/build/html/_static/classic.css +Writing evaluated template result to /build/reproducible-path/python-qwt-0.12.7/build/html/_static/sidebar.js copying static files: done copying extra files... copying extra files: done copying assets: done writing output... [ 3%] examples/bodedemo [app] emitting event: 'doctree-resolved'(>, 'examples/bodedemo') -[app] emitting event: 'html-page-context'('examples/bodedemo', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/cartesian', 'Cartesian demo', 'N', 'next'), ('examples/index', 'Examples', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/bodedemo', 'current_page_name': 'examples/bodedemo', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6c545e0>, 'hasdoc': .hasdoc at 0x7fc7d6c540e0>, 'toctree': . at 0x7fc7d6c54180>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'index.html', 'title': 'Examples'}, 'next': {'link': 'cartesian.html', 'title': 'Cartesian demo'}, 'title': 'Bode demo', 'meta': None, 'body': '
\n

Bode demo

\n../_images/bodedemo.png\n
\nimport os\n\nimport numpy as np\nfrom qtpy.QtCore import Qt\nfrom qtpy.QtGui import QFont, QIcon, QPageLayout, QPen, QPixmap\nfrom qtpy.QtPrintSupport import QPrintDialog, QPrinter\nfrom qtpy.QtWidgets import (\n    QFrame,\n    QHBoxLayout,\n    QLabel,\n    QMainWindow,\n    QToolBar,\n    QToolButton,\n    QWidget,\n)\n\nfrom qwt import (\n    QwtLegend,\n    QwtLogScaleEngine,\n    QwtPlot,\n    QwtPlotCurve,\n    QwtPlotGrid,\n    QwtPlotMarker,\n    QwtPlotRenderer,\n    QwtSymbol,\n    QwtText,\n)\nfrom qwt.tests import utils\n\nprint_xpm = [\n    "32 32 12 1",\n    "a c #ffffff",\n    "h c #ffff00",\n    "c c #ffffff",\n    "f c #dcdcdc",\n    "b c #c0c0c0",\n    "j c #a0a0a4",\n    "e c #808080",\n    "g c #808000",\n    "d c #585858",\n    "i c #00ff00",\n    "# c #000000",\n    ". c None",\n    "................................",\n    "................................",\n    "...........###..................",\n    "..........#abb###...............",\n    ".........#aabbbbb###............",\n    ".........#ddaaabbbbb###.........",\n    "........#ddddddaaabbbbb###......",\n    ".......#deffddddddaaabbbbb###...",\n    "......#deaaabbbddddddaaabbbbb###",\n    ".....#deaaaaaaabbbddddddaaabbbb#",\n    "....#deaaabbbaaaa#ddedddfggaaad#",\n    "...#deaaaaaaaaaa#ddeeeeafgggfdd#",\n    "..#deaaabbbaaaa#ddeeeeabbbbgfdd#",\n    ".#deeefaaaaaaa#ddeeeeabbhhbbadd#",\n    "#aabbbeeefaaa#ddeeeeabbbbbbaddd#",\n    "#bbaaabbbeee#ddeeeeabbiibbadddd#",\n    "#bbbbbaaabbbeeeeeeabbbbbbaddddd#",\n    "#bjbbbbbbaaabbbbeabbbbbbadddddd#",\n    "#bjjjjbbbbbbaaaeabbbbbbaddddddd#",\n    "#bjaaajjjbbbbbbaaabbbbadddddddd#",\n    "#bbbbbaaajjjbbbbbbaaaaddddddddd#",\n    "#bjbbbbbbaaajjjbbbbbbddddddddd#.",\n    "#bjjjjbbbbbbaaajjjbbbdddddddd#..",\n    "#bjaaajjjbbbbbbjaajjbddddddd#...",\n    "#bbbbbaaajjjbbbjbbaabdddddd#....",\n    "###bbbbbbaaajjjjbbbbbddddd#.....",\n    "...###bbbbbbaaajbbbbbdddd#......",\n    "......###bbbbbbjbbbbbddd#.......",\n    ".........###bbbbbbbbbdd#........",\n    "............###bbbbbbd#.........",\n    "...............###bbb#..........",\n    "..................###...........",\n]\n\n\nclass BodePlot(QwtPlot):\n    def __init__(self, *args):\n        QwtPlot.__init__(self, *args)\n\n        self.setTitle("Frequency Response of a 2<sup>nd</sup>-order System")\n        self.setCanvasBackground(Qt.darkBlue)\n\n        # legend\n        legend = QwtLegend()\n        legend.setFrameStyle(QFrame.Box | QFrame.Sunken)\n        self.insertLegend(legend, QwtPlot.BottomLegend)\n\n        # grid\n        QwtPlotGrid.make(plot=self, enableminor=(True, False), color=Qt.darkGray)\n\n        # axes\n        self.enableAxis(QwtPlot.yRight)\n        self.setAxisTitle(QwtPlot.xBottom, "\\u03c9/\\u03c9<sub>0</sub>")\n        self.setAxisTitle(QwtPlot.yLeft, "Amplitude [dB]")\n        self.setAxisTitle(QwtPlot.yRight, "Phase [\\u00b0]")\n\n        self.setAxisMaxMajor(QwtPlot.xBottom, 6)\n        self.setAxisMaxMinor(QwtPlot.xBottom, 10)\n        self.setAxisScaleEngine(QwtPlot.xBottom, QwtLogScaleEngine())\n\n        # curves\n        self.curve1 = QwtPlotCurve.make(\n            title="Amplitude", linecolor=Qt.yellow, plot=self, antialiased=True\n        )\n        self.curve2 = QwtPlotCurve.make(\n            title="Phase", linecolor=Qt.cyan, plot=self, antialiased=True\n        )\n        self.dB3Marker = QwtPlotMarker.make(\n            label=QwtText.make(color=Qt.white, brush=Qt.red, weight=QFont.Light),\n            linestyle=QwtPlotMarker.VLine,\n            align=Qt.AlignRight | Qt.AlignBottom,\n            color=Qt.green,\n            width=2,\n            style=Qt.DashDotLine,\n            plot=self,\n        )\n        self.peakMarker = QwtPlotMarker.make(\n            label=QwtText.make(\n                color=Qt.red, brush=self.canvasBackground(), weight=QFont.Bold\n            ),\n            symbol=QwtSymbol.make(QwtSymbol.Diamond, Qt.yellow, Qt.green, (7, 7)),\n            linestyle=QwtPlotMarker.HLine,\n            align=Qt.AlignRight | Qt.AlignBottom,\n            color=Qt.red,\n            width=2,\n            style=Qt.DashDotLine,\n            plot=self,\n        )\n        QwtPlotMarker.make(\n            xvalue=0.1,\n            yvalue=-20.0,\n            align=Qt.AlignRight | Qt.AlignBottom,\n            label=QwtText.make(\n                "[1-(\\u03c9/\\u03c9<sub>0</sub>)<sup>2</sup>+2j\\u03c9/Q]"\n                "<sup>-1</sup>",\n                color=Qt.white,\n                borderradius=2,\n                borderpen=QPen(Qt.lightGray, 5),\n                brush=Qt.lightGray,\n                weight=QFont.Bold,\n            ),\n            plot=self,\n        )\n\n        self.setDamp(0.01)\n\n    def showData(self, frequency, amplitude, phase):\n        self.curve1.setData(frequency, amplitude)\n        self.curve2.setData(frequency, phase)\n\n    def showPeak(self, frequency, amplitude):\n        self.peakMarker.setValue(frequency, amplitude)\n        label = self.peakMarker.label()\n        label.setText("Peak: %4g dB" % amplitude)\n        self.peakMarker.setLabel(label)\n\n    def show3dB(self, frequency):\n        self.dB3Marker.setValue(frequency, 0.0)\n        label = self.dB3Marker.label()\n        label.setText("-3dB at f = %4g" % frequency)\n        self.dB3Marker.setLabel(label)\n\n    def setDamp(self, d):\n        self.damping = d\n        # Numerical Python: f, g, a and p are NumPy arrays!\n        f = np.exp(np.log(10.0) * np.arange(-2, 2.02, 0.04))\n        g = 1.0 / (1.0 - f * f + 2j * self.damping * f)\n        a = 20.0 * np.log10(abs(g))\n        p = 180 * np.arctan2(g.imag, g.real) / np.pi\n        # for show3dB\n        i3 = np.argmax(np.where(np.less(a, -3.0), a, -100.0))\n        f3 = f[i3] - (a[i3] + 3.0) * (f[i3] - f[i3 - 1]) / (a[i3] - a[i3 - 1])\n        # for showPeak\n        imax = np.argmax(a)\n\n        self.showPeak(f[imax], a[imax])\n        self.show3dB(f3)\n        self.showData(f, a, p)\n\n        self.replot()\n\n\nFNAME_PDF = "bode.pdf"\n\n\nclass BodeDemo(QMainWindow):\n    def __init__(self, *args):\n        QMainWindow.__init__(self, *args)\n\n        self.plot = BodePlot(self)\n        self.plot.setContentsMargins(5, 5, 5, 0)\n\n        self.setContextMenuPolicy(Qt.NoContextMenu)\n\n        self.setCentralWidget(self.plot)\n\n        toolBar = QToolBar(self)\n        self.addToolBar(toolBar)\n\n        btnPrint = QToolButton(toolBar)\n        btnPrint.setText("Print")\n        btnPrint.setIcon(QIcon(QPixmap(print_xpm)))\n        btnPrint.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)\n        toolBar.addWidget(btnPrint)\n        btnPrint.clicked.connect(self.print_)\n\n        btnExport = QToolButton(toolBar)\n        btnExport.setText("Export")\n        btnExport.setIcon(QIcon(QPixmap(print_xpm)))\n        btnExport.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)\n        toolBar.addWidget(btnExport)\n        btnExport.clicked.connect(self.exportDocument)\n\n        toolBar.addSeparator()\n\n        dampBox = QWidget(toolBar)\n        dampLayout = QHBoxLayout(dampBox)\n        dampLayout.setSpacing(0)\n        dampLayout.addWidget(QWidget(dampBox), 10)  # spacer\n        dampLayout.addWidget(QLabel("Damping Factor", dampBox), 0)\n        dampLayout.addSpacing(10)\n\n        toolBar.addWidget(dampBox)\n\n        self.statusBar()\n\n        self.showInfo()\n\n        if utils.TestEnvironment().unattended:\n            self.print_(unattended=True)\n\n    def print_(self, unattended=False):\n        try:\n            mode = QPrinter.HighResolution\n            printer = QPrinter(mode)\n        except AttributeError:\n            # Some PySide6 / PyQt6 versions do not have this attribute on Linux\n            printer = QPrinter()\n\n        printer.setCreator("Bode example")\n        printer.setPageOrientation(QPageLayout.Landscape)\n        try:\n            printer.setColorMode(QPrinter.Color)\n        except AttributeError:\n            pass\n\n        docName = str(self.plot.title().text())\n        if not docName:\n            docName.replace("\\n", " -- ")\n            printer.setDocName(docName)\n\n        dialog = QPrintDialog(printer)\n        if unattended:\n            # Configure QPrinter object to print to PDF file\n            printer.setPrinterName("")\n            printer.setOutputFileName(FNAME_PDF)\n            dialog.accept()\n            ok = True\n        else:\n            ok = dialog.exec_()\n        if ok:\n            renderer = QwtPlotRenderer()\n            renderer.renderTo(self.plot, printer)\n\n    def exportDocument(self):\n        renderer = QwtPlotRenderer(self.plot)\n        renderer.exportTo(self.plot, "bode")\n\n    def showInfo(self, text=""):\n        self.statusBar().showMessage(text)\n\n    def moved(self, point):\n        info = "Freq=%g, Ampl=%g, Phase=%g" % (\n            self.plot.invTransform(QwtPlot.xBottom, point.x()),\n            self.plot.invTransform(QwtPlot.yLeft, point.y()),\n            self.plot.invTransform(QwtPlot.yRight, point.y()),\n        )\n        self.showInfo(info)\n\n    def selected(self, _):\n        self.showInfo()\n\n\ndef test_bodedemo():\n    """Bode demo"""\n    utils.test_widget(BodeDemo, (640, 480))\n    if os.path.isfile(FNAME_PDF):\n        os.remove(FNAME_PDF)\n\n\nif __name__ == "__main__":\n    test_bodedemo()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/bodedemo.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6c54220>, 'js_tag': .js_tag at 0x7fc7d6c542c0>}, >) +[app] emitting event: 'html-page-context'('examples/bodedemo', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/cartesian', 'Cartesian demo', 'N', 'next'), ('examples/index', 'Examples', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/bodedemo', 'current_page_name': 'examples/bodedemo', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ebc5e0>, 'hasdoc': .hasdoc at 0x7f3d39ebc0e0>, 'toctree': . at 0x7f3d39ebc180>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'index.html', 'title': 'Examples'}, 'next': {'link': 'cartesian.html', 'title': 'Cartesian demo'}, 'title': 'Bode demo', 'meta': None, 'body': '
\n

Bode demo

\n../_images/bodedemo.png\n
\nimport os\n\nimport numpy as np\nfrom qtpy.QtCore import Qt\nfrom qtpy.QtGui import QFont, QIcon, QPageLayout, QPen, QPixmap\nfrom qtpy.QtPrintSupport import QPrintDialog, QPrinter\nfrom qtpy.QtWidgets import (\n    QFrame,\n    QHBoxLayout,\n    QLabel,\n    QMainWindow,\n    QToolBar,\n    QToolButton,\n    QWidget,\n)\n\nfrom qwt import (\n    QwtLegend,\n    QwtLogScaleEngine,\n    QwtPlot,\n    QwtPlotCurve,\n    QwtPlotGrid,\n    QwtPlotMarker,\n    QwtPlotRenderer,\n    QwtSymbol,\n    QwtText,\n)\nfrom qwt.tests import utils\n\nprint_xpm = [\n    "32 32 12 1",\n    "a c #ffffff",\n    "h c #ffff00",\n    "c c #ffffff",\n    "f c #dcdcdc",\n    "b c #c0c0c0",\n    "j c #a0a0a4",\n    "e c #808080",\n    "g c #808000",\n    "d c #585858",\n    "i c #00ff00",\n    "# c #000000",\n    ". c None",\n    "................................",\n    "................................",\n    "...........###..................",\n    "..........#abb###...............",\n    ".........#aabbbbb###............",\n    ".........#ddaaabbbbb###.........",\n    "........#ddddddaaabbbbb###......",\n    ".......#deffddddddaaabbbbb###...",\n    "......#deaaabbbddddddaaabbbbb###",\n    ".....#deaaaaaaabbbddddddaaabbbb#",\n    "....#deaaabbbaaaa#ddedddfggaaad#",\n    "...#deaaaaaaaaaa#ddeeeeafgggfdd#",\n    "..#deaaabbbaaaa#ddeeeeabbbbgfdd#",\n    ".#deeefaaaaaaa#ddeeeeabbhhbbadd#",\n    "#aabbbeeefaaa#ddeeeeabbbbbbaddd#",\n    "#bbaaabbbeee#ddeeeeabbiibbadddd#",\n    "#bbbbbaaabbbeeeeeeabbbbbbaddddd#",\n    "#bjbbbbbbaaabbbbeabbbbbbadddddd#",\n    "#bjjjjbbbbbbaaaeabbbbbbaddddddd#",\n    "#bjaaajjjbbbbbbaaabbbbadddddddd#",\n    "#bbbbbaaajjjbbbbbbaaaaddddddddd#",\n    "#bjbbbbbbaaajjjbbbbbbddddddddd#.",\n    "#bjjjjbbbbbbaaajjjbbbdddddddd#..",\n    "#bjaaajjjbbbbbbjaajjbddddddd#...",\n    "#bbbbbaaajjjbbbjbbaabdddddd#....",\n    "###bbbbbbaaajjjjbbbbbddddd#.....",\n    "...###bbbbbbaaajbbbbbdddd#......",\n    "......###bbbbbbjbbbbbddd#.......",\n    ".........###bbbbbbbbbdd#........",\n    "............###bbbbbbd#.........",\n    "...............###bbb#..........",\n    "..................###...........",\n]\n\n\nclass BodePlot(QwtPlot):\n    def __init__(self, *args):\n        QwtPlot.__init__(self, *args)\n\n        self.setTitle("Frequency Response of a 2<sup>nd</sup>-order System")\n        self.setCanvasBackground(Qt.darkBlue)\n\n        # legend\n        legend = QwtLegend()\n        legend.setFrameStyle(QFrame.Box | QFrame.Sunken)\n        self.insertLegend(legend, QwtPlot.BottomLegend)\n\n        # grid\n        QwtPlotGrid.make(plot=self, enableminor=(True, False), color=Qt.darkGray)\n\n        # axes\n        self.enableAxis(QwtPlot.yRight)\n        self.setAxisTitle(QwtPlot.xBottom, "\\u03c9/\\u03c9<sub>0</sub>")\n        self.setAxisTitle(QwtPlot.yLeft, "Amplitude [dB]")\n        self.setAxisTitle(QwtPlot.yRight, "Phase [\\u00b0]")\n\n        self.setAxisMaxMajor(QwtPlot.xBottom, 6)\n        self.setAxisMaxMinor(QwtPlot.xBottom, 10)\n        self.setAxisScaleEngine(QwtPlot.xBottom, QwtLogScaleEngine())\n\n        # curves\n        self.curve1 = QwtPlotCurve.make(\n            title="Amplitude", linecolor=Qt.yellow, plot=self, antialiased=True\n        )\n        self.curve2 = QwtPlotCurve.make(\n            title="Phase", linecolor=Qt.cyan, plot=self, antialiased=True\n        )\n        self.dB3Marker = QwtPlotMarker.make(\n            label=QwtText.make(color=Qt.white, brush=Qt.red, weight=QFont.Light),\n            linestyle=QwtPlotMarker.VLine,\n            align=Qt.AlignRight | Qt.AlignBottom,\n            color=Qt.green,\n            width=2,\n            style=Qt.DashDotLine,\n            plot=self,\n        )\n        self.peakMarker = QwtPlotMarker.make(\n            label=QwtText.make(\n                color=Qt.red, brush=self.canvasBackground(), weight=QFont.Bold\n            ),\n            symbol=QwtSymbol.make(QwtSymbol.Diamond, Qt.yellow, Qt.green, (7, 7)),\n            linestyle=QwtPlotMarker.HLine,\n            align=Qt.AlignRight | Qt.AlignBottom,\n            color=Qt.red,\n            width=2,\n            style=Qt.DashDotLine,\n            plot=self,\n        )\n        QwtPlotMarker.make(\n            xvalue=0.1,\n            yvalue=-20.0,\n            align=Qt.AlignRight | Qt.AlignBottom,\n            label=QwtText.make(\n                "[1-(\\u03c9/\\u03c9<sub>0</sub>)<sup>2</sup>+2j\\u03c9/Q]"\n                "<sup>-1</sup>",\n                color=Qt.white,\n                borderradius=2,\n                borderpen=QPen(Qt.lightGray, 5),\n                brush=Qt.lightGray,\n                weight=QFont.Bold,\n            ),\n            plot=self,\n        )\n\n        self.setDamp(0.01)\n\n    def showData(self, frequency, amplitude, phase):\n        self.curve1.setData(frequency, amplitude)\n        self.curve2.setData(frequency, phase)\n\n    def showPeak(self, frequency, amplitude):\n        self.peakMarker.setValue(frequency, amplitude)\n        label = self.peakMarker.label()\n        label.setText("Peak: %4g dB" % amplitude)\n        self.peakMarker.setLabel(label)\n\n    def show3dB(self, frequency):\n        self.dB3Marker.setValue(frequency, 0.0)\n        label = self.dB3Marker.label()\n        label.setText("-3dB at f = %4g" % frequency)\n        self.dB3Marker.setLabel(label)\n\n    def setDamp(self, d):\n        self.damping = d\n        # Numerical Python: f, g, a and p are NumPy arrays!\n        f = np.exp(np.log(10.0) * np.arange(-2, 2.02, 0.04))\n        g = 1.0 / (1.0 - f * f + 2j * self.damping * f)\n        a = 20.0 * np.log10(abs(g))\n        p = 180 * np.arctan2(g.imag, g.real) / np.pi\n        # for show3dB\n        i3 = np.argmax(np.where(np.less(a, -3.0), a, -100.0))\n        f3 = f[i3] - (a[i3] + 3.0) * (f[i3] - f[i3 - 1]) / (a[i3] - a[i3 - 1])\n        # for showPeak\n        imax = np.argmax(a)\n\n        self.showPeak(f[imax], a[imax])\n        self.show3dB(f3)\n        self.showData(f, a, p)\n\n        self.replot()\n\n\nFNAME_PDF = "bode.pdf"\n\n\nclass BodeDemo(QMainWindow):\n    def __init__(self, *args):\n        QMainWindow.__init__(self, *args)\n\n        self.plot = BodePlot(self)\n        self.plot.setContentsMargins(5, 5, 5, 0)\n\n        self.setContextMenuPolicy(Qt.NoContextMenu)\n\n        self.setCentralWidget(self.plot)\n\n        toolBar = QToolBar(self)\n        self.addToolBar(toolBar)\n\n        btnPrint = QToolButton(toolBar)\n        btnPrint.setText("Print")\n        btnPrint.setIcon(QIcon(QPixmap(print_xpm)))\n        btnPrint.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)\n        toolBar.addWidget(btnPrint)\n        btnPrint.clicked.connect(self.print_)\n\n        btnExport = QToolButton(toolBar)\n        btnExport.setText("Export")\n        btnExport.setIcon(QIcon(QPixmap(print_xpm)))\n        btnExport.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)\n        toolBar.addWidget(btnExport)\n        btnExport.clicked.connect(self.exportDocument)\n\n        toolBar.addSeparator()\n\n        dampBox = QWidget(toolBar)\n        dampLayout = QHBoxLayout(dampBox)\n        dampLayout.setSpacing(0)\n        dampLayout.addWidget(QWidget(dampBox), 10)  # spacer\n        dampLayout.addWidget(QLabel("Damping Factor", dampBox), 0)\n        dampLayout.addSpacing(10)\n\n        toolBar.addWidget(dampBox)\n\n        self.statusBar()\n\n        self.showInfo()\n\n        if utils.TestEnvironment().unattended:\n            self.print_(unattended=True)\n\n    def print_(self, unattended=False):\n        try:\n            mode = QPrinter.HighResolution\n            printer = QPrinter(mode)\n        except AttributeError:\n            # Some PySide6 / PyQt6 versions do not have this attribute on Linux\n            printer = QPrinter()\n\n        printer.setCreator("Bode example")\n        printer.setPageOrientation(QPageLayout.Landscape)\n        try:\n            printer.setColorMode(QPrinter.Color)\n        except AttributeError:\n            pass\n\n        docName = str(self.plot.title().text())\n        if not docName:\n            docName.replace("\\n", " -- ")\n            printer.setDocName(docName)\n\n        dialog = QPrintDialog(printer)\n        if unattended:\n            # Configure QPrinter object to print to PDF file\n            printer.setPrinterName("")\n            printer.setOutputFileName(FNAME_PDF)\n            dialog.accept()\n            ok = True\n        else:\n            ok = dialog.exec_()\n        if ok:\n            renderer = QwtPlotRenderer()\n            renderer.renderTo(self.plot, printer)\n\n    def exportDocument(self):\n        renderer = QwtPlotRenderer(self.plot)\n        renderer.exportTo(self.plot, "bode")\n\n    def showInfo(self, text=""):\n        self.statusBar().showMessage(text)\n\n    def moved(self, point):\n        info = "Freq=%g, Ampl=%g, Phase=%g" % (\n            self.plot.invTransform(QwtPlot.xBottom, point.x()),\n            self.plot.invTransform(QwtPlot.yLeft, point.y()),\n            self.plot.invTransform(QwtPlot.yRight, point.y()),\n        )\n        self.showInfo(info)\n\n    def selected(self, _):\n        self.showInfo()\n\n\ndef test_bodedemo():\n    """Bode demo"""\n    utils.test_widget(BodeDemo, (640, 480))\n    if os.path.isfile(FNAME_PDF):\n        os.remove(FNAME_PDF)\n\n\nif __name__ == "__main__":\n    test_bodedemo()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/bodedemo.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39ebc220>, 'js_tag': .js_tag at 0x7f3d39ebc2c0>}, >) writing output... [ 6%] examples/cartesian [app] emitting event: 'doctree-resolved'(>, 'examples/cartesian') -[app] emitting event: 'html-page-context'('examples/cartesian', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/cpudemo', 'CPU plot demo', 'N', 'next'), ('examples/bodedemo', 'Bode demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/cartesian', 'current_page_name': 'examples/cartesian', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b20040>, 'hasdoc': .hasdoc at 0x7fc7d6b20220>, 'toctree': . at 0x7fc7d6b20540>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'bodedemo.html', 'title': 'Bode demo'}, 'next': {'link': 'cpudemo.html', 'title': 'CPU plot demo'}, 'title': 'Cartesian demo', 'meta': None, 'body': '
\n

Cartesian demo

\n../_images/cartesian.png\n
\nimport numpy as np\nfrom qtpy.QtCore import Qt\n\nfrom qwt import QwtPlot, QwtPlotCurve, QwtPlotGrid, QwtPlotItem, QwtScaleDraw\nfrom qwt.tests import utils\n\n\nclass CartesianAxis(QwtPlotItem):\n    """Supports a coordinate system similar to\n    http://en.wikipedia.org/wiki/Image:Cartesian-coordinate-system.svg"""\n\n    def __init__(self, masterAxis, slaveAxis):\n        """Valid input values for masterAxis and slaveAxis are QwtPlot.yLeft,\n        QwtPlot.yRight, QwtPlot.xBottom, and QwtPlot.xTop. When masterAxis is\n        an x-axis, slaveAxis must be an y-axis; and vice versa."""\n        QwtPlotItem.__init__(self)\n        self.__axis = masterAxis\n        if masterAxis in (QwtPlot.yLeft, QwtPlot.yRight):\n            self.setAxes(slaveAxis, masterAxis)\n        else:\n            self.setAxes(masterAxis, slaveAxis)\n        self.scaleDraw = QwtScaleDraw()\n        self.scaleDraw.setAlignment(\n            (\n                QwtScaleDraw.LeftScale,\n                QwtScaleDraw.RightScale,\n                QwtScaleDraw.BottomScale,\n                QwtScaleDraw.TopScale,\n            )[masterAxis]\n        )\n\n    def draw(self, painter, xMap, yMap, rect):\n        """Draw an axis on the plot canvas"""\n        xtr = xMap.transform\n        ytr = yMap.transform\n        if self.__axis in (QwtPlot.yLeft, QwtPlot.yRight):\n            self.scaleDraw.move(round(xtr(0.0)), yMap.p2())\n            self.scaleDraw.setLength(yMap.p1() - yMap.p2())\n        elif self.__axis in (QwtPlot.xBottom, QwtPlot.xTop):\n            self.scaleDraw.move(xMap.p1(), round(ytr(0.0)))\n            self.scaleDraw.setLength(xMap.p2() - xMap.p1())\n        self.scaleDraw.setScaleDiv(self.plot().axisScaleDiv(self.__axis))\n        self.scaleDraw.draw(painter, self.plot().palette())\n\n\nclass CartesianPlot(QwtPlot):\n    """Creates a coordinate system similar system\n    http://en.wikipedia.org/wiki/Image:Cartesian-coordinate-system.svg"""\n\n    def __init__(self, *args):\n        QwtPlot.__init__(self, *args)\n        self.setTitle("Cartesian Coordinate System Demo")\n        # create a plot with a white canvas\n        self.setCanvasBackground(Qt.white)\n        # set plot layout\n        self.plotLayout().setCanvasMargin(0)\n        self.plotLayout().setAlignCanvasToScales(True)\n        # attach a grid\n        QwtPlotGrid.make(self, color=Qt.lightGray, width=0, style=Qt.DotLine, z=-1)\n        # attach a x-axis\n        xaxis = CartesianAxis(QwtPlot.xBottom, QwtPlot.yLeft)\n        xaxis.attach(self)\n        self.enableAxis(QwtPlot.xBottom, False)\n        # attach a y-axis\n        yaxis = CartesianAxis(QwtPlot.yLeft, QwtPlot.xBottom)\n        yaxis.attach(self)\n        self.enableAxis(QwtPlot.yLeft, False)\n        # calculate 3 NumPy arrays\n        x = np.arange(-2 * np.pi, 2 * np.pi, 0.01)\n        # attach a curve\n        QwtPlotCurve.make(\n            x,\n            np.pi * np.sin(x),\n            title="y = pi*sin(x)",\n            linecolor=Qt.green,\n            linewidth=2,\n            plot=self,\n            antialiased=True,\n        )\n        # attach another curve\n        QwtPlotCurve.make(\n            x,\n            4 * np.pi * np.cos(x) * np.cos(x) * np.sin(x),\n            title="y = 4*pi*sin(x)*cos(x)**2",\n            linecolor=Qt.blue,\n            linewidth=2,\n            plot=self,\n            antialiased=True,\n        )\n        self.replot()\n\n\ndef test_cartesian():\n    """Cartesian plot test"""\n    utils.test_widget(CartesianPlot, (800, 480))\n\n\nif __name__ == "__main__":\n    test_cartesian()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/cartesian.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b20360>, 'js_tag': .js_tag at 0x7fc7d6b205e0>}, >) +[app] emitting event: 'html-page-context'('examples/cartesian', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/cpudemo', 'CPU plot demo', 'N', 'next'), ('examples/bodedemo', 'Bode demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/cartesian', 'current_page_name': 'examples/cartesian', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f68040>, 'hasdoc': .hasdoc at 0x7f3d39f68220>, 'toctree': . at 0x7f3d39f68540>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'bodedemo.html', 'title': 'Bode demo'}, 'next': {'link': 'cpudemo.html', 'title': 'CPU plot demo'}, 'title': 'Cartesian demo', 'meta': None, 'body': '
\n

Cartesian demo

\n../_images/cartesian.png\n
\nimport numpy as np\nfrom qtpy.QtCore import Qt\n\nfrom qwt import QwtPlot, QwtPlotCurve, QwtPlotGrid, QwtPlotItem, QwtScaleDraw\nfrom qwt.tests import utils\n\n\nclass CartesianAxis(QwtPlotItem):\n    """Supports a coordinate system similar to\n    http://en.wikipedia.org/wiki/Image:Cartesian-coordinate-system.svg"""\n\n    def __init__(self, masterAxis, slaveAxis):\n        """Valid input values for masterAxis and slaveAxis are QwtPlot.yLeft,\n        QwtPlot.yRight, QwtPlot.xBottom, and QwtPlot.xTop. When masterAxis is\n        an x-axis, slaveAxis must be an y-axis; and vice versa."""\n        QwtPlotItem.__init__(self)\n        self.__axis = masterAxis\n        if masterAxis in (QwtPlot.yLeft, QwtPlot.yRight):\n            self.setAxes(slaveAxis, masterAxis)\n        else:\n            self.setAxes(masterAxis, slaveAxis)\n        self.scaleDraw = QwtScaleDraw()\n        self.scaleDraw.setAlignment(\n            (\n                QwtScaleDraw.LeftScale,\n                QwtScaleDraw.RightScale,\n                QwtScaleDraw.BottomScale,\n                QwtScaleDraw.TopScale,\n            )[masterAxis]\n        )\n\n    def draw(self, painter, xMap, yMap, rect):\n        """Draw an axis on the plot canvas"""\n        xtr = xMap.transform\n        ytr = yMap.transform\n        if self.__axis in (QwtPlot.yLeft, QwtPlot.yRight):\n            self.scaleDraw.move(round(xtr(0.0)), yMap.p2())\n            self.scaleDraw.setLength(yMap.p1() - yMap.p2())\n        elif self.__axis in (QwtPlot.xBottom, QwtPlot.xTop):\n            self.scaleDraw.move(xMap.p1(), round(ytr(0.0)))\n            self.scaleDraw.setLength(xMap.p2() - xMap.p1())\n        self.scaleDraw.setScaleDiv(self.plot().axisScaleDiv(self.__axis))\n        self.scaleDraw.draw(painter, self.plot().palette())\n\n\nclass CartesianPlot(QwtPlot):\n    """Creates a coordinate system similar system\n    http://en.wikipedia.org/wiki/Image:Cartesian-coordinate-system.svg"""\n\n    def __init__(self, *args):\n        QwtPlot.__init__(self, *args)\n        self.setTitle("Cartesian Coordinate System Demo")\n        # create a plot with a white canvas\n        self.setCanvasBackground(Qt.white)\n        # set plot layout\n        self.plotLayout().setCanvasMargin(0)\n        self.plotLayout().setAlignCanvasToScales(True)\n        # attach a grid\n        QwtPlotGrid.make(self, color=Qt.lightGray, width=0, style=Qt.DotLine, z=-1)\n        # attach a x-axis\n        xaxis = CartesianAxis(QwtPlot.xBottom, QwtPlot.yLeft)\n        xaxis.attach(self)\n        self.enableAxis(QwtPlot.xBottom, False)\n        # attach a y-axis\n        yaxis = CartesianAxis(QwtPlot.yLeft, QwtPlot.xBottom)\n        yaxis.attach(self)\n        self.enableAxis(QwtPlot.yLeft, False)\n        # calculate 3 NumPy arrays\n        x = np.arange(-2 * np.pi, 2 * np.pi, 0.01)\n        # attach a curve\n        QwtPlotCurve.make(\n            x,\n            np.pi * np.sin(x),\n            title="y = pi*sin(x)",\n            linecolor=Qt.green,\n            linewidth=2,\n            plot=self,\n            antialiased=True,\n        )\n        # attach another curve\n        QwtPlotCurve.make(\n            x,\n            4 * np.pi * np.cos(x) * np.cos(x) * np.sin(x),\n            title="y = 4*pi*sin(x)*cos(x)**2",\n            linecolor=Qt.blue,\n            linewidth=2,\n            plot=self,\n            antialiased=True,\n        )\n        self.replot()\n\n\ndef test_cartesian():\n    """Cartesian plot test"""\n    utils.test_widget(CartesianPlot, (800, 480))\n\n\nif __name__ == "__main__":\n    test_cartesian()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/cartesian.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f68360>, 'js_tag': .js_tag at 0x7f3d39f685e0>}, >) writing output... [ 9%] examples/cpudemo [app] emitting event: 'doctree-resolved'(>, 'examples/cpudemo') -[app] emitting event: 'html-page-context'('examples/cpudemo', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/curvebenchmark1', 'Curve benchmark demo 1', 'N', 'next'), ('examples/cartesian', 'Cartesian demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/cpudemo', 'current_page_name': 'examples/cpudemo', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d70765c0>, 'hasdoc': .hasdoc at 0x7fc7d6c54040>, 'toctree': . at 0x7fc7d6c56480>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'cartesian.html', 'title': 'Cartesian demo'}, 'next': {'link': 'curvebenchmark1.html', 'title': 'Curve benchmark demo 1'}, 'title': 'CPU plot demo', 'meta': None, 'body': '
\n

CPU plot demo

\n../_images/cpudemo.png\n
\nimport os\n\nimport numpy as np\nfrom qtpy.QtCore import QRect, Qt, QTime\nfrom qtpy.QtGui import QBrush, QColor\nfrom qtpy.QtWidgets import QLabel, QVBoxLayout, QWidget\n\nfrom qwt import (\n    QwtLegend,\n    QwtLegendData,\n    QwtPlot,\n    QwtPlotCurve,\n    QwtPlotItem,\n    QwtPlotMarker,\n    QwtScaleDraw,\n    QwtText,\n)\nfrom qwt.tests import utils\n\n\nclass CpuStat:\n    User = 0\n    Nice = 1\n    System = 2\n    Idle = 3\n    counter = 0\n    dummyValues = (\n        (103726, 0, 23484, 819556),\n        (103783, 0, 23489, 819604),\n        (103798, 0, 23490, 819688),\n        (103820, 0, 23490, 819766),\n        (103840, 0, 23493, 819843),\n        (103875, 0, 23499, 819902),\n        (103917, 0, 23504, 819955),\n        (103950, 0, 23508, 820018),\n        (103987, 0, 23510, 820079),\n        (104020, 0, 23513, 820143),\n        (104058, 0, 23514, 820204),\n        (104099, 0, 23520, 820257),\n        (104121, 0, 23525, 820330),\n        (104159, 0, 23530, 820387),\n        (104176, 0, 23534, 820466),\n        (104215, 0, 23538, 820523),\n        (104245, 0, 23541, 820590),\n        (104267, 0, 23545, 820664),\n        (104311, 0, 23555, 820710),\n        (104355, 0, 23565, 820756),\n        (104367, 0, 23567, 820842),\n        (104383, 0, 23572, 820921),\n        (104396, 0, 23577, 821003),\n        (104413, 0, 23579, 821084),\n        (104446, 0, 23588, 821142),\n        (104521, 0, 23594, 821161),\n        (104611, 0, 23604, 821161),\n        (104708, 0, 23607, 821161),\n        (104804, 0, 23611, 821161),\n        (104895, 0, 23620, 821161),\n        (104993, 0, 23622, 821161),\n        (105089, 0, 23626, 821161),\n        (105185, 0, 23630, 821161),\n        (105281, 0, 23634, 821161),\n        (105379, 0, 23636, 821161),\n        (105472, 0, 23643, 821161),\n        (105569, 0, 23646, 821161),\n        (105666, 0, 23649, 821161),\n        (105763, 0, 23652, 821161),\n        (105828, 0, 23661, 821187),\n        (105904, 0, 23666, 821206),\n        (105999, 0, 23671, 821206),\n        (106094, 0, 23676, 821206),\n        (106184, 0, 23686, 821206),\n        (106273, 0, 23692, 821211),\n        (106306, 0, 23700, 821270),\n        (106341, 0, 23703, 821332),\n        (106392, 0, 23709, 821375),\n        (106423, 0, 23715, 821438),\n        (106472, 0, 23721, 821483),\n        (106531, 0, 23727, 821517),\n        (106562, 0, 23732, 821582),\n        (106597, 0, 23736, 821643),\n        (106633, 0, 23737, 821706),\n        (106666, 0, 23742, 821768),\n        (106697, 0, 23744, 821835),\n        (106730, 0, 23748, 821898),\n        (106765, 0, 23751, 821960),\n        (106799, 0, 23754, 822023),\n        (106831, 0, 23758, 822087),\n        (106862, 0, 23761, 822153),\n        (106899, 0, 23763, 822214),\n        (106932, 0, 23766, 822278),\n        (106965, 0, 23768, 822343),\n        (107009, 0, 23771, 822396),\n        (107040, 0, 23775, 822461),\n        (107092, 0, 23780, 822504),\n        (107143, 0, 23787, 822546),\n        (107200, 0, 23795, 822581),\n        (107250, 0, 23803, 822623),\n        (107277, 0, 23810, 822689),\n        (107286, 0, 23810, 822780),\n        (107313, 0, 23817, 822846),\n        (107325, 0, 23818, 822933),\n        (107332, 0, 23818, 823026),\n        (107344, 0, 23821, 823111),\n        (107357, 0, 23821, 823198),\n        (107368, 0, 23823, 823284),\n        (107375, 0, 23824, 823377),\n        (107386, 0, 23825, 823465),\n        (107396, 0, 23826, 823554),\n        (107422, 0, 23830, 823624),\n        (107434, 0, 23831, 823711),\n        (107456, 0, 23835, 823785),\n        (107468, 0, 23838, 823870),\n        (107487, 0, 23840, 823949),\n        (107515, 0, 23843, 824018),\n        (107528, 0, 23846, 824102),\n        (107535, 0, 23851, 824190),\n        (107548, 0, 23853, 824275),\n        (107562, 0, 23857, 824357),\n        (107656, 0, 23863, 824357),\n        (107751, 0, 23868, 824357),\n        (107849, 0, 23870, 824357),\n        (107944, 0, 23875, 824357),\n        (108043, 0, 23876, 824357),\n        (108137, 0, 23882, 824357),\n        (108230, 0, 23889, 824357),\n        (108317, 0, 23902, 824357),\n        (108412, 0, 23907, 824357),\n        (108511, 0, 23908, 824357),\n        (108608, 0, 23911, 824357),\n        (108704, 0, 23915, 824357),\n        (108801, 0, 23918, 824357),\n        (108891, 0, 23928, 824357),\n        (108987, 0, 23932, 824357),\n        (109072, 0, 23943, 824361),\n        (109079, 0, 23943, 824454),\n        (109086, 0, 23944, 824546),\n        (109098, 0, 23950, 824628),\n        (109108, 0, 23955, 824713),\n        (109115, 0, 23957, 824804),\n        (109122, 0, 23958, 824896),\n        (109132, 0, 23959, 824985),\n        (109142, 0, 23961, 825073),\n        (109146, 0, 23962, 825168),\n        (109153, 0, 23964, 825259),\n        (109162, 0, 23966, 825348),\n        (109168, 0, 23969, 825439),\n        (109176, 0, 23971, 825529),\n        (109185, 0, 23974, 825617),\n        (109193, 0, 23977, 825706),\n        (109198, 0, 23978, 825800),\n        (109206, 0, 23978, 825892),\n        (109212, 0, 23981, 825983),\n        (109219, 0, 23981, 826076),\n        (109225, 0, 23981, 826170),\n        (109232, 0, 23984, 826260),\n        (109242, 0, 23984, 826350),\n        (109255, 0, 23986, 826435),\n        (109268, 0, 23987, 826521),\n        (109283, 0, 23990, 826603),\n        (109288, 0, 23991, 826697),\n        (109295, 0, 23993, 826788),\n        (109308, 0, 23994, 826874),\n        (109322, 0, 24009, 826945),\n        (109328, 0, 24011, 827037),\n        (109338, 0, 24012, 827126),\n        (109347, 0, 24012, 827217),\n        (109354, 0, 24017, 827305),\n        (109367, 0, 24017, 827392),\n        (109371, 0, 24019, 827486),\n    )\n\n    def __init__(self):\n        self.procValues = self.__lookup()\n\n    def statistic(self):\n        values = self.__lookup()\n        userDelta = 0.0\n        for i in [CpuStat.User, CpuStat.Nice]:\n            userDelta += values[i] - self.procValues[i]\n        systemDelta = values[CpuStat.System] - self.procValues[CpuStat.System]\n        totalDelta = 0.0\n        for i in range(len(self.procValues)):\n            totalDelta += values[i] - self.procValues[i]\n        self.procValues = values\n        return 100.0 * userDelta / totalDelta, 100.0 * systemDelta / totalDelta\n\n    def upTime(self):\n        result = QTime()\n        for item in self.procValues:\n            result = result.addSecs(int(0.01 * item))\n        return result\n\n    def __lookup(self):\n        if os.path.exists("/proc/stat"):\n            for line in open("/proc/stat"):\n                words = line.split()\n                if words[0] == "cpu" and len(words) >= 5:\n                    return [float(w) for w in words[1:]]\n        else:\n            result = CpuStat.dummyValues[CpuStat.counter]\n            CpuStat.counter += 1\n            CpuStat.counter %= len(CpuStat.dummyValues)\n            return result\n\n\nclass CpuPieMarker(QwtPlotMarker):\n    def __init__(self, *args):\n        QwtPlotMarker.__init__(self, *args)\n        self.setZ(1000.0)\n        self.setRenderHint(QwtPlotItem.RenderAntialiased, True)\n\n    def rtti(self):\n        return QwtPlotItem.Rtti_PlotUserItem\n\n    def draw(self, painter, xMap, yMap, rect):\n        margin = 5\n        pieRect = QRect()\n        pieRect.setX(rect.x() + margin)\n        pieRect.setY(rect.y() + margin)\n        pieRect.setHeight(int(yMap.transform(80.0)))\n        pieRect.setWidth(pieRect.height())\n\n        angle = 3 * 5760 / 4\n        for key in ["User", "System", "Idle"]:\n            curve = self.plot().cpuPlotCurve(key)\n            if curve.dataSize():\n                value = int(5760 * curve.sample(0).y() / 100.0)\n                painter.save()\n                painter.setBrush(QBrush(curve.pen().color(), Qt.SolidPattern))\n                painter.drawPie(pieRect, int(-angle), int(-value))\n                painter.restore()\n                angle += value\n\n\nclass TimeScaleDraw(QwtScaleDraw):\n    def __init__(self, baseTime, *args):\n        QwtScaleDraw.__init__(self, *args)\n        self.baseTime = baseTime\n\n    def label(self, value):\n        upTime = self.baseTime.addSecs(int(value))\n        return QwtText(upTime.toString())\n\n\nclass Background(QwtPlotItem):\n    def __init__(self):\n        QwtPlotItem.__init__(self)\n        self.setZ(0.0)\n\n    def rtti(self):\n        return QwtPlotItem.Rtti_PlotUserItem\n\n    def draw(self, painter, xMap, yMap, rect):\n        c = QColor(Qt.white)\n        r = QRect(rect)\n\n        for i in range(100, 0, -10):\n            r.setBottom(int(yMap.transform(i - 10)))\n            r.setTop(int(yMap.transform(i)))\n            painter.fillRect(r, c)\n            c = c.darker(110)\n\n\nclass CpuCurve(QwtPlotCurve):\n    def __init__(self, *args):\n        QwtPlotCurve.__init__(self, *args)\n        self.setRenderHint(QwtPlotItem.RenderAntialiased)\n\n    def setColor(self, color):\n        c = QColor(color)\n        c.setAlpha(150)\n\n        self.setPen(c)\n        self.setBrush(c)\n\n\nclass CpuPlot(QwtPlot):\n    HISTORY = 60\n\n    def __init__(self, unattended=False):\n        QwtPlot.__init__(self)\n\n        self.curves = {}\n        self.data = {}\n        self.timeData = 1.0 * np.arange(self.HISTORY - 1, -1, -1)\n        self.cpuStat = CpuStat()\n\n        self.setAutoReplot(False)\n\n        self.plotLayout().setAlignCanvasToScales(True)\n\n        legend = QwtLegend()\n        legend.setDefaultItemMode(QwtLegendData.Checkable)\n        self.insertLegend(legend, QwtPlot.RightLegend)\n\n        self.setAxisTitle(QwtPlot.xBottom, "System Uptime [h:m:s]")\n        self.setAxisScaleDraw(QwtPlot.xBottom, TimeScaleDraw(self.cpuStat.upTime()))\n        self.setAxisScale(QwtPlot.xBottom, 0, self.HISTORY)\n        self.setAxisLabelRotation(QwtPlot.xBottom, -50.0)\n        self.setAxisLabelAlignment(QwtPlot.xBottom, Qt.AlignLeft | Qt.AlignBottom)\n\n        self.setAxisTitle(QwtPlot.yLeft, "Cpu Usage [%]")\n        self.setAxisScale(QwtPlot.yLeft, 0, 100)\n\n        background = Background()\n        background.attach(self)\n\n        pie = CpuPieMarker()\n        pie.attach(self)\n\n        curve = CpuCurve("System")\n        curve.setColor(Qt.red)\n        curve.attach(self)\n        self.curves["System"] = curve\n        self.data["System"] = np.zeros(self.HISTORY, float)\n\n        curve = CpuCurve("User")\n        curve.setColor(Qt.blue)\n        curve.setZ(curve.z() - 1.0)\n        curve.attach(self)\n        self.curves["User"] = curve\n        self.data["User"] = np.zeros(self.HISTORY, float)\n\n        curve = CpuCurve("Total")\n        curve.setColor(Qt.black)\n        curve.setZ(curve.z() - 2.0)\n        curve.attach(self)\n        self.curves["Total"] = curve\n        self.data["Total"] = np.zeros(self.HISTORY, float)\n\n        curve = CpuCurve("Idle")\n        curve.setColor(Qt.darkCyan)\n        curve.setZ(curve.z() - 3.0)\n        curve.attach(self)\n        self.curves["Idle"] = curve\n        self.data["Idle"] = np.zeros(self.HISTORY, float)\n\n        self.showCurve(self.curves["System"], True)\n        self.showCurve(self.curves["User"], True)\n        self.showCurve(self.curves["Total"], False or unattended)\n        self.showCurve(self.curves["Idle"], False or unattended)\n\n        self.startTimer(20 if unattended else 1000)\n\n        legend.checked.connect(self.showCurve)\n        self.replot()\n\n    def timerEvent(self, e):\n        for data in self.data.values():\n            data[1:] = data[0:-1]\n        self.data["User"][0], self.data["System"][0] = self.cpuStat.statistic()\n        self.data["Total"][0] = self.data["User"][0] + self.data["System"][0]\n        self.data["Idle"][0] = 100.0 - self.data["Total"][0]\n\n        self.timeData += 1.0\n\n        self.setAxisScale(QwtPlot.xBottom, self.timeData[-1], self.timeData[0])\n        for key in self.curves.keys():\n            self.curves[key].setData(self.timeData, self.data[key])\n\n        self.replot()\n\n    def showCurve(self, item, on, index=None):\n        item.setVisible(on)\n        self.legend().legendWidget(item).setChecked(on)\n        self.replot()\n\n    def cpuPlotCurve(self, key):\n        return self.curves[key]\n\n\nclass CpuDemo(QWidget):\n    def __init__(self, parent=None, unattended=False):\n        super(CpuDemo, self).__init__(parent)\n        layout = QVBoxLayout()\n        self.setLayout(layout)\n        plot = CpuPlot(unattended=unattended)\n        plot.setTitle("History")\n        layout.addWidget(plot)\n        label = QLabel("Press the legend to en/disable a curve")\n        layout.addWidget(label)\n\n\ndef test_cpudemo():\n    """CPU demo"""\n    utils.test_widget(CpuDemo, (600, 400))\n\n\nif __name__ == "__main__":\n    test_cpudemo()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/cpudemo.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6c545e0>, 'js_tag': .js_tag at 0x7fc7d6c542c0>}, >) +[app] emitting event: 'html-page-context'('examples/cpudemo', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/curvebenchmark1', 'Curve benchmark demo 1', 'N', 'next'), ('examples/cartesian', 'Cartesian demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/cpudemo', 'current_page_name': 'examples/cpudemo', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3a2965c0>, 'hasdoc': .hasdoc at 0x7f3d39ebc040>, 'toctree': . at 0x7f3d39ebf6a0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'cartesian.html', 'title': 'Cartesian demo'}, 'next': {'link': 'curvebenchmark1.html', 'title': 'Curve benchmark demo 1'}, 'title': 'CPU plot demo', 'meta': None, 'body': '
\n

CPU plot demo

\n../_images/cpudemo.png\n
\nimport os\n\nimport numpy as np\nfrom qtpy.QtCore import QRect, Qt, QTime\nfrom qtpy.QtGui import QBrush, QColor\nfrom qtpy.QtWidgets import QLabel, QVBoxLayout, QWidget\n\nfrom qwt import (\n    QwtLegend,\n    QwtLegendData,\n    QwtPlot,\n    QwtPlotCurve,\n    QwtPlotItem,\n    QwtPlotMarker,\n    QwtScaleDraw,\n    QwtText,\n)\nfrom qwt.tests import utils\n\n\nclass CpuStat:\n    User = 0\n    Nice = 1\n    System = 2\n    Idle = 3\n    counter = 0\n    dummyValues = (\n        (103726, 0, 23484, 819556),\n        (103783, 0, 23489, 819604),\n        (103798, 0, 23490, 819688),\n        (103820, 0, 23490, 819766),\n        (103840, 0, 23493, 819843),\n        (103875, 0, 23499, 819902),\n        (103917, 0, 23504, 819955),\n        (103950, 0, 23508, 820018),\n        (103987, 0, 23510, 820079),\n        (104020, 0, 23513, 820143),\n        (104058, 0, 23514, 820204),\n        (104099, 0, 23520, 820257),\n        (104121, 0, 23525, 820330),\n        (104159, 0, 23530, 820387),\n        (104176, 0, 23534, 820466),\n        (104215, 0, 23538, 820523),\n        (104245, 0, 23541, 820590),\n        (104267, 0, 23545, 820664),\n        (104311, 0, 23555, 820710),\n        (104355, 0, 23565, 820756),\n        (104367, 0, 23567, 820842),\n        (104383, 0, 23572, 820921),\n        (104396, 0, 23577, 821003),\n        (104413, 0, 23579, 821084),\n        (104446, 0, 23588, 821142),\n        (104521, 0, 23594, 821161),\n        (104611, 0, 23604, 821161),\n        (104708, 0, 23607, 821161),\n        (104804, 0, 23611, 821161),\n        (104895, 0, 23620, 821161),\n        (104993, 0, 23622, 821161),\n        (105089, 0, 23626, 821161),\n        (105185, 0, 23630, 821161),\n        (105281, 0, 23634, 821161),\n        (105379, 0, 23636, 821161),\n        (105472, 0, 23643, 821161),\n        (105569, 0, 23646, 821161),\n        (105666, 0, 23649, 821161),\n        (105763, 0, 23652, 821161),\n        (105828, 0, 23661, 821187),\n        (105904, 0, 23666, 821206),\n        (105999, 0, 23671, 821206),\n        (106094, 0, 23676, 821206),\n        (106184, 0, 23686, 821206),\n        (106273, 0, 23692, 821211),\n        (106306, 0, 23700, 821270),\n        (106341, 0, 23703, 821332),\n        (106392, 0, 23709, 821375),\n        (106423, 0, 23715, 821438),\n        (106472, 0, 23721, 821483),\n        (106531, 0, 23727, 821517),\n        (106562, 0, 23732, 821582),\n        (106597, 0, 23736, 821643),\n        (106633, 0, 23737, 821706),\n        (106666, 0, 23742, 821768),\n        (106697, 0, 23744, 821835),\n        (106730, 0, 23748, 821898),\n        (106765, 0, 23751, 821960),\n        (106799, 0, 23754, 822023),\n        (106831, 0, 23758, 822087),\n        (106862, 0, 23761, 822153),\n        (106899, 0, 23763, 822214),\n        (106932, 0, 23766, 822278),\n        (106965, 0, 23768, 822343),\n        (107009, 0, 23771, 822396),\n        (107040, 0, 23775, 822461),\n        (107092, 0, 23780, 822504),\n        (107143, 0, 23787, 822546),\n        (107200, 0, 23795, 822581),\n        (107250, 0, 23803, 822623),\n        (107277, 0, 23810, 822689),\n        (107286, 0, 23810, 822780),\n        (107313, 0, 23817, 822846),\n        (107325, 0, 23818, 822933),\n        (107332, 0, 23818, 823026),\n        (107344, 0, 23821, 823111),\n        (107357, 0, 23821, 823198),\n        (107368, 0, 23823, 823284),\n        (107375, 0, 23824, 823377),\n        (107386, 0, 23825, 823465),\n        (107396, 0, 23826, 823554),\n        (107422, 0, 23830, 823624),\n        (107434, 0, 23831, 823711),\n        (107456, 0, 23835, 823785),\n        (107468, 0, 23838, 823870),\n        (107487, 0, 23840, 823949),\n        (107515, 0, 23843, 824018),\n        (107528, 0, 23846, 824102),\n        (107535, 0, 23851, 824190),\n        (107548, 0, 23853, 824275),\n        (107562, 0, 23857, 824357),\n        (107656, 0, 23863, 824357),\n        (107751, 0, 23868, 824357),\n        (107849, 0, 23870, 824357),\n        (107944, 0, 23875, 824357),\n        (108043, 0, 23876, 824357),\n        (108137, 0, 23882, 824357),\n        (108230, 0, 23889, 824357),\n        (108317, 0, 23902, 824357),\n        (108412, 0, 23907, 824357),\n        (108511, 0, 23908, 824357),\n        (108608, 0, 23911, 824357),\n        (108704, 0, 23915, 824357),\n        (108801, 0, 23918, 824357),\n        (108891, 0, 23928, 824357),\n        (108987, 0, 23932, 824357),\n        (109072, 0, 23943, 824361),\n        (109079, 0, 23943, 824454),\n        (109086, 0, 23944, 824546),\n        (109098, 0, 23950, 824628),\n        (109108, 0, 23955, 824713),\n        (109115, 0, 23957, 824804),\n        (109122, 0, 23958, 824896),\n        (109132, 0, 23959, 824985),\n        (109142, 0, 23961, 825073),\n        (109146, 0, 23962, 825168),\n        (109153, 0, 23964, 825259),\n        (109162, 0, 23966, 825348),\n        (109168, 0, 23969, 825439),\n        (109176, 0, 23971, 825529),\n        (109185, 0, 23974, 825617),\n        (109193, 0, 23977, 825706),\n        (109198, 0, 23978, 825800),\n        (109206, 0, 23978, 825892),\n        (109212, 0, 23981, 825983),\n        (109219, 0, 23981, 826076),\n        (109225, 0, 23981, 826170),\n        (109232, 0, 23984, 826260),\n        (109242, 0, 23984, 826350),\n        (109255, 0, 23986, 826435),\n        (109268, 0, 23987, 826521),\n        (109283, 0, 23990, 826603),\n        (109288, 0, 23991, 826697),\n        (109295, 0, 23993, 826788),\n        (109308, 0, 23994, 826874),\n        (109322, 0, 24009, 826945),\n        (109328, 0, 24011, 827037),\n        (109338, 0, 24012, 827126),\n        (109347, 0, 24012, 827217),\n        (109354, 0, 24017, 827305),\n        (109367, 0, 24017, 827392),\n        (109371, 0, 24019, 827486),\n    )\n\n    def __init__(self):\n        self.procValues = self.__lookup()\n\n    def statistic(self):\n        values = self.__lookup()\n        userDelta = 0.0\n        for i in [CpuStat.User, CpuStat.Nice]:\n            userDelta += values[i] - self.procValues[i]\n        systemDelta = values[CpuStat.System] - self.procValues[CpuStat.System]\n        totalDelta = 0.0\n        for i in range(len(self.procValues)):\n            totalDelta += values[i] - self.procValues[i]\n        self.procValues = values\n        return 100.0 * userDelta / totalDelta, 100.0 * systemDelta / totalDelta\n\n    def upTime(self):\n        result = QTime()\n        for item in self.procValues:\n            result = result.addSecs(int(0.01 * item))\n        return result\n\n    def __lookup(self):\n        if os.path.exists("/proc/stat"):\n            for line in open("/proc/stat"):\n                words = line.split()\n                if words[0] == "cpu" and len(words) >= 5:\n                    return [float(w) for w in words[1:]]\n        else:\n            result = CpuStat.dummyValues[CpuStat.counter]\n            CpuStat.counter += 1\n            CpuStat.counter %= len(CpuStat.dummyValues)\n            return result\n\n\nclass CpuPieMarker(QwtPlotMarker):\n    def __init__(self, *args):\n        QwtPlotMarker.__init__(self, *args)\n        self.setZ(1000.0)\n        self.setRenderHint(QwtPlotItem.RenderAntialiased, True)\n\n    def rtti(self):\n        return QwtPlotItem.Rtti_PlotUserItem\n\n    def draw(self, painter, xMap, yMap, rect):\n        margin = 5\n        pieRect = QRect()\n        pieRect.setX(rect.x() + margin)\n        pieRect.setY(rect.y() + margin)\n        pieRect.setHeight(int(yMap.transform(80.0)))\n        pieRect.setWidth(pieRect.height())\n\n        angle = 3 * 5760 / 4\n        for key in ["User", "System", "Idle"]:\n            curve = self.plot().cpuPlotCurve(key)\n            if curve.dataSize():\n                value = int(5760 * curve.sample(0).y() / 100.0)\n                painter.save()\n                painter.setBrush(QBrush(curve.pen().color(), Qt.SolidPattern))\n                painter.drawPie(pieRect, int(-angle), int(-value))\n                painter.restore()\n                angle += value\n\n\nclass TimeScaleDraw(QwtScaleDraw):\n    def __init__(self, baseTime, *args):\n        QwtScaleDraw.__init__(self, *args)\n        self.baseTime = baseTime\n\n    def label(self, value):\n        upTime = self.baseTime.addSecs(int(value))\n        return QwtText(upTime.toString())\n\n\nclass Background(QwtPlotItem):\n    def __init__(self):\n        QwtPlotItem.__init__(self)\n        self.setZ(0.0)\n\n    def rtti(self):\n        return QwtPlotItem.Rtti_PlotUserItem\n\n    def draw(self, painter, xMap, yMap, rect):\n        c = QColor(Qt.white)\n        r = QRect(rect)\n\n        for i in range(100, 0, -10):\n            r.setBottom(int(yMap.transform(i - 10)))\n            r.setTop(int(yMap.transform(i)))\n            painter.fillRect(r, c)\n            c = c.darker(110)\n\n\nclass CpuCurve(QwtPlotCurve):\n    def __init__(self, *args):\n        QwtPlotCurve.__init__(self, *args)\n        self.setRenderHint(QwtPlotItem.RenderAntialiased)\n\n    def setColor(self, color):\n        c = QColor(color)\n        c.setAlpha(150)\n\n        self.setPen(c)\n        self.setBrush(c)\n\n\nclass CpuPlot(QwtPlot):\n    HISTORY = 60\n\n    def __init__(self, unattended=False):\n        QwtPlot.__init__(self)\n\n        self.curves = {}\n        self.data = {}\n        self.timeData = 1.0 * np.arange(self.HISTORY - 1, -1, -1)\n        self.cpuStat = CpuStat()\n\n        self.setAutoReplot(False)\n\n        self.plotLayout().setAlignCanvasToScales(True)\n\n        legend = QwtLegend()\n        legend.setDefaultItemMode(QwtLegendData.Checkable)\n        self.insertLegend(legend, QwtPlot.RightLegend)\n\n        self.setAxisTitle(QwtPlot.xBottom, "System Uptime [h:m:s]")\n        self.setAxisScaleDraw(QwtPlot.xBottom, TimeScaleDraw(self.cpuStat.upTime()))\n        self.setAxisScale(QwtPlot.xBottom, 0, self.HISTORY)\n        self.setAxisLabelRotation(QwtPlot.xBottom, -50.0)\n        self.setAxisLabelAlignment(QwtPlot.xBottom, Qt.AlignLeft | Qt.AlignBottom)\n\n        self.setAxisTitle(QwtPlot.yLeft, "Cpu Usage [%]")\n        self.setAxisScale(QwtPlot.yLeft, 0, 100)\n\n        background = Background()\n        background.attach(self)\n\n        pie = CpuPieMarker()\n        pie.attach(self)\n\n        curve = CpuCurve("System")\n        curve.setColor(Qt.red)\n        curve.attach(self)\n        self.curves["System"] = curve\n        self.data["System"] = np.zeros(self.HISTORY, float)\n\n        curve = CpuCurve("User")\n        curve.setColor(Qt.blue)\n        curve.setZ(curve.z() - 1.0)\n        curve.attach(self)\n        self.curves["User"] = curve\n        self.data["User"] = np.zeros(self.HISTORY, float)\n\n        curve = CpuCurve("Total")\n        curve.setColor(Qt.black)\n        curve.setZ(curve.z() - 2.0)\n        curve.attach(self)\n        self.curves["Total"] = curve\n        self.data["Total"] = np.zeros(self.HISTORY, float)\n\n        curve = CpuCurve("Idle")\n        curve.setColor(Qt.darkCyan)\n        curve.setZ(curve.z() - 3.0)\n        curve.attach(self)\n        self.curves["Idle"] = curve\n        self.data["Idle"] = np.zeros(self.HISTORY, float)\n\n        self.showCurve(self.curves["System"], True)\n        self.showCurve(self.curves["User"], True)\n        self.showCurve(self.curves["Total"], False or unattended)\n        self.showCurve(self.curves["Idle"], False or unattended)\n\n        self.startTimer(20 if unattended else 1000)\n\n        legend.checked.connect(self.showCurve)\n        self.replot()\n\n    def timerEvent(self, e):\n        for data in self.data.values():\n            data[1:] = data[0:-1]\n        self.data["User"][0], self.data["System"][0] = self.cpuStat.statistic()\n        self.data["Total"][0] = self.data["User"][0] + self.data["System"][0]\n        self.data["Idle"][0] = 100.0 - self.data["Total"][0]\n\n        self.timeData += 1.0\n\n        self.setAxisScale(QwtPlot.xBottom, self.timeData[-1], self.timeData[0])\n        for key in self.curves.keys():\n            self.curves[key].setData(self.timeData, self.data[key])\n\n        self.replot()\n\n    def showCurve(self, item, on, index=None):\n        item.setVisible(on)\n        self.legend().legendWidget(item).setChecked(on)\n        self.replot()\n\n    def cpuPlotCurve(self, key):\n        return self.curves[key]\n\n\nclass CpuDemo(QWidget):\n    def __init__(self, parent=None, unattended=False):\n        super(CpuDemo, self).__init__(parent)\n        layout = QVBoxLayout()\n        self.setLayout(layout)\n        plot = CpuPlot(unattended=unattended)\n        plot.setTitle("History")\n        layout.addWidget(plot)\n        label = QLabel("Press the legend to en/disable a curve")\n        layout.addWidget(label)\n\n\ndef test_cpudemo():\n    """CPU demo"""\n    utils.test_widget(CpuDemo, (600, 400))\n\n\nif __name__ == "__main__":\n    test_cpudemo()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/cpudemo.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39ebc5e0>, 'js_tag': .js_tag at 0x7f3d39ebc2c0>}, >) writing output... [ 12%] examples/curvebenchmark1 [app] emitting event: 'doctree-resolved'(>, 'examples/curvebenchmark1') -[app] emitting event: 'html-page-context'('examples/curvebenchmark1', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/curvebenchmark2', 'Curve benchmark demo 2', 'N', 'next'), ('examples/cpudemo', 'CPU plot demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/curvebenchmark1', 'current_page_name': 'examples/curvebenchmark1', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b207c0>, 'hasdoc': .hasdoc at 0x7fc7d6b20040>, 'toctree': . at 0x7fc7d6b20860>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'cpudemo.html', 'title': 'CPU plot demo'}, 'next': {'link': 'curvebenchmark2.html', 'title': 'Curve benchmark demo 2'}, 'title': 'Curve benchmark demo 1', 'meta': None, 'body': '
\n

Curve benchmark demo 1

\n../_images/curvebenchmark1.png\n
\nimport time\n\nimport numpy as np\nfrom qtpy.QtCore import Qt\nfrom qtpy.QtWidgets import (\n    QApplication,\n    QGridLayout,\n    QLineEdit,\n    QMainWindow,\n    QTabWidget,\n    QTextEdit,\n    QWidget,\n)\n\nfrom qwt import QwtPlot, QwtPlotCurve\nfrom qwt.tests import utils\n\nCOLOR_INDEX = None\n\n\ndef get_curve_color():\n    global COLOR_INDEX\n    colors = (Qt.blue, Qt.red, Qt.green, Qt.yellow, Qt.magenta, Qt.cyan)\n    if COLOR_INDEX is None:\n        COLOR_INDEX = 0\n    else:\n        COLOR_INDEX = (COLOR_INDEX + 1) % len(colors)\n    return colors[COLOR_INDEX]\n\n\nPLOT_ID = 0\n\n\nclass BMPlot(QwtPlot):\n    def __init__(self, title, xdata, ydata, style, symbol=None, *args):\n        super(BMPlot, self).__init__(*args)\n        global PLOT_ID\n        self.setMinimumSize(200, 150)\n        PLOT_ID += 1\n        self.setTitle("%s (#%d)" % (title, PLOT_ID))\n        self.setAxisTitle(QwtPlot.xBottom, "x")\n        self.setAxisTitle(QwtPlot.yLeft, "y")\n        self.curve_nb = 0\n        for idx in range(1, 11):\n            self.curve_nb += 1\n            QwtPlotCurve.make(\n                xdata,\n                ydata * idx,\n                style=style,\n                symbol=symbol,\n                linecolor=get_curve_color(),\n                antialiased=True,\n                plot=self,\n            )\n        self.replot()\n\n\nclass BMWidget(QWidget):\n    def __init__(self, nbcol, points, *args, **kwargs):\n        super(BMWidget, self).__init__()\n        self.plot_nb = 0\n        self.curve_nb = 0\n        self.setup(nbcol, points, *args, **kwargs)\n\n    def params(self, *args, **kwargs):\n        if kwargs.get("only_lines", False):\n            return (("Lines", None),)\n        else:\n            return (\n                ("Lines", None),\n                ("Dots", None),\n            )\n\n    def setup(self, nbcol, points, *args, **kwargs):\n        x = np.linspace(0.001, 20.0, int(points))\n        y = (np.sin(x) / x) * np.cos(20 * x)\n        layout = QGridLayout()\n        col, row = 0, 0\n        for style, symbol in self.params(*args, **kwargs):\n            plot = BMPlot(style, x, y, getattr(QwtPlotCurve, style), symbol=symbol)\n            layout.addWidget(plot, row, col)\n            self.plot_nb += 1\n            self.curve_nb += plot.curve_nb\n            col += 1\n            if col >= nbcol:\n                row += 1\n                col = 0\n        self.text = QLineEdit()\n        self.text.setReadOnly(True)\n        self.text.setAlignment(Qt.AlignCenter)\n        self.text.setText("Rendering plot...")\n        layout.addWidget(self.text, row + 1, 0, 1, nbcol)\n        self.setLayout(layout)\n\n\nclass BMText(QTextEdit):\n    def __init__(self, parent=None, title=None):\n        super(BMText, self).__init__(parent)\n        self.setReadOnly(True)\n        library = "PythonQwt"\n        wintitle = self.parent().windowTitle()\n        if not wintitle:\n            wintitle = "Benchmark"\n        if title is None:\n            title = "%s example" % wintitle\n        self.parent().setWindowTitle("%s [%s]" % (wintitle, library))\n        self.setText(\n            """\\\n<b>%s:</b><br>\n(base plotting library: %s)<br><br>\nClick on each tab to test if plotting performance is acceptable in terms of\nGUI response time (switch between tabs, resize main windows, ...).<br>\n<br><br>\n<b>Benchmarks results:</b>\n"""\n            % (title, library)\n        )\n\n\nclass CurveBenchmark1(QMainWindow):\n    TITLE = "Curve benchmark"\n    SIZE = (1000, 500)\n\n    def __init__(self, max_n=1000000, parent=None, unattended=False, **kwargs):\n        super(CurveBenchmark1, self).__init__(parent=parent)\n        title = self.TITLE\n        if kwargs.get("only_lines", False):\n            title = "%s (%s)" % (title, "only lines")\n        self.setWindowTitle(title)\n        self.tabs = QTabWidget()\n        self.setCentralWidget(self.tabs)\n        self.text = BMText(self)\n        self.tabs.addTab(self.text, "Contents")\n        self.resize(*self.SIZE)\n\n        # Force window to show up and refresh (for test purpose only)\n        self.show()\n        QApplication.processEvents()\n\n        t0g = time.time()\n        self.run_benchmark(max_n, unattended, **kwargs)\n        dt = time.time() - t0g\n        self.text.append("<br><br><u>Total elapsed time</u>: %d ms" % (dt * 1e3))\n        self.tabs.setCurrentIndex(1 if unattended else 0)\n\n    def process_iteration(self, title, description, widget, t0):\n        self.tabs.addTab(widget, title)\n        self.tabs.setCurrentWidget(widget)\n\n        # Force widget to refresh (for test purpose only)\n        QApplication.processEvents()\n\n        time_str = "Elapsed time: %d ms" % ((time.time() - t0) * 1000)\n        widget.text.setText(time_str)\n        self.text.append("<br><i>%s:</i><br>%s" % (description, time_str))\n        print("[%s] %s" % (utils.get_lib_versions(), time_str))\n\n    def run_benchmark(self, max_n, unattended, **kwargs):\n        max_n = 1000 if unattended else max_n\n        iterations = 0 if unattended else 4\n        for idx in range(iterations, -1, -1):\n            points = int(max_n / 10**idx)\n            t0 = time.time()\n            widget = BMWidget(2, points, **kwargs)\n            title = "%d points" % points\n            description = "%d plots with %d curves of %d points" % (\n                widget.plot_nb,\n                widget.curve_nb,\n                points,\n            )\n            self.process_iteration(title, description, widget, t0)\n\n\ndef test_curvebenchmark1():\n    """Curve benchmark example"""\n    utils.test_widget(CurveBenchmark1, options=False)\n\n\nif __name__ == "__main__":\n    test_curvebenchmark1()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/curvebenchmark1.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b20900>, 'js_tag': .js_tag at 0x7fc7d6b205e0>}, >) +[app] emitting event: 'html-page-context'('examples/curvebenchmark1', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/curvebenchmark2', 'Curve benchmark demo 2', 'N', 'next'), ('examples/cpudemo', 'CPU plot demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/curvebenchmark1', 'current_page_name': 'examples/curvebenchmark1', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f687c0>, 'hasdoc': .hasdoc at 0x7f3d39f68040>, 'toctree': . at 0x7f3d39f68860>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'cpudemo.html', 'title': 'CPU plot demo'}, 'next': {'link': 'curvebenchmark2.html', 'title': 'Curve benchmark demo 2'}, 'title': 'Curve benchmark demo 1', 'meta': None, 'body': '
\n

Curve benchmark demo 1

\n../_images/curvebenchmark1.png\n
\nimport time\n\nimport numpy as np\nfrom qtpy.QtCore import Qt\nfrom qtpy.QtWidgets import (\n    QApplication,\n    QGridLayout,\n    QLineEdit,\n    QMainWindow,\n    QTabWidget,\n    QTextEdit,\n    QWidget,\n)\n\nfrom qwt import QwtPlot, QwtPlotCurve\nfrom qwt.tests import utils\n\nCOLOR_INDEX = None\n\n\ndef get_curve_color():\n    global COLOR_INDEX\n    colors = (Qt.blue, Qt.red, Qt.green, Qt.yellow, Qt.magenta, Qt.cyan)\n    if COLOR_INDEX is None:\n        COLOR_INDEX = 0\n    else:\n        COLOR_INDEX = (COLOR_INDEX + 1) % len(colors)\n    return colors[COLOR_INDEX]\n\n\nPLOT_ID = 0\n\n\nclass BMPlot(QwtPlot):\n    def __init__(self, title, xdata, ydata, style, symbol=None, *args):\n        super(BMPlot, self).__init__(*args)\n        global PLOT_ID\n        self.setMinimumSize(200, 150)\n        PLOT_ID += 1\n        self.setTitle("%s (#%d)" % (title, PLOT_ID))\n        self.setAxisTitle(QwtPlot.xBottom, "x")\n        self.setAxisTitle(QwtPlot.yLeft, "y")\n        self.curve_nb = 0\n        for idx in range(1, 11):\n            self.curve_nb += 1\n            QwtPlotCurve.make(\n                xdata,\n                ydata * idx,\n                style=style,\n                symbol=symbol,\n                linecolor=get_curve_color(),\n                antialiased=True,\n                plot=self,\n            )\n        self.replot()\n\n\nclass BMWidget(QWidget):\n    def __init__(self, nbcol, points, *args, **kwargs):\n        super(BMWidget, self).__init__()\n        self.plot_nb = 0\n        self.curve_nb = 0\n        self.setup(nbcol, points, *args, **kwargs)\n\n    def params(self, *args, **kwargs):\n        if kwargs.get("only_lines", False):\n            return (("Lines", None),)\n        else:\n            return (\n                ("Lines", None),\n                ("Dots", None),\n            )\n\n    def setup(self, nbcol, points, *args, **kwargs):\n        x = np.linspace(0.001, 20.0, int(points))\n        y = (np.sin(x) / x) * np.cos(20 * x)\n        layout = QGridLayout()\n        col, row = 0, 0\n        for style, symbol in self.params(*args, **kwargs):\n            plot = BMPlot(style, x, y, getattr(QwtPlotCurve, style), symbol=symbol)\n            layout.addWidget(plot, row, col)\n            self.plot_nb += 1\n            self.curve_nb += plot.curve_nb\n            col += 1\n            if col >= nbcol:\n                row += 1\n                col = 0\n        self.text = QLineEdit()\n        self.text.setReadOnly(True)\n        self.text.setAlignment(Qt.AlignCenter)\n        self.text.setText("Rendering plot...")\n        layout.addWidget(self.text, row + 1, 0, 1, nbcol)\n        self.setLayout(layout)\n\n\nclass BMText(QTextEdit):\n    def __init__(self, parent=None, title=None):\n        super(BMText, self).__init__(parent)\n        self.setReadOnly(True)\n        library = "PythonQwt"\n        wintitle = self.parent().windowTitle()\n        if not wintitle:\n            wintitle = "Benchmark"\n        if title is None:\n            title = "%s example" % wintitle\n        self.parent().setWindowTitle("%s [%s]" % (wintitle, library))\n        self.setText(\n            """\\\n<b>%s:</b><br>\n(base plotting library: %s)<br><br>\nClick on each tab to test if plotting performance is acceptable in terms of\nGUI response time (switch between tabs, resize main windows, ...).<br>\n<br><br>\n<b>Benchmarks results:</b>\n"""\n            % (title, library)\n        )\n\n\nclass CurveBenchmark1(QMainWindow):\n    TITLE = "Curve benchmark"\n    SIZE = (1000, 500)\n\n    def __init__(self, max_n=1000000, parent=None, unattended=False, **kwargs):\n        super(CurveBenchmark1, self).__init__(parent=parent)\n        title = self.TITLE\n        if kwargs.get("only_lines", False):\n            title = "%s (%s)" % (title, "only lines")\n        self.setWindowTitle(title)\n        self.tabs = QTabWidget()\n        self.setCentralWidget(self.tabs)\n        self.text = BMText(self)\n        self.tabs.addTab(self.text, "Contents")\n        self.resize(*self.SIZE)\n\n        # Force window to show up and refresh (for test purpose only)\n        self.show()\n        QApplication.processEvents()\n\n        t0g = time.time()\n        self.run_benchmark(max_n, unattended, **kwargs)\n        dt = time.time() - t0g\n        self.text.append("<br><br><u>Total elapsed time</u>: %d ms" % (dt * 1e3))\n        self.tabs.setCurrentIndex(1 if unattended else 0)\n\n    def process_iteration(self, title, description, widget, t0):\n        self.tabs.addTab(widget, title)\n        self.tabs.setCurrentWidget(widget)\n\n        # Force widget to refresh (for test purpose only)\n        QApplication.processEvents()\n\n        time_str = "Elapsed time: %d ms" % ((time.time() - t0) * 1000)\n        widget.text.setText(time_str)\n        self.text.append("<br><i>%s:</i><br>%s" % (description, time_str))\n        print("[%s] %s" % (utils.get_lib_versions(), time_str))\n\n    def run_benchmark(self, max_n, unattended, **kwargs):\n        max_n = 1000 if unattended else max_n\n        iterations = 0 if unattended else 4\n        for idx in range(iterations, -1, -1):\n            points = int(max_n / 10**idx)\n            t0 = time.time()\n            widget = BMWidget(2, points, **kwargs)\n            title = "%d points" % points\n            description = "%d plots with %d curves of %d points" % (\n                widget.plot_nb,\n                widget.curve_nb,\n                points,\n            )\n            self.process_iteration(title, description, widget, t0)\n\n\ndef test_curvebenchmark1():\n    """Curve benchmark example"""\n    utils.test_widget(CurveBenchmark1, options=False)\n\n\nif __name__ == "__main__":\n    test_curvebenchmark1()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/curvebenchmark1.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f68900>, 'js_tag': .js_tag at 0x7f3d39f685e0>}, >) writing output... [ 16%] examples/curvebenchmark2 [app] emitting event: 'doctree-resolved'(>, 'examples/curvebenchmark2') -[app] emitting event: 'html-page-context'('examples/curvebenchmark2', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/curvedemo1', 'Curve demo 1', 'N', 'next'), ('examples/curvebenchmark1', 'Curve benchmark demo 1', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/curvebenchmark2', 'current_page_name': 'examples/curvebenchmark2', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b21260>, 'hasdoc': .hasdoc at 0x7fc7d6b213a0>, 'toctree': . at 0x7fc7d6b21440>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'curvebenchmark1.html', 'title': 'Curve benchmark demo 1'}, 'next': {'link': 'curvedemo1.html', 'title': 'Curve demo 1'}, 'title': 'Curve benchmark demo 2', 'meta': None, 'body': '
\n

Curve benchmark demo 2

\n../_images/curvebenchmark2.png\n
\nimport time\n\nfrom qtpy.QtCore import Qt\n\nfrom qwt import QwtSymbol\nfrom qwt.tests import test_curvebenchmark1 as cb\nfrom qwt.tests import utils\n\n\nclass CSWidget(cb.BMWidget):\n    def params(self, *args, **kwargs):\n        (symbols,) = args\n        symb1 = QwtSymbol.make(\n            QwtSymbol.Ellipse, brush=Qt.yellow, pen=Qt.blue, size=(5, 5)\n        )\n        symb2 = QwtSymbol.make(QwtSymbol.XCross, pen=Qt.darkMagenta, size=(5, 5))\n        if symbols:\n            if kwargs.get("only_lines", False):\n                return (\n                    ("Lines", symb1),\n                    ("Lines", symb1),\n                    ("Lines", symb2),\n                    ("Lines", symb2),\n                )\n            else:\n                return (\n                    ("Sticks", symb1),\n                    ("Lines", symb1),\n                    ("Steps", symb2),\n                    ("Dots", symb2),\n                )\n        else:\n            if kwargs.get("only_lines", False):\n                return (\n                    ("Lines", None),\n                    ("Lines", None),\n                    ("Lines", None),\n                    ("Lines", None),\n                )\n            else:\n                return (\n                    ("Sticks", None),\n                    ("Lines", None),\n                    ("Steps", None),\n                    ("Dots", None),\n                )\n\n\nclass CurveBenchmark2(cb.CurveBenchmark1):\n    TITLE = "Curve styles"\n    SIZE = (1000, 800)\n\n    def __init__(self, max_n=1000, parent=None, unattended=False, **kwargs):\n        super(CurveBenchmark2, self).__init__(\n            max_n=max_n, parent=parent, unattended=unattended, **kwargs\n        )\n\n    def run_benchmark(self, max_n, unattended, **kwargs):\n        for points, symbols in zip(\n            (max_n / 10, max_n / 10, max_n, max_n), (True, False) * 2\n        ):\n            t0 = time.time()\n            symtext = "with%s symbols" % ("" if symbols else "out")\n            widget = CSWidget(2, points, symbols, **kwargs)\n            title = "%d points" % points\n            description = "%d plots with %d curves of %d points, %s" % (\n                widget.plot_nb,\n                widget.curve_nb,\n                points,\n                symtext,\n            )\n            self.process_iteration(title, description, widget, t0)\n\n\ndef test_curvebenchmark2():\n    """Curve styles benchmark example"""\n    utils.test_widget(CurveBenchmark2, options=False)\n\n\nif __name__ == "__main__":\n    test_curvebenchmark2()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/curvebenchmark2.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b214e0>, 'js_tag': .js_tag at 0x7fc7d6b21580>}, >) +[app] emitting event: 'html-page-context'('examples/curvebenchmark2', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/curvedemo1', 'Curve demo 1', 'N', 'next'), ('examples/curvebenchmark1', 'Curve benchmark demo 1', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/curvebenchmark2', 'current_page_name': 'examples/curvebenchmark2', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f69260>, 'hasdoc': .hasdoc at 0x7f3d39f693a0>, 'toctree': . at 0x7f3d39f69440>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'curvebenchmark1.html', 'title': 'Curve benchmark demo 1'}, 'next': {'link': 'curvedemo1.html', 'title': 'Curve demo 1'}, 'title': 'Curve benchmark demo 2', 'meta': None, 'body': '
\n

Curve benchmark demo 2

\n../_images/curvebenchmark2.png\n
\nimport time\n\nfrom qtpy.QtCore import Qt\n\nfrom qwt import QwtSymbol\nfrom qwt.tests import test_curvebenchmark1 as cb\nfrom qwt.tests import utils\n\n\nclass CSWidget(cb.BMWidget):\n    def params(self, *args, **kwargs):\n        (symbols,) = args\n        symb1 = QwtSymbol.make(\n            QwtSymbol.Ellipse, brush=Qt.yellow, pen=Qt.blue, size=(5, 5)\n        )\n        symb2 = QwtSymbol.make(QwtSymbol.XCross, pen=Qt.darkMagenta, size=(5, 5))\n        if symbols:\n            if kwargs.get("only_lines", False):\n                return (\n                    ("Lines", symb1),\n                    ("Lines", symb1),\n                    ("Lines", symb2),\n                    ("Lines", symb2),\n                )\n            else:\n                return (\n                    ("Sticks", symb1),\n                    ("Lines", symb1),\n                    ("Steps", symb2),\n                    ("Dots", symb2),\n                )\n        else:\n            if kwargs.get("only_lines", False):\n                return (\n                    ("Lines", None),\n                    ("Lines", None),\n                    ("Lines", None),\n                    ("Lines", None),\n                )\n            else:\n                return (\n                    ("Sticks", None),\n                    ("Lines", None),\n                    ("Steps", None),\n                    ("Dots", None),\n                )\n\n\nclass CurveBenchmark2(cb.CurveBenchmark1):\n    TITLE = "Curve styles"\n    SIZE = (1000, 800)\n\n    def __init__(self, max_n=1000, parent=None, unattended=False, **kwargs):\n        super(CurveBenchmark2, self).__init__(\n            max_n=max_n, parent=parent, unattended=unattended, **kwargs\n        )\n\n    def run_benchmark(self, max_n, unattended, **kwargs):\n        for points, symbols in zip(\n            (max_n / 10, max_n / 10, max_n, max_n), (True, False) * 2\n        ):\n            t0 = time.time()\n            symtext = "with%s symbols" % ("" if symbols else "out")\n            widget = CSWidget(2, points, symbols, **kwargs)\n            title = "%d points" % points\n            description = "%d plots with %d curves of %d points, %s" % (\n                widget.plot_nb,\n                widget.curve_nb,\n                points,\n                symtext,\n            )\n            self.process_iteration(title, description, widget, t0)\n\n\ndef test_curvebenchmark2():\n    """Curve styles benchmark example"""\n    utils.test_widget(CurveBenchmark2, options=False)\n\n\nif __name__ == "__main__":\n    test_curvebenchmark2()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/curvebenchmark2.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f694e0>, 'js_tag': .js_tag at 0x7f3d39f69580>}, >) writing output... [ 19%] examples/curvedemo1 [app] emitting event: 'doctree-resolved'(>, 'examples/curvedemo1') -[app] emitting event: 'html-page-context'('examples/curvedemo1', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/curvedemo2', 'Curve demo 2', 'N', 'next'), ('examples/curvebenchmark2', 'Curve benchmark demo 2', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/curvedemo1', 'current_page_name': 'examples/curvedemo1', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b220c0>, 'hasdoc': .hasdoc at 0x7fc7d6b22200>, 'toctree': . at 0x7fc7d6b222a0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'curvebenchmark2.html', 'title': 'Curve benchmark demo 2'}, 'next': {'link': 'curvedemo2.html', 'title': 'Curve demo 2'}, 'title': 'Curve demo 1', 'meta': None, 'body': '
\n

Curve demo 1

\n../_images/curvedemo1.png\n
\nimport numpy as np\nfrom qtpy.QtCore import QSize, Qt\nfrom qtpy.QtGui import QBrush, QFont, QPainter, QPen\nfrom qtpy.QtWidgets import QFrame\n\nfrom qwt import QwtPlotCurve, QwtPlotItem, QwtScaleMap, QwtSymbol\nfrom qwt.tests import utils\n\n\nclass CurveDemo1(QFrame):\n    def __init__(self, *args):\n        QFrame.__init__(self, *args)\n\n        self.xMap = QwtScaleMap()\n        self.xMap.setScaleInterval(-0.5, 10.5)\n        self.yMap = QwtScaleMap()\n        self.yMap.setScaleInterval(-1.1, 1.1)\n\n        # frame style\n        self.setFrameStyle(QFrame.Box | QFrame.Raised)\n        self.setLineWidth(2)\n        self.setMidLineWidth(3)\n\n        # calculate values\n        self.x = np.arange(0, 10.0, 10.0 / 27)\n        self.y = np.sin(self.x) * np.cos(2 * self.x)\n\n        # make curves with different styles\n        self.curves = []\n        self.titles = []\n        # curve 1\n        self.titles.append("Style: Sticks, Symbol: Ellipse")\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(Qt.red))\n        curve.setStyle(QwtPlotCurve.Sticks)\n        curve.setSymbol(\n            QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.yellow), QPen(Qt.blue), QSize(5, 5))\n        )\n        self.curves.append(curve)\n        # curve 2\n        self.titles.append("Style: Lines, Symbol: None")\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(Qt.darkBlue))\n        curve.setStyle(QwtPlotCurve.Lines)\n        self.curves.append(curve)\n        # curve 3\n        self.titles.append("Style: Lines, Symbol: None, Antialiased")\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(Qt.darkBlue))\n        curve.setStyle(QwtPlotCurve.Lines)\n        curve.setRenderHint(QwtPlotItem.RenderAntialiased)\n        self.curves.append(curve)\n        # curve 4\n        self.titles.append("Style: Steps, Symbol: None")\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(Qt.darkCyan))\n        curve.setStyle(QwtPlotCurve.Steps)\n        self.curves.append(curve)\n        # curve 5\n        self.titles.append("Style: NoCurve, Symbol: XCross")\n        curve = QwtPlotCurve()\n        curve.setStyle(QwtPlotCurve.NoCurve)\n        curve.setSymbol(\n            QwtSymbol(QwtSymbol.XCross, QBrush(), QPen(Qt.darkMagenta), QSize(5, 5))\n        )\n        self.curves.append(curve)\n\n        # attach data, using Numeric\n        for curve in self.curves:\n            curve.setData(self.x, self.y)\n\n    def shiftDown(self, rect, offset):\n        rect.translate(0, offset)\n\n    def paintEvent(self, event):\n        QFrame.paintEvent(self, event)\n        painter = QPainter(self)\n        painter.setClipRect(self.contentsRect())\n        self.drawContents(painter)\n\n    def drawContents(self, painter):\n        # draw curves\n        r = self.contentsRect()\n        dy = int(r.height() / len(self.curves))\n        r.setHeight(dy)\n        for curve in self.curves:\n            self.xMap.setPaintInterval(r.left(), r.right())\n            self.yMap.setPaintInterval(r.top(), r.bottom())\n            painter.setRenderHint(\n                QPainter.Antialiasing,\n                curve.testRenderHint(QwtPlotItem.RenderAntialiased),\n            )\n            curve.draw(painter, self.xMap, self.yMap, r)\n            self.shiftDown(r, dy)\n        # draw titles\n        r = self.contentsRect()\n        r.setHeight(dy)\n        painter.setFont(QFont("Helvetica", 8))\n        painter.setPen(Qt.black)\n        for title in self.titles:\n            painter.drawText(\n                0,\n                r.top(),\n                r.width(),\n                painter.fontMetrics().height(),\n                Qt.AlignTop | Qt.AlignHCenter,\n                title,\n            )\n            self.shiftDown(r, dy)\n\n\ndef test_curvedemo1():\n    """Curve demo 1"""\n    utils.test_widget(CurveDemo1, size=(300, 600), options=False)\n\n\nif __name__ == "__main__":\n    test_curvedemo1()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/curvedemo1.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b22340>, 'js_tag': .js_tag at 0x7fc7d6b223e0>}, >) +[app] emitting event: 'html-page-context'('examples/curvedemo1', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/curvedemo2', 'Curve demo 2', 'N', 'next'), ('examples/curvebenchmark2', 'Curve benchmark demo 2', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/curvedemo1', 'current_page_name': 'examples/curvedemo1', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f6a0c0>, 'hasdoc': .hasdoc at 0x7f3d39f6a200>, 'toctree': . at 0x7f3d39f6a2a0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'curvebenchmark2.html', 'title': 'Curve benchmark demo 2'}, 'next': {'link': 'curvedemo2.html', 'title': 'Curve demo 2'}, 'title': 'Curve demo 1', 'meta': None, 'body': '
\n

Curve demo 1

\n../_images/curvedemo1.png\n
\nimport numpy as np\nfrom qtpy.QtCore import QSize, Qt\nfrom qtpy.QtGui import QBrush, QFont, QPainter, QPen\nfrom qtpy.QtWidgets import QFrame\n\nfrom qwt import QwtPlotCurve, QwtPlotItem, QwtScaleMap, QwtSymbol\nfrom qwt.tests import utils\n\n\nclass CurveDemo1(QFrame):\n    def __init__(self, *args):\n        QFrame.__init__(self, *args)\n\n        self.xMap = QwtScaleMap()\n        self.xMap.setScaleInterval(-0.5, 10.5)\n        self.yMap = QwtScaleMap()\n        self.yMap.setScaleInterval(-1.1, 1.1)\n\n        # frame style\n        self.setFrameStyle(QFrame.Box | QFrame.Raised)\n        self.setLineWidth(2)\n        self.setMidLineWidth(3)\n\n        # calculate values\n        self.x = np.arange(0, 10.0, 10.0 / 27)\n        self.y = np.sin(self.x) * np.cos(2 * self.x)\n\n        # make curves with different styles\n        self.curves = []\n        self.titles = []\n        # curve 1\n        self.titles.append("Style: Sticks, Symbol: Ellipse")\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(Qt.red))\n        curve.setStyle(QwtPlotCurve.Sticks)\n        curve.setSymbol(\n            QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.yellow), QPen(Qt.blue), QSize(5, 5))\n        )\n        self.curves.append(curve)\n        # curve 2\n        self.titles.append("Style: Lines, Symbol: None")\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(Qt.darkBlue))\n        curve.setStyle(QwtPlotCurve.Lines)\n        self.curves.append(curve)\n        # curve 3\n        self.titles.append("Style: Lines, Symbol: None, Antialiased")\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(Qt.darkBlue))\n        curve.setStyle(QwtPlotCurve.Lines)\n        curve.setRenderHint(QwtPlotItem.RenderAntialiased)\n        self.curves.append(curve)\n        # curve 4\n        self.titles.append("Style: Steps, Symbol: None")\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(Qt.darkCyan))\n        curve.setStyle(QwtPlotCurve.Steps)\n        self.curves.append(curve)\n        # curve 5\n        self.titles.append("Style: NoCurve, Symbol: XCross")\n        curve = QwtPlotCurve()\n        curve.setStyle(QwtPlotCurve.NoCurve)\n        curve.setSymbol(\n            QwtSymbol(QwtSymbol.XCross, QBrush(), QPen(Qt.darkMagenta), QSize(5, 5))\n        )\n        self.curves.append(curve)\n\n        # attach data, using Numeric\n        for curve in self.curves:\n            curve.setData(self.x, self.y)\n\n    def shiftDown(self, rect, offset):\n        rect.translate(0, offset)\n\n    def paintEvent(self, event):\n        QFrame.paintEvent(self, event)\n        painter = QPainter(self)\n        painter.setClipRect(self.contentsRect())\n        self.drawContents(painter)\n\n    def drawContents(self, painter):\n        # draw curves\n        r = self.contentsRect()\n        dy = int(r.height() / len(self.curves))\n        r.setHeight(dy)\n        for curve in self.curves:\n            self.xMap.setPaintInterval(r.left(), r.right())\n            self.yMap.setPaintInterval(r.top(), r.bottom())\n            painter.setRenderHint(\n                QPainter.Antialiasing,\n                curve.testRenderHint(QwtPlotItem.RenderAntialiased),\n            )\n            curve.draw(painter, self.xMap, self.yMap, r)\n            self.shiftDown(r, dy)\n        # draw titles\n        r = self.contentsRect()\n        r.setHeight(dy)\n        painter.setFont(QFont("Helvetica", 8))\n        painter.setPen(Qt.black)\n        for title in self.titles:\n            painter.drawText(\n                0,\n                r.top(),\n                r.width(),\n                painter.fontMetrics().height(),\n                Qt.AlignTop | Qt.AlignHCenter,\n                title,\n            )\n            self.shiftDown(r, dy)\n\n\ndef test_curvedemo1():\n    """Curve demo 1"""\n    utils.test_widget(CurveDemo1, size=(300, 600), options=False)\n\n\nif __name__ == "__main__":\n    test_curvedemo1()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/curvedemo1.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f6a340>, 'js_tag': .js_tag at 0x7f3d39f6a3e0>}, >) writing output... [ 22%] examples/curvedemo2 [app] emitting event: 'doctree-resolved'(>, 'examples/curvedemo2') -[app] emitting event: 'html-page-context'('examples/curvedemo2', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/data', 'Data demo', 'N', 'next'), ('examples/curvedemo1', 'Curve demo 1', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/curvedemo2', 'current_page_name': 'examples/curvedemo2', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b22fc0>, 'hasdoc': .hasdoc at 0x7fc7d6b23100>, 'toctree': . at 0x7fc7d6b231a0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'curvedemo1.html', 'title': 'Curve demo 1'}, 'next': {'link': 'data.html', 'title': 'Data demo'}, 'title': 'Curve demo 2', 'meta': None, 'body': '
\n

Curve demo 2

\n../_images/curvedemo2.png\n
\nimport numpy as np\nfrom qtpy.QtCore import QSize, Qt\nfrom qtpy.QtGui import QBrush, QColor, QPainter, QPalette, QPen\nfrom qtpy.QtWidgets import QFrame\n\nfrom qwt import QwtPlotCurve, QwtScaleMap, QwtSymbol\nfrom qwt.tests import utils\n\nSize = 15\nUSize = 13\n\n\nclass CurveDemo2(QFrame):\n    def __init__(self, *args):\n        QFrame.__init__(self, *args)\n\n        self.setFrameStyle(QFrame.Box | QFrame.Raised)\n        self.setLineWidth(2)\n        self.setMidLineWidth(3)\n\n        p = QPalette()\n        p.setColor(self.backgroundRole(), QColor(30, 30, 50))\n        self.setPalette(p)\n        # make curves and maps\n        self.tuples = []\n        # curve 1\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(QColor(150, 150, 200), 2))\n        curve.setStyle(QwtPlotCurve.Lines)\n        curve.setSymbol(\n            QwtSymbol(QwtSymbol.XCross, QBrush(), QPen(Qt.yellow, 2), QSize(7, 7))\n        )\n        self.tuples.append(\n            (curve, QwtScaleMap(0, 100, -1.5, 1.5), QwtScaleMap(0, 100, 0.0, 2 * np.pi))\n        )\n        # curve 2\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(QColor(200, 150, 50), 1, Qt.DashDotDotLine))\n        curve.setStyle(QwtPlotCurve.Sticks)\n        curve.setSymbol(\n            QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.blue), QPen(Qt.yellow), QSize(5, 5))\n        )\n        self.tuples.append(\n            (curve, QwtScaleMap(0, 100, 0.0, 2 * np.pi), QwtScaleMap(0, 100, -3.0, 1.1))\n        )\n        # curve 3\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(QColor(100, 200, 150)))\n        curve.setStyle(QwtPlotCurve.Lines)\n        self.tuples.append(\n            (curve, QwtScaleMap(0, 100, -1.1, 3.0), QwtScaleMap(0, 100, -1.1, 3.0))\n        )\n        # curve 4\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(Qt.red))\n        curve.setStyle(QwtPlotCurve.Lines)\n        self.tuples.append(\n            (curve, QwtScaleMap(0, 100, -5.0, 1.1), QwtScaleMap(0, 100, -1.1, 5.0))\n        )\n        # data\n        self.phase = 0.0\n        self.base = np.arange(0.0, 2.01 * np.pi, 2 * np.pi / (USize - 1))\n        self.uval = np.cos(self.base)\n        self.vval = np.sin(self.base)\n        self.uval[1::2] *= 0.5\n        self.vval[1::2] *= 0.5\n        self.newValues()\n        # start timer\n        self.tid = self.startTimer(250)\n\n    def paintEvent(self, event):\n        QFrame.paintEvent(self, event)\n        painter = QPainter(self)\n        painter.setClipRect(self.contentsRect())\n        self.drawContents(painter)\n\n    def drawContents(self, painter):\n        r = self.contentsRect()\n        for curve, xMap, yMap in self.tuples:\n            xMap.setPaintInterval(r.left(), r.right())\n            yMap.setPaintInterval(r.top(), r.bottom())\n            curve.draw(painter, xMap, yMap, r)\n\n    def timerEvent(self, event):\n        self.newValues()\n        self.repaint()\n\n    def newValues(self):\n        phase = self.phase\n\n        self.xval = np.arange(0, 2.01 * np.pi, 2 * np.pi / (Size - 1))\n        self.yval = np.sin(self.xval - phase)\n        self.zval = np.cos(3 * (self.xval + phase))\n\n        s = 0.25 * np.sin(phase)\n        c = np.sqrt(1.0 - s * s)\n        u = self.uval\n        self.uval = c * self.uval - s * self.vval\n        self.vval = c * self.vval + s * u\n\n        self.tuples[0][0].setData(self.yval, self.xval)\n        self.tuples[1][0].setData(self.xval, self.zval)\n        self.tuples[2][0].setData(self.yval, self.zval)\n        self.tuples[3][0].setData(self.uval, self.vval)\n\n        self.phase += 2 * np.pi / 100\n        if self.phase > 2 * np.pi:\n            self.phase = 0.0\n\n\ndef test_curvedemo2():\n    """Curve demo 2"""\n    utils.test_widget(CurveDemo2, options=False)\n\n\nif __name__ == "__main__":\n    test_curvedemo2()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/curvedemo2.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b23240>, 'js_tag': .js_tag at 0x7fc7d6b232e0>}, >) +[app] emitting event: 'html-page-context'('examples/curvedemo2', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/data', 'Data demo', 'N', 'next'), ('examples/curvedemo1', 'Curve demo 1', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/curvedemo2', 'current_page_name': 'examples/curvedemo2', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f6afc0>, 'hasdoc': .hasdoc at 0x7f3d39f6b100>, 'toctree': . at 0x7f3d39f6b1a0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'curvedemo1.html', 'title': 'Curve demo 1'}, 'next': {'link': 'data.html', 'title': 'Data demo'}, 'title': 'Curve demo 2', 'meta': None, 'body': '
\n

Curve demo 2

\n../_images/curvedemo2.png\n
\nimport numpy as np\nfrom qtpy.QtCore import QSize, Qt\nfrom qtpy.QtGui import QBrush, QColor, QPainter, QPalette, QPen\nfrom qtpy.QtWidgets import QFrame\n\nfrom qwt import QwtPlotCurve, QwtScaleMap, QwtSymbol\nfrom qwt.tests import utils\n\nSize = 15\nUSize = 13\n\n\nclass CurveDemo2(QFrame):\n    def __init__(self, *args):\n        QFrame.__init__(self, *args)\n\n        self.setFrameStyle(QFrame.Box | QFrame.Raised)\n        self.setLineWidth(2)\n        self.setMidLineWidth(3)\n\n        p = QPalette()\n        p.setColor(self.backgroundRole(), QColor(30, 30, 50))\n        self.setPalette(p)\n        # make curves and maps\n        self.tuples = []\n        # curve 1\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(QColor(150, 150, 200), 2))\n        curve.setStyle(QwtPlotCurve.Lines)\n        curve.setSymbol(\n            QwtSymbol(QwtSymbol.XCross, QBrush(), QPen(Qt.yellow, 2), QSize(7, 7))\n        )\n        self.tuples.append(\n            (curve, QwtScaleMap(0, 100, -1.5, 1.5), QwtScaleMap(0, 100, 0.0, 2 * np.pi))\n        )\n        # curve 2\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(QColor(200, 150, 50), 1, Qt.DashDotDotLine))\n        curve.setStyle(QwtPlotCurve.Sticks)\n        curve.setSymbol(\n            QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.blue), QPen(Qt.yellow), QSize(5, 5))\n        )\n        self.tuples.append(\n            (curve, QwtScaleMap(0, 100, 0.0, 2 * np.pi), QwtScaleMap(0, 100, -3.0, 1.1))\n        )\n        # curve 3\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(QColor(100, 200, 150)))\n        curve.setStyle(QwtPlotCurve.Lines)\n        self.tuples.append(\n            (curve, QwtScaleMap(0, 100, -1.1, 3.0), QwtScaleMap(0, 100, -1.1, 3.0))\n        )\n        # curve 4\n        curve = QwtPlotCurve()\n        curve.setPen(QPen(Qt.red))\n        curve.setStyle(QwtPlotCurve.Lines)\n        self.tuples.append(\n            (curve, QwtScaleMap(0, 100, -5.0, 1.1), QwtScaleMap(0, 100, -1.1, 5.0))\n        )\n        # data\n        self.phase = 0.0\n        self.base = np.arange(0.0, 2.01 * np.pi, 2 * np.pi / (USize - 1))\n        self.uval = np.cos(self.base)\n        self.vval = np.sin(self.base)\n        self.uval[1::2] *= 0.5\n        self.vval[1::2] *= 0.5\n        self.newValues()\n        # start timer\n        self.tid = self.startTimer(250)\n\n    def paintEvent(self, event):\n        QFrame.paintEvent(self, event)\n        painter = QPainter(self)\n        painter.setClipRect(self.contentsRect())\n        self.drawContents(painter)\n\n    def drawContents(self, painter):\n        r = self.contentsRect()\n        for curve, xMap, yMap in self.tuples:\n            xMap.setPaintInterval(r.left(), r.right())\n            yMap.setPaintInterval(r.top(), r.bottom())\n            curve.draw(painter, xMap, yMap, r)\n\n    def timerEvent(self, event):\n        self.newValues()\n        self.repaint()\n\n    def newValues(self):\n        phase = self.phase\n\n        self.xval = np.arange(0, 2.01 * np.pi, 2 * np.pi / (Size - 1))\n        self.yval = np.sin(self.xval - phase)\n        self.zval = np.cos(3 * (self.xval + phase))\n\n        s = 0.25 * np.sin(phase)\n        c = np.sqrt(1.0 - s * s)\n        u = self.uval\n        self.uval = c * self.uval - s * self.vval\n        self.vval = c * self.vval + s * u\n\n        self.tuples[0][0].setData(self.yval, self.xval)\n        self.tuples[1][0].setData(self.xval, self.zval)\n        self.tuples[2][0].setData(self.yval, self.zval)\n        self.tuples[3][0].setData(self.uval, self.vval)\n\n        self.phase += 2 * np.pi / 100\n        if self.phase > 2 * np.pi:\n            self.phase = 0.0\n\n\ndef test_curvedemo2():\n    """Curve demo 2"""\n    utils.test_widget(CurveDemo2, options=False)\n\n\nif __name__ == "__main__":\n    test_curvedemo2()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/curvedemo2.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f6b240>, 'js_tag': .js_tag at 0x7f3d39f6b2e0>}, >) writing output... [ 25%] examples/data [app] emitting event: 'doctree-resolved'(>, 'examples/data') -[app] emitting event: 'html-page-context'('examples/data', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/errorbar', 'Error bar demo', 'N', 'next'), ('examples/curvedemo2', 'Curve demo 2', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/data', 'current_page_name': 'examples/data', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6c542c0>, 'hasdoc': .hasdoc at 0x7fc7d6c56480>, 'toctree': . at 0x7fc7d6c54040>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'curvedemo2.html', 'title': 'Curve demo 2'}, 'next': {'link': 'errorbar.html', 'title': 'Error bar demo'}, 'title': 'Data demo', 'meta': None, 'body': '
\n

Data demo

\n../_images/data.png\n
\nimport random\n\nimport numpy as np\nfrom qtpy.QtCore import QSize, Qt\nfrom qtpy.QtGui import QBrush, QPen\nfrom qtpy.QtWidgets import QFrame\n\nfrom qwt import (\n    QwtAbstractScaleDraw,\n    QwtLegend,\n    QwtPlot,\n    QwtPlotCurve,\n    QwtPlotMarker,\n    QwtSymbol,\n)\nfrom qwt.tests import utils\n\n\nclass DataPlot(QwtPlot):\n    def __init__(self, unattended=False):\n        QwtPlot.__init__(self)\n\n        self.setCanvasBackground(Qt.white)\n        self.alignScales()\n\n        # Initialize data\n        self.x = np.arange(0.0, 100.1, 0.5)\n        self.y = np.zeros(len(self.x), float)\n        self.z = np.zeros(len(self.x), float)\n\n        self.setTitle("A Moving QwtPlot Demonstration")\n        self.insertLegend(QwtLegend(), QwtPlot.BottomLegend)\n\n        self.curveR = QwtPlotCurve("Data Moving Right")\n        self.curveR.attach(self)\n        self.curveL = QwtPlotCurve("Data Moving Left")\n        self.curveL.attach(self)\n\n        self.curveL.setSymbol(\n            QwtSymbol(QwtSymbol.Ellipse, QBrush(), QPen(Qt.yellow), QSize(7, 7))\n        )\n\n        self.curveR.setPen(QPen(Qt.red))\n        self.curveL.setPen(QPen(Qt.blue))\n\n        mY = QwtPlotMarker()\n        mY.setLabelAlignment(Qt.AlignRight | Qt.AlignTop)\n        mY.setLineStyle(QwtPlotMarker.HLine)\n        mY.setYValue(0.0)\n        mY.attach(self)\n\n        self.setAxisTitle(QwtPlot.xBottom, "Time (seconds)")\n        self.setAxisTitle(QwtPlot.yLeft, "Values")\n\n        self.startTimer(10 if unattended else 50)\n        self.phase = 0.0\n\n    def alignScales(self):\n        self.canvas().setFrameStyle(QFrame.Box | QFrame.Plain)\n        self.canvas().setLineWidth(1)\n        for axis_id in QwtPlot.AXES:\n            scaleWidget = self.axisWidget(axis_id)\n            if scaleWidget:\n                scaleWidget.setMargin(0)\n            scaleDraw = self.axisScaleDraw(axis_id)\n            if scaleDraw:\n                scaleDraw.enableComponent(QwtAbstractScaleDraw.Backbone, False)\n\n    def timerEvent(self, e):\n        if self.phase > np.pi - 0.0001:\n            self.phase = 0.0\n\n        # y moves from left to right:\n        # shift y array right and assign new value y[0]\n        self.y = np.concatenate((self.y[:1], self.y[:-1]))\n        self.y[0] = np.sin(self.phase) * (-1.0 + 2.0 * random.random())\n\n        # z moves from right to left:\n        # Shift z array left and assign new value to z[n-1].\n        self.z = np.concatenate((self.z[1:], self.z[:1]))\n        self.z[-1] = 0.8 - (2.0 * self.phase / np.pi) + 0.4 * random.random()\n\n        self.curveR.setData(self.x, self.y)\n        self.curveL.setData(self.x, self.z)\n\n        self.replot()\n        self.phase += np.pi * 0.02\n\n\ndef test_data():\n    """Data Test"""\n    utils.test_widget(DataPlot, size=(500, 300))\n\n\nif __name__ == "__main__":\n    test_data()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/data.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d70765c0>, 'js_tag': .js_tag at 0x7fc7d7075d00>}, >) +[app] emitting event: 'html-page-context'('examples/data', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/errorbar', 'Error bar demo', 'N', 'next'), ('examples/curvedemo2', 'Curve demo 2', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/data', 'current_page_name': 'examples/data', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ebc2c0>, 'hasdoc': .hasdoc at 0x7f3d39ebf6a0>, 'toctree': . at 0x7f3d39ebc040>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'curvedemo2.html', 'title': 'Curve demo 2'}, 'next': {'link': 'errorbar.html', 'title': 'Error bar demo'}, 'title': 'Data demo', 'meta': None, 'body': '
\n

Data demo

\n../_images/data.png\n
\nimport random\n\nimport numpy as np\nfrom qtpy.QtCore import QSize, Qt\nfrom qtpy.QtGui import QBrush, QPen\nfrom qtpy.QtWidgets import QFrame\n\nfrom qwt import (\n    QwtAbstractScaleDraw,\n    QwtLegend,\n    QwtPlot,\n    QwtPlotCurve,\n    QwtPlotMarker,\n    QwtSymbol,\n)\nfrom qwt.tests import utils\n\n\nclass DataPlot(QwtPlot):\n    def __init__(self, unattended=False):\n        QwtPlot.__init__(self)\n\n        self.setCanvasBackground(Qt.white)\n        self.alignScales()\n\n        # Initialize data\n        self.x = np.arange(0.0, 100.1, 0.5)\n        self.y = np.zeros(len(self.x), float)\n        self.z = np.zeros(len(self.x), float)\n\n        self.setTitle("A Moving QwtPlot Demonstration")\n        self.insertLegend(QwtLegend(), QwtPlot.BottomLegend)\n\n        self.curveR = QwtPlotCurve("Data Moving Right")\n        self.curveR.attach(self)\n        self.curveL = QwtPlotCurve("Data Moving Left")\n        self.curveL.attach(self)\n\n        self.curveL.setSymbol(\n            QwtSymbol(QwtSymbol.Ellipse, QBrush(), QPen(Qt.yellow), QSize(7, 7))\n        )\n\n        self.curveR.setPen(QPen(Qt.red))\n        self.curveL.setPen(QPen(Qt.blue))\n\n        mY = QwtPlotMarker()\n        mY.setLabelAlignment(Qt.AlignRight | Qt.AlignTop)\n        mY.setLineStyle(QwtPlotMarker.HLine)\n        mY.setYValue(0.0)\n        mY.attach(self)\n\n        self.setAxisTitle(QwtPlot.xBottom, "Time (seconds)")\n        self.setAxisTitle(QwtPlot.yLeft, "Values")\n\n        self.startTimer(10 if unattended else 50)\n        self.phase = 0.0\n\n    def alignScales(self):\n        self.canvas().setFrameStyle(QFrame.Box | QFrame.Plain)\n        self.canvas().setLineWidth(1)\n        for axis_id in QwtPlot.AXES:\n            scaleWidget = self.axisWidget(axis_id)\n            if scaleWidget:\n                scaleWidget.setMargin(0)\n            scaleDraw = self.axisScaleDraw(axis_id)\n            if scaleDraw:\n                scaleDraw.enableComponent(QwtAbstractScaleDraw.Backbone, False)\n\n    def timerEvent(self, e):\n        if self.phase > np.pi - 0.0001:\n            self.phase = 0.0\n\n        # y moves from left to right:\n        # shift y array right and assign new value y[0]\n        self.y = np.concatenate((self.y[:1], self.y[:-1]))\n        self.y[0] = np.sin(self.phase) * (-1.0 + 2.0 * random.random())\n\n        # z moves from right to left:\n        # Shift z array left and assign new value to z[n-1].\n        self.z = np.concatenate((self.z[1:], self.z[:1]))\n        self.z[-1] = 0.8 - (2.0 * self.phase / np.pi) + 0.4 * random.random()\n\n        self.curveR.setData(self.x, self.y)\n        self.curveL.setData(self.x, self.z)\n\n        self.replot()\n        self.phase += np.pi * 0.02\n\n\ndef test_data():\n    """Data Test"""\n    utils.test_widget(DataPlot, size=(500, 300))\n\n\nif __name__ == "__main__":\n    test_data()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/data.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d3a2965c0>, 'js_tag': .js_tag at 0x7f3d3a295d00>}, >) writing output... [ 28%] examples/errorbar [app] emitting event: 'doctree-resolved'(>, 'examples/errorbar') -[app] emitting event: 'html-page-context'('examples/errorbar', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/eventfilter', 'Event filter demo', 'N', 'next'), ('examples/data', 'Data demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/errorbar', 'current_page_name': 'examples/errorbar', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b22980>, 'hasdoc': .hasdoc at 0x7fc7d6b22340>, 'toctree': . at 0x7fc7d6b222a0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'data.html', 'title': 'Data demo'}, 'next': {'link': 'eventfilter.html', 'title': 'Event filter demo'}, 'title': 'Error bar demo', 'meta': None, 'body': '
\n

Error bar demo

\n../_images/errorbar.png\n
\nimport numpy as np\nfrom qtpy.QtCore import QLineF, QRectF, QSize, Qt\nfrom qtpy.QtGui import QBrush, QPen\n\nfrom qwt import QwtPlot, QwtPlotCurve, QwtPlotGrid, QwtSymbol\nfrom qwt.tests import utils\n\n\nclass ErrorBarPlotCurve(QwtPlotCurve):\n    def __init__(\n        self,\n        x=[],\n        y=[],\n        dx=None,\n        dy=None,\n        curvePen=None,\n        curveStyle=None,\n        curveSymbol=None,\n        errorPen=None,\n        errorCap=0,\n        errorOnTop=False,\n    ):\n        """A curve of x versus y data with error bars in dx and dy.\n\n        Horizontal error bars are plotted if dx is not None.\n        Vertical error bars are plotted if dy is not None.\n\n        x and y must be sequences with a shape (N,) and dx and dy must be\n        sequences (if not None) with a shape (), (N,), or (2, N):\n        - if dx or dy has a shape () or (N,), the error bars are given by\n          (x-dx, x+dx) or (y-dy, y+dy),\n        - if dx or dy has a shape (2, N), the error bars are given by\n          (x-dx[0], x+dx[1]) or (y-dy[0], y+dy[1]).\n\n        curvePen is the pen used to plot the curve\n\n        curveStyle is the style used to plot the curve\n\n        curveSymbol is the symbol used to plot the symbols\n\n        errorPen is the pen used to plot the error bars\n\n        errorCap is the size of the error bar caps\n\n        errorOnTop is a boolean:\n        - if True, plot the error bars on top of the curve,\n        - if False, plot the curve on top of the error bars.\n        """\n\n        QwtPlotCurve.__init__(self)\n\n        if curvePen is None:\n            curvePen = QPen(Qt.NoPen)\n        if curveStyle is None:\n            curveStyle = QwtPlotCurve.Lines\n        if curveSymbol is None:\n            curveSymbol = QwtSymbol()\n        if errorPen is None:\n            errorPen = QPen(Qt.NoPen)\n\n        self.setData(x, y, dx, dy)\n        self.setPen(curvePen)\n        self.setStyle(curveStyle)\n        self.setSymbol(curveSymbol)\n        self.errorPen = errorPen\n        self.errorCap = errorCap\n        self.errorOnTop = errorOnTop\n\n    def setData(self, *args):\n        """Set x versus y data with error bars in dx and dy.\n\n        Horizontal error bars are plotted if dx is not None.\n        Vertical error bars are plotted if dy is not None.\n\n        x and y must be sequences with a shape (N,) and dx and dy must be\n        sequences (if not None) with a shape (), (N,), or (2, N):\n        - if dx or dy has a shape () or (N,), the error bars are given by\n          (x-dx, x+dx) or (y-dy, y+dy),\n        - if dx or dy has a shape (2, N), the error bars are given by\n          (x-dx[0], x+dx[1]) or (y-dy[0], y+dy[1]).\n        """\n        if len(args) == 1:\n            QwtPlotCurve.setData(self, *args)\n            return\n\n        dx = None\n        dy = None\n        x, y = args[:2]\n        if len(args) > 2:\n            dx = args[2]\n            if len(args) > 3:\n                dy = args[3]\n\n        self.__x = np.asarray(x, float)\n        if len(self.__x.shape) != 1:\n            raise RuntimeError("len(asarray(x).shape) != 1")\n\n        self.__y = np.asarray(y, float)\n        if len(self.__y.shape) != 1:\n            raise RuntimeError("len(asarray(y).shape) != 1")\n        if len(self.__x) != len(self.__y):\n            raise RuntimeError("len(asarray(x)) != len(asarray(y))")\n\n        if dx is None:\n            self.__dx = None\n        else:\n            self.__dx = np.asarray(dx, float)\n        if len(self.__dx.shape) not in [0, 1, 2]:\n            raise RuntimeError("len(asarray(dx).shape) not in [0, 1, 2]")\n\n        if dy is None:\n            self.__dy = dy\n        else:\n            self.__dy = np.asarray(dy, float)\n        if len(self.__dy.shape) not in [0, 1, 2]:\n            raise RuntimeError("len(asarray(dy).shape) not in [0, 1, 2]")\n\n        QwtPlotCurve.setData(self, self.__x, self.__y)\n\n    def boundingRect(self):\n        """Return the bounding rectangle of the data, error bars included."""\n        if self.__dx is None:\n            xmin = min(self.__x)\n            xmax = max(self.__x)\n        elif len(self.__dx.shape) in [0, 1]:\n            xmin = min(self.__x - self.__dx)\n            xmax = max(self.__x + self.__dx)\n        else:\n            xmin = min(self.__x - self.__dx[0])\n            xmax = max(self.__x + self.__dx[1])\n\n        if self.__dy is None:\n            ymin = min(self.__y)\n            ymax = max(self.__y)\n        elif len(self.__dy.shape) in [0, 1]:\n            ymin = min(self.__y - self.__dy)\n            ymax = max(self.__y + self.__dy)\n        else:\n            ymin = min(self.__y - self.__dy[0])\n            ymax = max(self.__y + self.__dy[1])\n\n        return QRectF(xmin, ymin, xmax - xmin, ymax - ymin)\n\n    def drawSeries(self, painter, xMap, yMap, canvasRect, first, last=-1):\n        """Draw an interval of the curve, including the error bars\n\n        painter is the QPainter used to draw the curve\n\n        xMap is the QwtDiMap used to map x-values to pixels\n\n        yMap is the QwtDiMap used to map y-values to pixels\n\n        first is the index of the first data point to draw\n\n        last is the index of the last data point to draw. If last < 0, last\n        is transformed to index the last data point\n        """\n\n        if last < 0:\n            last = self.dataSize() - 1\n\n        if self.errorOnTop:\n            QwtPlotCurve.drawSeries(self, painter, xMap, yMap, canvasRect, first, last)\n\n        # draw the error bars\n        painter.save()\n        painter.setPen(self.errorPen)\n\n        # draw the error bars with caps in the x direction\n        if self.__dx is not None:\n            # draw the bars\n            if len(self.__dx.shape) in [0, 1]:\n                xmin = self.__x - self.__dx\n                xmax = self.__x + self.__dx\n            else:\n                xmin = self.__x - self.__dx[0]\n                xmax = self.__x + self.__dx[1]\n            y = self.__y\n            n, i = len(y), 0\n            lines = []\n            while i < n:\n                yi = yMap.transform(y[i])\n                lines.append(\n                    QLineF(xMap.transform(xmin[i]), yi, xMap.transform(xmax[i]), yi)\n                )\n                i += 1\n            painter.drawLines(lines)\n            if self.errorCap > 0:\n                # draw the caps\n                cap = self.errorCap / 2\n                (\n                    n,\n                    i,\n                ) = (\n                    len(y),\n                    0,\n                )\n                lines = []\n                while i < n:\n                    yi = yMap.transform(y[i])\n                    lines.append(\n                        QLineF(\n                            xMap.transform(xmin[i]),\n                            yi - cap,\n                            xMap.transform(xmin[i]),\n                            yi + cap,\n                        )\n                    )\n                    lines.append(\n                        QLineF(\n                            xMap.transform(xmax[i]),\n                            yi - cap,\n                            xMap.transform(xmax[i]),\n                            yi + cap,\n                        )\n                    )\n                    i += 1\n            painter.drawLines(lines)\n\n        # draw the error bars with caps in the y direction\n        if self.__dy is not None:\n            # draw the bars\n            if len(self.__dy.shape) in [0, 1]:\n                ymin = self.__y - self.__dy\n                ymax = self.__y + self.__dy\n            else:\n                ymin = self.__y - self.__dy[0]\n                ymax = self.__y + self.__dy[1]\n            x = self.__x\n            (\n                n,\n                i,\n            ) = (\n                len(x),\n                0,\n            )\n            lines = []\n            while i < n:\n                xi = xMap.transform(x[i])\n                lines.append(\n                    QLineF(xi, yMap.transform(ymin[i]), xi, yMap.transform(ymax[i]))\n                )\n                i += 1\n            painter.drawLines(lines)\n            # draw the caps\n            if self.errorCap > 0:\n                cap = self.errorCap / 2\n                n, i, _j = len(x), 0, 0\n                lines = []\n                while i < n:\n                    xi = xMap.transform(x[i])\n                    lines.append(\n                        QLineF(\n                            xi - cap,\n                            yMap.transform(ymin[i]),\n                            xi + cap,\n                            yMap.transform(ymin[i]),\n                        )\n                    )\n                    lines.append(\n                        QLineF(\n                            xi - cap,\n                            yMap.transform(ymax[i]),\n                            xi + cap,\n                            yMap.transform(ymax[i]),\n                        )\n                    )\n                    i += 1\n            painter.drawLines(lines)\n\n        painter.restore()\n\n        if not self.errorOnTop:\n            QwtPlotCurve.drawSeries(self, painter, xMap, yMap, canvasRect, first, last)\n\n\nclass ErrorBarPlot(QwtPlot):\n    def __init__(self, parent=None, title=None):\n        super(ErrorBarPlot, self).__init__("Errorbar Demonstation")\n        self.setCanvasBackground(Qt.white)\n        self.plotLayout().setAlignCanvasToScales(True)\n        grid = QwtPlotGrid()\n        grid.attach(self)\n        grid.setPen(QPen(Qt.black, 0, Qt.DotLine))\n\n        # calculate data and errors for a curve with error bars\n        x = np.arange(0, 10.1, 0.5, float)\n        y = np.sin(x)\n        dy = 0.2 * abs(y)\n        # dy = (0.15 * abs(y), 0.25 * abs(y)) # uncomment for asymmetric error bars\n        dx = 0.2  # all error bars the same size\n        errorOnTop = False  # uncomment to draw the curve on top of the error bars\n        # errorOnTop = True # uncomment to draw the error bars on top of the curve\n        symbol = QwtSymbol(\n            QwtSymbol.Ellipse, QBrush(Qt.red), QPen(Qt.black, 2), QSize(9, 9)\n        )\n        curve = ErrorBarPlotCurve(\n            x=x,\n            y=y,\n            dx=dx,\n            dy=dy,\n            curvePen=QPen(Qt.black, 2),\n            curveSymbol=symbol,\n            errorPen=QPen(Qt.blue, 2),\n            errorCap=10,\n            errorOnTop=errorOnTop,\n        )\n        curve.attach(self)\n\n\ndef test_errorbar():\n    """Errorbar plot example"""\n    utils.test_widget(ErrorBarPlot, size=(640, 480))\n\n\nif __name__ == "__main__":\n    test_errorbar()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/errorbar.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b22200>, 'js_tag': .js_tag at 0x7fc7d6b22020>}, >) +[app] emitting event: 'html-page-context'('examples/errorbar', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/eventfilter', 'Event filter demo', 'N', 'next'), ('examples/data', 'Data demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/errorbar', 'current_page_name': 'examples/errorbar', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f6a980>, 'hasdoc': .hasdoc at 0x7f3d39f6a340>, 'toctree': . at 0x7f3d39f6a2a0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'data.html', 'title': 'Data demo'}, 'next': {'link': 'eventfilter.html', 'title': 'Event filter demo'}, 'title': 'Error bar demo', 'meta': None, 'body': '
\n

Error bar demo

\n../_images/errorbar.png\n
\nimport numpy as np\nfrom qtpy.QtCore import QLineF, QRectF, QSize, Qt\nfrom qtpy.QtGui import QBrush, QPen\n\nfrom qwt import QwtPlot, QwtPlotCurve, QwtPlotGrid, QwtSymbol\nfrom qwt.tests import utils\n\n\nclass ErrorBarPlotCurve(QwtPlotCurve):\n    def __init__(\n        self,\n        x=[],\n        y=[],\n        dx=None,\n        dy=None,\n        curvePen=None,\n        curveStyle=None,\n        curveSymbol=None,\n        errorPen=None,\n        errorCap=0,\n        errorOnTop=False,\n    ):\n        """A curve of x versus y data with error bars in dx and dy.\n\n        Horizontal error bars are plotted if dx is not None.\n        Vertical error bars are plotted if dy is not None.\n\n        x and y must be sequences with a shape (N,) and dx and dy must be\n        sequences (if not None) with a shape (), (N,), or (2, N):\n        - if dx or dy has a shape () or (N,), the error bars are given by\n          (x-dx, x+dx) or (y-dy, y+dy),\n        - if dx or dy has a shape (2, N), the error bars are given by\n          (x-dx[0], x+dx[1]) or (y-dy[0], y+dy[1]).\n\n        curvePen is the pen used to plot the curve\n\n        curveStyle is the style used to plot the curve\n\n        curveSymbol is the symbol used to plot the symbols\n\n        errorPen is the pen used to plot the error bars\n\n        errorCap is the size of the error bar caps\n\n        errorOnTop is a boolean:\n        - if True, plot the error bars on top of the curve,\n        - if False, plot the curve on top of the error bars.\n        """\n\n        QwtPlotCurve.__init__(self)\n\n        if curvePen is None:\n            curvePen = QPen(Qt.NoPen)\n        if curveStyle is None:\n            curveStyle = QwtPlotCurve.Lines\n        if curveSymbol is None:\n            curveSymbol = QwtSymbol()\n        if errorPen is None:\n            errorPen = QPen(Qt.NoPen)\n\n        self.setData(x, y, dx, dy)\n        self.setPen(curvePen)\n        self.setStyle(curveStyle)\n        self.setSymbol(curveSymbol)\n        self.errorPen = errorPen\n        self.errorCap = errorCap\n        self.errorOnTop = errorOnTop\n\n    def setData(self, *args):\n        """Set x versus y data with error bars in dx and dy.\n\n        Horizontal error bars are plotted if dx is not None.\n        Vertical error bars are plotted if dy is not None.\n\n        x and y must be sequences with a shape (N,) and dx and dy must be\n        sequences (if not None) with a shape (), (N,), or (2, N):\n        - if dx or dy has a shape () or (N,), the error bars are given by\n          (x-dx, x+dx) or (y-dy, y+dy),\n        - if dx or dy has a shape (2, N), the error bars are given by\n          (x-dx[0], x+dx[1]) or (y-dy[0], y+dy[1]).\n        """\n        if len(args) == 1:\n            QwtPlotCurve.setData(self, *args)\n            return\n\n        dx = None\n        dy = None\n        x, y = args[:2]\n        if len(args) > 2:\n            dx = args[2]\n            if len(args) > 3:\n                dy = args[3]\n\n        self.__x = np.asarray(x, float)\n        if len(self.__x.shape) != 1:\n            raise RuntimeError("len(asarray(x).shape) != 1")\n\n        self.__y = np.asarray(y, float)\n        if len(self.__y.shape) != 1:\n            raise RuntimeError("len(asarray(y).shape) != 1")\n        if len(self.__x) != len(self.__y):\n            raise RuntimeError("len(asarray(x)) != len(asarray(y))")\n\n        if dx is None:\n            self.__dx = None\n        else:\n            self.__dx = np.asarray(dx, float)\n        if len(self.__dx.shape) not in [0, 1, 2]:\n            raise RuntimeError("len(asarray(dx).shape) not in [0, 1, 2]")\n\n        if dy is None:\n            self.__dy = dy\n        else:\n            self.__dy = np.asarray(dy, float)\n        if len(self.__dy.shape) not in [0, 1, 2]:\n            raise RuntimeError("len(asarray(dy).shape) not in [0, 1, 2]")\n\n        QwtPlotCurve.setData(self, self.__x, self.__y)\n\n    def boundingRect(self):\n        """Return the bounding rectangle of the data, error bars included."""\n        if self.__dx is None:\n            xmin = min(self.__x)\n            xmax = max(self.__x)\n        elif len(self.__dx.shape) in [0, 1]:\n            xmin = min(self.__x - self.__dx)\n            xmax = max(self.__x + self.__dx)\n        else:\n            xmin = min(self.__x - self.__dx[0])\n            xmax = max(self.__x + self.__dx[1])\n\n        if self.__dy is None:\n            ymin = min(self.__y)\n            ymax = max(self.__y)\n        elif len(self.__dy.shape) in [0, 1]:\n            ymin = min(self.__y - self.__dy)\n            ymax = max(self.__y + self.__dy)\n        else:\n            ymin = min(self.__y - self.__dy[0])\n            ymax = max(self.__y + self.__dy[1])\n\n        return QRectF(xmin, ymin, xmax - xmin, ymax - ymin)\n\n    def drawSeries(self, painter, xMap, yMap, canvasRect, first, last=-1):\n        """Draw an interval of the curve, including the error bars\n\n        painter is the QPainter used to draw the curve\n\n        xMap is the QwtDiMap used to map x-values to pixels\n\n        yMap is the QwtDiMap used to map y-values to pixels\n\n        first is the index of the first data point to draw\n\n        last is the index of the last data point to draw. If last < 0, last\n        is transformed to index the last data point\n        """\n\n        if last < 0:\n            last = self.dataSize() - 1\n\n        if self.errorOnTop:\n            QwtPlotCurve.drawSeries(self, painter, xMap, yMap, canvasRect, first, last)\n\n        # draw the error bars\n        painter.save()\n        painter.setPen(self.errorPen)\n\n        # draw the error bars with caps in the x direction\n        if self.__dx is not None:\n            # draw the bars\n            if len(self.__dx.shape) in [0, 1]:\n                xmin = self.__x - self.__dx\n                xmax = self.__x + self.__dx\n            else:\n                xmin = self.__x - self.__dx[0]\n                xmax = self.__x + self.__dx[1]\n            y = self.__y\n            n, i = len(y), 0\n            lines = []\n            while i < n:\n                yi = yMap.transform(y[i])\n                lines.append(\n                    QLineF(xMap.transform(xmin[i]), yi, xMap.transform(xmax[i]), yi)\n                )\n                i += 1\n            painter.drawLines(lines)\n            if self.errorCap > 0:\n                # draw the caps\n                cap = self.errorCap / 2\n                (\n                    n,\n                    i,\n                ) = (\n                    len(y),\n                    0,\n                )\n                lines = []\n                while i < n:\n                    yi = yMap.transform(y[i])\n                    lines.append(\n                        QLineF(\n                            xMap.transform(xmin[i]),\n                            yi - cap,\n                            xMap.transform(xmin[i]),\n                            yi + cap,\n                        )\n                    )\n                    lines.append(\n                        QLineF(\n                            xMap.transform(xmax[i]),\n                            yi - cap,\n                            xMap.transform(xmax[i]),\n                            yi + cap,\n                        )\n                    )\n                    i += 1\n            painter.drawLines(lines)\n\n        # draw the error bars with caps in the y direction\n        if self.__dy is not None:\n            # draw the bars\n            if len(self.__dy.shape) in [0, 1]:\n                ymin = self.__y - self.__dy\n                ymax = self.__y + self.__dy\n            else:\n                ymin = self.__y - self.__dy[0]\n                ymax = self.__y + self.__dy[1]\n            x = self.__x\n            (\n                n,\n                i,\n            ) = (\n                len(x),\n                0,\n            )\n            lines = []\n            while i < n:\n                xi = xMap.transform(x[i])\n                lines.append(\n                    QLineF(xi, yMap.transform(ymin[i]), xi, yMap.transform(ymax[i]))\n                )\n                i += 1\n            painter.drawLines(lines)\n            # draw the caps\n            if self.errorCap > 0:\n                cap = self.errorCap / 2\n                n, i, _j = len(x), 0, 0\n                lines = []\n                while i < n:\n                    xi = xMap.transform(x[i])\n                    lines.append(\n                        QLineF(\n                            xi - cap,\n                            yMap.transform(ymin[i]),\n                            xi + cap,\n                            yMap.transform(ymin[i]),\n                        )\n                    )\n                    lines.append(\n                        QLineF(\n                            xi - cap,\n                            yMap.transform(ymax[i]),\n                            xi + cap,\n                            yMap.transform(ymax[i]),\n                        )\n                    )\n                    i += 1\n            painter.drawLines(lines)\n\n        painter.restore()\n\n        if not self.errorOnTop:\n            QwtPlotCurve.drawSeries(self, painter, xMap, yMap, canvasRect, first, last)\n\n\nclass ErrorBarPlot(QwtPlot):\n    def __init__(self, parent=None, title=None):\n        super(ErrorBarPlot, self).__init__("Errorbar Demonstation")\n        self.setCanvasBackground(Qt.white)\n        self.plotLayout().setAlignCanvasToScales(True)\n        grid = QwtPlotGrid()\n        grid.attach(self)\n        grid.setPen(QPen(Qt.black, 0, Qt.DotLine))\n\n        # calculate data and errors for a curve with error bars\n        x = np.arange(0, 10.1, 0.5, float)\n        y = np.sin(x)\n        dy = 0.2 * abs(y)\n        # dy = (0.15 * abs(y), 0.25 * abs(y)) # uncomment for asymmetric error bars\n        dx = 0.2  # all error bars the same size\n        errorOnTop = False  # uncomment to draw the curve on top of the error bars\n        # errorOnTop = True # uncomment to draw the error bars on top of the curve\n        symbol = QwtSymbol(\n            QwtSymbol.Ellipse, QBrush(Qt.red), QPen(Qt.black, 2), QSize(9, 9)\n        )\n        curve = ErrorBarPlotCurve(\n            x=x,\n            y=y,\n            dx=dx,\n            dy=dy,\n            curvePen=QPen(Qt.black, 2),\n            curveSymbol=symbol,\n            errorPen=QPen(Qt.blue, 2),\n            errorCap=10,\n            errorOnTop=errorOnTop,\n        )\n        curve.attach(self)\n\n\ndef test_errorbar():\n    """Errorbar plot example"""\n    utils.test_widget(ErrorBarPlot, size=(640, 480))\n\n\nif __name__ == "__main__":\n    test_errorbar()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/errorbar.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f6a200>, 'js_tag': .js_tag at 0x7f3d39f6a020>}, >) writing output... [ 31%] examples/eventfilter [app] emitting event: 'doctree-resolved'(>, 'examples/eventfilter') -[app] emitting event: 'html-page-context'('examples/eventfilter', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/image', 'Image plot demo', 'N', 'next'), ('examples/errorbar', 'Error bar demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/eventfilter', 'current_page_name': 'examples/eventfilter', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b213a0>, 'hasdoc': .hasdoc at 0x7fc7d6b21120>, 'toctree': . at 0x7fc7d6b20fe0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'errorbar.html', 'title': 'Error bar demo'}, 'next': {'link': 'image.html', 'title': 'Image plot demo'}, 'title': 'Event filter demo', 'meta': None, 'body': '
\n

Event filter demo

\n../_images/eventfilter.png\n
\nimport os\n\nimport numpy as np\nfrom qtpy.QtCore import QEvent, QObject, QPoint, QRect, QSize, Qt, Signal\nfrom qtpy.QtGui import QBrush, QColor, QPainter, QPen\nfrom qtpy.QtWidgets import QApplication, QMainWindow, QToolBar, QWhatsThis, QWidget\n\nfrom qwt import (\n    QwtPlot,\n    QwtPlotCanvas,\n    QwtPlotCurve,\n    QwtPlotGrid,\n    QwtScaleDiv,\n    QwtScaleDraw,\n    QwtSymbol,\n)\nfrom qwt.tests import utils\n\nQT_API = os.environ["QT_API"]\n\n\nclass ColorBar(QWidget):\n    colorSelected = Signal(QColor)\n\n    def __init__(self, orientation, *args):\n        QWidget.__init__(self, *args)\n        self.__orientation = orientation\n        self.__light = QColor(Qt.white)\n        self.__dark = QColor(Qt.black)\n        self.setCursor(Qt.PointingHandCursor)\n\n    def setOrientation(self, orientation):\n        self.__orientation = orientation\n        self.update()\n\n    def orientation(self):\n        return self.__orientation\n\n    def setRange(self, light, dark):\n        self.__light = light\n        self.__dark = dark\n        self.update()\n\n    def setLight(self, color):\n        self.__light = color\n        self.update()\n\n    def setDark(self, color):\n        self.__dark = color\n        self.update()\n\n    def light(self):\n        return self.__light\n\n    def dark(self):\n        return self.__dark\n\n    def mousePressEvent(self, event):\n        if event.button() == Qt.LeftButton:\n            pm = self.grab()\n            color = QColor()\n            color.setRgb(pm.toImage().pixel(event.x(), event.y()))\n            self.colorSelected.emit(color)\n            event.accept()\n\n    def paintEvent(self, _):\n        painter = QPainter(self)\n        self.drawColorBar(painter, self.rect())\n\n    def drawColorBar(self, painter, rect):\n        h1, s1, v1, _ = self.__light.getHsv()\n        h2, s2, v2, _ = self.__dark.getHsv()\n        painter.save()\n        painter.setClipRect(rect)\n        painter.setClipping(True)\n        painter.fillRect(rect, QBrush(self.__dark))\n        sectionSize = 2\n        if self.__orientation == Qt.Horizontal:\n            numIntervals = rect.width() / sectionSize\n        else:\n            numIntervals = rect.height() / sectionSize\n        section = QRect()\n        for i in range(int(numIntervals)):\n            if self.__orientation == Qt.Horizontal:\n                section.setRect(\n                    rect.x() + i * sectionSize, rect.y(), sectionSize, rect.heigh()\n                )\n            else:\n                section.setRect(\n                    rect.x(), rect.y() + i * sectionSize, rect.width(), sectionSize\n                )\n            ratio = float(i) / float(numIntervals)\n            color = QColor()\n            color.setHsv(\n                h1 + int(ratio * (h2 - h1) + 0.5),\n                s1 + int(ratio * (s2 - s1) + 0.5),\n                v1 + int(ratio * (v2 - v1) + 0.5),\n            )\n            painter.fillRect(section, color)\n        painter.restore()\n\n\nclass Plot(QwtPlot):\n    def __init__(self, *args):\n        QwtPlot.__init__(self, *args)\n\n        self.setTitle("Interactive Plot")\n\n        self.setCanvasColor(Qt.darkCyan)\n\n        grid = QwtPlotGrid()\n        grid.attach(self)\n        grid.setMajorPen(QPen(Qt.white, 0, Qt.DotLine))\n\n        self.setAxisScale(QwtPlot.xBottom, 0.0, 100.0)\n        self.setAxisScale(QwtPlot.yLeft, 0.0, 100.0)\n\n        # Avoid jumping when label with 3 digits\n        # appear/disappear when scrolling vertically\n        scaleDraw = self.axisScaleDraw(QwtPlot.yLeft)\n        scaleDraw.setMinimumExtent(\n            scaleDraw.extent(self.axisWidget(QwtPlot.yLeft).font())\n        )\n\n        self.plotLayout().setAlignCanvasToScales(True)\n\n        self.__insertCurve(Qt.Vertical, Qt.blue, 30.0)\n        self.__insertCurve(Qt.Vertical, Qt.magenta, 70.0)\n        self.__insertCurve(Qt.Horizontal, Qt.yellow, 30.0)\n        self.__insertCurve(Qt.Horizontal, Qt.white, 70.0)\n\n        self.replot()\n\n        scaleWidget = self.axisWidget(QwtPlot.yLeft)\n        scaleWidget.setMargin(10)\n\n        self.__colorBar = ColorBar(Qt.Vertical, scaleWidget)\n        self.__colorBar.setRange(QColor(Qt.red), QColor(Qt.darkBlue))\n        self.__colorBar.setFocusPolicy(Qt.TabFocus)\n        self.__colorBar.colorSelected.connect(self.setCanvasColor)\n\n        # we need the resize events, to lay out the color bar\n        scaleWidget.installEventFilter(self)\n\n        # we need the resize events, to lay out the wheel\n        self.canvas().installEventFilter(self)\n\n        scaleWidget.setWhatsThis(\n            "Selecting a value at the scale will insert a new curve."\n        )\n        self.__colorBar.setWhatsThis(\n            "Selecting a color will change the background of the plot."\n        )\n        self.axisWidget(QwtPlot.xBottom).setWhatsThis(\n            "Selecting a value at the scale will insert a new curve."\n        )\n\n    def setCanvasColor(self, color):\n        self.setCanvasBackground(color)\n        self.replot()\n\n    def scrollLeftAxis(self, value):\n        self.setAxisScale(QwtPlot.yLeft, value, value + 100)\n        self.replot()\n\n    def eventFilter(self, obj, event):\n        if event.type() == QEvent.Resize:\n            size = event.size()\n            if obj == self.axisWidget(QwtPlot.yLeft):\n                margin = 2\n                x = size.width() - obj.margin() + margin\n                w = obj.margin() - 2 * margin\n                y = int(obj.startBorderDist())\n                h = int(size.height() - obj.startBorderDist() - obj.endBorderDist())\n                self.__colorBar.setGeometry(x, y, w, h)\n        return QwtPlot.eventFilter(self, obj, event)\n\n    def insertCurve(self, axis, base):\n        if axis == QwtPlot.yLeft or axis == QwtPlot.yRight:\n            o = Qt.Horizontal\n        else:\n            o = Qt.Vertical\n        self.__insertCurve(o, QColor(Qt.red), base)\n        self.replot()\n\n    def __insertCurve(self, orientation, color, base):\n        curve = QwtPlotCurve()\n        curve.attach(self)\n        curve.setPen(QPen(color))\n        curve.setSymbol(\n            QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.gray), QPen(color), QSize(8, 8))\n        )\n        fixed = base * np.ones(10, float)\n        changing = np.arange(0, 95.0, 10.0, float) + 5.0\n        if orientation == Qt.Horizontal:\n            curve.setData(changing, fixed)\n        else:\n            curve.setData(fixed, changing)\n\n\nclass CanvasPicker(QObject):\n    def __init__(self, plot):\n        QObject.__init__(self, plot)\n        self.__selectedCurve = None\n        self.__selectedPoint = -1\n        self.__plot = plot\n        canvas = plot.canvas()\n        canvas.installEventFilter(self)\n        # We want the focus, but no focus rect.\n        # The selected point will be highlighted instead.\n        canvas.setFocusPolicy(Qt.StrongFocus)\n        canvas.setCursor(Qt.PointingHandCursor)\n        canvas.setFocusIndicator(QwtPlotCanvas.ItemFocusIndicator)\n        canvas.setFocus()\n        canvas.setWhatsThis(\n            "All points can be moved using the left mouse button "\n            "or with these keys:\\n\\n"\n            "- Up: Select next curve\\n"\n            "- Down: Select previous curve\\n"\n            '- Left, "-": Select next point\\n'\n            '- Right, "+": Select previous point\\n'\n            "- 7, 8, 9, 4, 6, 1, 2, 3: Move selected point"\n        )\n        self.__shiftCurveCursor(True)\n\n    def event(self, event):\n        if event.type() == QEvent.User:\n            self.__showCursor(True)\n            return True\n        return QObject.event(self, event)\n\n    def eventFilter(self, object, event):\n        if event.type() == QEvent.FocusIn:\n            self.__showCursor(True)\n        if event.type() == QEvent.FocusOut:\n            self.__showCursor(False)\n        if event.type() == QEvent.Paint:\n            QApplication.postEvent(self, QEvent(QEvent.User))\n        elif event.type() == QEvent.MouseButtonPress:\n            self.__select(event.position())\n            return True\n        elif event.type() == QEvent.MouseMove:\n            self.__move(event.position())\n            return True\n        if event.type() == QEvent.KeyPress:\n            delta = 5\n            key = event.key()\n            if key == Qt.Key_Up:\n                self.__shiftCurveCursor(True)\n                return True\n            elif key == Qt.Key_Down:\n                self.__shiftCurveCursor(False)\n                return True\n            elif key == Qt.Key_Right or key == Qt.Key_Plus:\n                if self.__selectedCurve:\n                    self.__shiftPointCursor(True)\n                else:\n                    self.__shiftCurveCursor(True)\n                return True\n            elif key == Qt.Key_Left or key == Qt.Key_Minus:\n                if self.__selectedCurve:\n                    self.__shiftPointCursor(False)\n                else:\n                    self.__shiftCurveCursor(True)\n                return True\n            if key == Qt.Key_1:\n                self.__moveBy(-delta, delta)\n            elif key == Qt.Key_2:\n                self.__moveBy(0, delta)\n            elif key == Qt.Key_3:\n                self.__moveBy(delta, delta)\n            elif key == Qt.Key_4:\n                self.__moveBy(-delta, 0)\n            elif key == Qt.Key_6:\n                self.__moveBy(delta, 0)\n            elif key == Qt.Key_7:\n                self.__moveBy(-delta, -delta)\n            elif key == Qt.Key_8:\n                self.__moveBy(0, -delta)\n            elif key == Qt.Key_9:\n                self.__moveBy(delta, -delta)\n        return False\n\n    def __select(self, pos):\n        found, distance, point = None, 1e100, -1\n        for curve in self.__plot.itemList():\n            if isinstance(curve, QwtPlotCurve):\n                i, d = curve.closestPoint(pos)\n                if d < distance:\n                    found = curve\n                    point = i\n                    distance = d\n        self.__showCursor(False)\n        self.__selectedCurve = None\n        self.__selectedPoint = -1\n        if found and distance < 10:\n            self.__selectedCurve = found\n            self.__selectedPoint = point\n            self.__showCursor(True)\n\n    def __moveBy(self, dx, dy):\n        if dx == 0 and dy == 0:\n            return\n        curve = self.__selectedCurve\n        if not curve:\n            return\n        s = curve.sample(self.__selectedPoint)\n        x = self.__plot.transform(curve.xAxis(), s.x()) + dx\n        y = self.__plot.transform(curve.yAxis(), s.y()) + dy\n        self.__move(QPoint(x, y))\n\n    def __move(self, pos):\n        curve = self.__selectedCurve\n        if not curve:\n            return\n        xData = np.zeros(curve.dataSize(), float)\n        yData = np.zeros(curve.dataSize(), float)\n        for i in range(curve.dataSize()):\n            if i == self.__selectedPoint:\n                xData[i] = self.__plot.invTransform(curve.xAxis(), pos.x())\n                yData[i] = self.__plot.invTransform(curve.yAxis(), pos.y())\n            else:\n                s = curve.sample(i)\n                xData[i] = s.x()\n                yData[i] = s.y()\n        curve.setData(xData, yData)\n        self.__showCursor(True)\n        self.__plot.replot()\n\n    def __showCursor(self, showIt):\n        curve = self.__selectedCurve\n        if not curve:\n            return\n        symbol = curve.symbol()\n        brush = symbol.brush()\n        if showIt:\n            symbol.setBrush(symbol.brush().color().darker(180))\n        curve.directPaint(self.__selectedPoint, self.__selectedPoint)\n        if showIt:\n            symbol.setBrush(brush)\n\n    def __shiftCurveCursor(self, up):\n        curves = [\n            curve for curve in self.__plot.itemList() if isinstance(curve, QwtPlotCurve)\n        ]\n        if not curves:\n            return\n        if self.__selectedCurve in curves:\n            index = curves.index(self.__selectedCurve)\n            if up:\n                index += 1\n            else:\n                index -= 1\n            # keep index within [0, len(curves))\n            index += len(curves)\n            index %= len(curves)\n        else:\n            index = 0\n        self.__showCursor(False)\n        self.__selectedPoint = 0\n        self.__selectedCurve = curves[index]\n        self.__showCursor(True)\n\n    def __shiftPointCursor(self, up):\n        curve = self.__selectedCurve\n        if not curve:\n            return\n        if up:\n            index = self.__selectedPoint + 1\n        else:\n            index = self.__selectedPoint - 1\n        # keep index within [0, curve.dataSize())\n        index += curve.dataSize()\n        index %= curve.dataSize()\n        if index != self.__selectedPoint:\n            self.__showCursor(False)\n            self.__selectedPoint = index\n            self.__showCursor(True)\n\n\nclass ScalePicker(QObject):\n    clicked = Signal(int, float)\n\n    def __init__(self, plot):\n        QObject.__init__(self, plot)\n        for axis_id in QwtPlot.AXES:\n            scaleWidget = plot.axisWidget(axis_id)\n            if scaleWidget:\n                scaleWidget.installEventFilter(self)\n\n    def eventFilter(self, object, event):\n        if event.type() == QEvent.MouseButtonPress:\n            self.__mouseClicked(object, event.position())\n            return True\n        return QObject.eventFilter(self, object, event)\n\n    def __mouseClicked(self, scale, pos):\n        rect = self.__scaleRect(scale)\n        margin = 10\n        rect.setRect(\n            rect.x() - margin,\n            rect.y() - margin,\n            rect.width() + 2 * margin,\n            rect.height() + 2 * margin,\n        )\n        if rect.contains(pos):\n            value = 0.0\n            axis = -1\n        sd = scale.scaleDraw()\n        if scale.alignment() == QwtScaleDraw.LeftScale:\n            value = sd.scaleMap().invTransform(pos.y())\n            axis = QwtPlot.yLeft\n        elif scale.alignment() == QwtScaleDraw.RightScale:\n            value = sd.scaleMap().invTransform(pos.y())\n            axis = QwtPlot.yRight\n        elif scale.alignment() == QwtScaleDraw.BottomScale:\n            value = sd.scaleMap().invTransform(pos.x())\n            axis = QwtPlot.xBottom\n        elif scale.alignment() == QwtScaleDraw.TopScale:\n            value = sd.scaleMap().invTransform(pos.x())\n            axis = QwtPlot.xBottom\n        self.clicked.emit(axis, value)\n\n    def __scaleRect(self, scale):\n        bld = scale.margin()\n        mjt = scale.scaleDraw().tickLength(QwtScaleDiv.MajorTick)\n        sbd = scale.startBorderDist()\n        ebd = scale.endBorderDist()\n        if scale.alignment() == QwtScaleDraw.LeftScale:\n            return QRect(\n                scale.width() - bld - mjt, sbd, mjt, scale.height() - sbd - ebd\n            )\n        elif scale.alignment() == QwtScaleDraw.RightScale:\n            return QRect(bld, sbd, mjt, scale.height() - sbd - ebd)\n        elif scale.alignment() == QwtScaleDraw.BottomScale:\n            return QRect(sbd, bld, scale.width() - sbd - ebd, mjt)\n        elif scale.alignment() == QwtScaleDraw.TopScale:\n            return QRect(\n                sbd, scale.height() - bld - mjt, scale.width() - sbd - ebd, mjt\n            )\n        else:\n            return QRect()\n\n\nclass EventFilterWindow(QMainWindow):\n    def __init__(self, parent=None):\n        super(EventFilterWindow, self).__init__(parent=parent)\n        toolBar = QToolBar(self)\n        toolBar.addAction(QWhatsThis.createAction(toolBar))\n        self.addToolBar(toolBar)\n        plot = Plot()\n        self.setCentralWidget(plot)\n        plot.setWhatsThis(\n            "An useless plot to demonstrate how to use event filtering.\\n\\n"\n            "You can click on the color bar, the scales or move the slider.\\n"\n            "All points can be moved using the mouse or the keyboard."\n        )\n        CanvasPicker(plot)\n        scalePicker = ScalePicker(plot)\n        scalePicker.clicked.connect(plot.insertCurve)\n\n\ndef test_eventfilter():\n    """Event filter example"""\n    utils.test_widget(EventFilterWindow, size=(540, 400))\n\n\nif __name__ == "__main__":\n    test_eventfilter()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/eventfilter.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b20680>, 'js_tag': .js_tag at 0x7fc7d6b21080>}, >) +[app] emitting event: 'html-page-context'('examples/eventfilter', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/image', 'Image plot demo', 'N', 'next'), ('examples/errorbar', 'Error bar demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/eventfilter', 'current_page_name': 'examples/eventfilter', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f693a0>, 'hasdoc': .hasdoc at 0x7f3d39f69120>, 'toctree': . at 0x7f3d39f68fe0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'errorbar.html', 'title': 'Error bar demo'}, 'next': {'link': 'image.html', 'title': 'Image plot demo'}, 'title': 'Event filter demo', 'meta': None, 'body': '
\n

Event filter demo

\n../_images/eventfilter.png\n
\nimport os\n\nimport numpy as np\nfrom qtpy.QtCore import QEvent, QObject, QPoint, QRect, QSize, Qt, Signal\nfrom qtpy.QtGui import QBrush, QColor, QPainter, QPen\nfrom qtpy.QtWidgets import QApplication, QMainWindow, QToolBar, QWhatsThis, QWidget\n\nfrom qwt import (\n    QwtPlot,\n    QwtPlotCanvas,\n    QwtPlotCurve,\n    QwtPlotGrid,\n    QwtScaleDiv,\n    QwtScaleDraw,\n    QwtSymbol,\n)\nfrom qwt.tests import utils\n\nQT_API = os.environ["QT_API"]\n\n\nclass ColorBar(QWidget):\n    colorSelected = Signal(QColor)\n\n    def __init__(self, orientation, *args):\n        QWidget.__init__(self, *args)\n        self.__orientation = orientation\n        self.__light = QColor(Qt.white)\n        self.__dark = QColor(Qt.black)\n        self.setCursor(Qt.PointingHandCursor)\n\n    def setOrientation(self, orientation):\n        self.__orientation = orientation\n        self.update()\n\n    def orientation(self):\n        return self.__orientation\n\n    def setRange(self, light, dark):\n        self.__light = light\n        self.__dark = dark\n        self.update()\n\n    def setLight(self, color):\n        self.__light = color\n        self.update()\n\n    def setDark(self, color):\n        self.__dark = color\n        self.update()\n\n    def light(self):\n        return self.__light\n\n    def dark(self):\n        return self.__dark\n\n    def mousePressEvent(self, event):\n        if event.button() == Qt.LeftButton:\n            pm = self.grab()\n            color = QColor()\n            color.setRgb(pm.toImage().pixel(event.x(), event.y()))\n            self.colorSelected.emit(color)\n            event.accept()\n\n    def paintEvent(self, _):\n        painter = QPainter(self)\n        self.drawColorBar(painter, self.rect())\n\n    def drawColorBar(self, painter, rect):\n        h1, s1, v1, _ = self.__light.getHsv()\n        h2, s2, v2, _ = self.__dark.getHsv()\n        painter.save()\n        painter.setClipRect(rect)\n        painter.setClipping(True)\n        painter.fillRect(rect, QBrush(self.__dark))\n        sectionSize = 2\n        if self.__orientation == Qt.Horizontal:\n            numIntervals = rect.width() / sectionSize\n        else:\n            numIntervals = rect.height() / sectionSize\n        section = QRect()\n        for i in range(int(numIntervals)):\n            if self.__orientation == Qt.Horizontal:\n                section.setRect(\n                    rect.x() + i * sectionSize, rect.y(), sectionSize, rect.heigh()\n                )\n            else:\n                section.setRect(\n                    rect.x(), rect.y() + i * sectionSize, rect.width(), sectionSize\n                )\n            ratio = float(i) / float(numIntervals)\n            color = QColor()\n            color.setHsv(\n                h1 + int(ratio * (h2 - h1) + 0.5),\n                s1 + int(ratio * (s2 - s1) + 0.5),\n                v1 + int(ratio * (v2 - v1) + 0.5),\n            )\n            painter.fillRect(section, color)\n        painter.restore()\n\n\nclass Plot(QwtPlot):\n    def __init__(self, *args):\n        QwtPlot.__init__(self, *args)\n\n        self.setTitle("Interactive Plot")\n\n        self.setCanvasColor(Qt.darkCyan)\n\n        grid = QwtPlotGrid()\n        grid.attach(self)\n        grid.setMajorPen(QPen(Qt.white, 0, Qt.DotLine))\n\n        self.setAxisScale(QwtPlot.xBottom, 0.0, 100.0)\n        self.setAxisScale(QwtPlot.yLeft, 0.0, 100.0)\n\n        # Avoid jumping when label with 3 digits\n        # appear/disappear when scrolling vertically\n        scaleDraw = self.axisScaleDraw(QwtPlot.yLeft)\n        scaleDraw.setMinimumExtent(\n            scaleDraw.extent(self.axisWidget(QwtPlot.yLeft).font())\n        )\n\n        self.plotLayout().setAlignCanvasToScales(True)\n\n        self.__insertCurve(Qt.Vertical, Qt.blue, 30.0)\n        self.__insertCurve(Qt.Vertical, Qt.magenta, 70.0)\n        self.__insertCurve(Qt.Horizontal, Qt.yellow, 30.0)\n        self.__insertCurve(Qt.Horizontal, Qt.white, 70.0)\n\n        self.replot()\n\n        scaleWidget = self.axisWidget(QwtPlot.yLeft)\n        scaleWidget.setMargin(10)\n\n        self.__colorBar = ColorBar(Qt.Vertical, scaleWidget)\n        self.__colorBar.setRange(QColor(Qt.red), QColor(Qt.darkBlue))\n        self.__colorBar.setFocusPolicy(Qt.TabFocus)\n        self.__colorBar.colorSelected.connect(self.setCanvasColor)\n\n        # we need the resize events, to lay out the color bar\n        scaleWidget.installEventFilter(self)\n\n        # we need the resize events, to lay out the wheel\n        self.canvas().installEventFilter(self)\n\n        scaleWidget.setWhatsThis(\n            "Selecting a value at the scale will insert a new curve."\n        )\n        self.__colorBar.setWhatsThis(\n            "Selecting a color will change the background of the plot."\n        )\n        self.axisWidget(QwtPlot.xBottom).setWhatsThis(\n            "Selecting a value at the scale will insert a new curve."\n        )\n\n    def setCanvasColor(self, color):\n        self.setCanvasBackground(color)\n        self.replot()\n\n    def scrollLeftAxis(self, value):\n        self.setAxisScale(QwtPlot.yLeft, value, value + 100)\n        self.replot()\n\n    def eventFilter(self, obj, event):\n        if event.type() == QEvent.Resize:\n            size = event.size()\n            if obj == self.axisWidget(QwtPlot.yLeft):\n                margin = 2\n                x = size.width() - obj.margin() + margin\n                w = obj.margin() - 2 * margin\n                y = int(obj.startBorderDist())\n                h = int(size.height() - obj.startBorderDist() - obj.endBorderDist())\n                self.__colorBar.setGeometry(x, y, w, h)\n        return QwtPlot.eventFilter(self, obj, event)\n\n    def insertCurve(self, axis, base):\n        if axis == QwtPlot.yLeft or axis == QwtPlot.yRight:\n            o = Qt.Horizontal\n        else:\n            o = Qt.Vertical\n        self.__insertCurve(o, QColor(Qt.red), base)\n        self.replot()\n\n    def __insertCurve(self, orientation, color, base):\n        curve = QwtPlotCurve()\n        curve.attach(self)\n        curve.setPen(QPen(color))\n        curve.setSymbol(\n            QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.gray), QPen(color), QSize(8, 8))\n        )\n        fixed = base * np.ones(10, float)\n        changing = np.arange(0, 95.0, 10.0, float) + 5.0\n        if orientation == Qt.Horizontal:\n            curve.setData(changing, fixed)\n        else:\n            curve.setData(fixed, changing)\n\n\nclass CanvasPicker(QObject):\n    def __init__(self, plot):\n        QObject.__init__(self, plot)\n        self.__selectedCurve = None\n        self.__selectedPoint = -1\n        self.__plot = plot\n        canvas = plot.canvas()\n        canvas.installEventFilter(self)\n        # We want the focus, but no focus rect.\n        # The selected point will be highlighted instead.\n        canvas.setFocusPolicy(Qt.StrongFocus)\n        canvas.setCursor(Qt.PointingHandCursor)\n        canvas.setFocusIndicator(QwtPlotCanvas.ItemFocusIndicator)\n        canvas.setFocus()\n        canvas.setWhatsThis(\n            "All points can be moved using the left mouse button "\n            "or with these keys:\\n\\n"\n            "- Up: Select next curve\\n"\n            "- Down: Select previous curve\\n"\n            '- Left, "-": Select next point\\n'\n            '- Right, "+": Select previous point\\n'\n            "- 7, 8, 9, 4, 6, 1, 2, 3: Move selected point"\n        )\n        self.__shiftCurveCursor(True)\n\n    def event(self, event):\n        if event.type() == QEvent.User:\n            self.__showCursor(True)\n            return True\n        return QObject.event(self, event)\n\n    def eventFilter(self, object, event):\n        if event.type() == QEvent.FocusIn:\n            self.__showCursor(True)\n        if event.type() == QEvent.FocusOut:\n            self.__showCursor(False)\n        if event.type() == QEvent.Paint:\n            QApplication.postEvent(self, QEvent(QEvent.User))\n        elif event.type() == QEvent.MouseButtonPress:\n            self.__select(event.position())\n            return True\n        elif event.type() == QEvent.MouseMove:\n            self.__move(event.position())\n            return True\n        if event.type() == QEvent.KeyPress:\n            delta = 5\n            key = event.key()\n            if key == Qt.Key_Up:\n                self.__shiftCurveCursor(True)\n                return True\n            elif key == Qt.Key_Down:\n                self.__shiftCurveCursor(False)\n                return True\n            elif key == Qt.Key_Right or key == Qt.Key_Plus:\n                if self.__selectedCurve:\n                    self.__shiftPointCursor(True)\n                else:\n                    self.__shiftCurveCursor(True)\n                return True\n            elif key == Qt.Key_Left or key == Qt.Key_Minus:\n                if self.__selectedCurve:\n                    self.__shiftPointCursor(False)\n                else:\n                    self.__shiftCurveCursor(True)\n                return True\n            if key == Qt.Key_1:\n                self.__moveBy(-delta, delta)\n            elif key == Qt.Key_2:\n                self.__moveBy(0, delta)\n            elif key == Qt.Key_3:\n                self.__moveBy(delta, delta)\n            elif key == Qt.Key_4:\n                self.__moveBy(-delta, 0)\n            elif key == Qt.Key_6:\n                self.__moveBy(delta, 0)\n            elif key == Qt.Key_7:\n                self.__moveBy(-delta, -delta)\n            elif key == Qt.Key_8:\n                self.__moveBy(0, -delta)\n            elif key == Qt.Key_9:\n                self.__moveBy(delta, -delta)\n        return False\n\n    def __select(self, pos):\n        found, distance, point = None, 1e100, -1\n        for curve in self.__plot.itemList():\n            if isinstance(curve, QwtPlotCurve):\n                i, d = curve.closestPoint(pos)\n                if d < distance:\n                    found = curve\n                    point = i\n                    distance = d\n        self.__showCursor(False)\n        self.__selectedCurve = None\n        self.__selectedPoint = -1\n        if found and distance < 10:\n            self.__selectedCurve = found\n            self.__selectedPoint = point\n            self.__showCursor(True)\n\n    def __moveBy(self, dx, dy):\n        if dx == 0 and dy == 0:\n            return\n        curve = self.__selectedCurve\n        if not curve:\n            return\n        s = curve.sample(self.__selectedPoint)\n        x = self.__plot.transform(curve.xAxis(), s.x()) + dx\n        y = self.__plot.transform(curve.yAxis(), s.y()) + dy\n        self.__move(QPoint(x, y))\n\n    def __move(self, pos):\n        curve = self.__selectedCurve\n        if not curve:\n            return\n        xData = np.zeros(curve.dataSize(), float)\n        yData = np.zeros(curve.dataSize(), float)\n        for i in range(curve.dataSize()):\n            if i == self.__selectedPoint:\n                xData[i] = self.__plot.invTransform(curve.xAxis(), pos.x())\n                yData[i] = self.__plot.invTransform(curve.yAxis(), pos.y())\n            else:\n                s = curve.sample(i)\n                xData[i] = s.x()\n                yData[i] = s.y()\n        curve.setData(xData, yData)\n        self.__showCursor(True)\n        self.__plot.replot()\n\n    def __showCursor(self, showIt):\n        curve = self.__selectedCurve\n        if not curve:\n            return\n        symbol = curve.symbol()\n        brush = symbol.brush()\n        if showIt:\n            symbol.setBrush(symbol.brush().color().darker(180))\n        curve.directPaint(self.__selectedPoint, self.__selectedPoint)\n        if showIt:\n            symbol.setBrush(brush)\n\n    def __shiftCurveCursor(self, up):\n        curves = [\n            curve for curve in self.__plot.itemList() if isinstance(curve, QwtPlotCurve)\n        ]\n        if not curves:\n            return\n        if self.__selectedCurve in curves:\n            index = curves.index(self.__selectedCurve)\n            if up:\n                index += 1\n            else:\n                index -= 1\n            # keep index within [0, len(curves))\n            index += len(curves)\n            index %= len(curves)\n        else:\n            index = 0\n        self.__showCursor(False)\n        self.__selectedPoint = 0\n        self.__selectedCurve = curves[index]\n        self.__showCursor(True)\n\n    def __shiftPointCursor(self, up):\n        curve = self.__selectedCurve\n        if not curve:\n            return\n        if up:\n            index = self.__selectedPoint + 1\n        else:\n            index = self.__selectedPoint - 1\n        # keep index within [0, curve.dataSize())\n        index += curve.dataSize()\n        index %= curve.dataSize()\n        if index != self.__selectedPoint:\n            self.__showCursor(False)\n            self.__selectedPoint = index\n            self.__showCursor(True)\n\n\nclass ScalePicker(QObject):\n    clicked = Signal(int, float)\n\n    def __init__(self, plot):\n        QObject.__init__(self, plot)\n        for axis_id in QwtPlot.AXES:\n            scaleWidget = plot.axisWidget(axis_id)\n            if scaleWidget:\n                scaleWidget.installEventFilter(self)\n\n    def eventFilter(self, object, event):\n        if event.type() == QEvent.MouseButtonPress:\n            self.__mouseClicked(object, event.position())\n            return True\n        return QObject.eventFilter(self, object, event)\n\n    def __mouseClicked(self, scale, pos):\n        rect = self.__scaleRect(scale)\n        margin = 10\n        rect.setRect(\n            rect.x() - margin,\n            rect.y() - margin,\n            rect.width() + 2 * margin,\n            rect.height() + 2 * margin,\n        )\n        if rect.contains(pos):\n            value = 0.0\n            axis = -1\n        sd = scale.scaleDraw()\n        if scale.alignment() == QwtScaleDraw.LeftScale:\n            value = sd.scaleMap().invTransform(pos.y())\n            axis = QwtPlot.yLeft\n        elif scale.alignment() == QwtScaleDraw.RightScale:\n            value = sd.scaleMap().invTransform(pos.y())\n            axis = QwtPlot.yRight\n        elif scale.alignment() == QwtScaleDraw.BottomScale:\n            value = sd.scaleMap().invTransform(pos.x())\n            axis = QwtPlot.xBottom\n        elif scale.alignment() == QwtScaleDraw.TopScale:\n            value = sd.scaleMap().invTransform(pos.x())\n            axis = QwtPlot.xBottom\n        self.clicked.emit(axis, value)\n\n    def __scaleRect(self, scale):\n        bld = scale.margin()\n        mjt = scale.scaleDraw().tickLength(QwtScaleDiv.MajorTick)\n        sbd = scale.startBorderDist()\n        ebd = scale.endBorderDist()\n        if scale.alignment() == QwtScaleDraw.LeftScale:\n            return QRect(\n                scale.width() - bld - mjt, sbd, mjt, scale.height() - sbd - ebd\n            )\n        elif scale.alignment() == QwtScaleDraw.RightScale:\n            return QRect(bld, sbd, mjt, scale.height() - sbd - ebd)\n        elif scale.alignment() == QwtScaleDraw.BottomScale:\n            return QRect(sbd, bld, scale.width() - sbd - ebd, mjt)\n        elif scale.alignment() == QwtScaleDraw.TopScale:\n            return QRect(\n                sbd, scale.height() - bld - mjt, scale.width() - sbd - ebd, mjt\n            )\n        else:\n            return QRect()\n\n\nclass EventFilterWindow(QMainWindow):\n    def __init__(self, parent=None):\n        super(EventFilterWindow, self).__init__(parent=parent)\n        toolBar = QToolBar(self)\n        toolBar.addAction(QWhatsThis.createAction(toolBar))\n        self.addToolBar(toolBar)\n        plot = Plot()\n        self.setCentralWidget(plot)\n        plot.setWhatsThis(\n            "An useless plot to demonstrate how to use event filtering.\\n\\n"\n            "You can click on the color bar, the scales or move the slider.\\n"\n            "All points can be moved using the mouse or the keyboard."\n        )\n        CanvasPicker(plot)\n        scalePicker = ScalePicker(plot)\n        scalePicker.clicked.connect(plot.insertCurve)\n\n\ndef test_eventfilter():\n    """Event filter example"""\n    utils.test_widget(EventFilterWindow, size=(540, 400))\n\n\nif __name__ == "__main__":\n    test_eventfilter()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/eventfilter.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f68680>, 'js_tag': .js_tag at 0x7f3d39f69080>}, >) writing output... [ 34%] examples/image [app] emitting event: 'doctree-resolved'(>, 'examples/image') -[app] emitting event: 'html-page-context'('examples/image', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/logcurve', 'Log curve plot demo', 'N', 'next'), ('examples/eventfilter', 'Event filter demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/image', 'current_page_name': 'examples/image', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b23920>, 'hasdoc': .hasdoc at 0x7fc7d6b23a60>, 'toctree': . at 0x7fc7d6b23b00>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'eventfilter.html', 'title': 'Event filter demo'}, 'next': {'link': 'logcurve.html', 'title': 'Log curve plot demo'}, 'title': 'Image plot demo', 'meta': None, 'body': '
\n

Image plot demo

\n../_images/image.png\n
\nimport numpy as np\nfrom qtpy.QtCore import Qt\nfrom qtpy.QtGui import QPen, qRgb\n\nfrom qwt import (\n    QwtInterval,\n    QwtLegend,\n    QwtLegendData,\n    QwtLinearColorMap,\n    QwtPlot,\n    QwtPlotCurve,\n    QwtPlotGrid,\n    QwtPlotItem,\n    QwtPlotMarker,\n    QwtScaleMap,\n    toQImage,\n)\nfrom qwt.tests import utils\n\n\ndef bytescale(data, cmin=None, cmax=None, high=255, low=0):\n    if (hasattr(data, "dtype") and data.dtype.char == np.uint8) or (\n        hasattr(data, "typecode") and data.typecode == np.uint8\n    ):\n        return data\n    high = high - low\n    if cmin is None:\n        cmin = min(np.ravel(data))\n    if cmax is None:\n        cmax = max(np.ravel(data))\n    scale = high * 1.0 / (cmax - cmin or 1)\n    bytedata = ((data * 1.0 - cmin) * scale + 0.4999).astype(np.uint8)\n    return bytedata + np.asarray(low).astype(np.uint8)\n\n\ndef linearX(nx, ny):\n    return np.repeat(np.arange(nx, typecode=np.float32)[:, np.newaxis], ny, -1)\n\n\ndef linearY(nx, ny):\n    return np.repeat(np.arange(ny, typecode=np.float32)[np.newaxis, :], nx, 0)\n\n\ndef square(n, min, max):\n    t = np.arange(min, max, float(max - min) / (n - 1))\n    # return outer(cos(t), sin(t))\n    return np.cos(t) * np.sin(t)[:, np.newaxis]\n\n\nclass PlotImage(QwtPlotItem):\n    def __init__(self, title=""):\n        QwtPlotItem.__init__(self)\n        self.setTitle(title)\n        self.setItemAttribute(QwtPlotItem.Legend)\n        self.xyzs = None\n\n    def setData(self, xyzs, xRange=None, yRange=None):\n        self.xyzs = xyzs\n        shape = xyzs.shape\n        if not xRange:\n            xRange = (0, shape[0])\n        if not yRange:\n            yRange = (0, shape[1])\n\n        self.xMap = QwtScaleMap(0, xyzs.shape[0], *xRange)\n        self.plot().setAxisScale(QwtPlot.xBottom, *xRange)\n        self.yMap = QwtScaleMap(0, xyzs.shape[1], *yRange)\n        self.plot().setAxisScale(QwtPlot.yLeft, *yRange)\n\n        self.image = toQImage(bytescale(self.xyzs)).mirrored(False, True)\n        for i in range(0, 256):\n            self.image.setColor(i, qRgb(i, 0, 255 - i))\n\n    def updateLegend(self, legend, data):\n        QwtPlotItem.updateLegend(self, legend, data)\n        legend.find(self).setText(self.title())\n\n    def draw(self, painter, xMap, yMap, rect):\n        """Paint image zoomed to xMap, yMap\n\n        Calculate (x1, y1, x2, y2) so that it contains at least 1 pixel,\n        and copy the visible region to scale it to the canvas.\n        """\n        assert isinstance(self.plot(), QwtPlot)\n\n        # calculate y1, y2\n        # the scanline order (index y) is inverted with respect to the y-axis\n        y1 = y2 = self.image.height()\n        y1 *= self.yMap.s2() - yMap.s2()\n        y1 /= self.yMap.s2() - self.yMap.s1()\n        y1 = max(0, int(y1 - 0.5))\n        y2 *= self.yMap.s2() - yMap.s1()\n        y2 /= self.yMap.s2() - self.yMap.s1()\n        y2 = min(self.image.height(), int(y2 + 0.5))\n        # calculate x1, x2 -- the pixel order (index x) is normal\n        x1 = x2 = self.image.width()\n        x1 *= xMap.s1() - self.xMap.s1()\n        x1 /= self.xMap.s2() - self.xMap.s1()\n        x1 = max(0, int(x1 - 0.5))\n        x2 *= xMap.s2() - self.xMap.s1()\n        x2 /= self.xMap.s2() - self.xMap.s1()\n        x2 = min(self.image.width(), int(x2 + 0.5))\n        # copy\n        image = self.image.copy(x1, y1, x2 - x1, y2 - y1)\n        # zoom\n        image = image.scaled(\n            int(xMap.p2() - xMap.p1() + 1), int(yMap.p1() - yMap.p2() + 1)\n        )\n        # draw\n        painter.drawImage(int(xMap.p1()), int(yMap.p2()), image)\n\n\nclass ImagePlot(QwtPlot):\n    def __init__(self, *args):\n        QwtPlot.__init__(self, *args)\n        # set plot title\n        self.setTitle("ImagePlot")\n        # set plot layout\n        self.plotLayout().setCanvasMargin(0)\n        self.plotLayout().setAlignCanvasToScales(True)\n        # set legend\n        legend = QwtLegend()\n        legend.setDefaultItemMode(QwtLegendData.Clickable)\n        self.insertLegend(legend, QwtPlot.RightLegend)\n        # set axis titles\n        self.setAxisTitle(QwtPlot.xBottom, "time (s)")\n        self.setAxisTitle(QwtPlot.yLeft, "frequency (Hz)")\n\n        colorMap = QwtLinearColorMap(Qt.blue, Qt.red)\n        interval = QwtInterval(-1, 1)\n        self.enableAxis(QwtPlot.yRight)\n        self.setAxisScale(QwtPlot.yRight, -1, 1)\n        self.axisWidget(QwtPlot.yRight).setColorBarEnabled(True)\n        self.axisWidget(QwtPlot.yRight).setColorMap(interval, colorMap)\n\n        # calculate 3 NumPy arrays\n        x = np.arange(-2 * np.pi, 2 * np.pi, 0.01)\n        y = np.pi * np.sin(x)\n        z = 4 * np.pi * np.cos(x) * np.cos(x) * np.sin(x)\n        # attach a curve\n        QwtPlotCurve.make(\n            x, y, title="y = pi*sin(x)", linecolor=Qt.green, linewidth=2, plot=self\n        )\n        # attach another curve\n        QwtPlotCurve.make(\n            x, z, title="y = 4*pi*sin(x)*cos(x)**2", linewidth=2, plot=self\n        )\n        # attach a grid\n        grid = QwtPlotGrid()\n        grid.attach(self)\n        grid.setPen(QPen(Qt.black, 0, Qt.DotLine))\n        # attach a horizontal marker at y = 0\n        QwtPlotMarker.make(\n            label="y = 0",\n            linestyle=QwtPlotMarker.HLine,\n            align=Qt.AlignRight | Qt.AlignTop,\n            plot=self,\n        )\n        # attach a vertical marker at x = pi\n        QwtPlotMarker.make(\n            np.pi,\n            0.0,\n            label="x = pi",\n            linestyle=QwtPlotMarker.VLine,\n            align=Qt.AlignRight | Qt.AlignBottom,\n            plot=self,\n        )\n        # attach a plot image\n        plotImage = PlotImage("Image")\n        plotImage.attach(self)\n        plotImage.setData(\n            square(512, -2 * np.pi, 2 * np.pi),\n            (-2 * np.pi, 2 * np.pi),\n            (-2 * np.pi, 2 * np.pi),\n        )\n\n        legend.clicked.connect(self.toggleVisibility)\n\n        # replot\n        self.replot()\n\n    def toggleVisibility(self, plotItem, idx):\n        """Toggle the visibility of a plot item"""\n        plotItem.setVisible(not plotItem.isVisible())\n        self.replot()\n\n\ndef test_image():\n    """Image plot test"""\n    utils.test_widget(ImagePlot, size=(600, 400))\n\n\nif __name__ == "__main__":\n    test_image()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/image.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b23ba0>, 'js_tag': .js_tag at 0x7fc7d6b23c40>}, >) +[app] emitting event: 'html-page-context'('examples/image', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/logcurve', 'Log curve plot demo', 'N', 'next'), ('examples/eventfilter', 'Event filter demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/image', 'current_page_name': 'examples/image', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f6b920>, 'hasdoc': .hasdoc at 0x7f3d39f6ba60>, 'toctree': . at 0x7f3d39f6bb00>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'eventfilter.html', 'title': 'Event filter demo'}, 'next': {'link': 'logcurve.html', 'title': 'Log curve plot demo'}, 'title': 'Image plot demo', 'meta': None, 'body': '
\n

Image plot demo

\n../_images/image.png\n
\nimport numpy as np\nfrom qtpy.QtCore import Qt\nfrom qtpy.QtGui import QPen, qRgb\n\nfrom qwt import (\n    QwtInterval,\n    QwtLegend,\n    QwtLegendData,\n    QwtLinearColorMap,\n    QwtPlot,\n    QwtPlotCurve,\n    QwtPlotGrid,\n    QwtPlotItem,\n    QwtPlotMarker,\n    QwtScaleMap,\n    toQImage,\n)\nfrom qwt.tests import utils\n\n\ndef bytescale(data, cmin=None, cmax=None, high=255, low=0):\n    if (hasattr(data, "dtype") and data.dtype.char == np.uint8) or (\n        hasattr(data, "typecode") and data.typecode == np.uint8\n    ):\n        return data\n    high = high - low\n    if cmin is None:\n        cmin = min(np.ravel(data))\n    if cmax is None:\n        cmax = max(np.ravel(data))\n    scale = high * 1.0 / (cmax - cmin or 1)\n    bytedata = ((data * 1.0 - cmin) * scale + 0.4999).astype(np.uint8)\n    return bytedata + np.asarray(low).astype(np.uint8)\n\n\ndef linearX(nx, ny):\n    return np.repeat(np.arange(nx, typecode=np.float32)[:, np.newaxis], ny, -1)\n\n\ndef linearY(nx, ny):\n    return np.repeat(np.arange(ny, typecode=np.float32)[np.newaxis, :], nx, 0)\n\n\ndef square(n, min, max):\n    t = np.arange(min, max, float(max - min) / (n - 1))\n    # return outer(cos(t), sin(t))\n    return np.cos(t) * np.sin(t)[:, np.newaxis]\n\n\nclass PlotImage(QwtPlotItem):\n    def __init__(self, title=""):\n        QwtPlotItem.__init__(self)\n        self.setTitle(title)\n        self.setItemAttribute(QwtPlotItem.Legend)\n        self.xyzs = None\n\n    def setData(self, xyzs, xRange=None, yRange=None):\n        self.xyzs = xyzs\n        shape = xyzs.shape\n        if not xRange:\n            xRange = (0, shape[0])\n        if not yRange:\n            yRange = (0, shape[1])\n\n        self.xMap = QwtScaleMap(0, xyzs.shape[0], *xRange)\n        self.plot().setAxisScale(QwtPlot.xBottom, *xRange)\n        self.yMap = QwtScaleMap(0, xyzs.shape[1], *yRange)\n        self.plot().setAxisScale(QwtPlot.yLeft, *yRange)\n\n        self.image = toQImage(bytescale(self.xyzs)).mirrored(False, True)\n        for i in range(0, 256):\n            self.image.setColor(i, qRgb(i, 0, 255 - i))\n\n    def updateLegend(self, legend, data):\n        QwtPlotItem.updateLegend(self, legend, data)\n        legend.find(self).setText(self.title())\n\n    def draw(self, painter, xMap, yMap, rect):\n        """Paint image zoomed to xMap, yMap\n\n        Calculate (x1, y1, x2, y2) so that it contains at least 1 pixel,\n        and copy the visible region to scale it to the canvas.\n        """\n        assert isinstance(self.plot(), QwtPlot)\n\n        # calculate y1, y2\n        # the scanline order (index y) is inverted with respect to the y-axis\n        y1 = y2 = self.image.height()\n        y1 *= self.yMap.s2() - yMap.s2()\n        y1 /= self.yMap.s2() - self.yMap.s1()\n        y1 = max(0, int(y1 - 0.5))\n        y2 *= self.yMap.s2() - yMap.s1()\n        y2 /= self.yMap.s2() - self.yMap.s1()\n        y2 = min(self.image.height(), int(y2 + 0.5))\n        # calculate x1, x2 -- the pixel order (index x) is normal\n        x1 = x2 = self.image.width()\n        x1 *= xMap.s1() - self.xMap.s1()\n        x1 /= self.xMap.s2() - self.xMap.s1()\n        x1 = max(0, int(x1 - 0.5))\n        x2 *= xMap.s2() - self.xMap.s1()\n        x2 /= self.xMap.s2() - self.xMap.s1()\n        x2 = min(self.image.width(), int(x2 + 0.5))\n        # copy\n        image = self.image.copy(x1, y1, x2 - x1, y2 - y1)\n        # zoom\n        image = image.scaled(\n            int(xMap.p2() - xMap.p1() + 1), int(yMap.p1() - yMap.p2() + 1)\n        )\n        # draw\n        painter.drawImage(int(xMap.p1()), int(yMap.p2()), image)\n\n\nclass ImagePlot(QwtPlot):\n    def __init__(self, *args):\n        QwtPlot.__init__(self, *args)\n        # set plot title\n        self.setTitle("ImagePlot")\n        # set plot layout\n        self.plotLayout().setCanvasMargin(0)\n        self.plotLayout().setAlignCanvasToScales(True)\n        # set legend\n        legend = QwtLegend()\n        legend.setDefaultItemMode(QwtLegendData.Clickable)\n        self.insertLegend(legend, QwtPlot.RightLegend)\n        # set axis titles\n        self.setAxisTitle(QwtPlot.xBottom, "time (s)")\n        self.setAxisTitle(QwtPlot.yLeft, "frequency (Hz)")\n\n        colorMap = QwtLinearColorMap(Qt.blue, Qt.red)\n        interval = QwtInterval(-1, 1)\n        self.enableAxis(QwtPlot.yRight)\n        self.setAxisScale(QwtPlot.yRight, -1, 1)\n        self.axisWidget(QwtPlot.yRight).setColorBarEnabled(True)\n        self.axisWidget(QwtPlot.yRight).setColorMap(interval, colorMap)\n\n        # calculate 3 NumPy arrays\n        x = np.arange(-2 * np.pi, 2 * np.pi, 0.01)\n        y = np.pi * np.sin(x)\n        z = 4 * np.pi * np.cos(x) * np.cos(x) * np.sin(x)\n        # attach a curve\n        QwtPlotCurve.make(\n            x, y, title="y = pi*sin(x)", linecolor=Qt.green, linewidth=2, plot=self\n        )\n        # attach another curve\n        QwtPlotCurve.make(\n            x, z, title="y = 4*pi*sin(x)*cos(x)**2", linewidth=2, plot=self\n        )\n        # attach a grid\n        grid = QwtPlotGrid()\n        grid.attach(self)\n        grid.setPen(QPen(Qt.black, 0, Qt.DotLine))\n        # attach a horizontal marker at y = 0\n        QwtPlotMarker.make(\n            label="y = 0",\n            linestyle=QwtPlotMarker.HLine,\n            align=Qt.AlignRight | Qt.AlignTop,\n            plot=self,\n        )\n        # attach a vertical marker at x = pi\n        QwtPlotMarker.make(\n            np.pi,\n            0.0,\n            label="x = pi",\n            linestyle=QwtPlotMarker.VLine,\n            align=Qt.AlignRight | Qt.AlignBottom,\n            plot=self,\n        )\n        # attach a plot image\n        plotImage = PlotImage("Image")\n        plotImage.attach(self)\n        plotImage.setData(\n            square(512, -2 * np.pi, 2 * np.pi),\n            (-2 * np.pi, 2 * np.pi),\n            (-2 * np.pi, 2 * np.pi),\n        )\n\n        legend.clicked.connect(self.toggleVisibility)\n\n        # replot\n        self.replot()\n\n    def toggleVisibility(self, plotItem, idx):\n        """Toggle the visibility of a plot item"""\n        plotItem.setVisible(not plotItem.isVisible())\n        self.replot()\n\n\ndef test_image():\n    """Image plot test"""\n    utils.test_widget(ImagePlot, size=(600, 400))\n\n\nif __name__ == "__main__":\n    test_image()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/image.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f6bba0>, 'js_tag': .js_tag at 0x7f3d39f6bc40>}, >) writing output... [ 38%] examples/index [app] emitting event: 'doctree-resolved'(
>, 'examples/index') -[app] emitting event: 'html-page-context'('examples/index', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/bodedemo', 'Bode demo', 'N', 'next'), ('installation', 'Installation', 'P', 'previous')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/index', 'current_page_name': 'examples/index', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6c545e0>, 'hasdoc': .hasdoc at 0x7fc7d6c56480>, 'toctree': . at 0x7fc7d6c57c40>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': '../installation.html', 'title': 'Installation'}, 'next': {'link': 'bodedemo.html', 'title': 'Bode demo'}, 'title': 'Examples', 'meta': None, 'body': '
\n

Examples

\n
\n

The test launcher

\n

A lot of examples are available in the qwt.test module

\n
from qwt import tests\ntests.run()\n
\n
\n

The two lines above execute the PythonQwt test launcher:

\n../_images/testlauncher.png\n

GUI-based test launcher can be executed from the command line thanks to the\nPythonQwt test script.

\n

Unit tests may be executed from the commande line thanks to the console-based script\nPythonQwt-tests: PythonQwt-tests --mode unattended.

\n
\n
\n

Tests

\n

Here are some examples from the qwt.test module:

\n\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/index.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6c540e0>, 'js_tag': .js_tag at 0x7fc7d6c567a0>},
>) +[app] emitting event: 'html-page-context'('examples/index', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/bodedemo', 'Bode demo', 'N', 'next'), ('installation', 'Installation', 'P', 'previous')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/index', 'current_page_name': 'examples/index', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ebc5e0>, 'hasdoc': .hasdoc at 0x7f3d39ebf6a0>, 'toctree': . at 0x7f3d39ebfc40>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': '../installation.html', 'title': 'Installation'}, 'next': {'link': 'bodedemo.html', 'title': 'Bode demo'}, 'title': 'Examples', 'meta': None, 'body': '
\n

Examples

\n
\n

The test launcher

\n

A lot of examples are available in the qwt.test module

\n
from qwt import tests\ntests.run()\n
\n
\n

The two lines above execute the PythonQwt test launcher:

\n../_images/testlauncher.png\n

GUI-based test launcher can be executed from the command line thanks to the\nPythonQwt test script.

\n

Unit tests may be executed from the commande line thanks to the console-based script\nPythonQwt-tests: PythonQwt-tests --mode unattended.

\n
\n
\n

Tests

\n

Here are some examples from the qwt.test module:

\n\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/index.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39ebc0e0>, 'js_tag': .js_tag at 0x7f3d39ebe7a0>},
>) writing output... [ 41%] examples/logcurve [app] emitting event: 'doctree-resolved'(>, 'examples/logcurve') -[app] emitting event: 'html-page-context'('examples/logcurve', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/mapdemo', 'Map demo', 'N', 'next'), ('examples/image', 'Image plot demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/logcurve', 'current_page_name': 'examples/logcurve', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b207c0>, 'hasdoc': .hasdoc at 0x7fc7d6b20220>, 'toctree': . at 0x7fc7d6b20ea0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'image.html', 'title': 'Image plot demo'}, 'next': {'link': 'mapdemo.html', 'title': 'Map demo'}, 'title': 'Log curve plot demo', 'meta': {}, 'body': '
\n

Log curve plot demo

\n../_images/logcurve.png\n
\nimport numpy as np\n\nnp.seterr(all="raise")\n\nfrom qtpy.QtCore import Qt\n\nfrom qwt import QwtLogScaleEngine, QwtPlot, QwtPlotCurve\nfrom qwt.tests import utils\n\n\nclass LogCurvePlot(QwtPlot):\n    def __init__(self):\n        super(LogCurvePlot, self).__init__(\n            "LogCurveDemo.py (or how to handle -inf values)"\n        )\n        self.enableAxis(QwtPlot.xBottom)\n        self.setAxisScaleEngine(QwtPlot.yLeft, QwtLogScaleEngine())\n        x = np.arange(0.0, 10.0, 0.1)\n        y = 10 * np.cos(x) ** 2 - 0.1\n        QwtPlotCurve.make(x, y, linecolor=Qt.magenta, plot=self, antialiased=True)\n        self.replot()\n\n\ndef test_logcurve():\n    """Log curve demo"""\n    utils.test_widget(LogCurvePlot, size=(800, 500))\n\n\nif __name__ == "__main__":\n    test_logcurve()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/logcurve.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b213a0>, 'js_tag': .js_tag at 0x7fc7d6b20d60>}, >) +[app] emitting event: 'html-page-context'('examples/logcurve', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/mapdemo', 'Map demo', 'N', 'next'), ('examples/image', 'Image plot demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/logcurve', 'current_page_name': 'examples/logcurve', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f687c0>, 'hasdoc': .hasdoc at 0x7f3d39f68220>, 'toctree': . at 0x7f3d39f68ea0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'image.html', 'title': 'Image plot demo'}, 'next': {'link': 'mapdemo.html', 'title': 'Map demo'}, 'title': 'Log curve plot demo', 'meta': {}, 'body': '
\n

Log curve plot demo

\n../_images/logcurve.png\n
\nimport numpy as np\n\nnp.seterr(all="raise")\n\nfrom qtpy.QtCore import Qt\n\nfrom qwt import QwtLogScaleEngine, QwtPlot, QwtPlotCurve\nfrom qwt.tests import utils\n\n\nclass LogCurvePlot(QwtPlot):\n    def __init__(self):\n        super(LogCurvePlot, self).__init__(\n            "LogCurveDemo.py (or how to handle -inf values)"\n        )\n        self.enableAxis(QwtPlot.xBottom)\n        self.setAxisScaleEngine(QwtPlot.yLeft, QwtLogScaleEngine())\n        x = np.arange(0.0, 10.0, 0.1)\n        y = 10 * np.cos(x) ** 2 - 0.1\n        QwtPlotCurve.make(x, y, linecolor=Qt.magenta, plot=self, antialiased=True)\n        self.replot()\n\n\ndef test_logcurve():\n    """Log curve demo"""\n    utils.test_widget(LogCurvePlot, size=(800, 500))\n\n\nif __name__ == "__main__":\n    test_logcurve()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/logcurve.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f693a0>, 'js_tag': .js_tag at 0x7f3d39f68d60>}, >) writing output... [ 44%] examples/mapdemo [app] emitting event: 'doctree-resolved'(>, 'examples/mapdemo') -[app] emitting event: 'html-page-context'('examples/mapdemo', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/multidemo', 'Multi demo', 'N', 'next'), ('examples/logcurve', 'Log curve plot demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/mapdemo', 'current_page_name': 'examples/mapdemo', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6c55080>, 'hasdoc': .hasdoc at 0x7fc7d6c54220>, 'toctree': . at 0x7fc7d6c54180>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'logcurve.html', 'title': 'Log curve plot demo'}, 'next': {'link': 'multidemo.html', 'title': 'Multi demo'}, 'title': 'Map demo', 'meta': {}, 'body': '
\n

Map demo

\n../_images/mapdemo.png\n
\nimport random\nimport time\n\nimport numpy as np\nfrom qtpy.QtCore import QSize, Qt\nfrom qtpy.QtGui import QBrush, QPen\nfrom qtpy.QtWidgets import QMainWindow, QToolBar\n\nfrom qwt import QwtPlot, QwtPlotCurve, QwtSymbol\nfrom qwt.tests import utils\n\n\ndef standard_map(x, y, kappa):\n    """provide one interate of the inital conditions (x, y)\n    for the standard map with parameter kappa."""\n    y_new = y - kappa * np.sin(2.0 * np.pi * x)\n    x_new = x + y_new\n    # bring back to [0,1.0]^2\n    if (x_new > 1.0) or (x_new < 0.0):\n        x_new = x_new - np.floor(x_new)\n    if (y_new > 1.0) or (y_new < 0.0):\n        y_new = y_new - np.floor(y_new)\n    return x_new, y_new\n\n\nclass MapDemo(QMainWindow):\n    def __init__(self, *args):\n        QMainWindow.__init__(self, *args)\n        self.plot = QwtPlot(self)\n        self.plot.setTitle("A Simple Map Demonstration")\n        self.plot.setCanvasBackground(Qt.white)\n        self.plot.setAxisTitle(QwtPlot.xBottom, "x")\n        self.plot.setAxisTitle(QwtPlot.yLeft, "y")\n        self.plot.setAxisScale(QwtPlot.xBottom, 0.0, 1.0)\n        self.plot.setAxisScale(QwtPlot.yLeft, 0.0, 1.0)\n        self.setCentralWidget(self.plot)\n        # Initialize map data\n        self.count = self.i = 1000\n        self.xs = np.zeros(self.count, float)\n        self.ys = np.zeros(self.count, float)\n        self.kappa = 0.2\n        self.curve = QwtPlotCurve("Map")\n        self.curve.attach(self.plot)\n        self.curve.setSymbol(\n            QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.red), QPen(Qt.blue), QSize(5, 5))\n        )\n        self.curve.setPen(QPen(Qt.cyan))\n        toolBar = QToolBar(self)\n        self.addToolBar(toolBar)\n        # 1 tick = 1 ms, 10 ticks = 10 ms (Linux clock is 100 Hz)\n        self.ticks = 10\n        self.tid = self.startTimer(self.ticks)\n        self.timer_tic = None\n        self.user_tic = None\n        self.system_tic = None\n        self.plot.replot()\n\n    def setTicks(self, ticks):\n        self.i = self.count\n        self.ticks = int(ticks)\n        self.killTimer(self.tid)\n        self.tid = self.startTimer(ticks)\n\n    def moreData(self):\n        if self.i == self.count:\n            self.i = 0\n            self.x = random.random()\n            self.y = random.random()\n            self.xs[self.i] = self.x\n            self.ys[self.i] = self.y\n            self.i += 1\n            chunks = []\n            self.timer_toc = time.time()\n            if self.timer_tic:\n                chunks.append("wall: %s s." % (self.timer_toc - self.timer_tic))\n                print(" ".join(chunks))\n            self.timer_tic = self.timer_toc\n        else:\n            self.x, self.y = standard_map(self.x, self.y, self.kappa)\n            self.xs[self.i] = self.x\n            self.ys[self.i] = self.y\n            self.i += 1\n\n    def timerEvent(self, e):\n        self.moreData()\n        self.curve.setData(self.xs[: self.i], self.ys[: self.i])\n        self.plot.replot()\n\n\ndef test_mapdemo():\n    """Map demo"""\n    utils.test_widget(MapDemo, size=(600, 600))\n\n\nif __name__ == "__main__":\n    test_mapdemo()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/mapdemo.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6c545e0>, 'js_tag': .js_tag at 0x7fc7d6c567a0>}, >) +[app] emitting event: 'html-page-context'('examples/mapdemo', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/multidemo', 'Multi demo', 'N', 'next'), ('examples/logcurve', 'Log curve plot demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/mapdemo', 'current_page_name': 'examples/mapdemo', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ebe2a0>, 'hasdoc': .hasdoc at 0x7f3d39ebc220>, 'toctree': . at 0x7f3d39ebc180>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'logcurve.html', 'title': 'Log curve plot demo'}, 'next': {'link': 'multidemo.html', 'title': 'Multi demo'}, 'title': 'Map demo', 'meta': {}, 'body': '
\n

Map demo

\n../_images/mapdemo.png\n
\nimport random\nimport time\n\nimport numpy as np\nfrom qtpy.QtCore import QSize, Qt\nfrom qtpy.QtGui import QBrush, QPen\nfrom qtpy.QtWidgets import QMainWindow, QToolBar\n\nfrom qwt import QwtPlot, QwtPlotCurve, QwtSymbol\nfrom qwt.tests import utils\n\n\ndef standard_map(x, y, kappa):\n    """provide one interate of the inital conditions (x, y)\n    for the standard map with parameter kappa."""\n    y_new = y - kappa * np.sin(2.0 * np.pi * x)\n    x_new = x + y_new\n    # bring back to [0,1.0]^2\n    if (x_new > 1.0) or (x_new < 0.0):\n        x_new = x_new - np.floor(x_new)\n    if (y_new > 1.0) or (y_new < 0.0):\n        y_new = y_new - np.floor(y_new)\n    return x_new, y_new\n\n\nclass MapDemo(QMainWindow):\n    def __init__(self, *args):\n        QMainWindow.__init__(self, *args)\n        self.plot = QwtPlot(self)\n        self.plot.setTitle("A Simple Map Demonstration")\n        self.plot.setCanvasBackground(Qt.white)\n        self.plot.setAxisTitle(QwtPlot.xBottom, "x")\n        self.plot.setAxisTitle(QwtPlot.yLeft, "y")\n        self.plot.setAxisScale(QwtPlot.xBottom, 0.0, 1.0)\n        self.plot.setAxisScale(QwtPlot.yLeft, 0.0, 1.0)\n        self.setCentralWidget(self.plot)\n        # Initialize map data\n        self.count = self.i = 1000\n        self.xs = np.zeros(self.count, float)\n        self.ys = np.zeros(self.count, float)\n        self.kappa = 0.2\n        self.curve = QwtPlotCurve("Map")\n        self.curve.attach(self.plot)\n        self.curve.setSymbol(\n            QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.red), QPen(Qt.blue), QSize(5, 5))\n        )\n        self.curve.setPen(QPen(Qt.cyan))\n        toolBar = QToolBar(self)\n        self.addToolBar(toolBar)\n        # 1 tick = 1 ms, 10 ticks = 10 ms (Linux clock is 100 Hz)\n        self.ticks = 10\n        self.tid = self.startTimer(self.ticks)\n        self.timer_tic = None\n        self.user_tic = None\n        self.system_tic = None\n        self.plot.replot()\n\n    def setTicks(self, ticks):\n        self.i = self.count\n        self.ticks = int(ticks)\n        self.killTimer(self.tid)\n        self.tid = self.startTimer(ticks)\n\n    def moreData(self):\n        if self.i == self.count:\n            self.i = 0\n            self.x = random.random()\n            self.y = random.random()\n            self.xs[self.i] = self.x\n            self.ys[self.i] = self.y\n            self.i += 1\n            chunks = []\n            self.timer_toc = time.time()\n            if self.timer_tic:\n                chunks.append("wall: %s s." % (self.timer_toc - self.timer_tic))\n                print(" ".join(chunks))\n            self.timer_tic = self.timer_toc\n        else:\n            self.x, self.y = standard_map(self.x, self.y, self.kappa)\n            self.xs[self.i] = self.x\n            self.ys[self.i] = self.y\n            self.i += 1\n\n    def timerEvent(self, e):\n        self.moreData()\n        self.curve.setData(self.xs[: self.i], self.ys[: self.i])\n        self.plot.replot()\n\n\ndef test_mapdemo():\n    """Map demo"""\n    utils.test_widget(MapDemo, size=(600, 600))\n\n\nif __name__ == "__main__":\n    test_mapdemo()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/mapdemo.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39ebc5e0>, 'js_tag': .js_tag at 0x7f3d39ebe7a0>}, >) writing output... [ 47%] examples/multidemo [app] emitting event: 'doctree-resolved'(>, 'examples/multidemo') -[app] emitting event: 'html-page-context'('examples/multidemo', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/simple', 'Really simple demo', 'N', 'next'), ('examples/mapdemo', 'Map demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/multidemo', 'current_page_name': 'examples/multidemo', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b21440>, 'hasdoc': .hasdoc at 0x7fc7d6b214e0>, 'toctree': . at 0x7fc7d6b21b20>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'mapdemo.html', 'title': 'Map demo'}, 'next': {'link': 'simple.html', 'title': 'Really simple demo'}, 'title': 'Multi demo', 'meta': {}, 'body': '
\n

Multi demo

\n../_images/multidemo.png\n
\nimport numpy as np\nfrom qtpy.QtCore import Qt\nfrom qtpy.QtGui import QPen\nfrom qtpy.QtWidgets import QGridLayout, QWidget\n\nfrom qwt import QwtPlot, QwtPlotCurve\nfrom qwt.tests import utils\n\n\ndef drange(start, stop, step):\n    start, stop, step = float(start), float(stop), float(step)\n    size = int(round((stop - start) / step))\n    result = [start] * size\n    for i in range(size):\n        result[i] += i * step\n    return result\n\n\ndef lorentzian(x):\n    return 1.0 / (1.0 + (x - 5.0) ** 2)\n\n\nclass MultiDemo(QWidget):\n    def __init__(self, *args):\n        QWidget.__init__(self, *args)\n        layout = QGridLayout(self)\n        # try to create a plot for SciPy arrays\n\n        # make a curve and copy the data\n        numpy_curve = QwtPlotCurve("y = lorentzian(x)")\n        x = np.arange(0.0, 10.0, 0.01)\n        y = lorentzian(x)\n        numpy_curve.setData(x, y)\n        # here, we know we can plot NumPy arrays\n        numpy_plot = QwtPlot(self)\n        numpy_plot.setTitle("numpy array")\n        numpy_plot.setCanvasBackground(Qt.white)\n        numpy_plot.plotLayout().setCanvasMargin(0)\n        numpy_plot.plotLayout().setAlignCanvasToScales(True)\n        # insert a curve and make it red\n        numpy_curve.attach(numpy_plot)\n        numpy_curve.setPen(QPen(Qt.red))\n        layout.addWidget(numpy_plot, 0, 0)\n        numpy_plot.replot()\n\n        # create a plot widget for lists of Python floats\n        list_plot = QwtPlot(self)\n        list_plot.setTitle("Python list")\n        list_plot.setCanvasBackground(Qt.white)\n        list_plot.plotLayout().setCanvasMargin(0)\n        list_plot.plotLayout().setAlignCanvasToScales(True)\n        x = drange(0.0, 10.0, 0.01)\n        y = [lorentzian(item) for item in x]\n        # insert a curve, make it red and copy the lists\n        list_curve = QwtPlotCurve("y = lorentzian(x)")\n        list_curve.attach(list_plot)\n        list_curve.setPen(QPen(Qt.red))\n        list_curve.setData(x, y)\n        layout.addWidget(list_plot, 0, 1)\n        list_plot.replot()\n\n\ndef test_multidemo():\n    """Multiple plot demo"""\n    utils.test_widget(MultiDemo, size=(400, 300))\n\n\nif __name__ == "__main__":\n    test_multidemo()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/multidemo.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b20d60>, 'js_tag': .js_tag at 0x7fc7d6b213a0>}, >) +[app] emitting event: 'html-page-context'('examples/multidemo', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/simple', 'Really simple demo', 'N', 'next'), ('examples/mapdemo', 'Map demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/multidemo', 'current_page_name': 'examples/multidemo', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f69440>, 'hasdoc': .hasdoc at 0x7f3d39f694e0>, 'toctree': . at 0x7f3d39f69b20>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'mapdemo.html', 'title': 'Map demo'}, 'next': {'link': 'simple.html', 'title': 'Really simple demo'}, 'title': 'Multi demo', 'meta': {}, 'body': '
\n

Multi demo

\n../_images/multidemo.png\n
\nimport numpy as np\nfrom qtpy.QtCore import Qt\nfrom qtpy.QtGui import QPen\nfrom qtpy.QtWidgets import QGridLayout, QWidget\n\nfrom qwt import QwtPlot, QwtPlotCurve\nfrom qwt.tests import utils\n\n\ndef drange(start, stop, step):\n    start, stop, step = float(start), float(stop), float(step)\n    size = int(round((stop - start) / step))\n    result = [start] * size\n    for i in range(size):\n        result[i] += i * step\n    return result\n\n\ndef lorentzian(x):\n    return 1.0 / (1.0 + (x - 5.0) ** 2)\n\n\nclass MultiDemo(QWidget):\n    def __init__(self, *args):\n        QWidget.__init__(self, *args)\n        layout = QGridLayout(self)\n        # try to create a plot for SciPy arrays\n\n        # make a curve and copy the data\n        numpy_curve = QwtPlotCurve("y = lorentzian(x)")\n        x = np.arange(0.0, 10.0, 0.01)\n        y = lorentzian(x)\n        numpy_curve.setData(x, y)\n        # here, we know we can plot NumPy arrays\n        numpy_plot = QwtPlot(self)\n        numpy_plot.setTitle("numpy array")\n        numpy_plot.setCanvasBackground(Qt.white)\n        numpy_plot.plotLayout().setCanvasMargin(0)\n        numpy_plot.plotLayout().setAlignCanvasToScales(True)\n        # insert a curve and make it red\n        numpy_curve.attach(numpy_plot)\n        numpy_curve.setPen(QPen(Qt.red))\n        layout.addWidget(numpy_plot, 0, 0)\n        numpy_plot.replot()\n\n        # create a plot widget for lists of Python floats\n        list_plot = QwtPlot(self)\n        list_plot.setTitle("Python list")\n        list_plot.setCanvasBackground(Qt.white)\n        list_plot.plotLayout().setCanvasMargin(0)\n        list_plot.plotLayout().setAlignCanvasToScales(True)\n        x = drange(0.0, 10.0, 0.01)\n        y = [lorentzian(item) for item in x]\n        # insert a curve, make it red and copy the lists\n        list_curve = QwtPlotCurve("y = lorentzian(x)")\n        list_curve.attach(list_plot)\n        list_curve.setPen(QPen(Qt.red))\n        list_curve.setData(x, y)\n        layout.addWidget(list_plot, 0, 1)\n        list_plot.replot()\n\n\ndef test_multidemo():\n    """Multiple plot demo"""\n    utils.test_widget(MultiDemo, size=(400, 300))\n\n\nif __name__ == "__main__":\n    test_multidemo()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/multidemo.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f68d60>, 'js_tag': .js_tag at 0x7f3d39f693a0>}, >) writing output... [ 50%] examples/simple [app] emitting event: 'doctree-resolved'(>, 'examples/simple') -[app] emitting event: 'html-page-context'('examples/simple', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/vertical', 'Vertical plot demo', 'N', 'next'), ('examples/multidemo', 'Multi demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/simple', 'current_page_name': 'examples/simple', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b21620>, 'hasdoc': .hasdoc at 0x7fc7d6b22020>, 'toctree': . at 0x7fc7d6b22200>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'multidemo.html', 'title': 'Multi demo'}, 'next': {'link': 'vertical.html', 'title': 'Vertical plot demo'}, 'title': 'Really simple demo', 'meta': {}, 'body': '
\n

Really simple demo

\n../_images/simple.png\n
\nimport os\n\nimport numpy as np\nfrom qtpy.QtCore import Qt, QTimer\n\nimport qwt\nfrom qwt.tests import utils\n\nFNAMES = ("test_simple.svg", "test_simple.pdf", "test_simple.png")\n\n\nclass SimplePlot(qwt.QwtPlot):\n    NUM_POINTS = 100\n    TEST_EXPORT = True\n\n    def __init__(self):\n        qwt.QwtPlot.__init__(self)\n        self.setTitle("Really simple demo")\n        self.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.RightLegend)\n        self.setAxisTitle(qwt.QwtPlot.xBottom, "X-axis")\n        self.setAxisTitle(qwt.QwtPlot.yLeft, "Y-axis")\n        self.enableAxis(self.xBottom)\n        self.setCanvasBackground(Qt.white)\n\n        qwt.QwtPlotGrid.make(self, color=Qt.lightGray, width=0, style=Qt.DotLine)\n\n        # insert a few curves\n        x = np.linspace(0.0, 10.0, self.NUM_POINTS)\n        qwt.QwtPlotCurve.make(x, np.sin(x), "y = sin(x)", self, linecolor="red")\n        qwt.QwtPlotCurve.make(x, np.cos(x), "y = cos(x)", self, linecolor="blue")\n\n        # insert a horizontal marker at y = 0\n        qwt.QwtPlotMarker.make(\n            label="y = 0",\n            align=Qt.AlignRight | Qt.AlignTop,\n            linestyle=qwt.QwtPlotMarker.HLine,\n            color="darkGreen",\n            plot=self,\n        )\n\n        # insert a vertical marker at x = 2 pi\n        qwt.QwtPlotMarker.make(\n            xvalue=2 * np.pi,\n            label="x = 2 pi",\n            align=Qt.AlignRight | Qt.AlignTop,\n            linestyle=qwt.QwtPlotMarker.VLine,\n            color="darkGreen",\n            plot=self,\n        )\n\n        if self.TEST_EXPORT and utils.TestEnvironment().unattended:\n            QTimer.singleShot(0, self.export_to_different_formats)\n\n    def export_to_different_formats(self):\n        for fname in FNAMES:\n            self.exportTo(fname)\n\n\ndef test_simple():\n    """Simple plot example"""\n    utils.test_widget(SimplePlot, size=(600, 400))\n    for fname in FNAMES:\n        if os.path.isfile(fname):\n            os.remove(fname)\n\n\nif __name__ == "__main__":\n    test_simple()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/simple.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b222a0>, 'js_tag': .js_tag at 0x7fc7d6b22340>}, >) +[app] emitting event: 'html-page-context'('examples/simple', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/vertical', 'Vertical plot demo', 'N', 'next'), ('examples/multidemo', 'Multi demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/simple', 'current_page_name': 'examples/simple', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f69620>, 'hasdoc': .hasdoc at 0x7f3d39f6a020>, 'toctree': . at 0x7f3d39f6a200>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'multidemo.html', 'title': 'Multi demo'}, 'next': {'link': 'vertical.html', 'title': 'Vertical plot demo'}, 'title': 'Really simple demo', 'meta': {}, 'body': '
\n

Really simple demo

\n../_images/simple.png\n
\nimport os\n\nimport numpy as np\nfrom qtpy.QtCore import Qt, QTimer\n\nimport qwt\nfrom qwt.tests import utils\n\nFNAMES = ("test_simple.svg", "test_simple.pdf", "test_simple.png")\n\n\nclass SimplePlot(qwt.QwtPlot):\n    NUM_POINTS = 100\n    TEST_EXPORT = True\n\n    def __init__(self):\n        qwt.QwtPlot.__init__(self)\n        self.setTitle("Really simple demo")\n        self.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.RightLegend)\n        self.setAxisTitle(qwt.QwtPlot.xBottom, "X-axis")\n        self.setAxisTitle(qwt.QwtPlot.yLeft, "Y-axis")\n        self.enableAxis(self.xBottom)\n        self.setCanvasBackground(Qt.white)\n\n        qwt.QwtPlotGrid.make(self, color=Qt.lightGray, width=0, style=Qt.DotLine)\n\n        # insert a few curves\n        x = np.linspace(0.0, 10.0, self.NUM_POINTS)\n        qwt.QwtPlotCurve.make(x, np.sin(x), "y = sin(x)", self, linecolor="red")\n        qwt.QwtPlotCurve.make(x, np.cos(x), "y = cos(x)", self, linecolor="blue")\n\n        # insert a horizontal marker at y = 0\n        qwt.QwtPlotMarker.make(\n            label="y = 0",\n            align=Qt.AlignRight | Qt.AlignTop,\n            linestyle=qwt.QwtPlotMarker.HLine,\n            color="darkGreen",\n            plot=self,\n        )\n\n        # insert a vertical marker at x = 2 pi\n        qwt.QwtPlotMarker.make(\n            xvalue=2 * np.pi,\n            label="x = 2 pi",\n            align=Qt.AlignRight | Qt.AlignTop,\n            linestyle=qwt.QwtPlotMarker.VLine,\n            color="darkGreen",\n            plot=self,\n        )\n\n        if self.TEST_EXPORT and utils.TestEnvironment().unattended:\n            QTimer.singleShot(0, self.export_to_different_formats)\n\n    def export_to_different_formats(self):\n        for fname in FNAMES:\n            self.exportTo(fname)\n\n\ndef test_simple():\n    """Simple plot example"""\n    utils.test_widget(SimplePlot, size=(600, 400))\n    for fname in FNAMES:\n        if os.path.isfile(fname):\n            os.remove(fname)\n\n\nif __name__ == "__main__":\n    test_simple()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/simple.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f6a2a0>, 'js_tag': .js_tag at 0x7f3d39f6a340>}, >) writing output... [ 53%] examples/vertical [app] emitting event: 'doctree-resolved'(>, 'examples/vertical') -[app] emitting event: 'html-page-context'('examples/vertical', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/index', 'Reference', 'N', 'next'), ('examples/simple', 'Really simple demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/vertical', 'current_page_name': 'examples/vertical', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d68904a0>, 'hasdoc': .hasdoc at 0x7fc7d68905e0>, 'toctree': . at 0x7fc7d6890680>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'simple.html', 'title': 'Really simple demo'}, 'next': {'link': '../reference/index.html', 'title': 'Reference'}, 'title': 'Vertical plot demo', 'meta': {}, 'body': '
\n

Vertical plot demo

\n../_images/vertical.png\n
\nimport numpy as np\nfrom qtpy.QtCore import Qt\nfrom qtpy.QtGui import QColor, QPalette, QPen\n\nfrom qwt import QwtPlot, QwtPlotCurve, QwtPlotMarker, QwtText\nfrom qwt.tests import utils\n\n\nclass VerticalPlot(QwtPlot):\n    def __init__(self, parent=None):\n        super(VerticalPlot, self).__init__(parent)\n        self.setWindowTitle("PythonQwt")\n        self.enableAxis(self.xTop, True)\n        self.enableAxis(self.yRight, True)\n        y = np.linspace(0, 10, 500)\n        curve1 = QwtPlotCurve.make(np.sin(y), y, title="Test Curve 1")\n        curve2 = QwtPlotCurve.make(y**3, y, title="Test Curve 2")\n        curve2.setAxes(self.xTop, self.yRight)\n\n        for item, col, xa, ya in (\n            (curve1, Qt.green, self.xBottom, self.yLeft),\n            (curve2, Qt.red, self.xTop, self.yRight),\n        ):\n            item.attach(self)\n            item.setPen(QPen(col))\n            for axis_id in xa, ya:\n                palette = self.axisWidget(axis_id).palette()\n                palette.setColor(QPalette.WindowText, QColor(col))\n                palette.setColor(QPalette.Text, QColor(col))\n                self.axisWidget(axis_id).setPalette(palette)\n                ticks_font = self.axisFont(axis_id)\n                self.setAxisFont(axis_id, ticks_font)\n\n        self.marker = QwtPlotMarker.make(0, 5, plot=self)\n\n    def resizeEvent(self, event):\n        super(VerticalPlot, self).resizeEvent(event)\n        self.show_layout_details()\n\n    def show_layout_details(self):\n        text = (\n            "plotLayout().canvasRect():\\n%r\\n\\n"\n            "canvas().geometry():\\n%r\\n\\n"\n            "plotLayout().scaleRect(QwtPlot.yLeft):\\n%r\\n\\n"\n            "axisWidget(QwtPlot.yLeft).geometry():\\n%r\\n\\n"\n            "plotLayout().scaleRect(QwtPlot.yRight):\\n%r\\n\\n"\n            "axisWidget(QwtPlot.yRight).geometry():\\n%r\\n\\n"\n            "plotLayout().scaleRect(QwtPlot.xBottom):\\n%r\\n\\n"\n            "axisWidget(QwtPlot.xBottom).geometry():\\n%r\\n\\n"\n            "plotLayout().scaleRect(QwtPlot.xTop):\\n%r\\n\\n"\n            "axisWidget(QwtPlot.xTop).geometry():\\n%r\\n\\n"\n            % (\n                self.plotLayout().canvasRect().getCoords(),\n                self.canvas().geometry().getCoords(),\n                self.plotLayout().scaleRect(QwtPlot.yLeft).getCoords(),\n                self.axisWidget(QwtPlot.yLeft).geometry().getCoords(),\n                self.plotLayout().scaleRect(QwtPlot.yRight).getCoords(),\n                self.axisWidget(QwtPlot.yRight).geometry().getCoords(),\n                self.plotLayout().scaleRect(QwtPlot.xBottom).getCoords(),\n                self.axisWidget(QwtPlot.xBottom).geometry().getCoords(),\n                self.plotLayout().scaleRect(QwtPlot.xTop).getCoords(),\n                self.axisWidget(QwtPlot.xTop).geometry().getCoords(),\n            )\n        )\n        self.marker.setLabel(QwtText.make(text, family="Courier New", color=Qt.blue))\n\n\ndef test_vertical():\n    """Vertical plot example"""\n    utils.test_widget(VerticalPlot, size=(300, 650))\n\n\nif __name__ == "__main__":\n    test_vertical()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/vertical.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6890720>, 'js_tag': .js_tag at 0x7fc7d68907c0>}, >) +[app] emitting event: 'html-page-context'('examples/vertical', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/index', 'Reference', 'N', 'next'), ('examples/simple', 'Really simple demo', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Examples'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'examples/vertical', 'current_page_name': 'examples/vertical', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ca04a0>, 'hasdoc': .hasdoc at 0x7f3d39ca05e0>, 'toctree': . at 0x7f3d39ca0680>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'simple.html', 'title': 'Really simple demo'}, 'next': {'link': '../reference/index.html', 'title': 'Reference'}, 'title': 'Vertical plot demo', 'meta': {}, 'body': '
\n

Vertical plot demo

\n../_images/vertical.png\n
\nimport numpy as np\nfrom qtpy.QtCore import Qt\nfrom qtpy.QtGui import QColor, QPalette, QPen\n\nfrom qwt import QwtPlot, QwtPlotCurve, QwtPlotMarker, QwtText\nfrom qwt.tests import utils\n\n\nclass VerticalPlot(QwtPlot):\n    def __init__(self, parent=None):\n        super(VerticalPlot, self).__init__(parent)\n        self.setWindowTitle("PythonQwt")\n        self.enableAxis(self.xTop, True)\n        self.enableAxis(self.yRight, True)\n        y = np.linspace(0, 10, 500)\n        curve1 = QwtPlotCurve.make(np.sin(y), y, title="Test Curve 1")\n        curve2 = QwtPlotCurve.make(y**3, y, title="Test Curve 2")\n        curve2.setAxes(self.xTop, self.yRight)\n\n        for item, col, xa, ya in (\n            (curve1, Qt.green, self.xBottom, self.yLeft),\n            (curve2, Qt.red, self.xTop, self.yRight),\n        ):\n            item.attach(self)\n            item.setPen(QPen(col))\n            for axis_id in xa, ya:\n                palette = self.axisWidget(axis_id).palette()\n                palette.setColor(QPalette.WindowText, QColor(col))\n                palette.setColor(QPalette.Text, QColor(col))\n                self.axisWidget(axis_id).setPalette(palette)\n                ticks_font = self.axisFont(axis_id)\n                self.setAxisFont(axis_id, ticks_font)\n\n        self.marker = QwtPlotMarker.make(0, 5, plot=self)\n\n    def resizeEvent(self, event):\n        super(VerticalPlot, self).resizeEvent(event)\n        self.show_layout_details()\n\n    def show_layout_details(self):\n        text = (\n            "plotLayout().canvasRect():\\n%r\\n\\n"\n            "canvas().geometry():\\n%r\\n\\n"\n            "plotLayout().scaleRect(QwtPlot.yLeft):\\n%r\\n\\n"\n            "axisWidget(QwtPlot.yLeft).geometry():\\n%r\\n\\n"\n            "plotLayout().scaleRect(QwtPlot.yRight):\\n%r\\n\\n"\n            "axisWidget(QwtPlot.yRight).geometry():\\n%r\\n\\n"\n            "plotLayout().scaleRect(QwtPlot.xBottom):\\n%r\\n\\n"\n            "axisWidget(QwtPlot.xBottom).geometry():\\n%r\\n\\n"\n            "plotLayout().scaleRect(QwtPlot.xTop):\\n%r\\n\\n"\n            "axisWidget(QwtPlot.xTop).geometry():\\n%r\\n\\n"\n            % (\n                self.plotLayout().canvasRect().getCoords(),\n                self.canvas().geometry().getCoords(),\n                self.plotLayout().scaleRect(QwtPlot.yLeft).getCoords(),\n                self.axisWidget(QwtPlot.yLeft).geometry().getCoords(),\n                self.plotLayout().scaleRect(QwtPlot.yRight).getCoords(),\n                self.axisWidget(QwtPlot.yRight).geometry().getCoords(),\n                self.plotLayout().scaleRect(QwtPlot.xBottom).getCoords(),\n                self.axisWidget(QwtPlot.xBottom).geometry().getCoords(),\n                self.plotLayout().scaleRect(QwtPlot.xTop).getCoords(),\n                self.axisWidget(QwtPlot.xTop).geometry().getCoords(),\n            )\n        )\n        self.marker.setLabel(QwtText.make(text, family="Courier New", color=Qt.blue))\n\n\ndef test_vertical():\n    """Vertical plot example"""\n    utils.test_widget(VerticalPlot, size=(300, 650))\n\n\nif __name__ == "__main__":\n    test_vertical()\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'examples/vertical.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39ca0720>, 'js_tag': .js_tag at 0x7f3d39ca07c0>}, >) writing output... [ 56%] index [app] emitting event: 'doctree-resolved'(
, 'index') -[app] emitting event: 'html-page-context'('index', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('overview', 'Purpose and Motivation', 'N', 'next')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'index', 'current_page_name': 'index', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d7524b80>, 'hasdoc': .hasdoc at 0x7fc7d7525440>, 'toctree': . at 0x7fc7d75276a0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': None, 'next': {'link': 'overview.html', 'title': 'Purpose and Motivation'}, 'title': 'PythonQwt', 'meta': None, 'body': '
\n

PythonQwt

\n

The PythonQwt package is a 2D-data plotting library using Qt graphical\nuser interfaces for the Python programming language.

\n

It consists of a single Python package named qwt which is a pure Python\nimplementation of Qwt C++ library with some limitations.

\n_images/testlauncher.png\n
\n
External resources:
    \n
  • Python Package Index: PyPI

  • \n
  • Project page on GitHub: GitHubPage

  • \n
  • Bug reports and feature requests: GitHub

  • \n
\n
\n
\n
\n

Contents:

\n\n

Indices and tables:

\n\n', 'metatags': '\n', 'sourcename': 'index.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': './', 'css_tag': .css_tag at 0x7fc7d6c54040>, 'js_tag': .js_tag at 0x7fc7d6c56480>},
) +[app] emitting event: 'html-page-context'('index', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('overview', 'Purpose and Motivation', 'N', 'next')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'index', 'current_page_name': 'index', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3a944b80>, 'hasdoc': .hasdoc at 0x7f3d3a945440>, 'toctree': . at 0x7f3d3a9476a0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': None, 'next': {'link': 'overview.html', 'title': 'Purpose and Motivation'}, 'title': 'PythonQwt', 'meta': None, 'body': '
\n

PythonQwt

\n

The PythonQwt package is a 2D-data plotting library using Qt graphical\nuser interfaces for the Python programming language.

\n

It consists of a single Python package named qwt which is a pure Python\nimplementation of Qwt C++ library with some limitations.

\n_images/testlauncher.png\n
\n
External resources:
    \n
  • Python Package Index: PyPI

  • \n
  • Project page on GitHub: GitHubPage

  • \n
  • Bug reports and feature requests: GitHub

  • \n
\n
\n
\n
\n

Contents:

\n\n

Indices and tables:

\n\n', 'metatags': '\n', 'sourcename': 'index.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': './', 'css_tag': .css_tag at 0x7f3d39ebc040>, 'js_tag': .js_tag at 0x7f3d39ebf6a0>},
) writing output... [ 59%] installation [app] emitting event: 'doctree-resolved'(>, 'installation') -[app] emitting event: 'html-page-context'('installation', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/index', 'Examples', 'N', 'next'), ('overview', 'Purpose and Motivation', 'P', 'previous')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'installation', 'current_page_name': 'installation', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b211c0>, 'hasdoc': .hasdoc at 0x7fc7d6b23560>, 'toctree': . at 0x7fc7d6b234c0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'overview.html', 'title': 'Purpose and Motivation'}, 'next': {'link': 'examples/index.html', 'title': 'Examples'}, 'title': 'Installation', 'meta': {}, 'body': '
\n

Installation

\n
\n

Dependencies

\n
\n
Requirements:
    \n
  • Python 3.8 or higher

  • \n
  • PyQt5 5.15, PyQt6 or PySide6

  • \n
  • QtPy 1.9 or higher

  • \n
  • NumPy 1.21 or higher

  • \n
  • Sphinx for documentation generation

  • \n
  • pytest, coverage for unit testing

  • \n
\n
\n
\n
\n
\n

Installation

\n

From the source package:

\n
\n

python -m build

\n
\n
\n
\n

Help and support

\n

External resources:

\n
\n
    \n
  • Bug reports and feature requests: GitHub

  • \n
\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'installation.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': './', 'css_tag': .css_tag at 0x7fc7d6b237e0>, 'js_tag': .js_tag at 0x7fc7d6b23740>}, >) +[app] emitting event: 'html-page-context'('installation', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('examples/index', 'Examples', 'N', 'next'), ('overview', 'Purpose and Motivation', 'P', 'previous')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'installation', 'current_page_name': 'installation', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f691c0>, 'hasdoc': .hasdoc at 0x7f3d39f6b560>, 'toctree': . at 0x7f3d39f6b4c0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'overview.html', 'title': 'Purpose and Motivation'}, 'next': {'link': 'examples/index.html', 'title': 'Examples'}, 'title': 'Installation', 'meta': {}, 'body': '
\n

Installation

\n
\n

Dependencies

\n
\n
Requirements:
    \n
  • Python 3.8 or higher

  • \n
  • PyQt5 5.15, PyQt6 or PySide6

  • \n
  • QtPy 1.9 or higher

  • \n
  • NumPy 1.21 or higher

  • \n
  • Sphinx for documentation generation

  • \n
  • pytest, coverage for unit testing

  • \n
\n
\n
\n
\n
\n

Installation

\n

From the source package:

\n
\n

python -m build

\n
\n
\n
\n

Help and support

\n

External resources:

\n
\n
    \n
  • Bug reports and feature requests: GitHub

  • \n
\n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'installation.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': './', 'css_tag': .css_tag at 0x7f3d39f6b7e0>, 'js_tag': .js_tag at 0x7f3d39f6b740>}, >) writing output... [ 62%] overview [app] emitting event: 'doctree-resolved'(
>, 'overview') -[app] emitting event: 'html-page-context'('overview', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('installation', 'Installation', 'N', 'next'), ('index', 'PythonQwt', 'P', 'previous')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'overview', 'current_page_name': 'overview', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b22b60>, 'hasdoc': .hasdoc at 0x7fc7d6b22a20>, 'toctree': . at 0x7fc7d6b21620>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'index.html', 'title': 'PythonQwt'}, 'next': {'link': 'installation.html', 'title': 'Installation'}, 'title': 'Purpose and Motivation', 'meta': {}, 'body': '
\n

Purpose and Motivation

\n

The PythonQwt project was initiated to solve -at least temporarily-\nthe obsolescence issue of PyQwt (the Python-Qwt C++ bindings library)\nwhich is no longer maintained. The idea was to translate the original\nQwt C++ code to Python and then to optimize some parts of the code by\nwriting new modules based on NumPy and other libraries.

\n
\n
\n

Overview

\n

The PythonQwt package consists of a single Python package named\nqwt and of a few other files (examples, doc, …):

\n
\n
    \n
  • The subpackage qwt.tests contains the PythonQwt unit tests:

    \n
    \n
      \n
    • 75% were directly adapted from Qwt/C++ demos (Bode demo, cartesian demo, etc.).

    • \n
    • 25% were written specifically for PythonQwt.

    • \n
    • The test launcher is an exclusive PythonQwt feature.

    • \n
    \n
    \n
  • \n
\n
\n

The qwt package is a pure Python implementation of Qwt C++ library\nwith the following limitations.

\n

The following Qwt classes won’t be reimplemented in qwt because more\npowerful features already exist in guiqwt (and in the forthcoming plotpy library,\nresulting of the merge of guidata and guiqwt): QwtPlotZoomer,\nQwtCounter, QwtEventPattern, QwtPicker, QwtPlotPicker.

\n

Only the following plot items are currently implemented in qwt (the\nonly plot items needed by guiqwt and plotpy): QwtPlotItem (base class),\nQwtPlotItem, QwtPlotMarker, QwtPlotSeriesItem and QwtPlotCurve.

\n

The HistogramItem object implemented in PyQwt’s HistogramDemo.py is not\navailable here (a similar item is already implemented in guiqwt/plotpy). As a\nconsequence, the following classes are not implemented: QwtPlotHistogram,\nQwtIntervalSeriesData, QwtIntervalSample.

\n

The following data structure objects are not implemented as they seemed\nirrelevant with Python and NumPy: QwtCPointerData (as a consequence, method\nQwtPlot.setRawSamples is not implemented), QwtSyntheticPointData.

\n

The following sample data type objects are not implemented as they seemed\nquite specific: QwtSetSample, QwtOHLCSample. For similar reasons, the\nQwtPointPolar class and the following sample iterator objects are not\nimplemented: QwtSetSeriesData, QwtTradingChartData and QwtPoint3DSeriesData.

\n

The following classes are not implemented because they seem inappropriate in\nthe Python/NumPy context: QwtArraySeriesData, QwtPointSeriesData,\nQwtAbstractSeriesStore.

\n

Threads:

\n
\n
    \n
  • Multiple threads for graphic rendering is implemented in Qwt C++ code\nthanks to the QtConcurrent and QFuture Qt features which are\ncurrently not supported by PyQt.

  • \n
  • \n
    As a consequence the following API is not supported in PythonQwt:
      \n
    • QwtPlotItem.renderThreadCount

    • \n
    • QwtPlotItem.setRenderThreadCount

    • \n
    • option numThreads in QwtPointMapper.toImage

    • \n
    \n
    \n
    \n
  • \n
\n
\n

The QwtClipper class is not implemented yet (and it will probably be\nvery difficult or even impossible to implement it in pure Python without\nperformance issues). As a consequence, when zooming in a plot curve, the\nentire curve is still painted (in other words, when working with large\namount of data, there is no performance gain when zooming in).

\n

The curve fitter feature is not implemented because powerful curve fitting\nfeatures are already implemented in guiqwt/plotpy.

\n

Other API compatibility issues with Qwt:

\n
\n
    \n
  • QwtPlotCurve.MinimizeMemory option was removed as this option has no\nsense in PythonQwt (the polyline plotting is not taking more memory\nthan the array data that is already there).

  • \n
  • QwtPlotCurve.Fitted option was removed as this option is not supported\nat the moment.

  • \n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'overview.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': './', 'css_tag': .css_tag at 0x7fc7d6b22660>, 'js_tag': .js_tag at 0x7fc7d6b23060>},
>) +[app] emitting event: 'html-page-context'('overview', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('installation', 'Installation', 'N', 'next'), ('index', 'PythonQwt', 'P', 'previous')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'overview', 'current_page_name': 'overview', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f6ab60>, 'hasdoc': .hasdoc at 0x7f3d39f6aa20>, 'toctree': . at 0x7f3d39f69620>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'index.html', 'title': 'PythonQwt'}, 'next': {'link': 'installation.html', 'title': 'Installation'}, 'title': 'Purpose and Motivation', 'meta': {}, 'body': '
\n

Purpose and Motivation

\n

The PythonQwt project was initiated to solve -at least temporarily-\nthe obsolescence issue of PyQwt (the Python-Qwt C++ bindings library)\nwhich is no longer maintained. The idea was to translate the original\nQwt C++ code to Python and then to optimize some parts of the code by\nwriting new modules based on NumPy and other libraries.

\n
\n
\n

Overview

\n

The PythonQwt package consists of a single Python package named\nqwt and of a few other files (examples, doc, …):

\n
\n
    \n
  • The subpackage qwt.tests contains the PythonQwt unit tests:

    \n
    \n
      \n
    • 75% were directly adapted from Qwt/C++ demos (Bode demo, cartesian demo, etc.).

    • \n
    • 25% were written specifically for PythonQwt.

    • \n
    • The test launcher is an exclusive PythonQwt feature.

    • \n
    \n
    \n
  • \n
\n
\n

The qwt package is a pure Python implementation of Qwt C++ library\nwith the following limitations.

\n

The following Qwt classes won’t be reimplemented in qwt because more\npowerful features already exist in guiqwt (and in the forthcoming plotpy library,\nresulting of the merge of guidata and guiqwt): QwtPlotZoomer,\nQwtCounter, QwtEventPattern, QwtPicker, QwtPlotPicker.

\n

Only the following plot items are currently implemented in qwt (the\nonly plot items needed by guiqwt and plotpy): QwtPlotItem (base class),\nQwtPlotItem, QwtPlotMarker, QwtPlotSeriesItem and QwtPlotCurve.

\n

The HistogramItem object implemented in PyQwt’s HistogramDemo.py is not\navailable here (a similar item is already implemented in guiqwt/plotpy). As a\nconsequence, the following classes are not implemented: QwtPlotHistogram,\nQwtIntervalSeriesData, QwtIntervalSample.

\n

The following data structure objects are not implemented as they seemed\nirrelevant with Python and NumPy: QwtCPointerData (as a consequence, method\nQwtPlot.setRawSamples is not implemented), QwtSyntheticPointData.

\n

The following sample data type objects are not implemented as they seemed\nquite specific: QwtSetSample, QwtOHLCSample. For similar reasons, the\nQwtPointPolar class and the following sample iterator objects are not\nimplemented: QwtSetSeriesData, QwtTradingChartData and QwtPoint3DSeriesData.

\n

The following classes are not implemented because they seem inappropriate in\nthe Python/NumPy context: QwtArraySeriesData, QwtPointSeriesData,\nQwtAbstractSeriesStore.

\n

Threads:

\n
\n
    \n
  • Multiple threads for graphic rendering is implemented in Qwt C++ code\nthanks to the QtConcurrent and QFuture Qt features which are\ncurrently not supported by PyQt.

  • \n
  • \n
    As a consequence the following API is not supported in PythonQwt:
      \n
    • QwtPlotItem.renderThreadCount

    • \n
    • QwtPlotItem.setRenderThreadCount

    • \n
    • option numThreads in QwtPointMapper.toImage

    • \n
    \n
    \n
    \n
  • \n
\n
\n

The QwtClipper class is not implemented yet (and it will probably be\nvery difficult or even impossible to implement it in pure Python without\nperformance issues). As a consequence, when zooming in a plot curve, the\nentire curve is still painted (in other words, when working with large\namount of data, there is no performance gain when zooming in).

\n

The curve fitter feature is not implemented because powerful curve fitting\nfeatures are already implemented in guiqwt/plotpy.

\n

Other API compatibility issues with Qwt:

\n
\n
    \n
  • QwtPlotCurve.MinimizeMemory option was removed as this option has no\nsense in PythonQwt (the polyline plotting is not taking more memory\nthan the array data that is already there).

  • \n
  • QwtPlotCurve.Fitted option was removed as this option is not supported\nat the moment.

  • \n
\n
\n
\n', 'metatags': '\n', 'sourcename': 'overview.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': './', 'css_tag': .css_tag at 0x7f3d39f6a660>, 'js_tag': .js_tag at 0x7f3d39f6b060>},
>) writing output... [ 66%] reference/graphic -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(
>, 'reference/graphic') -[app] emitting event: 'html-page-context'('reference/graphic', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/interval', 'QwtInterval', 'N', 'next'), ('reference/toqimage', 'NumPy array to QImage', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/graphic', 'current_page_name': 'reference/graphic', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b22660>, 'hasdoc': .hasdoc at 0x7fc7d6b22a20>, 'toctree': . at 0x7fc7d6b22d40>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'toqimage.html', 'title': 'NumPy array to QImage'}, 'next': {'link': 'interval.html', 'title': 'QwtInterval'}, 'title': 'QwtGraphic', 'meta': {}, 'body': '
\n

QwtGraphic

\n
\n
\nclass qwt.graphic.QwtGraphic(*args)[source]
\n

A paint device for scalable graphics

\n

QwtGraphic is the representation of a graphic that is tailored for\nscalability. Like QPicture it will be initialized by QPainter\noperations and can be replayed later to any target paint device.

\n

While the usual image representations QImage and QPixmap are not\nscalable Qt offers two paint devices, that might be candidates\nfor representing a vector graphic:

\n
\n
    \n
  • QPicture:

    \n

    Unfortunately QPicture had been forgotten, when Qt4\nintroduced floating point based render engines. Its API\nis still on integers, what make it unusable for proper scaling.

    \n
  • \n
  • QSvgRenderer, QSvgGenerator:

    \n

    Unfortunately QSvgRenderer hides to much information about\nits nodes in internal APIs, that are necessary for proper\nlayout calculations. Also it is derived from QObject and\ncan’t be copied like QImage/QPixmap.

    \n
  • \n
\n
\n

QwtGraphic maps all scalable drawing primitives to a QPainterPath\nand stores them together with the painter state changes\n( pen, brush, transformation … ) in a list of QwtPaintCommands.\nFor being a complete QPaintDevice it also stores pixmaps or images,\nwhat is somehow against the idea of the class, because these objects\ncan’t be scaled without a loss in quality.

\n

The main issue about scaling a QwtGraphic object are the pens used for\ndrawing the outlines of the painter paths. While non cosmetic pens\n( QPen.isCosmetic() ) are scaled with the same ratio as the path,\ncosmetic pens have a fixed width. A graphic might have paths with\ndifferent pens - cosmetic and non-cosmetic.

\n

QwtGraphic caches 2 different rectangles:

\n
\n
    \n
  • control point rectangle:

    \n

    The control point rectangle is the bounding rectangle of all\ncontrol point rectangles of the painter paths, or the target\nrectangle of the pixmaps/images.

    \n
  • \n
  • bounding rectangle:

    \n

    The bounding rectangle extends the control point rectangle by\nwhat is needed for rendering the outline with an unscaled pen.

    \n
  • \n
\n
\n

Because the offset for drawing the outline depends on the shape\nof the painter path ( the peak of a triangle is different than the flat side )\nscaling with a fixed aspect ratio always needs to be calculated from the\ncontrol point rectangle.

\n
\n
\nclass QwtGraphic
\n

Initializes a null graphic

\n
\n\n
\n
\nclass QwtGraphic(other)
\n

Copy constructor

\n
\n
Parameters:
\n

other (qwt.graphic.QwtGraphic) – Source

\n
\n
\n
\n\n
\n
\nreset()[source]
\n

Clear all stored commands

\n
\n\n
\n
\nisNull()[source]
\n

Return True, when no painter commands have been stored

\n
\n\n
\n
\nisEmpty()[source]
\n

Return True, when the bounding rectangle is empty

\n
\n\n
\n
\nsetRenderHint(hint, on=True)[source]
\n

Toggle an render hint

\n
\n\n
\n
\ntestRenderHint(hint)[source]
\n

Test a render hint

\n
\n\n
\n
\nboundingRect()[source]
\n

The bounding rectangle is the controlPointRect()\nextended by the areas needed for rendering the outlines\nwith unscaled pens.

\n
\n
Returns:
\n

Bounding rectangle of the graphic

\n
\n
\n\n
\n\n
\n
\ncontrolPointRect()[source]
\n

The control point rectangle is the bounding rectangle\nof all control points of the paths and the target\nrectangles of the images/pixmaps.

\n
\n
Returns:
\n

Control point rectangle

\n
\n
\n\n
\n\n
\n
\nscaledBoundingRect(sx, sy)[source]
\n

Calculate the target rectangle for scaling the graphic

\n
\n
Parameters:
\n
    \n
  • sx (float) – Horizontal scaling factor

  • \n
  • sy (float) – Vertical scaling factor

  • \n
\n
\n
Returns:
\n

Scaled bounding rectangle

\n
\n
\n
\n

Note

\n

In case of paths that are painted with a cosmetic pen\n(see QPen.isCosmetic()) the target rectangle is\ndifferent to multiplying the bounding rectangle.

\n
\n\n
\n\n
\n
\nsizeMetrics()[source]
\n

Return Ceiled defaultSize()

\n
\n\n
\n
\nsetDefaultSize(size)[source]
\n

The default size is used in all methods rendering the graphic,\nwhere no size is explicitly specified. Assigning an empty size\nmeans, that the default size will be calculated from the bounding\nrectangle.

\n
\n
Parameters:
\n

size (QSizeF) – Default size

\n
\n
\n\n
\n\n
\n
\ndefaultSize()[source]
\n

When a non empty size has been assigned by setDefaultSize() this\nsize will be returned. Otherwise the default size is the size\nof the bounding rectangle.

\n

The default size is used in all methods rendering the graphic,\nwhere no size is explicitly specified.

\n
\n
Returns:
\n

Default size

\n
\n
\n\n
\n\n
\n
\nrender(*args)[source]
\n
\n
\nrender(painter)[source]
\n

Replay all recorded painter commands

\n
\n
Parameters:
\n

painter (QPainter) – Qt painter

\n
\n
\n
\n\n
\n
\nrender(painter, size, aspectRatioMode)[source]
\n

Replay all recorded painter commands

\n

The graphic is scaled to fit into the rectangle\nof the given size starting at ( 0, 0 ).

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Qt painter

  • \n
  • size (QSizeF) – Size for the scaled graphic

  • \n
  • aspectRatioMode (Qt.AspectRatioMode) – Mode how to scale

  • \n
\n
\n
\n
\n\n
\n
\nrender(painter, rect, aspectRatioMode)[source]
\n

Replay all recorded painter commands

\n

The graphic is scaled to fit into the given rectangle

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Qt painter

  • \n
  • rect (QRectF) – Rectangle for the scaled graphic

  • \n
  • aspectRatioMode (Qt.AspectRatioMode) – Mode how to scale

  • \n
\n
\n
\n
\n\n
\n
\nrender(painter, pos, aspectRatioMode)[source]
\n

Replay all recorded painter commands

\n

The graphic is scaled to the defaultSize() and aligned\nto a position.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Qt painter

  • \n
  • pos (QPointF) – Reference point, where to render

  • \n
  • aspectRatioMode (Qt.AspectRatioMode) – Mode how to scale

  • \n
\n
\n
\n
\n\n
\n\n
\n
\ntoPixmap(*args)[source]
\n

Convert the graphic to a QPixmap

\n

All pixels of the pixmap get initialized by Qt.transparent\nbefore the graphic is scaled and rendered on it.

\n

The size of the pixmap is the default size ( ceiled to integers )\nof the graphic.

\n
\n
Returns:
\n

The graphic as pixmap in default size

\n
\n
\n\n
\n\n
\n
\ntoImage(*args)[source]
\n
\n
\ntoImage()[source]
\n

Convert the graphic to a QImage

\n

All pixels of the image get initialized by 0 ( transparent )\nbefore the graphic is scaled and rendered on it.

\n

The format of the image is QImage.Format_ARGB32_Premultiplied.

\n

The size of the image is the default size ( ceiled to integers )\nof the graphic.

\n
\n
Returns:
\n

The graphic as image in default size

\n
\n
\n
\n\n
\n
\ntoImage(size[, aspectRatioMode=Qt.IgnoreAspectRatio])[source]
\n

Convert the graphic to a QImage

\n

All pixels of the image get initialized by 0 ( transparent )\nbefore the graphic is scaled and rendered on it.

\n

The format of the image is QImage.Format_ARGB32_Premultiplied.

\n
\n
Parameters:
\n
    \n
  • size (QSize) – Size of the image

  • \n
  • aspectRatioMode (Qt.AspectRatioMode) – Aspect ratio how to scale the graphic

  • \n
\n
\n
Returns:
\n

The graphic as image

\n
\n
\n
\n\n
\n

See also

\n

toPixmap(), render()

\n
\n
\n\n
\n
\ndrawPath(path)[source]
\n

Store a path command in the command list

\n
\n
Parameters:
\n

path (QPainterPath) – Painter path

\n
\n
\n
\n

See also

\n

QPaintEngine.drawPath()

\n
\n
\n\n
\n
\ndrawPixmap(rect, pixmap, subRect)[source]
\n

Store a pixmap command in the command list

\n
\n
Parameters:
\n
    \n
  • rect (QRectF) – target rectangle

  • \n
  • pixmap (QPixmap) – Pixmap to be painted

  • \n
  • subRect (QRectF) – Reactangle of the pixmap to be painted

  • \n
\n
\n
\n
\n

See also

\n

QPaintEngine.drawPixmap()

\n
\n
\n\n
\n
\ndrawImage(rect, image, subRect, flags)[source]
\n

Store a image command in the command list

\n
\n
Parameters:
\n
    \n
  • rect (QRectF) – target rectangle

  • \n
  • image (QImage) – Pixmap to be painted

  • \n
  • subRect (QRectF) – Reactangle of the pixmap to be painted

  • \n
  • flags (Qt.ImageConversionFlags) – Pixmap to be painted

  • \n
\n
\n
\n
\n

See also

\n

QPaintEngine.drawImage()

\n
\n
\n\n
\n
\nupdateState(state)[source]
\n

Store a state command in the command list

\n
\n
Parameters:
\n

state (QPaintEngineState) – State to be stored

\n
\n
\n
\n

See also

\n

QPaintEngine.updateState()

\n
\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/graphic.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b22160>, 'js_tag': .js_tag at 0x7fc7d6b23380>},
>) +[app] emitting event: 'html-page-context'('reference/graphic', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/interval', 'QwtInterval', 'N', 'next'), ('reference/toqimage', 'NumPy array to QImage', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/graphic', 'current_page_name': 'reference/graphic', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f6a660>, 'hasdoc': .hasdoc at 0x7f3d39f6aa20>, 'toctree': . at 0x7f3d39f6ad40>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'toqimage.html', 'title': 'NumPy array to QImage'}, 'next': {'link': 'interval.html', 'title': 'QwtInterval'}, 'title': 'QwtGraphic', 'meta': {}, 'body': '
\n

QwtGraphic

\n
\n
\nclass qwt.graphic.QwtGraphic(*args)[source]
\n

A paint device for scalable graphics

\n

QwtGraphic is the representation of a graphic that is tailored for\nscalability. Like QPicture it will be initialized by QPainter\noperations and can be replayed later to any target paint device.

\n

While the usual image representations QImage and QPixmap are not\nscalable Qt offers two paint devices, that might be candidates\nfor representing a vector graphic:

\n
\n
    \n
  • QPicture:

    \n

    Unfortunately QPicture had been forgotten, when Qt4\nintroduced floating point based render engines. Its API\nis still on integers, what make it unusable for proper scaling.

    \n
  • \n
  • QSvgRenderer, QSvgGenerator:

    \n

    Unfortunately QSvgRenderer hides to much information about\nits nodes in internal APIs, that are necessary for proper\nlayout calculations. Also it is derived from QObject and\ncan’t be copied like QImage/QPixmap.

    \n
  • \n
\n
\n

QwtGraphic maps all scalable drawing primitives to a QPainterPath\nand stores them together with the painter state changes\n( pen, brush, transformation … ) in a list of QwtPaintCommands.\nFor being a complete QPaintDevice it also stores pixmaps or images,\nwhat is somehow against the idea of the class, because these objects\ncan’t be scaled without a loss in quality.

\n

The main issue about scaling a QwtGraphic object are the pens used for\ndrawing the outlines of the painter paths. While non cosmetic pens\n( QPen.isCosmetic() ) are scaled with the same ratio as the path,\ncosmetic pens have a fixed width. A graphic might have paths with\ndifferent pens - cosmetic and non-cosmetic.

\n

QwtGraphic caches 2 different rectangles:

\n
\n
    \n
  • control point rectangle:

    \n

    The control point rectangle is the bounding rectangle of all\ncontrol point rectangles of the painter paths, or the target\nrectangle of the pixmaps/images.

    \n
  • \n
  • bounding rectangle:

    \n

    The bounding rectangle extends the control point rectangle by\nwhat is needed for rendering the outline with an unscaled pen.

    \n
  • \n
\n
\n

Because the offset for drawing the outline depends on the shape\nof the painter path ( the peak of a triangle is different than the flat side )\nscaling with a fixed aspect ratio always needs to be calculated from the\ncontrol point rectangle.

\n
\n
\nclass QwtGraphic
\n

Initializes a null graphic

\n
\n\n
\n
\nclass QwtGraphic(other)
\n

Copy constructor

\n
\n
Parameters:
\n

other (qwt.graphic.QwtGraphic) – Source

\n
\n
\n
\n\n
\n
\nreset()[source]
\n

Clear all stored commands

\n
\n\n
\n
\nisNull()[source]
\n

Return True, when no painter commands have been stored

\n
\n\n
\n
\nisEmpty()[source]
\n

Return True, when the bounding rectangle is empty

\n
\n\n
\n
\nsetRenderHint(hint, on=True)[source]
\n

Toggle an render hint

\n
\n\n
\n
\ntestRenderHint(hint)[source]
\n

Test a render hint

\n
\n\n
\n
\nboundingRect()[source]
\n

The bounding rectangle is the controlPointRect()\nextended by the areas needed for rendering the outlines\nwith unscaled pens.

\n
\n
Returns:
\n

Bounding rectangle of the graphic

\n
\n
\n\n
\n\n
\n
\ncontrolPointRect()[source]
\n

The control point rectangle is the bounding rectangle\nof all control points of the paths and the target\nrectangles of the images/pixmaps.

\n
\n
Returns:
\n

Control point rectangle

\n
\n
\n\n
\n\n
\n
\nscaledBoundingRect(sx, sy)[source]
\n

Calculate the target rectangle for scaling the graphic

\n
\n
Parameters:
\n
    \n
  • sx (float) – Horizontal scaling factor

  • \n
  • sy (float) – Vertical scaling factor

  • \n
\n
\n
Returns:
\n

Scaled bounding rectangle

\n
\n
\n
\n

Note

\n

In case of paths that are painted with a cosmetic pen\n(see QPen.isCosmetic()) the target rectangle is\ndifferent to multiplying the bounding rectangle.

\n
\n\n
\n\n
\n
\nsizeMetrics()[source]
\n

Return Ceiled defaultSize()

\n
\n\n
\n
\nsetDefaultSize(size)[source]
\n

The default size is used in all methods rendering the graphic,\nwhere no size is explicitly specified. Assigning an empty size\nmeans, that the default size will be calculated from the bounding\nrectangle.

\n
\n
Parameters:
\n

size (QSizeF) – Default size

\n
\n
\n\n
\n\n
\n
\ndefaultSize()[source]
\n

When a non empty size has been assigned by setDefaultSize() this\nsize will be returned. Otherwise the default size is the size\nof the bounding rectangle.

\n

The default size is used in all methods rendering the graphic,\nwhere no size is explicitly specified.

\n
\n
Returns:
\n

Default size

\n
\n
\n\n
\n\n
\n
\nrender(*args)[source]
\n
\n
\nrender(painter)[source]
\n

Replay all recorded painter commands

\n
\n
Parameters:
\n

painter (QPainter) – Qt painter

\n
\n
\n
\n\n
\n
\nrender(painter, size, aspectRatioMode)[source]
\n

Replay all recorded painter commands

\n

The graphic is scaled to fit into the rectangle\nof the given size starting at ( 0, 0 ).

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Qt painter

  • \n
  • size (QSizeF) – Size for the scaled graphic

  • \n
  • aspectRatioMode (Qt.AspectRatioMode) – Mode how to scale

  • \n
\n
\n
\n
\n\n
\n
\nrender(painter, rect, aspectRatioMode)[source]
\n

Replay all recorded painter commands

\n

The graphic is scaled to fit into the given rectangle

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Qt painter

  • \n
  • rect (QRectF) – Rectangle for the scaled graphic

  • \n
  • aspectRatioMode (Qt.AspectRatioMode) – Mode how to scale

  • \n
\n
\n
\n
\n\n
\n
\nrender(painter, pos, aspectRatioMode)[source]
\n

Replay all recorded painter commands

\n

The graphic is scaled to the defaultSize() and aligned\nto a position.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Qt painter

  • \n
  • pos (QPointF) – Reference point, where to render

  • \n
  • aspectRatioMode (Qt.AspectRatioMode) – Mode how to scale

  • \n
\n
\n
\n
\n\n
\n\n
\n
\ntoPixmap(*args)[source]
\n

Convert the graphic to a QPixmap

\n

All pixels of the pixmap get initialized by Qt.transparent\nbefore the graphic is scaled and rendered on it.

\n

The size of the pixmap is the default size ( ceiled to integers )\nof the graphic.

\n
\n
Returns:
\n

The graphic as pixmap in default size

\n
\n
\n\n
\n\n
\n
\ntoImage(*args)[source]
\n
\n
\ntoImage()[source]
\n

Convert the graphic to a QImage

\n

All pixels of the image get initialized by 0 ( transparent )\nbefore the graphic is scaled and rendered on it.

\n

The format of the image is QImage.Format_ARGB32_Premultiplied.

\n

The size of the image is the default size ( ceiled to integers )\nof the graphic.

\n
\n
Returns:
\n

The graphic as image in default size

\n
\n
\n
\n\n
\n
\ntoImage(size[, aspectRatioMode=Qt.IgnoreAspectRatio])[source]
\n

Convert the graphic to a QImage

\n

All pixels of the image get initialized by 0 ( transparent )\nbefore the graphic is scaled and rendered on it.

\n

The format of the image is QImage.Format_ARGB32_Premultiplied.

\n
\n
Parameters:
\n
    \n
  • size (QSize) – Size of the image

  • \n
  • aspectRatioMode (Qt.AspectRatioMode) – Aspect ratio how to scale the graphic

  • \n
\n
\n
Returns:
\n

The graphic as image

\n
\n
\n
\n\n
\n

See also

\n

toPixmap(), render()

\n
\n
\n\n
\n
\ndrawPath(path)[source]
\n

Store a path command in the command list

\n
\n
Parameters:
\n

path (QPainterPath) – Painter path

\n
\n
\n
\n

See also

\n

QPaintEngine.drawPath()

\n
\n
\n\n
\n
\ndrawPixmap(rect, pixmap, subRect)[source]
\n

Store a pixmap command in the command list

\n
\n
Parameters:
\n
    \n
  • rect (QRectF) – target rectangle

  • \n
  • pixmap (QPixmap) – Pixmap to be painted

  • \n
  • subRect (QRectF) – Reactangle of the pixmap to be painted

  • \n
\n
\n
\n
\n

See also

\n

QPaintEngine.drawPixmap()

\n
\n
\n\n
\n
\ndrawImage(rect, image, subRect, flags)[source]
\n

Store a image command in the command list

\n
\n
Parameters:
\n
    \n
  • rect (QRectF) – target rectangle

  • \n
  • image (QImage) – Pixmap to be painted

  • \n
  • subRect (QRectF) – Reactangle of the pixmap to be painted

  • \n
  • flags (Qt.ImageConversionFlags) – Pixmap to be painted

  • \n
\n
\n
\n
\n

See also

\n

QPaintEngine.drawImage()

\n
\n
\n\n
\n
\nupdateState(state)[source]
\n

Store a state command in the command list

\n
\n
Parameters:
\n

state (QPaintEngineState) – State to be stored

\n
\n
\n
\n

See also

\n

QPaintEngine.updateState()

\n
\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/graphic.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f6a160>, 'js_tag': .js_tag at 0x7f3d39f6b380>},
>) writing output... [ 69%] reference/index [app] emitting event: 'doctree-resolved'(>, 'reference/index') -[app] emitting event: 'html-page-context'('reference/index', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/plot', 'Plot widget fundamentals', 'N', 'next'), ('examples/vertical', 'Vertical plot demo', 'P', 'previous')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/index', 'current_page_name': 'reference/index', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6c57c40>, 'hasdoc': .hasdoc at 0x7fc7d6c54040>, 'toctree': . at 0x7fc7d6c54220>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': '../examples/vertical.html', 'title': 'Vertical plot demo'}, 'next': {'link': 'plot.html', 'title': 'Plot widget fundamentals'}, 'title': 'Reference', 'meta': {}, 'body': '
\n

Reference

\n

Public API:

\n\n

Private API:

\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/index.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d75276a0>, 'js_tag': .js_tag at 0x7fc7d7525440>}, >) +[app] emitting event: 'html-page-context'('reference/index', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/plot', 'Plot widget fundamentals', 'N', 'next'), ('examples/vertical', 'Vertical plot demo', 'P', 'previous')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/index', 'current_page_name': 'reference/index', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ebfc40>, 'hasdoc': .hasdoc at 0x7f3d39ebc040>, 'toctree': . at 0x7f3d39ebc220>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': '../examples/vertical.html', 'title': 'Vertical plot demo'}, 'next': {'link': 'plot.html', 'title': 'Plot widget fundamentals'}, 'title': 'Reference', 'meta': {}, 'body': '
\n

Reference

\n

Public API:

\n\n

Private API:

\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/index.rst.txt', 'toc': '\n', 'display_toc': False, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d3a9476a0>, 'js_tag': .js_tag at 0x7f3d3a945440>}, >) writing output... [ 72%] reference/interval -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(
>, 'reference/interval') -[app] emitting event: 'html-page-context'('reference/interval', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/plot_directpainter', 'QwtPlotDirectPainter', 'N', 'next'), ('reference/graphic', 'QwtGraphic', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/interval', 'current_page_name': 'reference/interval', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d7076a20>, 'hasdoc': .hasdoc at 0x7fc7d70765c0>, 'toctree': . at 0x7fc7d7524b80>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'graphic.html', 'title': 'QwtGraphic'}, 'next': {'link': 'plot_directpainter.html', 'title': 'QwtPlotDirectPainter'}, 'title': 'QwtInterval', 'meta': {}, 'body': '
\n

QwtInterval

\n
\n
\nclass qwt.interval.QwtInterval(minValue=0.0, maxValue=-1.0, borderFlags=None)[source]
\n

A class representing an interval

\n

The interval is represented by 2 doubles, the lower and the upper limit.

\n
\n
\nclass QwtInterval(minValue=0., maxValue=-1., borderFlags=None)
\n

Build an interval with from min/max values

\n
\n
Parameters:
\n
    \n
  • minValue (float) – Minimum value

  • \n
  • maxValue (float) – Maximum value

  • \n
  • borderFlags (int) – Include/Exclude borders

  • \n
\n
\n
\n
\n\n
\n
\nsetInterval(minValue, maxValue, borderFlags=None)[source]
\n

Assign the limits of the interval

\n
\n
Parameters:
\n
    \n
  • minValue (float) – Minimum value

  • \n
  • maxValue (float) – Maximum value

  • \n
  • borderFlags (int) – Include/Exclude borders

  • \n
\n
\n
\n
\n\n
\n
\nsetBorderFlags(borderFlags)[source]
\n

Change the border flags

\n
\n
Parameters:
\n

borderFlags (int) – Include/Exclude borders

\n
\n
\n
\n

See also

\n

borderFlags()

\n
\n
\n\n
\n
\nborderFlags()[source]
\n
\n
Returns:
\n

Border flags

\n
\n
\n
\n

See also

\n

setBorderFlags()

\n
\n
\n\n
\n
\nsetMinValue(minValue)[source]
\n

Assign the lower limit of the interval

\n
\n
Parameters:
\n

minValue (float) – Minimum value

\n
\n
\n
\n\n
\n
\nsetMaxValue(maxValue)[source]
\n

Assign the upper limit of the interval

\n
\n
Parameters:
\n

maxValue (float) – Maximum value

\n
\n
\n
\n\n
\n
\nminValue()[source]
\n
\n
Returns:
\n

Lower limit of the interval

\n
\n
\n
\n\n
\n
\nmaxValue()[source]
\n
\n
Returns:
\n

Upper limit of the interval

\n
\n
\n
\n\n
\n
\nisValid()[source]
\n

A interval is valid when minValue() <= maxValue().\nIn case of QwtInterval.ExcludeBorders it is true\nwhen minValue() < maxValue()

\n
\n
Returns:
\n

True, when the interval is valid

\n
\n
\n
\n\n
\n
\nwidth()[source]
\n

The width of invalid intervals is 0.0, otherwise the result is\nmaxValue() - minValue().

\n
\n
Returns:
\n

the width of an interval

\n
\n
\n
\n\n
\n
\nisNull()[source]
\n
\n
Returns:
\n

true, if isValid() && (minValue() >= maxValue())

\n
\n
\n
\n\n
\n
\ninvalidate()[source]
\n

The limits are set to interval [0.0, -1.0]

\n
\n

See also

\n

isValid()

\n
\n
\n\n
\n
\nnormalized()[source]
\n

Normalize the limits of the interval

\n

If maxValue() < minValue() the limits will be inverted.

\n
\n
Returns:
\n

Normalized interval

\n
\n
\n
\n

See also

\n

isValid(), inverted()

\n
\n
\n\n
\n
\ninverted()[source]
\n

Invert the limits of the interval

\n
\n
Returns:
\n

Inverted interval

\n
\n
\n
\n

See also

\n

normalized()

\n
\n
\n\n
\n
\ncontains(value)[source]
\n

Test if a value is inside an interval

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

true, if value >= minValue() && value <= maxValue()

\n
\n
\n
\n\n
\n
\nunite(other)[source]
\n

Unite two intervals

\n
\n
Parameters:
\n

other (qwt.interval.QwtInterval) – other interval to united with

\n
\n
Returns:
\n

united interval

\n
\n
\n
\n\n
\n
\nintersect(other)[source]
\n

Intersect two intervals

\n
\n
Parameters:
\n

other (qwt.interval.QwtInterval) – other interval to intersect with

\n
\n
Returns:
\n

intersected interval

\n
\n
\n
\n\n
\n
\nintersects(other)[source]
\n

Test if two intervals overlap

\n
\n
Parameters:
\n

other (qwt.interval.QwtInterval) – other interval

\n
\n
Returns:
\n

True, when the intervals are intersecting

\n
\n
\n
\n\n
\n
\nsymmetrize(value)[source]
\n

Adjust the limit that is closer to value, so that value becomes\nthe center of the interval.

\n
\n
Parameters:
\n

value (float) – Center

\n
\n
Returns:
\n

Interval with value as center

\n
\n
\n
\n\n
\n
\nlimited(lowerBound, upperBound)[source]
\n

Limit the interval, keeping the border modes

\n
\n
Parameters:
\n
    \n
  • lowerBound (float) – Lower limit

  • \n
  • upperBound (float) – Upper limit

  • \n
\n
\n
Returns:
\n

Limited interval

\n
\n
\n
\n\n
\n
\nextend(value)[source]
\n

Extend the interval

\n

If value is below minValue(), value becomes the lower limit.\nIf value is above maxValue(), value becomes the upper limit.

\n

extend() has no effect for invalid intervals

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

extended interval

\n
\n
\n
\n\n
\n
\nextend_fraction(value)[source]
\n

Extend the interval by a fraction of its width

\n
\n
Parameters:
\n

value (float) – Fraction

\n
\n
Returns:
\n

extended interval

\n
\n
\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/interval.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d7525440>, 'js_tag': .js_tag at 0x7fc7d75276a0>},
>) +[app] emitting event: 'html-page-context'('reference/interval', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/plot_directpainter', 'QwtPlotDirectPainter', 'N', 'next'), ('reference/graphic', 'QwtGraphic', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/interval', 'current_page_name': 'reference/interval', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3a296a20>, 'hasdoc': .hasdoc at 0x7f3d3a2965c0>, 'toctree': . at 0x7f3d3a944b80>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'graphic.html', 'title': 'QwtGraphic'}, 'next': {'link': 'plot_directpainter.html', 'title': 'QwtPlotDirectPainter'}, 'title': 'QwtInterval', 'meta': {}, 'body': '
\n

QwtInterval

\n
\n
\nclass qwt.interval.QwtInterval(minValue=0.0, maxValue=-1.0, borderFlags=None)[source]
\n

A class representing an interval

\n

The interval is represented by 2 doubles, the lower and the upper limit.

\n
\n
\nclass QwtInterval(minValue=0., maxValue=-1., borderFlags=None)
\n

Build an interval with from min/max values

\n
\n
Parameters:
\n
    \n
  • minValue (float) – Minimum value

  • \n
  • maxValue (float) – Maximum value

  • \n
  • borderFlags (int) – Include/Exclude borders

  • \n
\n
\n
\n
\n\n
\n
\nsetInterval(minValue, maxValue, borderFlags=None)[source]
\n

Assign the limits of the interval

\n
\n
Parameters:
\n
    \n
  • minValue (float) – Minimum value

  • \n
  • maxValue (float) – Maximum value

  • \n
  • borderFlags (int) – Include/Exclude borders

  • \n
\n
\n
\n
\n\n
\n
\nsetBorderFlags(borderFlags)[source]
\n

Change the border flags

\n
\n
Parameters:
\n

borderFlags (int) – Include/Exclude borders

\n
\n
\n
\n

See also

\n

borderFlags()

\n
\n
\n\n
\n
\nborderFlags()[source]
\n
\n
Returns:
\n

Border flags

\n
\n
\n
\n

See also

\n

setBorderFlags()

\n
\n
\n\n
\n
\nsetMinValue(minValue)[source]
\n

Assign the lower limit of the interval

\n
\n
Parameters:
\n

minValue (float) – Minimum value

\n
\n
\n
\n\n
\n
\nsetMaxValue(maxValue)[source]
\n

Assign the upper limit of the interval

\n
\n
Parameters:
\n

maxValue (float) – Maximum value

\n
\n
\n
\n\n
\n
\nminValue()[source]
\n
\n
Returns:
\n

Lower limit of the interval

\n
\n
\n
\n\n
\n
\nmaxValue()[source]
\n
\n
Returns:
\n

Upper limit of the interval

\n
\n
\n
\n\n
\n
\nisValid()[source]
\n

A interval is valid when minValue() <= maxValue().\nIn case of QwtInterval.ExcludeBorders it is true\nwhen minValue() < maxValue()

\n
\n
Returns:
\n

True, when the interval is valid

\n
\n
\n
\n\n
\n
\nwidth()[source]
\n

The width of invalid intervals is 0.0, otherwise the result is\nmaxValue() - minValue().

\n
\n
Returns:
\n

the width of an interval

\n
\n
\n
\n\n
\n
\nisNull()[source]
\n
\n
Returns:
\n

true, if isValid() && (minValue() >= maxValue())

\n
\n
\n
\n\n
\n
\ninvalidate()[source]
\n

The limits are set to interval [0.0, -1.0]

\n
\n

See also

\n

isValid()

\n
\n
\n\n
\n
\nnormalized()[source]
\n

Normalize the limits of the interval

\n

If maxValue() < minValue() the limits will be inverted.

\n
\n
Returns:
\n

Normalized interval

\n
\n
\n
\n

See also

\n

isValid(), inverted()

\n
\n
\n\n
\n
\ninverted()[source]
\n

Invert the limits of the interval

\n
\n
Returns:
\n

Inverted interval

\n
\n
\n
\n

See also

\n

normalized()

\n
\n
\n\n
\n
\ncontains(value)[source]
\n

Test if a value is inside an interval

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

true, if value >= minValue() && value <= maxValue()

\n
\n
\n
\n\n
\n
\nunite(other)[source]
\n

Unite two intervals

\n
\n
Parameters:
\n

other (qwt.interval.QwtInterval) – other interval to united with

\n
\n
Returns:
\n

united interval

\n
\n
\n
\n\n
\n
\nintersect(other)[source]
\n

Intersect two intervals

\n
\n
Parameters:
\n

other (qwt.interval.QwtInterval) – other interval to intersect with

\n
\n
Returns:
\n

intersected interval

\n
\n
\n
\n\n
\n
\nintersects(other)[source]
\n

Test if two intervals overlap

\n
\n
Parameters:
\n

other (qwt.interval.QwtInterval) – other interval

\n
\n
Returns:
\n

True, when the intervals are intersecting

\n
\n
\n
\n\n
\n
\nsymmetrize(value)[source]
\n

Adjust the limit that is closer to value, so that value becomes\nthe center of the interval.

\n
\n
Parameters:
\n

value (float) – Center

\n
\n
Returns:
\n

Interval with value as center

\n
\n
\n
\n\n
\n
\nlimited(lowerBound, upperBound)[source]
\n

Limit the interval, keeping the border modes

\n
\n
Parameters:
\n
    \n
  • lowerBound (float) – Lower limit

  • \n
  • upperBound (float) – Upper limit

  • \n
\n
\n
Returns:
\n

Limited interval

\n
\n
\n
\n\n
\n
\nextend(value)[source]
\n

Extend the interval

\n

If value is below minValue(), value becomes the lower limit.\nIf value is above maxValue(), value becomes the upper limit.

\n

extend() has no effect for invalid intervals

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

extended interval

\n
\n
\n
\n\n
\n
\nextend_fraction(value)[source]
\n

Extend the interval by a fraction of its width

\n
\n
Parameters:
\n

value (float) – Fraction

\n
\n
Returns:
\n

extended interval

\n
\n
\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/interval.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d3a945440>, 'js_tag': .js_tag at 0x7f3d3a9476a0>},
>) writing output... [ 75%] reference/plot -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, <#text: 'QEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'bool'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'QObject'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'QEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'bool'>) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, <#text: 'QResizeEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, <#text: 'QEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'bool'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'QPaintEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, <#text: 'QResizeEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, <#text: 'QPaintEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'QMouseEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'QMouseEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'QKeyEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'QKeyEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, <#text: 'QEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'bool'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'QObject'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'QEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'bool'>) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, <#text: 'QResizeEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, <#text: 'QEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'bool'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'QPaintEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, <#text: 'QResizeEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, <#text: 'QPaintEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'QMouseEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'QMouseEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'QKeyEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'QKeyEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(
, 'reference/plot') -[app] emitting event: 'html-page-context'('reference/plot', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/scale', 'Scales', 'N', 'next'), ('reference/index', 'Reference', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/plot', 'current_page_name': 'reference/plot', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b21940>, 'hasdoc': .hasdoc at 0x7fc7d6b21ee0>, 'toctree': . at 0x7fc7d6b21120>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'index.html', 'title': 'Reference'}, 'next': {'link': 'scale.html', 'title': 'Scales'}, 'title': 'Plot widget fundamentals', 'meta': {}, 'body': '
\n

Plot widget fundamentals

\n
\n

QwtPlot

\n
\n
\nclass qwt.plot.QwtPlot(*args)[source]
\n

A 2-D plotting widget

\n

QwtPlot is a widget for plotting two-dimensional graphs.\nAn unlimited number of plot items can be displayed on its canvas.\nPlot items might be curves (qwt.plot_curve.QwtPlotCurve),\nmarkers (qwt.plot_marker.QwtPlotMarker),\nthe grid (qwt.plot_grid.QwtPlotGrid), or anything else\nderived from QwtPlotItem.

\n

A plot can have up to four axes, with each plot item attached to an x- and\na y axis. The scales at the axes can be explicitly set (QwtScaleDiv), or\nare calculated from the plot items, using algorithms (QwtScaleEngine)\nwhich can be configured separately for each axis.

\n

The following example is a good starting point to see how to set up a\nplot widget:

\n
from qtpy import QtWidgets as QW\nimport qwt\nimport numpy as np\n\napp = QW.QApplication([])\nx = np.linspace(-10, 10, 500)\nplot = qwt.QwtPlot("Trigonometric functions")\nplot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend)\nqwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True)\nqwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True)\nplot.resize(600, 300)\nplot.show()\n
\n
\n../_images/QwtPlot_example.png\n
\n
\nclass QwtPlot([title=""][, parent=None])
\n
\n
Parameters:
\n
    \n
  • title (str) – Title text

  • \n
  • parent (QWidget) – Parent widget

  • \n
\n
\n
\n
\n\n
\n
\nitemAttached
\n

A signal indicating, that an item has been attached/detached

\n
\n
Parameters:
\n
    \n
  • plotItem – Plot item

  • \n
  • on – Attached/Detached

  • \n
\n
\n
\n
\n\n
\n
\nlegendDataChanged
\n

A signal with the attributes how to update\nthe legend entries for a plot item.

\n
\n
Parameters:
\n
    \n
  • itemInfo – Info about a plot item, build from itemToInfo()

  • \n
  • data – Attributes of the entries (usually <= 1) for the plot item.

  • \n
\n
\n
\n
\n\n
\n
\ninsertItem(item)[source]
\n

Insert a plot item

\n
\n
Parameters:
\n

item (qwt.plot.QwtPlotItem) – PlotItem

\n
\n
\n
\n

See also

\n

removeItem()

\n
\n
\n

Note

\n

This was a member of QwtPlotDict in older versions.

\n
\n
\n\n
\n
\nremoveItem(item)[source]
\n

Remove a plot item

\n
\n
Parameters:
\n

item (qwt.plot.QwtPlotItem) – PlotItem

\n
\n
\n
\n

See also

\n

insertItem()

\n
\n
\n

Note

\n

This was a member of QwtPlotDict in older versions.

\n
\n
\n\n
\n
\ndetachItems(rtti=None)[source]
\n

Detach items from the dictionary

\n
\n
Parameters:
\n

rtti (int or None) – In case of QwtPlotItem.Rtti_PlotItem or None (default) detach all items otherwise only those items of the type rtti.

\n
\n
\n
\n

Note

\n

This was a member of QwtPlotDict in older versions.

\n
\n
\n\n
\n
\nitemList(rtti=None)[source]
\n

A list of attached plot items.

\n

Use caution when iterating these lists, as removing/detaching an\nitem will invalidate the iterator. Instead you can place pointers\nto objects to be removed in a removal list, and traverse that list\nlater.

\n
\n
Parameters:
\n

rtti (int) – In case of QwtPlotItem.Rtti_PlotItem detach all items otherwise only those items of the type rtti.

\n
\n
Returns:
\n

List of all attached plot items of a specific type. If rtti is None, return a list of all attached plot items.

\n
\n
\n
\n

Note

\n

This was a member of QwtPlotDict in older versions.

\n
\n
\n\n
\n
\nsetFlatStyle(state)[source]
\n

Set or reset the flatStyle option

\n

If the flatStyle option is set, the plot will be\nrendered without any margin (scales, canvas, layout).

\n

Enabling this option makes the plot look flat and compact.

\n

The flatStyle option is set to True by default.

\n
\n
Parameters:
\n

state (bool) – True or False.

\n
\n
\n
\n

See also

\n

flatStyle()

\n
\n
\n\n
\n
\nflatStyle()[source]
\n
\n
Returns:
\n

True if the flatStyle option is set.

\n
\n
\n
\n

See also

\n

setFlatStyle()

\n
\n
\n\n
\n
\ninitAxesData()[source]
\n

Initialize axes

\n
\n\n
\n
\naxisWidget(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Scale widget of the specified axis, or None if axisId is invalid.

\n
\n
\n
\n\n
\n
\nsetAxisScaleEngine(axisId, scaleEngine)[source]
\n

Change the scale engine for an axis

\n
\n
Parameters:
\n
\n
\n
\n
\n

See also

\n

axisScaleEngine()

\n
\n
\n\n
\n
\naxisScaleEngine(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Scale engine for a specific axis

\n
\n
\n
\n

See also

\n

setAxisScaleEngine()

\n
\n
\n\n
\n
\naxisAutoScale(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

True, if autoscaling is enabled

\n
\n
\n
\n\n
\n
\naxisEnabled(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

True, if a specified axis is enabled

\n
\n
\n
\n\n
\n
\naxisFont(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

The font of the scale labels for a specified axis

\n
\n
\n
\n\n
\n
\naxisMaxMajor(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

The maximum number of major ticks for a specified axis

\n
\n
\n\n
\n\n
\n
\naxisMaxMinor(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

The maximum number of minor ticks for a specified axis

\n
\n
\n\n
\n\n
\n
\naxisScaleDiv(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

The scale division of a specified axis

\n
\n
\n

axisScaleDiv(axisId).lowerBound(), axisScaleDiv(axisId).upperBound()\nare the current limits of the axis scale.

\n\n
\n\n
\n
\naxisScaleDraw(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Specified scaleDraw for axis, or NULL if axis is invalid.

\n
\n
\n
\n\n
\n
\naxisStepSize(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

step size parameter value

\n
\n
\n

This doesn’t need to be the step size of the current scale.

\n\n
\n\n
\n
\naxisMargin(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Margin in % of the canvas size

\n
\n
\n
\n

See also

\n

setAxisMargin()

\n
\n
\n\n
\n
\naxisInterval(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

The current interval of the specified axis

\n
\n
\n

This is only a convenience function for axisScaleDiv(axisId).interval()

\n\n
\n\n
\n
\naxisTitle(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Title of a specified axis

\n
\n
\n
\n\n
\n
\nenableAxis(axisId, tf=True)[source]
\n

Enable or disable a specified axis

\n

When an axis is disabled, this only means that it is not\nvisible on the screen. Curves, markers and can be attached\nto disabled axes, and transformation of screen coordinates\ninto values works as normal.

\n

Only xBottom and yLeft are enabled by default.

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • tf (bool) – True (enabled) or False (disabled)

  • \n
\n
\n
\n
\n\n
\n
\ninvTransform(axisId, pos)[source]
\n

Transform the x or y coordinate of a position in the\ndrawing region into a value.

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • pos (int) – position

  • \n
\n
\n
\n
\n

Warning

\n

The position can be an x or a y coordinate,\ndepending on the specified axis.

\n
\n
\n\n
\n
\ntransform(axisId, value)[source]
\n

Transform a value into a coordinate in the plotting region

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • value (fload) – Value

  • \n
\n
\n
Returns:
\n

X or Y coordinate in the plotting region corresponding to the value.

\n
\n
\n
\n\n
\n
\nsetAxisFont(axisId, font)[source]
\n

Change the font of an axis

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • font (QFont) – Font

  • \n
\n
\n
\n
\n

Warning

\n

This function changes the font of the tick labels,\nnot of the axis title.

\n
\n
\n\n
\n
\nsetAxisAutoScale(axisId, on=True)[source]
\n

Enable autoscaling for a specified axis

\n

This member function is used to switch back to autoscaling mode\nafter a fixed scale has been set. Autoscaling is enabled by default.

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n\n
\n

Note

\n

The autoscaling flag has no effect until updateAxes() is executed\n( called by replot() ).

\n
\n
\n\n
\n
\nsetAxisScale(axisId, min_, max_, stepSize=0)[source]
\n

Disable autoscaling and specify a fixed scale for a selected axis.

\n

In updateAxes() the scale engine calculates a scale division from the\nspecified parameters, that will be assigned to the scale widget. So\nupdates of the scale widget usually happen delayed with the next replot.

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • min (float) – Minimum of the scale

  • \n
  • max (float) – Maximum of the scale

  • \n
  • stepSize (float) – Major step size. If <code>step == 0</code>, the step size is calculated automatically using the maxMajor setting.

  • \n
\n
\n
\n\n
\n\n
\n
\nsetAxisScaleDiv(axisId, scaleDiv)[source]
\n

Disable autoscaling and specify a fixed scale for a selected axis.

\n

The scale division will be stored locally only until the next call\nof updateAxes(). So updates of the scale widget usually happen delayed with\nthe next replot.

\n
\n
Parameters:
\n
\n
\n
\n\n
\n\n
\n
\nsetAxisScaleDraw(axisId, scaleDraw)[source]
\n

Set a scale draw

\n
\n
Parameters:
\n
\n
\n
\n

By passing scaleDraw it is possible to extend QwtScaleDraw\nfunctionality and let it take place in QwtPlot. Please note\nthat scaleDraw has to be created with new and will be deleted\nby the corresponding QwtScale member ( like a child object ).

\n
\n

See also

\n

qwt.scale_draw.QwtScaleDraw,\nqwt.scale_widget.QwtScaleWigdet

\n
\n
\n

Warning

\n

The attributes of scaleDraw will be overwritten by those of the\nprevious QwtScaleDraw.

\n
\n
\n\n
\n
\nsetAxisLabelAlignment(axisId, alignment)[source]
\n

Change the alignment of the tick labels

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • alignment (Qt.Alignment) – Or’d Qt.AlignmentFlags

  • \n
\n
\n
\n\n
\n\n
\n
\nsetAxisLabelRotation(axisId, rotation)[source]
\n

Rotate all tick labels

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • rotation (float) – Angle in degrees. When changing the label rotation, the label alignment might be adjusted too.

  • \n
\n
\n
\n
\n

See also

\n

setLabelRotation(), setAxisLabelAlignment()

\n
\n
\n\n
\n
\nsetAxisLabelAutoSize(axisId, state)[source]
\n

Set tick labels automatic size option (default: on)

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • state (bool) – On/off

  • \n
\n
\n
\n\n
\n\n
\n
\nsetAxisMaxMinor(axisId, maxMinor)[source]
\n

Set the maximum number of minor scale intervals for a specified axis

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • maxMinor (int) – Maximum number of minor steps

  • \n
\n
\n
\n
\n

See also

\n

axisMaxMinor()

\n
\n
\n\n
\n
\nsetAxisMaxMajor(axisId, maxMajor)[source]
\n

Set the maximum number of major scale intervals for a specified axis

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • maxMajor (int) – Maximum number of major steps

  • \n
\n
\n
\n
\n

See also

\n

axisMaxMajor()

\n
\n
\n\n
\n
\nsetAxisMargin(axisId, margin)[source]
\n

Set the margin of the scale widget

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • margin (float) – Margin in % of the canvas size

  • \n
\n
\n
\n
\n

See also

\n

axisMargin()

\n
\n
\n\n
\n
\nsetAxisTitle(axisId, title)[source]
\n

Change the title of a specified axis

\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\nupdateAxes()[source]
\n

Rebuild the axes scales

\n

In case of autoscaling the boundaries of a scale are calculated\nfrom the bounding rectangles of all plot items, having the\nQwtPlotItem.AutoScale flag enabled (QwtScaleEngine.autoScale()).\nThen a scale division is calculated (QwtScaleEngine.didvideScale())\nand assigned to scale widget.

\n

When the scale boundaries have been assigned with setAxisScale() a\nscale division is calculated (QwtScaleEngine.didvideScale())\nfor this interval and assigned to the scale widget.

\n

When the scale has been set explicitly by setAxisScaleDiv() the\nlocally stored scale division gets assigned to the scale widget.

\n

The scale widget indicates modifications by emitting a\nQwtScaleWidget.scaleDivChanged() signal.

\n

updateAxes() is usually called by replot().

\n\n
\n\n
\n
\nsetCanvas(canvas)[source]
\n

Set the drawing canvas of the plot widget.

\n

The default canvas is a QwtPlotCanvas.

\n
\n
Parameters:
\n

canvas (QWidget) – Canvas Widget

\n
\n
\n
\n

See also

\n

canvas()

\n
\n
\n\n
\n
\nevent(self, e: QEvent | None) bool[source]
\n
\n\n
\n
\neventFilter(self, a0: QObject | None, a1: QEvent | None) bool[source]
\n
\n\n
\n
\nautoRefresh()[source]
\n

Replots the plot if autoReplot() is True.

\n
\n\n
\n
\nsetAutoReplot(tf=True)[source]
\n

Set or reset the autoReplot option

\n

If the autoReplot option is set, the plot will be\nupdated implicitly by manipulating member functions.\nSince this may be time-consuming, it is recommended\nto leave this option switched off and call replot()\nexplicitly if necessary.

\n

The autoReplot option is set to false by default, which\nmeans that the user has to call replot() in order\nto make changes visible.

\n
\n
Parameters:
\n

tf (bool) – True or False. Defaults to True.

\n
\n
\n
\n

See also

\n

autoReplot()

\n
\n
\n\n
\n
\nautoReplot()[source]
\n
\n
Returns:
\n

True if the autoReplot option is set.

\n
\n
\n
\n

See also

\n

setAutoReplot()

\n
\n
\n\n
\n
\nsetTitle(title)[source]
\n

Change the plot’s title

\n
\n
Parameters:
\n

title (str or qwt.text.QwtText) – New title

\n
\n
\n
\n

See also

\n

title()

\n
\n
\n\n
\n
\ntitle()[source]
\n
\n
Returns:
\n

Title of the plot

\n
\n
\n
\n

See also

\n

setTitle()

\n
\n
\n\n
\n
\ntitleLabel()[source]
\n
\n
Returns:
\n

Title label widget.

\n
\n
\n
\n\n
\n
\nsetFooter(text)[source]
\n

Change the text the footer

\n
\n
Parameters:
\n

text (str or qwt.text.QwtText) – New text of the footer

\n
\n
\n
\n

See also

\n

footer()

\n
\n
\n\n
\n
\nfooter()[source]
\n
\n
Returns:
\n

Text of the footer

\n
\n
\n
\n

See also

\n

setFooter()

\n
\n
\n\n
\n
\nfooterLabel()[source]
\n
\n
Returns:
\n

Footer label widget.

\n
\n
\n
\n\n
\n
\nsetPlotLayout(layout)[source]
\n

Assign a new plot layout

\n
\n
Parameters:
\n

layout (qwt.plot_layout.QwtPlotLayout) – Layout

\n
\n
\n
\n

See also

\n

plotLayout()

\n
\n
\n\n
\n
\nplotLayout()[source]
\n
\n
Returns:
\n

the plot’s layout

\n
\n
\n
\n

See also

\n

setPlotLayout()

\n
\n
\n\n
\n
\nlegend()[source]
\n
\n
Returns:
\n

the plot’s legend

\n
\n
\n
\n

See also

\n

insertLegend()

\n
\n
\n\n
\n
\ncanvas()[source]
\n
\n
Returns:
\n

the plot’s canvas

\n
\n
\n
\n\n
\n
\nsizeHint()[source]
\n
\n
Returns:
\n

Size hint for the plot widget

\n
\n
\n
\n

See also

\n

minimumSizeHint()

\n
\n
\n\n
\n
\nminimumSizeHint()[source]
\n
\n
Returns:
\n

Return a minimum size hint

\n
\n
\n
\n\n
\n
\nresizeEvent(self, a0: QResizeEvent | None)[source]
\n
\n\n
\n
\nreplot()[source]
\n

Redraw the plot

\n

If the autoReplot option is not set (which is the default)\nor if any curves are attached to raw data, the plot has to\nbe refreshed explicitly in order to make changes visible.

\n\n
\n\n
\n
\nupdateLayout()[source]
\n

Adjust plot content to its current size.

\n
\n

See also

\n

resizeEvent()

\n
\n
\n\n
\n
\ngetCanvasMarginsHint(maps, canvasRect)[source]
\n

Calculate the canvas margins

\n
\n
Parameters:
\n
    \n
  • maps (list) – QwtPlot.axisCnt maps, mapping between plot and paint device coordinates

  • \n
  • canvasRect (QRectF) – Bounding rectangle where to paint

  • \n
\n
\n
\n

Plot items might indicate, that they need some extra space\nat the borders of the canvas by the QwtPlotItem.Margins flag.

\n
\n

See also

\n

updateCanvasMargins(), getCanvasMarginHint()

\n
\n
\n\n
\n
\nupdateCanvasMargins()[source]
\n

Update the canvas margins

\n

Plot items might indicate, that they need some extra space\nat the borders of the canvas by the QwtPlotItem.Margins flag.

\n\n
\n\n
\n
\ndrawCanvas(painter)[source]
\n

Redraw the canvas.

\n
\n
Parameters:
\n

painter (QPainter) – Painter used for drawing

\n
\n
\n
\n

Warning

\n

drawCanvas calls drawItems what is also used\nfor printing. Applications that like to add individual\nplot items better overload drawItems()

\n
\n\n
\n\n
\n
\ndrawItems(painter, canvasRect, maps)[source]
\n

Redraw the canvas.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter used for drawing

  • \n
  • canvasRect (QRectF) – Bounding rectangle where to paint

  • \n
  • maps (list) – QwtPlot.axisCnt maps, mapping between plot and paint device coordinates

  • \n
\n
\n
\n
\n

Note

\n

Usually canvasRect is contentsRect() of the plot canvas.\nDue to a bug in Qt this rectangle might be wrong for certain\nframe styles ( f.e QFrame.Box ) and it might be necessary to\nfix the margins manually using QWidget.setContentsMargins()

\n
\n
\n\n
\n
\ncanvasMap(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis

\n
\n
Returns:
\n

Map for the axis on the canvas. With this map pixel coordinates can translated to plot coordinates and vice versa.

\n
\n
\n\n
\n\n
\n
\nsetCanvasBackground(brush)[source]
\n

Change the background of the plotting area

\n

Sets brush to QPalette.Window of all color groups of\nthe palette of the canvas. Using canvas().setPalette()\nis a more powerful way to set these colors.

\n
\n
Parameters:
\n

brush (QBrush) – New background brush

\n
\n
\n
\n

See also

\n

canvasBackground()

\n
\n
\n\n
\n
\ncanvasBackground()[source]
\n
\n
Returns:
\n

Background brush of the plotting area.

\n
\n
\n
\n

See also

\n

setCanvasBackground()

\n
\n
\n\n
\n
\naxisValid(axis_id)[source]
\n
\n
Parameters:
\n

axis_id (int) – Axis

\n
\n
Returns:
\n

True if the specified axis exists, otherwise False

\n
\n
\n
\n\n
\n
\ninsertLegend(legend, pos=None, ratio=-1)[source]
\n

Insert a legend

\n

If the position legend is QwtPlot.LeftLegend or QwtPlot.RightLegend\nthe legend will be organized in one column from top to down.\nOtherwise the legend items will be placed in a table\nwith a best fit number of columns from left to right.

\n

insertLegend() will set the plot widget as parent for the legend.\nThe legend will be deleted in the destructor of the plot or when\nanother legend is inserted.

\n

Legends, that are not inserted into the layout of the plot widget\nneed to connect to the legendDataChanged() signal. Calling updateLegend()\ninitiates this signal for an initial update. When the application code\nwants to implement its own layout this also needs to be done for\nrendering plots to a document ( see QwtPlotRenderer ).

\n
\n
Parameters:
\n
    \n
  • legend (qwt.legend.QwtAbstractLegend) – Legend

  • \n
  • pos (QwtPlot.LegendPosition) – The legend’s position.

  • \n
  • ratio (float) – Ratio between legend and the bounding rectangle of title, canvas and axes

  • \n
\n
\n
\n
\n

Note

\n

For top/left position the number of columns will be limited to 1,\notherwise it will be set to unlimited.

\n
\n
\n

Note

\n

The legend will be shrunk if it would need more space than the\ngiven ratio. The ratio is limited to ]0.0 .. 1.0].\nIn case of <= 0.0 it will be reset to the default ratio.\nThe default vertical/horizontal ratio is 0.33/0.5.

\n
\n\n
\n\n
\n
\nupdateLegend(plotItem=None)[source]
\n

If plotItem is None, emit QwtPlot.legendDataChanged for all\nplot item. Otherwise, emit the signal for passed plot item.

\n
\n
Parameters:
\n

plotItem (qwt.plot.QwtPlotItem) – Plot item

\n
\n
\n\n
\n\n
\n
\nupdateLegendItems(plotItem, legendData)[source]
\n

Update all plot items interested in legend attributes

\n

Call QwtPlotItem.updateLegend(), when the\nQwtPlotItem.LegendInterest flag is set.

\n
\n
Parameters:
\n
    \n
  • plotItem (qwt.plot.QwtPlotItem) – Plot item

  • \n
  • legendData (list) – Entries to be displayed for the plot item ( usually 1 )

  • \n
\n
\n
\n
\n

See also

\n

QwtPlotItem.LegendInterest(),\nQwtPlotItem.updateLegend()

\n
\n
\n\n
\n
\nattachItem(plotItem, on)[source]
\n

Attach/Detach a plot item

\n
\n
Parameters:
\n
    \n
  • plotItem (qwt.plot.QwtPlotItem) – Plot item

  • \n
  • on (bool) – When true attach the item, otherwise detach it

  • \n
\n
\n
\n
\n\n
\n
\nprint_(printer)[source]
\n

Print plot to printer

\n
\n
Parameters:
\n

printer (QPaintDevice or QPrinter or QSvgGenerator) – Printer

\n
\n
\n
\n\n
\n
\nexportTo(filename, size=(800, 600), size_mm=None, resolution=85, format_=None)[source]
\n

Export plot to PDF or image file (SVG, PNG, …)

\n
\n
Parameters:
\n
    \n
  • filename (str) – Filename

  • \n
  • size (tuple) – (width, height) size in pixels

  • \n
  • size_mm (tuple) – (width, height) size in millimeters

  • \n
  • resolution (int) – Resolution in dots per Inch (dpi)

  • \n
  • format (str) – File format (PDF, SVG, PNG, …)

  • \n
\n
\n
\n
\n\n
\n\n
\n
\n

QwtPlotItem

\n
\n
\nclass qwt.plot.QwtPlotItem(title=None, icon=None)[source]
\n

Base class for items on the plot canvas

\n

A plot item is “something”, that can be painted on the plot canvas,\nor only affects the scales of the plot widget. They can be categorized as:

\n
    \n
  • Representator

    \n

    A “Representator” is an item that represents some sort of data\non the plot canvas. The different representator classes are organized\naccording to the characteristics of the data:

    \n
    \n
    \n
    \n
  • \n
  • Decorators

    \n

    A “Decorator” is an item, that displays additional information, that\nis not related to any data:

    \n
    \n
    \n
  • \n
\n

Depending on the QwtPlotItem.ItemAttribute flags, an item is included\ninto autoscaling or has an entry on the legend.

\n

Before misusing the existing item classes it might be better to\nimplement a new type of plot item\n( don’t implement a watermark as spectrogram ).\nDeriving a new type of QwtPlotItem primarily means to implement\nthe YourPlotItem.draw() method.

\n
\n

See also

\n

The cpuplot example shows the implementation of additional plot items.

\n
\n
\n
\nclass QwtPlotItem([title=None])
\n

Constructor

\n
\n
Parameters:
\n

title (qwt.text.QwtText or str) – Title of the item

\n
\n
\n
\n\n
\n
\nattach(plot)[source]
\n

Attach the item to a plot.

\n

This method will attach a QwtPlotItem to the QwtPlot argument.\nIt will first detach the QwtPlotItem from any plot from a previous\ncall to attach (if necessary). If a None argument is passed, it will\ndetach from any QwtPlot it was attached to.

\n
\n
Parameters:
\n

plot (qwt.plot.QwtPlot) – Plot widget

\n
\n
\n
\n

See also

\n

detach()

\n
\n
\n\n
\n
\ndetach()[source]
\n

Detach the item from a plot.

\n

This method detaches a QwtPlotItem from any QwtPlot it has been\nassociated with.

\n
\n

See also

\n

attach()

\n
\n
\n\n
\n
\nrtti()[source]
\n

Return rtti for the specific class represented. QwtPlotItem is\nsimply a virtual interface class, and base classes will implement\nthis method with specific rtti values so a user can differentiate\nthem.

\n
\n
Returns:
\n

rtti value

\n
\n
\n
\n\n
\n
\nplot()[source]
\n
\n
Returns:
\n

attached plot

\n
\n
\n
\n\n
\n
\nz()[source]
\n

Plot items are painted in increasing z-order.

\n
\n
Returns:
\n

item z order

\n
\n
\n
\n

See also

\n

setZ(), QwtPlotDict.itemList()

\n
\n
\n\n
\n
\nsetZ(z)[source]
\n

Set the z value

\n

Plot items are painted in increasing z-order.

\n
\n
Parameters:
\n

z (float) – Z-value

\n
\n
\n
\n

See also

\n

z(), QwtPlotDict.itemList()

\n
\n
\n\n
\n
\nsetTitle(title)[source]
\n

Set a new title

\n
\n
Parameters:
\n

title (qwt.text.QwtText or str) – Title

\n
\n
\n
\n

See also

\n

title()

\n
\n
\n\n
\n
\ntitle()[source]
\n
\n
Returns:
\n

Title of the item

\n
\n
\n
\n

See also

\n

setTitle()

\n
\n
\n\n
\n
\nsetIcon(icon)[source]
\n

Set item icon

\n
\n
Parameters:
\n

icon (QIcon) – Icon

\n
\n
\n
\n

See also

\n

icon()

\n
\n
\n\n
\n
\nicon()[source]
\n
\n
Returns:
\n

Icon of the item

\n
\n
\n
\n

See also

\n

setIcon()

\n
\n
\n\n
\n
\nsetItemAttribute(attribute, on=True)[source]
\n

Toggle an item attribute

\n
\n
Parameters:
\n
    \n
  • attribute (int) – Attribute type

  • \n
  • on (bool) – True/False

  • \n
\n
\n
\n
\n

See also

\n

testItemAttribute()

\n
\n
\n\n
\n
\ntestItemAttribute(attribute)[source]
\n

Test an item attribute

\n
\n
Parameters:
\n

attribute (int) – Attribute type

\n
\n
Returns:
\n

True/False

\n
\n
\n
\n

See also

\n

setItemAttribute()

\n
\n
\n\n
\n
\nsetItemInterest(interest, on=True)[source]
\n

Toggle an item interest

\n
\n
Parameters:
\n
    \n
  • attribute (int) – Interest type

  • \n
  • on (bool) – True/False

  • \n
\n
\n
\n
\n

See also

\n

testItemInterest()

\n
\n
\n\n
\n
\ntestItemInterest(interest)[source]
\n

Test an item interest

\n
\n
Parameters:
\n

attribute (int) – Interest type

\n
\n
Returns:
\n

True/False

\n
\n
\n
\n

See also

\n

setItemInterest()

\n
\n
\n\n
\n
\nsetRenderHint(hint, on=True)[source]
\n

Toggle a render hint

\n
\n
Parameters:
\n
    \n
  • hint (int) – Render hint

  • \n
  • on (bool) – True/False

  • \n
\n
\n
\n
\n

See also

\n

testRenderHint()

\n
\n
\n\n
\n
\ntestRenderHint(hint)[source]
\n

Test a render hint

\n
\n
Parameters:
\n

attribute (int) – Render hint

\n
\n
Returns:
\n

True/False

\n
\n
\n
\n

See also

\n

setRenderHint()

\n
\n
\n\n
\n
\nsetLegendIconSize(size)[source]
\n

Set the size of the legend icon

\n

The default setting is 8x8 pixels

\n
\n
Parameters:
\n

size (QSize) – Size

\n
\n
\n\n
\n\n
\n
\nlegendIconSize()[source]
\n
\n
Returns:
\n

Legend icon size

\n
\n
\n\n
\n\n
\n
\nlegendIcon(index, size)[source]
\n
\n
Parameters:
\n
    \n
  • index (int) – Index of the legend entry (usually there is only one)

  • \n
  • size (QSizeF) – Icon size

  • \n
\n
\n
Returns:
\n

Icon representing the item on the legend

\n
\n
\n

The default implementation returns an invalid icon

\n\n
\n\n
\n
\nshow()[source]
\n

Show the item

\n
\n\n
\n
\nhide()[source]
\n

Hide the item

\n
\n\n
\n
\nsetVisible(on)[source]
\n

Show/Hide the item

\n
\n
Parameters:
\n

on (bool) – Show if True, otherwise hide

\n
\n
\n
\n

See also

\n

isVisible(), show(), hide()

\n
\n
\n\n
\n
\nisVisible()[source]
\n
\n
Returns:
\n

True if visible

\n
\n
\n
\n

See also

\n

setVisible(), show(), hide()

\n
\n
\n\n
\n
\nitemChanged()[source]
\n

Update the legend and call QwtPlot.autoRefresh() for the\nparent plot.

\n
\n

See also

\n

QwtPlot.legendChanged(), QwtPlot.autoRefresh()

\n
\n
\n\n
\n
\nlegendChanged()[source]
\n

Update the legend of the parent plot.

\n\n
\n\n
\n
\nsetAxes(xAxis, yAxis)[source]
\n

Set X and Y axis

\n

The item will painted according to the coordinates of its Axes.

\n
\n
Parameters:
\n
    \n
  • xAxis (int) – X Axis (QwtPlot.xBottom or QwtPlot.xTop)

  • \n
  • yAxis (int) – Y Axis (QwtPlot.yLeft or QwtPlot.yRight)

  • \n
\n
\n
\n\n
\n\n
\n
\nsetAxis(xAxis, yAxis)[source]
\n

Set X and Y axis

\n
\n

Warning

\n

setAxis has been removed in Qwt6: please use\nsetAxes() instead

\n
\n
\n\n
\n
\nsetXAxis(axis)[source]
\n

Set the X axis

\n

The item will painted according to the coordinates its Axes.

\n
\n
Parameters:
\n

axis (int) – X Axis (QwtPlot.xBottom or QwtPlot.xTop)

\n
\n
\n\n
\n\n
\n
\nsetYAxis(axis)[source]
\n

Set the Y axis

\n

The item will painted according to the coordinates its Axes.

\n
\n
Parameters:
\n

axis (int) – Y Axis (QwtPlot.yLeft or QwtPlot.yRight)

\n
\n
\n\n
\n\n
\n
\nxAxis()[source]
\n
\n
Returns:
\n

xAxis

\n
\n
\n
\n\n
\n
\nyAxis()[source]
\n
\n
Returns:
\n

yAxis

\n
\n
\n
\n\n
\n
\nboundingRect()[source]
\n
\n
Returns:
\n

An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)

\n
\n
\n
\n

Note

\n

A width or height < 0.0 is ignored by the autoscaler

\n
\n
\n\n
\n
\ngetCanvasMarginHint(xMap, yMap, canvasRect)[source]
\n

Calculate a hint for the canvas margin

\n

When the QwtPlotItem::Margins flag is enabled the plot item\nindicates, that it needs some margins at the borders of the canvas.\nThis is f.e. used by bar charts to reserve space for displaying\nthe bars.

\n

The margins are in target device coordinates ( pixels on screen )

\n
\n
Parameters:
\n
\n
\n
\n\n
\n\n
\n
\nlegendData()[source]
\n

Return all information, that is needed to represent\nthe item on the legend

\n

QwtLegendData is basically a list of QVariants that makes it\npossible to overload and reimplement legendData() to\nreturn almost any type of information, that is understood\nby the receiver that acts as the legend.

\n

The default implementation returns one entry with\nthe title() of the item and the legendIcon().

\n
\n
Returns:
\n

Data, that is needed to represent the item on the legend

\n
\n
\n\n
\n\n
\n
\nupdateLegend(item, data)[source]
\n

Update the item to changes of the legend info

\n

Plot items that want to display a legend ( not those, that want to\nbe displayed on a legend ! ) will have to implement updateLegend().

\n

updateLegend() is only called when the LegendInterest interest\nis enabled. The default implementation does nothing.

\n
\n
Parameters:
\n
    \n
  • item (qwt.plot.QwtPlotItem) – Plot item to be displayed on a legend

  • \n
  • data (list) – Attributes how to display item on the legend

  • \n
\n
\n
\n
\n

Note

\n

Plot items, that want to be displayed on a legend\nneed to enable the QwtPlotItem.Legend flag and to implement\nlegendData() and legendIcon()

\n
\n
\n\n
\n
\nscaleRect(xMap, yMap)[source]
\n

Calculate the bounding scale rectangle of 2 maps

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Bounding scale rect of the scale maps, not normalized

\n
\n
\n
\n\n
\n
\npaintRect(xMap, yMap)[source]
\n

Calculate the bounding paint rectangle of 2 maps

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Bounding paint rectangle of the scale maps, not normalized

\n
\n
\n
\n\n
\n\n
\n
\n

QwtPlotCanvas

\n
\n
\nclass qwt.plot_canvas.QwtPlotCanvas(plot=None)[source]
\n

Canvas of a QwtPlot.

\n

Canvas is the widget where all plot items are displayed

\n\n

Paint attributes:

\n
\n
    \n
  • QwtPlotCanvas.BackingStore:

    \n
    \n

    Paint double buffered reusing the content of the pixmap buffer\nwhen possible.

    \n

    Using a backing store might improve the performance significantly,\nwhen working with widget overlays (like rubber bands).\nDisabling the cache might improve the performance for\nincremental paints\n(using qwt.plot_directpainter.QwtPlotDirectPainter).

    \n
    \n
  • \n
  • QwtPlotCanvas.Opaque:

    \n
    \n

    Try to fill the complete contents rectangle of the plot canvas

    \n

    When using styled backgrounds Qt assumes, that the canvas doesn’t\nfill its area completely (f.e because of rounded borders) and\nfills the area below the canvas. When this is done with gradients\nit might result in a serious performance bottleneck - depending on\nthe size.

    \n

    When the Opaque attribute is enabled the canvas tries to\nidentify the gaps with some heuristics and to fill those only.

    \n
    \n

    Warning

    \n

    Will not work for semitransparent backgrounds

    \n
    \n
    \n
  • \n
  • QwtPlotCanvas.HackStyledBackground:

    \n
    \n

    Try to improve painting of styled backgrounds

    \n

    QwtPlotCanvas supports the box model attributes for\ncustomizing the layout with style sheets. Unfortunately\nthe design of Qt style sheets has no concept how to\nhandle backgrounds with rounded corners - beside of padding.

    \n

    When HackStyledBackground is enabled the plot canvas tries\nto separate the background from the background border\nby reverse engineering to paint the background before and\nthe border after the plot items. In this order the border\ngets perfectly antialiased and you can avoid some pixel\nartifacts in the corners.

    \n
    \n
  • \n
  • QwtPlotCanvas.ImmediatePaint:

    \n
    \n

    When ImmediatePaint is set replot() calls repaint()\ninstead of update().

    \n
    \n

    See also

    \n

    replot(), QWidget.repaint(),\nQWidget.update()

    \n
    \n
    \n
  • \n
\n
\n

Focus indicators:

\n
\n
    \n
  • QwtPlotCanvas.NoFocusIndicator:

    \n
    \n

    Don’t paint a focus indicator

    \n
    \n
  • \n
  • QwtPlotCanvas.CanvasFocusIndicator:

    \n
    \n

    The focus is related to the complete canvas.\nPaint the focus indicator using paintFocus()

    \n
    \n
  • \n
  • QwtPlotCanvas.ItemFocusIndicator:

    \n
    \n

    The focus is related to an item (curve, point, …) on\nthe canvas. It is up to the application to display a\nfocus indication using f.e. highlighting.

    \n
    \n
  • \n
\n
\n
\n
\nclass QwtPlotCanvas([plot=None])
\n

Constructor

\n
\n
Parameters:
\n

plot (qwt.plot.QwtPlot) – Parent plot widget

\n
\n
\n\n
\n\n
\n
\nplot()[source]
\n
\n
Returns:
\n

Parent plot widget

\n
\n
\n
\n\n
\n
\nsetPaintAttribute(attribute, on=True)[source]
\n

Changing the paint attributes

\n

Paint attributes:

\n
\n
    \n
  • QwtPlotCanvas.BackingStore

  • \n
  • QwtPlotCanvas.Opaque

  • \n
  • QwtPlotCanvas.HackStyledBackground

  • \n
  • QwtPlotCanvas.ImmediatePaint

  • \n
\n
\n
\n
Parameters:
\n
    \n
  • attribute (int) – Paint attribute

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n\n
\n\n
\n
\ntestPaintAttribute(attribute)[source]
\n

Test whether a paint attribute is enabled

\n
\n
Parameters:
\n

attribute (int) – Paint attribute

\n
\n
Returns:
\n

True, when attribute is enabled

\n
\n
\n
\n

See also

\n

setPaintAttribute()

\n
\n
\n\n
\n
\nbackingStore()[source]
\n
\n
Returns:
\n

Backing store, might be None

\n
\n
\n
\n\n
\n
\ninvalidateBackingStore()[source]
\n

Invalidate the internal backing store

\n
\n\n
\n
\nsetFocusIndicator(focusIndicator)[source]
\n

Set the focus indicator

\n

Focus indicators:

\n
\n
    \n
  • QwtPlotCanvas.NoFocusIndicator

  • \n
  • QwtPlotCanvas.CanvasFocusIndicator

  • \n
  • QwtPlotCanvas.ItemFocusIndicator

  • \n
\n
\n
\n
Parameters:
\n

focusIndicator (int) – Focus indicator

\n
\n
\n
\n

See also

\n

focusIndicator()

\n
\n
\n\n
\n
\nfocusIndicator()[source]
\n
\n
Returns:
\n

Focus indicator

\n
\n
\n
\n

See also

\n

setFocusIndicator()

\n
\n
\n\n
\n
\nsetBorderRadius(radius)[source]
\n

Set the radius for the corners of the border frame

\n
\n
Parameters:
\n

radius (float) – Radius of a rounded corner

\n
\n
\n
\n

See also

\n

borderRadius()

\n
\n
\n\n
\n
\nborderRadius()[source]
\n
\n
Returns:
\n

Radius for the corners of the border frame

\n
\n
\n
\n

See also

\n

setBorderRadius()

\n
\n
\n\n
\n
\nevent(self, e: QEvent | None) bool[source]
\n
\n\n
\n
\npaintEvent(self, a0: QPaintEvent | None)[source]
\n
\n\n
\n
\ndrawBorder(painter)[source]
\n

Draw the border of the plot canvas

\n
\n
Parameters:
\n

painter (QPainter) – Painter

\n
\n
\n
\n

See also

\n

setBorderRadius()

\n
\n
\n\n
\n
\nresizeEvent(self, a0: QResizeEvent | None)[source]
\n
\n\n
\n
\ndrawFocusIndicator(painter)[source]
\n

Draw the focus indication

\n
\n
Parameters:
\n

painter (QPainter) – Painter

\n
\n
\n
\n\n
\n
\nreplot()[source]
\n

Invalidate the paint cache and repaint the canvas

\n
\n\n
\n
\nupdateStyleSheetInfo()[source]
\n

Update the cached information about the current style sheet

\n
\n\n
\n
\nborderPath(rect)[source]
\n

Calculate the painter path for a styled or rounded border

\n

When the canvas has no styled background or rounded borders\nthe painter path is empty.

\n
\n
Parameters:
\n

rect (QRect) – Bounding rectangle of the canvas

\n
\n
Returns:
\n

Painter path, that can be used for clipping

\n
\n
\n
\n\n
\n\n
\n
\n
\n

Plot items

\n
\n

QwtPlotGrid

\n
\n
\nclass qwt.plot_grid.QwtPlotGrid(title=\'Grid\')[source]
\n

A class which draws a coordinate grid

\n

The QwtPlotGrid class can be used to draw a coordinate grid.\nA coordinate grid consists of major and minor vertical\nand horizontal grid lines. The locations of the grid lines\nare determined by the X and Y scale divisions which can\nbe assigned with setXDiv() and setYDiv().\nThe draw() member draws the grid within a bounding\nrectangle.

\n
\n
\nclassmethod make(plot=None, z=None, enablemajor=None, enableminor=None, color=None, width=None, style=None, mincolor=None, minwidth=None, minstyle=None)[source]
\n

Create and setup a new QwtPlotGrid object (convenience function).

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot or None) – Plot to attach the curve to

  • \n
  • z (float or None) – Z-value

  • \n
  • enablemajor (bool or None) – Tuple of two boolean values (x, y) for enabling major grid lines

  • \n
  • enableminor (bool or None) – Tuple of two boolean values (x, y) for enabling minor grid lines

  • \n
  • color (QColor or str or None) – Pen color for both major and minor grid lines (default: Qt.gray)

  • \n
  • width (float or None) – Pen width for both major and minor grid lines (default: 1.0)

  • \n
  • style (Qt.PenStyle or None) – Pen style for both major and minor grid lines (default: Qt.DotLine)

  • \n
  • mincolor (QColor or str or None) – Pen color for minor grid lines only (default: Qt.gray)

  • \n
  • minwidth (float or None) – Pen width for minor grid lines only (default: 1.0)

  • \n
  • minstyle (Qt.PenStyle or None) – Pen style for minor grid lines only (default: Qt.DotLine)

  • \n
\n
\n
\n\n
\n\n
\n
\nrtti()[source]
\n
\n
Returns:
\n

Return QwtPlotItem.Rtti_PlotGrid

\n
\n
\n
\n\n
\n
\nenableX(on)[source]
\n

Enable or disable vertical grid lines

\n
\n
Parameters:
\n

on (bool) – Enable (true) or disable

\n
\n
\n
\n

See also

\n

enableXMin()

\n
\n
\n\n
\n
\nenableY(on)[source]
\n

Enable or disable horizontal grid lines

\n
\n
Parameters:
\n

on (bool) – Enable (true) or disable

\n
\n
\n
\n

See also

\n

enableYMin()

\n
\n
\n\n
\n
\nenableXMin(on)[source]
\n

Enable or disable minor vertical grid lines.

\n
\n
Parameters:
\n

on (bool) – Enable (true) or disable

\n
\n
\n
\n

See also

\n

enableX()

\n
\n
\n\n
\n
\nenableYMin(on)[source]
\n

Enable or disable minor horizontal grid lines.

\n
\n
Parameters:
\n

on (bool) – Enable (true) or disable

\n
\n
\n
\n

See also

\n

enableY()

\n
\n
\n\n
\n
\nsetXDiv(scaleDiv)[source]
\n

Assign an x axis scale division

\n
\n
Parameters:
\n

scaleDiv (qwt.scale_div.QwtScaleDiv) – Scale division

\n
\n
\n
\n\n
\n
\nsetYDiv(scaleDiv)[source]
\n

Assign an y axis scale division

\n
\n
Parameters:
\n

scaleDiv (qwt.scale_div.QwtScaleDiv) – Scale division

\n
\n
\n
\n\n
\n
\nsetPen(*args)[source]
\n

Build and/or assign a pen for both major and minor grid lines

\n
\n
\nsetPen(color, width, style)[source]
\n

Build and assign a pen for both major and minor grid lines

\n

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\nnon cosmetic (see QPen.isCosmetic()). This method signature has\nbeen introduced to hide this incompatibility.

\n
\n
Parameters:
\n
    \n
  • color (QColor) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
\n
\n
\n
\n\n
\n
\nsetPen(pen)[source]
\n

Assign a pen for both major and minor grid lines

\n
\n
Parameters:
\n

pen (QPen) – New pen

\n
\n
\n
\n\n
\n

See also

\n

pen(), brush()

\n
\n
\n\n
\n
\nsetMajorPen(*args)[source]
\n

Build and/or assign a pen for both major grid lines

\n
\n
\nsetMajorPen(color, width, style)[source]
\n

Build and assign a pen for both major grid lines

\n

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\nnon cosmetic (see QPen.isCosmetic()). This method signature has\nbeen introduced to hide this incompatibility.

\n
\n
Parameters:
\n
    \n
  • color (QColor) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
\n
\n
\n
\n\n
\n
\nsetMajorPen(pen)[source]
\n

Assign a pen for the major grid lines

\n
\n
Parameters:
\n

pen (QPen) – New pen

\n
\n
\n
\n\n
\n

See also

\n

majorPen(), setMinorPen(),\nsetPen(), pen(), brush()

\n
\n
\n\n
\n
\nsetMinorPen(*args)[source]
\n

Build and/or assign a pen for both minor grid lines

\n
\n
\nsetMinorPen(color, width, style)[source]
\n

Build and assign a pen for both minor grid lines

\n

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\nnon cosmetic (see QPen.isCosmetic()). This method signature has\nbeen introduced to hide this incompatibility.

\n
\n
Parameters:
\n
    \n
  • color (QColor) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
\n
\n
\n
\n\n
\n
\nsetMinorPen(pen)[source]
\n

Assign a pen for the minor grid lines

\n
\n
Parameters:
\n

pen (QPen) – New pen

\n
\n
\n
\n\n
\n

See also

\n

minorPen(), setMajorPen(),\nsetPen(), pen(), brush()

\n
\n
\n\n
\n
\ndraw(painter, xMap, yMap, canvasRect)[source]
\n

Draw the grid

\n

The grid is drawn into the bounding rectangle such that\ngrid lines begin and end at the rectangle’s borders. The X and Y\nmaps are used to map the scale divisions into the drawing region\nscreen.

\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\nmajorPen()[source]
\n
\n
Returns:
\n

the pen for the major grid lines

\n
\n
\n\n
\n\n
\n
\nminorPen()[source]
\n
\n
Returns:
\n

the pen for the minor grid lines

\n
\n
\n\n
\n\n
\n
\nxEnabled()[source]
\n
\n
Returns:
\n

True if vertical grid lines are enabled

\n
\n
\n
\n

See also

\n

enableX()

\n
\n
\n\n
\n
\nyEnabled()[source]
\n
\n
Returns:
\n

True if horizontal grid lines are enabled

\n
\n
\n
\n

See also

\n

enableY()

\n
\n
\n\n
\n
\nxMinEnabled()[source]
\n
\n
Returns:
\n

True if minor vertical grid lines are enabled

\n
\n
\n
\n

See also

\n

enableXMin()

\n
\n
\n\n
\n
\nyMinEnabled()[source]
\n
\n
Returns:
\n

True if minor horizontal grid lines are enabled

\n
\n
\n
\n

See also

\n

enableYMin()

\n
\n
\n\n
\n
\nxScaleDiv()[source]
\n
\n
Returns:
\n

the scale division of the x axis

\n
\n
\n
\n\n
\n
\nyScaleDiv()[source]
\n
\n
Returns:
\n

the scale division of the y axis

\n
\n
\n
\n\n
\n
\nupdateScaleDiv(xScaleDiv, yScaleDiv)[source]
\n

Update the grid to changes of the axes scale division

\n
\n
Parameters:
\n
\n
\n
\n
\n

See also

\n

updateAxes()

\n
\n
\n\n
\n\n
\n
\n

QwtPlotCurve

\n
\n
\nclass qwt.plot_curve.QwtPlotCurve(title=None)[source]
\n

A plot item, that represents a series of points

\n

A curve is the representation of a series of points in the x-y plane.\nIt supports different display styles and symbols.

\n\n

Curve styles:

\n
\n
    \n
  • QwtPlotCurve.NoCurve:

    \n

    Don’t draw a curve. Note: This doesn’t affect the symbols.

    \n
  • \n
  • QwtPlotCurve.Lines:

    \n

    Connect the points with straight lines.

    \n
  • \n
  • QwtPlotCurve.Sticks:

    \n

    Draw vertical or horizontal sticks ( depending on the\norientation() ) from a baseline which is defined by setBaseline().

    \n
  • \n
  • QwtPlotCurve.Steps:

    \n

    Connect the points with a step function. The step function\nis drawn from the left to the right or vice versa,\ndepending on the QwtPlotCurve::Inverted attribute.

    \n
  • \n
  • QwtPlotCurve.Dots:

    \n

    Draw dots at the locations of the data points. Note:\nThis is different from a dotted line (see setPen()), and faster\nas a curve in QwtPlotCurve::NoStyle style and a symbol\npainting a point.

    \n
  • \n
  • QwtPlotCurve.UserCurve:

    \n

    Styles >= QwtPlotCurve.UserCurve are reserved for derived\nclasses of QwtPlotCurve that overload drawCurve() with\nadditional application specific curve types.

    \n
  • \n
\n
\n

Curve attributes:

\n
\n
    \n
  • QwtPlotCurve.Inverted:

    \n

    For QwtPlotCurve.Steps only.\nDraws a step function from the right to the left.

    \n
  • \n
\n
\n

Legend attributes:

\n
\n
    \n
  • QwtPlotCurve.LegendNoAttribute:

    \n

    QwtPlotCurve tries to find a color representing the curve\nand paints a rectangle with it.

    \n
  • \n
  • QwtPlotCurve.LegendShowLine:

    \n

    If the style() is not QwtPlotCurve.NoCurve a line\nis painted with the curve pen().

    \n
  • \n
  • QwtPlotCurve.LegendShowSymbol:

    \n

    If the curve has a valid symbol it is painted.

    \n
  • \n
  • QwtPlotCurve.LegendShowBrush:

    \n

    If the curve has a brush a rectangle filled with the\ncurve brush() is painted.

    \n
  • \n
\n
\n
\n
\nclass QwtPlotCurve([title=None])
\n

Constructor

\n
\n
Parameters:
\n

title (qwt.text.QwtText or str or None) – Curve title

\n
\n
\n
\n\n
\n
\nclassmethod make(xdata=None, ydata=None, title=None, plot=None, z=None, x_axis=None, y_axis=None, style=None, symbol=None, linecolor=None, linewidth=None, linestyle=None, antialiased=False, size=None, finite=None)[source]
\n

Create and setup a new QwtPlotCurve object (convenience function).

\n
\n
Parameters:
\n
    \n
  • xdata – List/array of x values

  • \n
  • ydata – List/array of y values

  • \n
  • title (qwt.text.QwtText or str or None) – Curve title

  • \n
  • plot (qwt.plot.QwtPlot or None) – Plot to attach the curve to

  • \n
  • z (float or None) – Z-value

  • \n
  • x_axis (int or None) – curve X-axis (default: QwtPlot.yLeft)

  • \n
  • y_axis (int or None) – curve Y-axis (default: QwtPlot.xBottom)

  • \n
  • style (int or None) – curve style (QwtPlotCurve.NoCurve, QwtPlotCurve.Lines, QwtPlotCurve.Sticks, QwtPlotCurve.Steps, QwtPlotCurve.Dots, QwtPlotCurve.UserCurve)

  • \n
  • symbol (qwt.symbol.QwtSymbol or None) – curve symbol

  • \n
  • linecolor (QColor or str or None) – curve line color

  • \n
  • linewidth (float or None) – curve line width

  • \n
  • linestyle (Qt.PenStyle or None) – curve pen style

  • \n
  • antialiased (bool) – if True, enable antialiasing rendering

  • \n
  • size (int or None) – size of xData and yData

  • \n
  • finite (bool) – if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements

  • \n
\n
\n
\n
\n

See also

\n

setData(), setPen(), attach()

\n
\n
\n\n
\n
\ninit()[source]
\n

Initialize internal members

\n
\n\n
\n
\nrtti()[source]
\n
\n
Returns:
\n

QwtPlotItem.Rtti_PlotCurve

\n
\n
\n
\n\n
\n
\nsetLegendAttribute(attribute, on=True)[source]
\n

Specify an attribute how to draw the legend icon

\n

Legend attributes:

\n
\n
    \n
  • QwtPlotCurve.LegendNoAttribute

  • \n
  • QwtPlotCurve.LegendShowLine

  • \n
  • QwtPlotCurve.LegendShowSymbol

  • \n
  • QwtPlotCurve.LegendShowBrush

  • \n
\n
\n
\n
Parameters:
\n
    \n
  • attribute (int) – Legend attribute

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n\n
\n\n
\n
\ntestLegendAttribute(attribute)[source]
\n
\n
Parameters:
\n

attribute (int) – Legend attribute

\n
\n
Returns:
\n

True, when attribute is enabled

\n
\n
\n
\n

See also

\n

setLegendAttribute()

\n
\n
\n\n
\n
\nsetStyle(style)[source]
\n

Set the curve’s drawing style

\n

Valid curve styles:

\n
\n
    \n
  • QwtPlotCurve.NoCurve

  • \n
  • QwtPlotCurve.Lines

  • \n
  • QwtPlotCurve.Sticks

  • \n
  • QwtPlotCurve.Steps

  • \n
  • QwtPlotCurve.Dots

  • \n
  • QwtPlotCurve.UserCurve

  • \n
\n
\n
\n
Parameters:
\n

style (int) – Curve style

\n
\n
\n
\n

See also

\n

style()

\n
\n
\n\n
\n
\nstyle()[source]
\n
\n
Returns:
\n

Style of the curve

\n
\n
\n
\n

See also

\n

setStyle()

\n
\n
\n\n
\n
\nsetSymbol(symbol)[source]
\n

Assign a symbol

\n

The curve will take the ownership of the symbol, hence the previously\nset symbol will be delete by setting a new one. If symbol is None no\nsymbol will be drawn.

\n
\n
Parameters:
\n

symbol (qwt.symbol.QwtSymbol) – Symbol

\n
\n
\n
\n

See also

\n

symbol()

\n
\n
\n\n
\n
\nsymbol()[source]
\n
\n
Returns:
\n

Current symbol or None, when no symbol has been assigned

\n
\n
\n
\n

See also

\n

setSymbol()

\n
\n
\n\n
\n
\nsetPen(*args)[source]
\n

Build and/or assign a pen, depending on the arguments.

\n
\n
\nsetPen(color, width, style)[source]
\n

Build and assign a pen

\n

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\nnon cosmetic (see QPen.isCosmetic()). This method signature has\nbeen introduced to hide this incompatibility.

\n
\n
Parameters:
\n
    \n
  • color (QColor) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
\n
\n
\n
\n\n
\n
\nsetPen(pen)[source]
\n

Assign a pen

\n
\n
Parameters:
\n

pen (QPen) – New pen

\n
\n
\n
\n\n
\n

See also

\n

pen(), brush()

\n
\n
\n\n
\n
\npen()[source]
\n
\n
Returns:
\n

Pen used to draw the lines

\n
\n
\n
\n

See also

\n

setPen(), brush()

\n
\n
\n\n
\n
\nsetBrush(brush)[source]
\n

Assign a brush.

\n

In case of brush.style() != QBrush.NoBrush\nand style() != QwtPlotCurve.Sticks\nthe area between the curve and the baseline will be filled.

\n

In case not brush.color().isValid() the area will be filled by\npen.color(). The fill algorithm simply connects the first and the\nlast curve point to the baseline. So the curve data has to be sorted\n(ascending or descending).

\n
\n
Parameters:
\n

brush (QBrush or QColor) – New brush

\n
\n
\n\n
\n\n
\n
\nbrush()[source]
\n
\n
Returns:
\n

Brush used to fill the area between lines and the baseline

\n
\n
\n\n
\n\n
\n
\ndirectPaint(from_, to)[source]
\n

When observing a measurement while it is running, new points have\nto be added to an existing seriesItem. This method can be used to\ndisplay them avoiding a complete redraw of the canvas.

\n

Setting plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)\nwill result in faster painting, if the paint engine of the canvas\nwidget supports this feature.

\n
\n
Parameters:
\n
    \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted

  • \n
\n
\n
\n
\n

See also

\n

drawSeries()

\n
\n
\n\n
\n
\ndrawSeries(painter, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw an interval of the curve

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n
\n

See also

\n

drawCurve(), drawSymbols()

\n
\n
\n\n
\n
\ndrawCurve(painter, style, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw the line part (without symbols) of a curve interval.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • style (int) – curve style, see QwtPlotCurve.CurveStyle

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n\n
\n\n
\n
\ndrawLines(painter, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw lines

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n
\n

See also

\n

draw(), drawDots(),\ndrawSteps(), drawSticks()

\n
\n
\n\n
\n
\ndrawSticks(painter, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw sticks

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n
\n

See also

\n

draw(), drawDots(),\ndrawSteps(), drawLines()

\n
\n
\n\n
\n
\ndrawDots(painter, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw dots

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n
\n

See also

\n

draw(), drawSticks(),\ndrawSteps(), drawLines()

\n
\n
\n\n
\n
\ndrawSteps(painter, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw steps

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n
\n

See also

\n

draw(), drawSticks(),\ndrawDots(), drawLines()

\n
\n
\n\n
\n
\nsetCurveAttribute(attribute, on=True)[source]
\n

Specify an attribute for drawing the curve

\n

Supported curve attributes:

\n
\n
    \n
  • QwtPlotCurve.Inverted

  • \n
\n
\n
\n
Parameters:
\n
    \n
  • attribute (int) – Curve attribute

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n
\n

See also

\n

testCurveAttribute()

\n
\n
\n\n
\n
\ntestCurveAttribute(attribute)[source]
\n
\n
Returns:
\n

True, if attribute is enabled

\n
\n
\n
\n

See also

\n

setCurveAttribute()

\n
\n
\n\n
\n
\nfillCurve(painter, xMap, yMap, canvasRect, polygon)[source]
\n

Fill the area between the curve and the baseline with\nthe curve brush

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • polygon (QPolygonF) – Polygon - will be modified !

  • \n
\n
\n
\n\n
\n\n
\n
\nclosePolyline(painter, xMap, yMap, polygon)[source]
\n

Complete a polygon to be a closed polygon including the\narea between the original polygon and the baseline.

\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\ndrawSymbols(painter, symbol, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw symbols

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • symbol (qwt.symbol.QwtSymbol) – Curve symbol

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n\n
\n\n
\n
\nsetBaseline(value)[source]
\n

Set the value of the baseline

\n

The baseline is needed for filling the curve with a brush or\nthe Sticks drawing style.

\n

The interpretation of the baseline depends on the orientation().\nWith Qt.Horizontal, the baseline is interpreted as a horizontal line\nat y = baseline(), with Qt.Vertical, it is interpreted as a vertical\nline at x = baseline().

\n

The default value is 0.0.

\n
\n
Parameters:
\n

value (float) – Value of the baseline

\n
\n
\n\n
\n\n
\n
\nbaseline()[source]
\n
\n
Returns:
\n

Value of the baseline

\n
\n
\n
\n

See also

\n

setBaseline()

\n
\n
\n\n
\n
\nclosestPoint(pos)[source]
\n

Find the closest curve point for a specific position

\n
\n
Parameters:
\n

pos (QPoint) – Position, where to look for the closest curve point

\n
\n
Returns:
\n

tuple (index, dist)

\n
\n
\n

dist is the distance between the position and the closest curve\npoint. index is the index of the closest curve point, or -1 if\nnone can be found ( f.e when the curve has no points ).

\n
\n

Note

\n

closestPoint() implements a dumb algorithm, that iterates\nover all points

\n
\n
\n\n
\n
\nlegendIcon(index, size)[source]
\n
\n
Parameters:
\n
    \n
  • index (int) – Index of the legend entry (ignored as there is only one)

  • \n
  • size (QSizeF) – Icon size

  • \n
\n
\n
Returns:
\n

Icon representing the curve on the legend

\n
\n
\n\n
\n\n
\n
\nsetData(*args, **kwargs)[source]
\n

Initialize data with a series data object or an array of points.

\n
\n
\nsetData(data):
\n
\n
Parameters:
\n

data (.plot_series.QwtSeriesData) – Series data (e.g. QwtPointArrayData instance)

\n
\n
\n
\n\n
\n
\nsetData(xData, yData, [size=None], [finite=True]):
\n

Initialize data with x and y arrays.

\n

This signature was removed in Qwt6 and is temporarily maintained here to ensure compatibility with Qwt5.

\n

Same as setSamples(x, y, [size=None], [finite=True])

\n
\n
Parameters:
\n
    \n
  • x – List/array of x values

  • \n
  • y – List/array of y values

  • \n
  • size (int or None) – size of xData and yData

  • \n
  • finite (bool) – if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements

  • \n
\n
\n
\n
\n\n
\n

See also

\n

setSamples()

\n
\n
\n\n
\n
\nsetSamples(*args, **kwargs)[source]
\n

Initialize data with an array of points.

\n
\n
\nsetSamples(data):
\n
\n
Parameters:
\n

data (.plot_series.QwtSeriesData) – Series data (e.g. QwtPointArrayData instance)

\n
\n
\n
\n\n
\n
\nsetSamples(samples):
\n

Same as setData(QwtPointArrayData(samples))

\n
\n
Parameters:
\n

samples – List/array of points

\n
\n
\n
\n\n
\n
\nsetSamples(xData, yData, [size=None], [finite=True]):
\n

Same as setData(QwtPointArrayData(xData, yData, [size=None]))

\n
\n
Parameters:
\n
    \n
  • xData – List/array of x values

  • \n
  • yData – List/array of y values

  • \n
  • size (int or None) – size of xData and yData

  • \n
  • finite (bool) – if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements

  • \n
\n
\n
\n
\n\n\n
\n\n
\n\n
\n
\n

QwtPlotMarker

\n
\n
\nclass qwt.plot_marker.QwtPlotMarker(title=None)[source]
\n

A class for drawing markers

\n

A marker can be a horizontal line, a vertical line,\na symbol, a label or any combination of them, which can\nbe drawn around a center point inside a bounding rectangle.

\n

The setSymbol() member assigns a symbol to the marker.\nThe symbol is drawn at the specified point.

\n

With setLabel(), a label can be assigned to the marker.\nThe setLabelAlignment() member specifies where the label is drawn. All\nthe Align*-constants in Qt.AlignmentFlags (see Qt documentation)\nare valid. The interpretation of the alignment depends on the marker’s\nline style. The alignment refers to the center point of\nthe marker, which means, for example, that the label would be printed\nleft above the center point if the alignment was set to\nQt.AlignLeft | Qt.AlignTop.

\n

Line styles:

\n
\n
    \n
  • QwtPlotMarker.NoLine: No line

  • \n
  • QwtPlotMarker.HLine: A horizontal line

  • \n
  • QwtPlotMarker.VLine: A vertical line

  • \n
  • QwtPlotMarker.Cross: A crosshair

  • \n
\n
\n
\n
\nclassmethod make(xvalue=None, yvalue=None, title=None, label=None, symbol=None, plot=None, z=None, x_axis=None, y_axis=None, align=None, orientation=None, spacing=None, linestyle=None, color=None, width=None, style=None, antialiased=False)[source]
\n

Create and setup a new QwtPlotMarker object (convenience function).

\n
\n
Parameters:
\n
    \n
  • xvalue (float or None) – x position (optional, default: None)

  • \n
  • yvalue (float or None) – y position (optional, default: None)

  • \n
  • title (qwt.text.QwtText or str or None) – Marker title

  • \n
  • label (qwt.text.QwtText or str or None) – Label text

  • \n
  • symbol (qwt.symbol.QwtSymbol or None) – New symbol

  • \n
  • plot (qwt.plot.QwtPlot or None) – Plot to attach the curve to

  • \n
  • z (float or None) – Z-value

  • \n
  • x_axis (int) – curve X-axis (default: QwtPlot.yLeft)

  • \n
  • y_axis (int) – curve Y-axis (default: QwtPlot.xBottom)

  • \n
  • align (Qt.Alignment or None) – Alignment of the label

  • \n
  • orientation (Qt.Orientation or None) – Orientation of the label

  • \n
  • spacing (int or None) – Spacing (distance between the position and the label)

  • \n
  • linestyle (int) – Line style

  • \n
  • color (QColor or str or None) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
  • antialiased (bool) – if True, enable antialiasing rendering

  • \n
\n
\n
\n
\n

See also

\n

setData(), setPen(), attach()

\n
\n
\n\n
\n
\nrtti()[source]
\n
\n
Returns:
\n

QwtPlotItem.Rtti_PlotMarker

\n
\n
\n
\n\n
\n
\nvalue()[source]
\n
\n
Returns:
\n

Value

\n
\n
\n
\n\n
\n
\nxValue()[source]
\n
\n
Returns:
\n

x Value

\n
\n
\n
\n\n
\n
\nyValue()[source]
\n
\n
Returns:
\n

y Value

\n
\n
\n
\n\n
\n
\nsetValue(*args)[source]
\n

Set Value

\n
\n
\nsetValue(pos):
\n
\n
Parameters:
\n

pos (QPointF) – Position

\n
\n
\n
\n\n
\n
\nsetValue(x, y):
\n
\n
Parameters:
\n
    \n
  • x (float) – x position

  • \n
  • y (float) – y position

  • \n
\n
\n
\n
\n\n
\n\n
\n
\nsetXValue(x)[source]
\n

Set X Value

\n
\n
Parameters:
\n

x (float) – x position

\n
\n
\n
\n\n
\n
\nsetYValue(y)[source]
\n

Set Y Value

\n
\n
Parameters:
\n

y (float) – y position

\n
\n
\n
\n\n
\n
\ndraw(painter, xMap, yMap, canvasRect)[source]
\n

Draw the marker

\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\ndrawLines(painter, canvasRect, pos)[source]
\n

Draw the lines marker

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas in painter coordinates

  • \n
  • pos (QPointF) – Position of the marker, translated into widget coordinates

  • \n
\n
\n
\n\n
\n\n
\n
\ndrawLabel(painter, canvasRect, pos)[source]
\n

Align and draw the text label of the marker

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas in painter coordinates

  • \n
  • pos (QPointF) – Position of the marker, translated into widget coordinates

  • \n
\n
\n
\n\n
\n\n
\n
\nsetLineStyle(style)[source]
\n

Set the line style

\n
\n
Parameters:
\n

style (int) – Line style

\n
\n
\n

Line styles:

\n
\n
    \n
  • QwtPlotMarker.NoLine: No line

  • \n
  • QwtPlotMarker.HLine: A horizontal line

  • \n
  • QwtPlotMarker.VLine: A vertical line

  • \n
  • QwtPlotMarker.Cross: A crosshair

  • \n
\n
\n
\n

See also

\n

lineStyle()

\n
\n
\n\n
\n
\nlineStyle()[source]
\n
\n
Returns:
\n

the line style

\n
\n
\n
\n

See also

\n

setLineStyle()

\n
\n
\n\n
\n
\nsetSymbol(symbol)[source]
\n

Assign a symbol

\n
\n
Parameters:
\n

symbol (qwt.symbol.QwtSymbol) – New symbol

\n
\n
\n
\n

See also

\n

symbol()

\n
\n
\n\n
\n
\nsymbol()[source]
\n
\n
Returns:
\n

the symbol

\n
\n
\n
\n

See also

\n

setSymbol()

\n
\n
\n\n
\n
\nsetLabel(label)[source]
\n

Set the label

\n
\n
Parameters:
\n

label (qwt.text.QwtText or str) – Label text

\n
\n
\n
\n

See also

\n

label()

\n
\n
\n\n
\n
\nlabel()[source]
\n
\n
Returns:
\n

the label

\n
\n
\n
\n

See also

\n

setLabel()

\n
\n
\n\n
\n
\nsetLabelAlignment(align)[source]
\n

Set the alignment of the label

\n

In case of QwtPlotMarker.HLine the alignment is relative to the\ny position of the marker, but the horizontal flags correspond to the\ncanvas rectangle. In case of QwtPlotMarker.VLine the alignment is\nrelative to the x position of the marker, but the vertical flags\ncorrespond to the canvas rectangle.

\n

In all other styles the alignment is relative to the marker’s position.

\n
\n
Parameters:
\n

align (Qt.Alignment) – Alignment

\n
\n
\n\n
\n\n
\n
\nlabelAlignment()[source]
\n
\n
Returns:
\n

the label alignment

\n
\n
\n\n
\n\n
\n
\nsetLabelOrientation(orientation)[source]
\n

Set the orientation of the label

\n

When orientation is Qt.Vertical the label is rotated by 90.0 degrees\n(from bottom to top).

\n
\n
Parameters:
\n

orientation (Qt.Orientation) – Orientation of the label

\n
\n
\n\n
\n\n
\n
\nlabelOrientation()[source]
\n
\n
Returns:
\n

the label orientation

\n
\n
\n\n
\n\n
\n
\nsetSpacing(spacing)[source]
\n

Set the spacing

\n

When the label is not centered on the marker position, the spacing\nis the distance between the position and the label.

\n
\n
Parameters:
\n

spacing (int) – Spacing

\n
\n
\n\n
\n\n
\n
\nspacing()[source]
\n
\n
Returns:
\n

the spacing

\n
\n
\n
\n

See also

\n

setSpacing()

\n
\n
\n\n
\n
\nsetLinePen(*args)[source]
\n

Build and/or assigna a line pen, depending on the arguments.

\n
\n
\nsetLinePen(color, width, style)[source]
\n

Build and assign a line pen

\n

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\nnon cosmetic (see QPen.isCosmetic()). This method signature has\nbeen introduced to hide this incompatibility.

\n
\n
Parameters:
\n
    \n
  • color (QColor) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
\n
\n
\n
\n\n
\n
\nsetLinePen(pen)[source]
\n

Specify a pen for the line.

\n
\n
Parameters:
\n

pen (QPen) – New pen

\n
\n
\n
\n\n
\n

See also

\n

pen(), brush()

\n
\n
\n\n
\n
\nlinePen()[source]
\n
\n
Returns:
\n

the line pen

\n
\n
\n
\n

See also

\n

setLinePen()

\n
\n
\n\n
\n
\nboundingRect()[source]
\n
\n
Returns:
\n

An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)

\n
\n
\n
\n

Note

\n

A width or height < 0.0 is ignored by the autoscaler

\n
\n
\n\n
\n
\nlegendIcon(index, size)[source]
\n
\n
Parameters:
\n
    \n
  • index (int) – Index of the legend entry (ignored as there is only one)

  • \n
  • size (QSizeF) – Icon size

  • \n
\n
\n
Returns:
\n

Icon representing the marker on the legend

\n
\n
\n\n
\n\n
\n\n
\n
\n
\n

Additional plot features

\n
\n

QwtLegend

\n
\n
\nclass qwt.legend.QwtLegendData[source]
\n

Attributes of an entry on a legend

\n

QwtLegendData is an abstract container ( like QAbstractModel )\nto exchange attributes, that are only known between to\nthe plot item and the legend.

\n

By overloading QwtPlotItem.legendData() any other set of attributes\ncould be used, that can be handled by a modified ( or completely\ndifferent ) implementation of a legend.

\n
\n

See also

\n

qwt.legend.QwtLegend

\n
\n
\n

Note

\n

The stockchart example implements a legend as a tree\nwith checkable items

\n
\n
\n
\nsetValues(map_)[source]
\n

Set the legend attributes

\n
\n
Parameters:
\n

map (dict) – Values

\n
\n
\n
\n

See also

\n

values()

\n
\n
\n\n
\n
\nvalues()[source]
\n
\n
Returns:
\n

Legend attributes

\n
\n
\n
\n

See also

\n

setValues()

\n
\n
\n\n
\n
\nhasRole(role)[source]
\n
\n
Parameters:
\n

role (int) – Attribute role

\n
\n
Returns:
\n

True, when the internal map has an entry for role

\n
\n
\n
\n\n
\n
\nsetValue(role, data)[source]
\n

Set an attribute value

\n
\n
Parameters:
\n
    \n
  • role (int) – Attribute role

  • \n
  • data (QVariant) – Attribute value

  • \n
\n
\n
\n
\n

See also

\n

value()

\n
\n
\n\n
\n
\nvalue(role)[source]
\n
\n
Parameters:
\n

role (int) – Attribute role

\n
\n
Returns:
\n

Attribute value for a specific role

\n
\n
\n
\n

See also

\n

setValue()

\n
\n
\n\n
\n
\nisValid()[source]
\n
\n
Returns:
\n

True, when the internal map is empty

\n
\n
\n
\n\n
\n
\ntitle()[source]
\n
\n
Returns:
\n

Value of the TitleRole attribute

\n
\n
\n
\n\n
\n
\nicon()[source]
\n
\n
Returns:
\n

Value of the IconRole attribute

\n
\n
\n
\n\n
\n
\nmode()[source]
\n
\n
Returns:
\n

Value of the ModeRole attribute

\n
\n
\n
\n\n
\n\n
\n
\nclass qwt.legend.QwtLegendLabel(parent=None)[source]
\n

A widget representing something on a QwtLegend.

\n
\n
\nsetData(legendData)[source]
\n

Set the attributes of the legend label

\n
\n
Parameters:
\n

legendData (QwtLegendData) – Attributes of the label

\n
\n
\n
\n

See also

\n

data()

\n
\n
\n\n
\n
\ndata()[source]
\n
\n
Returns:
\n

Attributes of the label

\n
\n
\n\n
\n\n
\n
\nsetText(text)[source]
\n

Set the text to the legend item

\n
\n
Parameters:
\n

text (qwt.text.QwtText) – Text label

\n
\n
\n
\n

See also

\n

text()

\n
\n
\n\n
\n
\nsetItemMode(mode)[source]
\n

Set the item mode.\nThe default is QwtLegendData.ReadOnly.

\n
\n
Parameters:
\n

mode (int) – Item mode

\n
\n
\n
\n

See also

\n

itemMode()

\n
\n
\n\n
\n
\nitemMode()[source]
\n
\n
Returns:
\n

Item mode

\n
\n
\n
\n

See also

\n

setItemMode()

\n
\n
\n\n
\n
\nsetIcon(icon)[source]
\n

Assign the icon

\n
\n
Parameters:
\n

icon (QPixmap) – Pixmap representing a plot item

\n
\n
\n\n
\n\n
\n
\nicon()[source]
\n
\n
Returns:
\n

Pixmap representing a plot item

\n
\n
\n
\n

See also

\n

setIcon()

\n
\n
\n\n
\n
\nsetSpacing(spacing)[source]
\n

Change the spacing between icon and text

\n
\n
Parameters:
\n

spacing (int) – Spacing

\n
\n
\n\n
\n\n
\n
\nspacing()[source]
\n
\n
Returns:
\n

Spacing between icon and text

\n
\n
\n
\n

See also

\n

setSpacing()

\n
\n
\n\n
\n
\nsetChecked(on)[source]
\n

Check/Uncheck a the item

\n
\n
Parameters:
\n

on (bool) – check/uncheck

\n
\n
\n
\n

See also

\n

isChecked(), setItemMode()

\n
\n
\n\n
\n
\nisChecked()[source]
\n
\n
Returns:
\n

true, if the item is checked

\n
\n
\n
\n

See also

\n

setChecked()

\n
\n
\n\n
\n
\nsetDown(down)[source]
\n

Set the item being down

\n
\n
Parameters:
\n

on (bool) – true, if the item is down

\n
\n
\n
\n

See also

\n

isDown()

\n
\n
\n\n
\n
\nisDown()[source]
\n
\n
Returns:
\n

true, if the item is down

\n
\n
\n
\n

See also

\n

setDown()

\n
\n
\n\n
\n
\nsizeHint()[source]
\n
\n
Returns:
\n

a size hint

\n
\n
\n
\n\n
\n
\npaintEvent(self, a0: QPaintEvent | None)[source]
\n
\n\n
\n
\nmousePressEvent(self, a0: QMouseEvent | None)[source]
\n
\n\n
\n
\nmouseReleaseEvent(self, a0: QMouseEvent | None)[source]
\n
\n\n
\n
\nkeyPressEvent(self, a0: QKeyEvent | None)[source]
\n
\n\n
\n
\nkeyReleaseEvent(self, a0: QKeyEvent | None)[source]
\n
\n\n
\n\n
\n
\nclass qwt.legend.QwtLegend(parent=None)[source]
\n

The legend widget

\n

The QwtLegend widget is a tabular arrangement of legend items. Legend\nitems might be any type of widget, but in general they will be\na QwtLegendLabel.

\n
\n

See also

\n

:py:class`qwt.legend.QwtLegendLabel`,\n:py:class`qwt.plot.QwtPlotItem`,\n:py:class`qwt.plot.QwtPlot`

\n
\n
\n
\nclass QwtLegend([parent=None])
\n

Constructor

\n
\n
Parameters:
\n

parent (QWidget) – Parent widget

\n
\n
\n
\n\n
\n
\nclicked
\n

A signal which is emitted when the user has clicked on\na legend label, which is in QwtLegendData.Clickable mode.

\n
\n
Parameters:
\n
    \n
  • itemInfo – Info for the item item of the selected legend item

  • \n
  • index – Index of the legend label in the list of widgets that are associated with the plot item

  • \n
\n
\n
\n
\n

Note

\n

Clicks are disabled as default

\n
\n
\n\n
\n
\nchecked
\n

A signal which is emitted when the user has clicked on\na legend label, which is in QwtLegendData.Checkable mode

\n
\n
Parameters:
\n
    \n
  • itemInfo – Info for the item of the selected legend label

  • \n
  • index – Index of the legend label in the list of widgets that are associated with the plot item

  • \n
  • on – True when the legend label is checked

  • \n
\n
\n
\n
\n

Note

\n

Clicks are disabled as default

\n
\n
\n\n
\n
\nsetMaxColumns(numColumns)[source]
\n

Set the maximum number of entries in a row

\n

F.e when the maximum is set to 1 all items are aligned\nvertically. 0 means unlimited

\n
\n
Parameters:
\n

numColumns (int) – Maximum number of entries in a row

\n
\n
\n
\n

See also

\n

maxColumns(),\nQwtDynGridLayout.setMaxColumns()

\n
\n
\n\n
\n
\nmaxColumns()[source]
\n
\n
Returns:
\n

Maximum number of entries in a row

\n
\n
\n
\n

See also

\n

setMaxColumns(),\nQwtDynGridLayout.maxColumns()

\n
\n
\n\n
\n
\nsetDefaultItemMode(mode)[source]
\n

Set the default mode for legend labels

\n

Legend labels will be constructed according to the\nattributes in a QwtLegendData object. When it doesn’t\ncontain a value for the QwtLegendData.ModeRole the\nlabel will be initialized with the default mode of the legend.

\n
\n
Parameters:
\n

mode (int) – Default item mode

\n
\n
\n
\n

See also

\n

itemMode(),\nQwtLegendData.value(),\nQwtPlotItem::legendData()

\n
\n

… note:

\n
Changing the mode doesn't have any effect on existing labels.\n
\n
\n
\n\n
\n
\ndefaultItemMode()[source]
\n
\n
Returns:
\n

Default item mode

\n
\n
\n
\n

See also

\n

setDefaultItemMode()

\n
\n
\n\n
\n
\ncontentsWidget()[source]
\n

The contents widget is the only child of the viewport of\nthe internal QScrollArea and the parent widget of all legend\nitems.

\n
\n
Returns:
\n

Container widget of the legend items

\n
\n
\n
\n\n
\n
\nhorizontalScrollBar()[source]
\n
\n
Returns:
\n

Horizontal scrollbar

\n
\n
\n
\n

See also

\n

verticalScrollBar()

\n
\n
\n\n
\n
\nverticalScrollBar()[source]
\n
\n
Returns:
\n

Vertical scrollbar

\n
\n
\n
\n

See also

\n

horizontalScrollBar()

\n
\n
\n\n
\n
\nupdateLegend(itemInfo, data)[source]
\n

Update the entries for an item

\n
\n
Parameters:
\n
    \n
  • itemInfo (QVariant) – Info for an item

  • \n
  • data (list) – Default item mode

  • \n
\n
\n
\n
\n\n
\n
\ncreateWidget(data)[source]
\n

Create a widget to be inserted into the legend

\n

The default implementation returns a QwtLegendLabel.

\n
\n
Parameters:
\n

data (QwtLegendData) – Attributes of the legend entry

\n
\n
Returns:
\n

Widget representing data on the legend

\n
\n
\n

… note:

\n
updateWidget() will called soon after createWidget()\nwith the same attributes.\n
\n
\n
\n\n
\n
\nupdateWidget(widget, data)[source]
\n

Update the widget

\n
\n
Parameters:
\n
    \n
  • widget (QWidget) – Usually a QwtLegendLabel

  • \n
  • data (QwtLegendData) – Attributes to be displayed

  • \n
\n
\n
\n
\n

See also

\n

createWidget()

\n
\n

… note:

\n
When widget is no QwtLegendLabel updateWidget() does nothing.\n
\n
\n
\n\n
\n
\nsizeHint()[source]
\n

Return a size hint

\n
\n\n
\n
\nheightForWidth(width)[source]
\n
\n
Parameters:
\n

width (int) – Width

\n
\n
Returns:
\n

The preferred height, for a width.

\n
\n
\n
\n\n
\n
\neventFilter(object_, event)[source]
\n

Handle QEvent.ChildRemoved andQEvent.LayoutRequest events\nfor the contentsWidget().

\n
\n
Parameters:
\n
    \n
  • object (QObject) – Object to be filtered

  • \n
  • event (QEvent) – Event

  • \n
\n
\n
Returns:
\n

Forwarded to QwtAbstractLegend.eventFilter()

\n
\n
\n
\n\n
\n
\nrenderLegend(painter, rect, fillBackground)[source]
\n

Render the legend into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
  • fillBackground (bool) – When true, fill rect with the widget background

  • \n
\n
\n
\n
\n\n
\n
\nrenderItem(painter, widget, rect, fillBackground)[source]
\n

Render a legend entry into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • widget (QWidget) – Widget representing a legend entry

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
  • fillBackground (bool) – When true, fill rect with the widget background

  • \n
\n
\n
\n
\n\n
\n
\nlegendWidgets(itemInfo)[source]
\n

List of widgets associated to a item

\n
\n
Parameters:
\n

itemInfo (QVariant) – Info about an item

\n
\n
\n
\n\n
\n
\nlegendWidget(itemInfo)[source]
\n

First widget in the list of widgets associated to an item

\n
\n
Parameters:
\n

itemInfo (QVariant) – Info about an item

\n
\n
\n
\n\n
\n
\nitemInfo(widget)[source]
\n

Find the item that is associated to a widget

\n
\n
Parameters:
\n

widget (QWidget) – Widget on the legend

\n
\n
Returns:
\n

Associated item info

\n
\n
\n
\n\n
\n\n
\n
\n

Color maps

\n
\n

QwtColorMap

\n
\n
\nclass qwt.color_map.QwtColorMap(format_=None)[source]
\n

QwtColorMap is used to map values into colors.

\n

For displaying 3D data on a 2D plane the 3rd dimension is often\ndisplayed using colors, like f.e in a spectrogram.

\n

Each color map is optimized to return colors for only one of the\nfollowing image formats:

\n
\n
    \n
  • QImage.Format_Indexed8

  • \n
  • QImage.Format_ARGB32

  • \n
\n
\n
\n
\nclass QwtColorMap(format_)
\n
\n
Parameters:
\n

format (int) – Preferred format of the color map (QwtColorMap.RGB or QwtColorMap.Indexed)

\n
\n
\n
\n\n
\n

See also

\n

qwt.QwtScaleWidget

\n
\n
\n
\ncolor(interval, value)[source]
\n

Map a value into a color

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

the color corresponding to value

\n
\n
\n
\n

Warning

\n

This method is slow for Indexed color maps. If it is necessary to\nmap many values, its better to get the color table once and find\nthe color using colorIndex().

\n
\n
\n\n
\n
\ncolorTable(interval)[source]
\n

Build and return a color map of 256 colors

\n
\n
Parameters:
\n

interval (qwt.interval.QwtInterval) – range for the values

\n
\n
Returns:
\n

a color table, that can be used for a QImage

\n
\n
\n

The color table is needed for rendering indexed images in combination\nwith using colorIndex().

\n
\n\n
\n\n
\n
\n

QwtLinearColorMap

\n
\n
\nclass qwt.color_map.QwtLinearColorMap(*args)[source]
\n

Build a linear color map with two stops.

\n
\n
\nclass QwtLinearColorMap(format_)
\n

Build a color map with two stops at 0.0 and 1.0.\nThe color at 0.0 is Qt.blue, at 1.0 it is Qt.yellow.

\n
\n
Parameters:
\n

format (int) – Preferred format of the color map (QwtColorMap.RGB or QwtColorMap.Indexed)

\n
\n
\n
\n\n
\n
\nQwtLinearColorMap(color1, color2, [format_=QwtColorMap.RGB]):
\n

Build a color map with two stops at 0.0 and 1.0.

\n
\n
Parameters:
\n
    \n
  • color1 (QColor) – color at 0.

  • \n
  • color2 (QColor) – color at 1.

  • \n
  • format (int) – Preferred format of the color map (QwtColorMap.RGB or QwtColorMap.Indexed)

  • \n
\n
\n
\n
\n\n
\n
\nQwtLinearColorMap.setMode(mode)[source]
\n

Set the mode of the color map

\n
\n
Parameters:
\n

mode (int) – QwtLinearColorMap.FixedColors or QwtLinearColorMap.ScaledColors

\n
\n
\n

FixedColors means the color is calculated from the next lower color\nstop. ScaledColors means the color is calculated by interpolating\nthe colors of the adjacent stops.

\n
\n\n
\n
\nQwtLinearColorMap.mode()[source]
\n
\n
Returns:
\n

the mode of the color map

\n
\n
\n\n
\n\n
\n\n
\n
\n

QwtAlphaColorMap

\n
\n
\nclass qwt.color_map.QwtAlphaColorMap(color)[source]
\n

QwtAlphaColorMap varies the alpha value of a color

\n
\n
\nclass QwtAlphaColorMap(color)
\n

Build a color map varying the alpha value of a color.

\n
\n
Parameters:
\n

color (QColor) – color of the map

\n
\n
\n
\n\n
\n
\nsetColor(color)[source]
\n

Set the color of the map

\n
\n
Parameters:
\n

color (QColor) – color of the map

\n
\n
\n
\n\n
\n
\ncolor()[source]
\n
\n
Returns:
\n

the color of the map

\n
\n
\n\n
\n\n
\n\n
\n
\n
\n

QwtPlotRenderer

\n
\n
\nclass qwt.plot_renderer.QwtPlotRenderer(parent=None)[source]
\n

Renderer for exporting a plot to a document, a printer\nor anything else, that is supported by QPainter/QPaintDevice

\n

Discard flags:

\n
\n
    \n
  • QwtPlotRenderer.DiscardNone: Render all components of the plot

  • \n
  • QwtPlotRenderer.DiscardBackground: Don’t render the background of the plot

  • \n
  • QwtPlotRenderer.DiscardTitle: Don’t render the title of the plot

  • \n
  • QwtPlotRenderer.DiscardLegend: Don’t render the legend of the plot

  • \n
  • QwtPlotRenderer.DiscardCanvasBackground: Don’t render the background of the canvas

  • \n
  • QwtPlotRenderer.DiscardFooter: Don’t render the footer of the plot

  • \n
  • QwtPlotRenderer.DiscardCanvasFrame: Don’t render the frame of the canvas

  • \n
\n
\n
\n

Note

\n

The QwtPlotRenderer.DiscardCanvasFrame flag has no effect when using\nstyle sheets, where the frame is part of the background

\n
\n

Layout flags:

\n
\n
    \n
  • QwtPlotRenderer.DefaultLayout: Use the default layout as on screen

  • \n
  • QwtPlotRenderer.FrameWithScales: Instead of the scales a box is painted around the plot canvas, where the scale ticks are aligned to.

  • \n
\n
\n
\n
\nsetDiscardFlag(flag, on=True)[source]
\n

Change a flag, indicating what to discard from rendering

\n
\n
Parameters:
\n
    \n
  • flag (int) – Flag to change

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n\n
\n\n
\n
\ntestDiscardFlag(flag)[source]
\n
\n
Parameters:
\n

flag (int) – Flag to be tested

\n
\n
Returns:
\n

True, if flag is enabled.

\n
\n
\n\n
\n\n
\n
\nsetDiscardFlags(flags)[source]
\n

Set the flags, indicating what to discard from rendering

\n
\n
Parameters:
\n

flags (int) – Flags

\n
\n
\n\n
\n\n
\n
\ndiscardFlags()[source]
\n
\n
Returns:
\n

Flags, indicating what to discard from rendering

\n
\n
\n\n
\n\n
\n
\nsetLayoutFlag(flag, on=True)[source]
\n

Change a layout flag

\n
\n
Parameters:
\n

flag (int) – Flag to change

\n
\n
\n\n
\n\n
\n
\ntestLayoutFlag(flag)[source]
\n
\n
Parameters:
\n

flag (int) – Flag to be tested

\n
\n
Returns:
\n

True, if flag is enabled.

\n
\n
\n\n
\n\n
\n
\nsetLayoutFlags(flags)[source]
\n

Set the layout flags

\n
\n
Parameters:
\n

flags (int) – Flags

\n
\n
\n\n
\n\n
\n
\nlayoutFlags()[source]
\n
\n
Returns:
\n

Layout flags

\n
\n
\n\n
\n\n
\n
\nrenderDocument(plot, filename, sizeMM=(300, 200), resolution=85, format_=None)[source]
\n

Render a plot to a file

\n

The format of the document will be auto-detected from the\nsuffix of the file name.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • fileName (str) – Path of the file, where the document will be stored

  • \n
  • sizeMM (QSizeF) – Size for the document in millimeters

  • \n
  • resolution (int) – Resolution in dots per Inch (dpi)

  • \n
\n
\n
\n
\n\n
\n
\nrenderTo(plot, dest)[source]
\n

Render a plot to a file

\n

Supported formats are:

\n
\n
    \n
  • pdf: Portable Document Format PDF

  • \n
  • ps: Postcript

  • \n
  • svg: Scalable Vector Graphics SVG

  • \n
  • all image formats supported by Qt, see QImageWriter.supportedImageFormats()

  • \n
\n
\n

Scalable vector graphic formats like PDF or SVG are superior to\nraster graphics formats.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • dest – QPaintDevice, QPrinter or QSvgGenerator instance

  • \n
\n
\n
\n
\n

See also

\n

render(),\nqwt.painter.QwtPainter.setRoundingAlignment()

\n
\n
\n\n
\n
\nrender(plot, painter, plotRect)[source]
\n

Paint the contents of a QwtPlot instance into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot to be rendered

  • \n
  • painter (QPainter) – Painter

  • \n
  • format (str) – Format for the document

  • \n
  • plotRect (QRectF) – Bounding rectangle

  • \n
\n
\n
\n
\n

See also

\n

renderDocument(), renderTo(),\nqwt.painter.QwtPainter.setRoundingAlignment()

\n
\n
\n\n
\n
\nrenderTitle(plot, painter, rect)[source]
\n

Render the title into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
\n
\n
\n
\n\n
\n
\nrenderFooter(plot, painter, rect)[source]
\n

Render the footer into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
\n
\n
\n
\n\n
\n
\nrenderLegend(plot, painter, rect)[source]
\n

Render the legend into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
\n
\n
\n
\n\n
\n
\nrenderScale(plot, painter, axisId, startDist, endDist, baseDist, rect)[source]
\n

Paint a scale into a given rectangle.\nPaint the scale into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • painter (QPainter) – Painter

  • \n
  • axisId (int) – Axis

  • \n
  • startDist (int) – Start border distance

  • \n
  • endDist (int) – End border distance

  • \n
  • baseDist (int) – Base distance

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
\n
\n
\n
\n\n
\n
\nrenderCanvas(plot, painter, canvasRect, maps)[source]
\n

Render the canvas into a given rectangle.

\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\nbuildCanvasMaps(plot, canvasRect)[source]
\n

Calculated the scale maps for rendering the canvas

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • canvasRect (QRectF) – Target rectangle

  • \n
\n
\n
Returns:
\n

Calculated scale maps

\n
\n
\n
\n\n
\n
\nexportTo(plot, documentname, sizeMM=None, resolution=85)[source]
\n

Execute a file dialog and render the plot to the selected file

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • documentName (str) – Default document name

  • \n
  • sizeMM (QSizeF) – Size for the document in millimeters

  • \n
  • resolution (int) – Resolution in dots per Inch (dpi)

  • \n
\n
\n
Returns:
\n

True, when exporting was successful

\n
\n
\n
\n

See also

\n

renderDocument()

\n
\n
\n\n
\n\n
\n
\n', 'metatags': '\n', 'sourcename': 'reference/plot.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b228e0>, 'js_tag': .js_tag at 0x7fc7d6b236a0>},
) +[app] emitting event: 'html-page-context'('reference/plot', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/scale', 'Scales', 'N', 'next'), ('reference/index', 'Reference', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/plot', 'current_page_name': 'reference/plot', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f69940>, 'hasdoc': .hasdoc at 0x7f3d39f69ee0>, 'toctree': . at 0x7f3d39f69120>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'index.html', 'title': 'Reference'}, 'next': {'link': 'scale.html', 'title': 'Scales'}, 'title': 'Plot widget fundamentals', 'meta': {}, 'body': '
\n

Plot widget fundamentals

\n
\n

QwtPlot

\n
\n
\nclass qwt.plot.QwtPlot(*args)[source]
\n

A 2-D plotting widget

\n

QwtPlot is a widget for plotting two-dimensional graphs.\nAn unlimited number of plot items can be displayed on its canvas.\nPlot items might be curves (qwt.plot_curve.QwtPlotCurve),\nmarkers (qwt.plot_marker.QwtPlotMarker),\nthe grid (qwt.plot_grid.QwtPlotGrid), or anything else\nderived from QwtPlotItem.

\n

A plot can have up to four axes, with each plot item attached to an x- and\na y axis. The scales at the axes can be explicitly set (QwtScaleDiv), or\nare calculated from the plot items, using algorithms (QwtScaleEngine)\nwhich can be configured separately for each axis.

\n

The following example is a good starting point to see how to set up a\nplot widget:

\n
from qtpy import QtWidgets as QW\nimport qwt\nimport numpy as np\n\napp = QW.QApplication([])\nx = np.linspace(-10, 10, 500)\nplot = qwt.QwtPlot("Trigonometric functions")\nplot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend)\nqwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True)\nqwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True)\nplot.resize(600, 300)\nplot.show()\n
\n
\n../_images/QwtPlot_example.png\n
\n
\nclass QwtPlot([title=""][, parent=None])
\n
\n
Parameters:
\n
    \n
  • title (str) – Title text

  • \n
  • parent (QWidget) – Parent widget

  • \n
\n
\n
\n
\n\n
\n
\nitemAttached
\n

A signal indicating, that an item has been attached/detached

\n
\n
Parameters:
\n
    \n
  • plotItem – Plot item

  • \n
  • on – Attached/Detached

  • \n
\n
\n
\n
\n\n
\n
\nlegendDataChanged
\n

A signal with the attributes how to update\nthe legend entries for a plot item.

\n
\n
Parameters:
\n
    \n
  • itemInfo – Info about a plot item, build from itemToInfo()

  • \n
  • data – Attributes of the entries (usually <= 1) for the plot item.

  • \n
\n
\n
\n
\n\n
\n
\ninsertItem(item)[source]
\n

Insert a plot item

\n
\n
Parameters:
\n

item (qwt.plot.QwtPlotItem) – PlotItem

\n
\n
\n
\n

See also

\n

removeItem()

\n
\n
\n

Note

\n

This was a member of QwtPlotDict in older versions.

\n
\n
\n\n
\n
\nremoveItem(item)[source]
\n

Remove a plot item

\n
\n
Parameters:
\n

item (qwt.plot.QwtPlotItem) – PlotItem

\n
\n
\n
\n

See also

\n

insertItem()

\n
\n
\n

Note

\n

This was a member of QwtPlotDict in older versions.

\n
\n
\n\n
\n
\ndetachItems(rtti=None)[source]
\n

Detach items from the dictionary

\n
\n
Parameters:
\n

rtti (int or None) – In case of QwtPlotItem.Rtti_PlotItem or None (default) detach all items otherwise only those items of the type rtti.

\n
\n
\n
\n

Note

\n

This was a member of QwtPlotDict in older versions.

\n
\n
\n\n
\n
\nitemList(rtti=None)[source]
\n

A list of attached plot items.

\n

Use caution when iterating these lists, as removing/detaching an\nitem will invalidate the iterator. Instead you can place pointers\nto objects to be removed in a removal list, and traverse that list\nlater.

\n
\n
Parameters:
\n

rtti (int) – In case of QwtPlotItem.Rtti_PlotItem detach all items otherwise only those items of the type rtti.

\n
\n
Returns:
\n

List of all attached plot items of a specific type. If rtti is None, return a list of all attached plot items.

\n
\n
\n
\n

Note

\n

This was a member of QwtPlotDict in older versions.

\n
\n
\n\n
\n
\nsetFlatStyle(state)[source]
\n

Set or reset the flatStyle option

\n

If the flatStyle option is set, the plot will be\nrendered without any margin (scales, canvas, layout).

\n

Enabling this option makes the plot look flat and compact.

\n

The flatStyle option is set to True by default.

\n
\n
Parameters:
\n

state (bool) – True or False.

\n
\n
\n
\n

See also

\n

flatStyle()

\n
\n
\n\n
\n
\nflatStyle()[source]
\n
\n
Returns:
\n

True if the flatStyle option is set.

\n
\n
\n
\n

See also

\n

setFlatStyle()

\n
\n
\n\n
\n
\ninitAxesData()[source]
\n

Initialize axes

\n
\n\n
\n
\naxisWidget(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Scale widget of the specified axis, or None if axisId is invalid.

\n
\n
\n
\n\n
\n
\nsetAxisScaleEngine(axisId, scaleEngine)[source]
\n

Change the scale engine for an axis

\n
\n
Parameters:
\n
\n
\n
\n
\n

See also

\n

axisScaleEngine()

\n
\n
\n\n
\n
\naxisScaleEngine(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Scale engine for a specific axis

\n
\n
\n
\n

See also

\n

setAxisScaleEngine()

\n
\n
\n\n
\n
\naxisAutoScale(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

True, if autoscaling is enabled

\n
\n
\n
\n\n
\n
\naxisEnabled(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

True, if a specified axis is enabled

\n
\n
\n
\n\n
\n
\naxisFont(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

The font of the scale labels for a specified axis

\n
\n
\n
\n\n
\n
\naxisMaxMajor(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

The maximum number of major ticks for a specified axis

\n
\n
\n\n
\n\n
\n
\naxisMaxMinor(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

The maximum number of minor ticks for a specified axis

\n
\n
\n\n
\n\n
\n
\naxisScaleDiv(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

The scale division of a specified axis

\n
\n
\n

axisScaleDiv(axisId).lowerBound(), axisScaleDiv(axisId).upperBound()\nare the current limits of the axis scale.

\n\n
\n\n
\n
\naxisScaleDraw(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Specified scaleDraw for axis, or NULL if axis is invalid.

\n
\n
\n
\n\n
\n
\naxisStepSize(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

step size parameter value

\n
\n
\n

This doesn’t need to be the step size of the current scale.

\n\n
\n\n
\n
\naxisMargin(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Margin in % of the canvas size

\n
\n
\n
\n

See also

\n

setAxisMargin()

\n
\n
\n\n
\n
\naxisInterval(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

The current interval of the specified axis

\n
\n
\n

This is only a convenience function for axisScaleDiv(axisId).interval()

\n\n
\n\n
\n
\naxisTitle(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Title of a specified axis

\n
\n
\n
\n\n
\n
\nenableAxis(axisId, tf=True)[source]
\n

Enable or disable a specified axis

\n

When an axis is disabled, this only means that it is not\nvisible on the screen. Curves, markers and can be attached\nto disabled axes, and transformation of screen coordinates\ninto values works as normal.

\n

Only xBottom and yLeft are enabled by default.

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • tf (bool) – True (enabled) or False (disabled)

  • \n
\n
\n
\n
\n\n
\n
\ninvTransform(axisId, pos)[source]
\n

Transform the x or y coordinate of a position in the\ndrawing region into a value.

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • pos (int) – position

  • \n
\n
\n
\n
\n

Warning

\n

The position can be an x or a y coordinate,\ndepending on the specified axis.

\n
\n
\n\n
\n
\ntransform(axisId, value)[source]
\n

Transform a value into a coordinate in the plotting region

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • value (fload) – Value

  • \n
\n
\n
Returns:
\n

X or Y coordinate in the plotting region corresponding to the value.

\n
\n
\n
\n\n
\n
\nsetAxisFont(axisId, font)[source]
\n

Change the font of an axis

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • font (QFont) – Font

  • \n
\n
\n
\n
\n

Warning

\n

This function changes the font of the tick labels,\nnot of the axis title.

\n
\n
\n\n
\n
\nsetAxisAutoScale(axisId, on=True)[source]
\n

Enable autoscaling for a specified axis

\n

This member function is used to switch back to autoscaling mode\nafter a fixed scale has been set. Autoscaling is enabled by default.

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n\n
\n

Note

\n

The autoscaling flag has no effect until updateAxes() is executed\n( called by replot() ).

\n
\n
\n\n
\n
\nsetAxisScale(axisId, min_, max_, stepSize=0)[source]
\n

Disable autoscaling and specify a fixed scale for a selected axis.

\n

In updateAxes() the scale engine calculates a scale division from the\nspecified parameters, that will be assigned to the scale widget. So\nupdates of the scale widget usually happen delayed with the next replot.

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • min (float) – Minimum of the scale

  • \n
  • max (float) – Maximum of the scale

  • \n
  • stepSize (float) – Major step size. If <code>step == 0</code>, the step size is calculated automatically using the maxMajor setting.

  • \n
\n
\n
\n\n
\n\n
\n
\nsetAxisScaleDiv(axisId, scaleDiv)[source]
\n

Disable autoscaling and specify a fixed scale for a selected axis.

\n

The scale division will be stored locally only until the next call\nof updateAxes(). So updates of the scale widget usually happen delayed with\nthe next replot.

\n
\n
Parameters:
\n
\n
\n
\n\n
\n\n
\n
\nsetAxisScaleDraw(axisId, scaleDraw)[source]
\n

Set a scale draw

\n
\n
Parameters:
\n
\n
\n
\n

By passing scaleDraw it is possible to extend QwtScaleDraw\nfunctionality and let it take place in QwtPlot. Please note\nthat scaleDraw has to be created with new and will be deleted\nby the corresponding QwtScale member ( like a child object ).

\n
\n

See also

\n

qwt.scale_draw.QwtScaleDraw,\nqwt.scale_widget.QwtScaleWigdet

\n
\n
\n

Warning

\n

The attributes of scaleDraw will be overwritten by those of the\nprevious QwtScaleDraw.

\n
\n
\n\n
\n
\nsetAxisLabelAlignment(axisId, alignment)[source]
\n

Change the alignment of the tick labels

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • alignment (Qt.Alignment) – Or’d Qt.AlignmentFlags

  • \n
\n
\n
\n\n
\n\n
\n
\nsetAxisLabelRotation(axisId, rotation)[source]
\n

Rotate all tick labels

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • rotation (float) – Angle in degrees. When changing the label rotation, the label alignment might be adjusted too.

  • \n
\n
\n
\n
\n

See also

\n

setLabelRotation(), setAxisLabelAlignment()

\n
\n
\n\n
\n
\nsetAxisLabelAutoSize(axisId, state)[source]
\n

Set tick labels automatic size option (default: on)

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • state (bool) – On/off

  • \n
\n
\n
\n\n
\n\n
\n
\nsetAxisMaxMinor(axisId, maxMinor)[source]
\n

Set the maximum number of minor scale intervals for a specified axis

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • maxMinor (int) – Maximum number of minor steps

  • \n
\n
\n
\n
\n

See also

\n

axisMaxMinor()

\n
\n
\n\n
\n
\nsetAxisMaxMajor(axisId, maxMajor)[source]
\n

Set the maximum number of major scale intervals for a specified axis

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • maxMajor (int) – Maximum number of major steps

  • \n
\n
\n
\n
\n

See also

\n

axisMaxMajor()

\n
\n
\n\n
\n
\nsetAxisMargin(axisId, margin)[source]
\n

Set the margin of the scale widget

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • margin (float) – Margin in % of the canvas size

  • \n
\n
\n
\n
\n

See also

\n

axisMargin()

\n
\n
\n\n
\n
\nsetAxisTitle(axisId, title)[source]
\n

Change the title of a specified axis

\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\nupdateAxes()[source]
\n

Rebuild the axes scales

\n

In case of autoscaling the boundaries of a scale are calculated\nfrom the bounding rectangles of all plot items, having the\nQwtPlotItem.AutoScale flag enabled (QwtScaleEngine.autoScale()).\nThen a scale division is calculated (QwtScaleEngine.didvideScale())\nand assigned to scale widget.

\n

When the scale boundaries have been assigned with setAxisScale() a\nscale division is calculated (QwtScaleEngine.didvideScale())\nfor this interval and assigned to the scale widget.

\n

When the scale has been set explicitly by setAxisScaleDiv() the\nlocally stored scale division gets assigned to the scale widget.

\n

The scale widget indicates modifications by emitting a\nQwtScaleWidget.scaleDivChanged() signal.

\n

updateAxes() is usually called by replot().

\n\n
\n\n
\n
\nsetCanvas(canvas)[source]
\n

Set the drawing canvas of the plot widget.

\n

The default canvas is a QwtPlotCanvas.

\n
\n
Parameters:
\n

canvas (QWidget) – Canvas Widget

\n
\n
\n
\n

See also

\n

canvas()

\n
\n
\n\n
\n
\nevent(self, e: QEvent | None) bool[source]
\n
\n\n
\n
\neventFilter(self, a0: QObject | None, a1: QEvent | None) bool[source]
\n
\n\n
\n
\nautoRefresh()[source]
\n

Replots the plot if autoReplot() is True.

\n
\n\n
\n
\nsetAutoReplot(tf=True)[source]
\n

Set or reset the autoReplot option

\n

If the autoReplot option is set, the plot will be\nupdated implicitly by manipulating member functions.\nSince this may be time-consuming, it is recommended\nto leave this option switched off and call replot()\nexplicitly if necessary.

\n

The autoReplot option is set to false by default, which\nmeans that the user has to call replot() in order\nto make changes visible.

\n
\n
Parameters:
\n

tf (bool) – True or False. Defaults to True.

\n
\n
\n
\n

See also

\n

autoReplot()

\n
\n
\n\n
\n
\nautoReplot()[source]
\n
\n
Returns:
\n

True if the autoReplot option is set.

\n
\n
\n
\n

See also

\n

setAutoReplot()

\n
\n
\n\n
\n
\nsetTitle(title)[source]
\n

Change the plot’s title

\n
\n
Parameters:
\n

title (str or qwt.text.QwtText) – New title

\n
\n
\n
\n

See also

\n

title()

\n
\n
\n\n
\n
\ntitle()[source]
\n
\n
Returns:
\n

Title of the plot

\n
\n
\n
\n

See also

\n

setTitle()

\n
\n
\n\n
\n
\ntitleLabel()[source]
\n
\n
Returns:
\n

Title label widget.

\n
\n
\n
\n\n
\n
\nsetFooter(text)[source]
\n

Change the text the footer

\n
\n
Parameters:
\n

text (str or qwt.text.QwtText) – New text of the footer

\n
\n
\n
\n

See also

\n

footer()

\n
\n
\n\n
\n
\nfooter()[source]
\n
\n
Returns:
\n

Text of the footer

\n
\n
\n
\n

See also

\n

setFooter()

\n
\n
\n\n
\n
\nfooterLabel()[source]
\n
\n
Returns:
\n

Footer label widget.

\n
\n
\n
\n\n
\n
\nsetPlotLayout(layout)[source]
\n

Assign a new plot layout

\n
\n
Parameters:
\n

layout (qwt.plot_layout.QwtPlotLayout) – Layout

\n
\n
\n
\n

See also

\n

plotLayout()

\n
\n
\n\n
\n
\nplotLayout()[source]
\n
\n
Returns:
\n

the plot’s layout

\n
\n
\n
\n

See also

\n

setPlotLayout()

\n
\n
\n\n
\n
\nlegend()[source]
\n
\n
Returns:
\n

the plot’s legend

\n
\n
\n
\n

See also

\n

insertLegend()

\n
\n
\n\n
\n
\ncanvas()[source]
\n
\n
Returns:
\n

the plot’s canvas

\n
\n
\n
\n\n
\n
\nsizeHint()[source]
\n
\n
Returns:
\n

Size hint for the plot widget

\n
\n
\n
\n

See also

\n

minimumSizeHint()

\n
\n
\n\n
\n
\nminimumSizeHint()[source]
\n
\n
Returns:
\n

Return a minimum size hint

\n
\n
\n
\n\n
\n
\nresizeEvent(self, a0: QResizeEvent | None)[source]
\n
\n\n
\n
\nreplot()[source]
\n

Redraw the plot

\n

If the autoReplot option is not set (which is the default)\nor if any curves are attached to raw data, the plot has to\nbe refreshed explicitly in order to make changes visible.

\n\n
\n\n
\n
\nupdateLayout()[source]
\n

Adjust plot content to its current size.

\n
\n

See also

\n

resizeEvent()

\n
\n
\n\n
\n
\ngetCanvasMarginsHint(maps, canvasRect)[source]
\n

Calculate the canvas margins

\n
\n
Parameters:
\n
    \n
  • maps (list) – QwtPlot.axisCnt maps, mapping between plot and paint device coordinates

  • \n
  • canvasRect (QRectF) – Bounding rectangle where to paint

  • \n
\n
\n
\n

Plot items might indicate, that they need some extra space\nat the borders of the canvas by the QwtPlotItem.Margins flag.

\n
\n

See also

\n

updateCanvasMargins(), getCanvasMarginHint()

\n
\n
\n\n
\n
\nupdateCanvasMargins()[source]
\n

Update the canvas margins

\n

Plot items might indicate, that they need some extra space\nat the borders of the canvas by the QwtPlotItem.Margins flag.

\n\n
\n\n
\n
\ndrawCanvas(painter)[source]
\n

Redraw the canvas.

\n
\n
Parameters:
\n

painter (QPainter) – Painter used for drawing

\n
\n
\n
\n

Warning

\n

drawCanvas calls drawItems what is also used\nfor printing. Applications that like to add individual\nplot items better overload drawItems()

\n
\n\n
\n\n
\n
\ndrawItems(painter, canvasRect, maps)[source]
\n

Redraw the canvas.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter used for drawing

  • \n
  • canvasRect (QRectF) – Bounding rectangle where to paint

  • \n
  • maps (list) – QwtPlot.axisCnt maps, mapping between plot and paint device coordinates

  • \n
\n
\n
\n
\n

Note

\n

Usually canvasRect is contentsRect() of the plot canvas.\nDue to a bug in Qt this rectangle might be wrong for certain\nframe styles ( f.e QFrame.Box ) and it might be necessary to\nfix the margins manually using QWidget.setContentsMargins()

\n
\n
\n\n
\n
\ncanvasMap(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis

\n
\n
Returns:
\n

Map for the axis on the canvas. With this map pixel coordinates can translated to plot coordinates and vice versa.

\n
\n
\n\n
\n\n
\n
\nsetCanvasBackground(brush)[source]
\n

Change the background of the plotting area

\n

Sets brush to QPalette.Window of all color groups of\nthe palette of the canvas. Using canvas().setPalette()\nis a more powerful way to set these colors.

\n
\n
Parameters:
\n

brush (QBrush) – New background brush

\n
\n
\n
\n

See also

\n

canvasBackground()

\n
\n
\n\n
\n
\ncanvasBackground()[source]
\n
\n
Returns:
\n

Background brush of the plotting area.

\n
\n
\n
\n

See also

\n

setCanvasBackground()

\n
\n
\n\n
\n
\naxisValid(axis_id)[source]
\n
\n
Parameters:
\n

axis_id (int) – Axis

\n
\n
Returns:
\n

True if the specified axis exists, otherwise False

\n
\n
\n
\n\n
\n
\ninsertLegend(legend, pos=None, ratio=-1)[source]
\n

Insert a legend

\n

If the position legend is QwtPlot.LeftLegend or QwtPlot.RightLegend\nthe legend will be organized in one column from top to down.\nOtherwise the legend items will be placed in a table\nwith a best fit number of columns from left to right.

\n

insertLegend() will set the plot widget as parent for the legend.\nThe legend will be deleted in the destructor of the plot or when\nanother legend is inserted.

\n

Legends, that are not inserted into the layout of the plot widget\nneed to connect to the legendDataChanged() signal. Calling updateLegend()\ninitiates this signal for an initial update. When the application code\nwants to implement its own layout this also needs to be done for\nrendering plots to a document ( see QwtPlotRenderer ).

\n
\n
Parameters:
\n
    \n
  • legend (qwt.legend.QwtAbstractLegend) – Legend

  • \n
  • pos (QwtPlot.LegendPosition) – The legend’s position.

  • \n
  • ratio (float) – Ratio between legend and the bounding rectangle of title, canvas and axes

  • \n
\n
\n
\n
\n

Note

\n

For top/left position the number of columns will be limited to 1,\notherwise it will be set to unlimited.

\n
\n
\n

Note

\n

The legend will be shrunk if it would need more space than the\ngiven ratio. The ratio is limited to ]0.0 .. 1.0].\nIn case of <= 0.0 it will be reset to the default ratio.\nThe default vertical/horizontal ratio is 0.33/0.5.

\n
\n\n
\n\n
\n
\nupdateLegend(plotItem=None)[source]
\n

If plotItem is None, emit QwtPlot.legendDataChanged for all\nplot item. Otherwise, emit the signal for passed plot item.

\n
\n
Parameters:
\n

plotItem (qwt.plot.QwtPlotItem) – Plot item

\n
\n
\n\n
\n\n
\n
\nupdateLegendItems(plotItem, legendData)[source]
\n

Update all plot items interested in legend attributes

\n

Call QwtPlotItem.updateLegend(), when the\nQwtPlotItem.LegendInterest flag is set.

\n
\n
Parameters:
\n
    \n
  • plotItem (qwt.plot.QwtPlotItem) – Plot item

  • \n
  • legendData (list) – Entries to be displayed for the plot item ( usually 1 )

  • \n
\n
\n
\n
\n

See also

\n

QwtPlotItem.LegendInterest(),\nQwtPlotItem.updateLegend()

\n
\n
\n\n
\n
\nattachItem(plotItem, on)[source]
\n

Attach/Detach a plot item

\n
\n
Parameters:
\n
    \n
  • plotItem (qwt.plot.QwtPlotItem) – Plot item

  • \n
  • on (bool) – When true attach the item, otherwise detach it

  • \n
\n
\n
\n
\n\n
\n
\nprint_(printer)[source]
\n

Print plot to printer

\n
\n
Parameters:
\n

printer (QPaintDevice or QPrinter or QSvgGenerator) – Printer

\n
\n
\n
\n\n
\n
\nexportTo(filename, size=(800, 600), size_mm=None, resolution=85, format_=None)[source]
\n

Export plot to PDF or image file (SVG, PNG, …)

\n
\n
Parameters:
\n
    \n
  • filename (str) – Filename

  • \n
  • size (tuple) – (width, height) size in pixels

  • \n
  • size_mm (tuple) – (width, height) size in millimeters

  • \n
  • resolution (int) – Resolution in dots per Inch (dpi)

  • \n
  • format (str) – File format (PDF, SVG, PNG, …)

  • \n
\n
\n
\n
\n\n
\n\n
\n
\n

QwtPlotItem

\n
\n
\nclass qwt.plot.QwtPlotItem(title=None, icon=None)[source]
\n

Base class for items on the plot canvas

\n

A plot item is “something”, that can be painted on the plot canvas,\nor only affects the scales of the plot widget. They can be categorized as:

\n
    \n
  • Representator

    \n

    A “Representator” is an item that represents some sort of data\non the plot canvas. The different representator classes are organized\naccording to the characteristics of the data:

    \n
    \n
    \n
    \n
  • \n
  • Decorators

    \n

    A “Decorator” is an item, that displays additional information, that\nis not related to any data:

    \n
    \n
    \n
  • \n
\n

Depending on the QwtPlotItem.ItemAttribute flags, an item is included\ninto autoscaling or has an entry on the legend.

\n

Before misusing the existing item classes it might be better to\nimplement a new type of plot item\n( don’t implement a watermark as spectrogram ).\nDeriving a new type of QwtPlotItem primarily means to implement\nthe YourPlotItem.draw() method.

\n
\n

See also

\n

The cpuplot example shows the implementation of additional plot items.

\n
\n
\n
\nclass QwtPlotItem([title=None])
\n

Constructor

\n
\n
Parameters:
\n

title (qwt.text.QwtText or str) – Title of the item

\n
\n
\n
\n\n
\n
\nattach(plot)[source]
\n

Attach the item to a plot.

\n

This method will attach a QwtPlotItem to the QwtPlot argument.\nIt will first detach the QwtPlotItem from any plot from a previous\ncall to attach (if necessary). If a None argument is passed, it will\ndetach from any QwtPlot it was attached to.

\n
\n
Parameters:
\n

plot (qwt.plot.QwtPlot) – Plot widget

\n
\n
\n
\n

See also

\n

detach()

\n
\n
\n\n
\n
\ndetach()[source]
\n

Detach the item from a plot.

\n

This method detaches a QwtPlotItem from any QwtPlot it has been\nassociated with.

\n
\n

See also

\n

attach()

\n
\n
\n\n
\n
\nrtti()[source]
\n

Return rtti for the specific class represented. QwtPlotItem is\nsimply a virtual interface class, and base classes will implement\nthis method with specific rtti values so a user can differentiate\nthem.

\n
\n
Returns:
\n

rtti value

\n
\n
\n
\n\n
\n
\nplot()[source]
\n
\n
Returns:
\n

attached plot

\n
\n
\n
\n\n
\n
\nz()[source]
\n

Plot items are painted in increasing z-order.

\n
\n
Returns:
\n

item z order

\n
\n
\n
\n

See also

\n

setZ(), QwtPlotDict.itemList()

\n
\n
\n\n
\n
\nsetZ(z)[source]
\n

Set the z value

\n

Plot items are painted in increasing z-order.

\n
\n
Parameters:
\n

z (float) – Z-value

\n
\n
\n
\n

See also

\n

z(), QwtPlotDict.itemList()

\n
\n
\n\n
\n
\nsetTitle(title)[source]
\n

Set a new title

\n
\n
Parameters:
\n

title (qwt.text.QwtText or str) – Title

\n
\n
\n
\n

See also

\n

title()

\n
\n
\n\n
\n
\ntitle()[source]
\n
\n
Returns:
\n

Title of the item

\n
\n
\n
\n

See also

\n

setTitle()

\n
\n
\n\n
\n
\nsetIcon(icon)[source]
\n

Set item icon

\n
\n
Parameters:
\n

icon (QIcon) – Icon

\n
\n
\n
\n

See also

\n

icon()

\n
\n
\n\n
\n
\nicon()[source]
\n
\n
Returns:
\n

Icon of the item

\n
\n
\n
\n

See also

\n

setIcon()

\n
\n
\n\n
\n
\nsetItemAttribute(attribute, on=True)[source]
\n

Toggle an item attribute

\n
\n
Parameters:
\n
    \n
  • attribute (int) – Attribute type

  • \n
  • on (bool) – True/False

  • \n
\n
\n
\n
\n

See also

\n

testItemAttribute()

\n
\n
\n\n
\n
\ntestItemAttribute(attribute)[source]
\n

Test an item attribute

\n
\n
Parameters:
\n

attribute (int) – Attribute type

\n
\n
Returns:
\n

True/False

\n
\n
\n
\n

See also

\n

setItemAttribute()

\n
\n
\n\n
\n
\nsetItemInterest(interest, on=True)[source]
\n

Toggle an item interest

\n
\n
Parameters:
\n
    \n
  • attribute (int) – Interest type

  • \n
  • on (bool) – True/False

  • \n
\n
\n
\n
\n

See also

\n

testItemInterest()

\n
\n
\n\n
\n
\ntestItemInterest(interest)[source]
\n

Test an item interest

\n
\n
Parameters:
\n

attribute (int) – Interest type

\n
\n
Returns:
\n

True/False

\n
\n
\n
\n

See also

\n

setItemInterest()

\n
\n
\n\n
\n
\nsetRenderHint(hint, on=True)[source]
\n

Toggle a render hint

\n
\n
Parameters:
\n
    \n
  • hint (int) – Render hint

  • \n
  • on (bool) – True/False

  • \n
\n
\n
\n
\n

See also

\n

testRenderHint()

\n
\n
\n\n
\n
\ntestRenderHint(hint)[source]
\n

Test a render hint

\n
\n
Parameters:
\n

attribute (int) – Render hint

\n
\n
Returns:
\n

True/False

\n
\n
\n
\n

See also

\n

setRenderHint()

\n
\n
\n\n
\n
\nsetLegendIconSize(size)[source]
\n

Set the size of the legend icon

\n

The default setting is 8x8 pixels

\n
\n
Parameters:
\n

size (QSize) – Size

\n
\n
\n\n
\n\n
\n
\nlegendIconSize()[source]
\n
\n
Returns:
\n

Legend icon size

\n
\n
\n\n
\n\n
\n
\nlegendIcon(index, size)[source]
\n
\n
Parameters:
\n
    \n
  • index (int) – Index of the legend entry (usually there is only one)

  • \n
  • size (QSizeF) – Icon size

  • \n
\n
\n
Returns:
\n

Icon representing the item on the legend

\n
\n
\n

The default implementation returns an invalid icon

\n\n
\n\n
\n
\nshow()[source]
\n

Show the item

\n
\n\n
\n
\nhide()[source]
\n

Hide the item

\n
\n\n
\n
\nsetVisible(on)[source]
\n

Show/Hide the item

\n
\n
Parameters:
\n

on (bool) – Show if True, otherwise hide

\n
\n
\n
\n

See also

\n

isVisible(), show(), hide()

\n
\n
\n\n
\n
\nisVisible()[source]
\n
\n
Returns:
\n

True if visible

\n
\n
\n
\n

See also

\n

setVisible(), show(), hide()

\n
\n
\n\n
\n
\nitemChanged()[source]
\n

Update the legend and call QwtPlot.autoRefresh() for the\nparent plot.

\n
\n

See also

\n

QwtPlot.legendChanged(), QwtPlot.autoRefresh()

\n
\n
\n\n
\n
\nlegendChanged()[source]
\n

Update the legend of the parent plot.

\n\n
\n\n
\n
\nsetAxes(xAxis, yAxis)[source]
\n

Set X and Y axis

\n

The item will painted according to the coordinates of its Axes.

\n
\n
Parameters:
\n
    \n
  • xAxis (int) – X Axis (QwtPlot.xBottom or QwtPlot.xTop)

  • \n
  • yAxis (int) – Y Axis (QwtPlot.yLeft or QwtPlot.yRight)

  • \n
\n
\n
\n\n
\n\n
\n
\nsetAxis(xAxis, yAxis)[source]
\n

Set X and Y axis

\n
\n

Warning

\n

setAxis has been removed in Qwt6: please use\nsetAxes() instead

\n
\n
\n\n
\n
\nsetXAxis(axis)[source]
\n

Set the X axis

\n

The item will painted according to the coordinates its Axes.

\n
\n
Parameters:
\n

axis (int) – X Axis (QwtPlot.xBottom or QwtPlot.xTop)

\n
\n
\n\n
\n\n
\n
\nsetYAxis(axis)[source]
\n

Set the Y axis

\n

The item will painted according to the coordinates its Axes.

\n
\n
Parameters:
\n

axis (int) – Y Axis (QwtPlot.yLeft or QwtPlot.yRight)

\n
\n
\n\n
\n\n
\n
\nxAxis()[source]
\n
\n
Returns:
\n

xAxis

\n
\n
\n
\n\n
\n
\nyAxis()[source]
\n
\n
Returns:
\n

yAxis

\n
\n
\n
\n\n
\n
\nboundingRect()[source]
\n
\n
Returns:
\n

An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)

\n
\n
\n
\n

Note

\n

A width or height < 0.0 is ignored by the autoscaler

\n
\n
\n\n
\n
\ngetCanvasMarginHint(xMap, yMap, canvasRect)[source]
\n

Calculate a hint for the canvas margin

\n

When the QwtPlotItem::Margins flag is enabled the plot item\nindicates, that it needs some margins at the borders of the canvas.\nThis is f.e. used by bar charts to reserve space for displaying\nthe bars.

\n

The margins are in target device coordinates ( pixels on screen )

\n
\n
Parameters:
\n
\n
\n
\n\n
\n\n
\n
\nlegendData()[source]
\n

Return all information, that is needed to represent\nthe item on the legend

\n

QwtLegendData is basically a list of QVariants that makes it\npossible to overload and reimplement legendData() to\nreturn almost any type of information, that is understood\nby the receiver that acts as the legend.

\n

The default implementation returns one entry with\nthe title() of the item and the legendIcon().

\n
\n
Returns:
\n

Data, that is needed to represent the item on the legend

\n
\n
\n\n
\n\n
\n
\nupdateLegend(item, data)[source]
\n

Update the item to changes of the legend info

\n

Plot items that want to display a legend ( not those, that want to\nbe displayed on a legend ! ) will have to implement updateLegend().

\n

updateLegend() is only called when the LegendInterest interest\nis enabled. The default implementation does nothing.

\n
\n
Parameters:
\n
    \n
  • item (qwt.plot.QwtPlotItem) – Plot item to be displayed on a legend

  • \n
  • data (list) – Attributes how to display item on the legend

  • \n
\n
\n
\n
\n

Note

\n

Plot items, that want to be displayed on a legend\nneed to enable the QwtPlotItem.Legend flag and to implement\nlegendData() and legendIcon()

\n
\n
\n\n
\n
\nscaleRect(xMap, yMap)[source]
\n

Calculate the bounding scale rectangle of 2 maps

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Bounding scale rect of the scale maps, not normalized

\n
\n
\n
\n\n
\n
\npaintRect(xMap, yMap)[source]
\n

Calculate the bounding paint rectangle of 2 maps

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Bounding paint rectangle of the scale maps, not normalized

\n
\n
\n
\n\n
\n\n
\n
\n

QwtPlotCanvas

\n
\n
\nclass qwt.plot_canvas.QwtPlotCanvas(plot=None)[source]
\n

Canvas of a QwtPlot.

\n

Canvas is the widget where all plot items are displayed

\n\n

Paint attributes:

\n
\n
    \n
  • QwtPlotCanvas.BackingStore:

    \n
    \n

    Paint double buffered reusing the content of the pixmap buffer\nwhen possible.

    \n

    Using a backing store might improve the performance significantly,\nwhen working with widget overlays (like rubber bands).\nDisabling the cache might improve the performance for\nincremental paints\n(using qwt.plot_directpainter.QwtPlotDirectPainter).

    \n
    \n
  • \n
  • QwtPlotCanvas.Opaque:

    \n
    \n

    Try to fill the complete contents rectangle of the plot canvas

    \n

    When using styled backgrounds Qt assumes, that the canvas doesn’t\nfill its area completely (f.e because of rounded borders) and\nfills the area below the canvas. When this is done with gradients\nit might result in a serious performance bottleneck - depending on\nthe size.

    \n

    When the Opaque attribute is enabled the canvas tries to\nidentify the gaps with some heuristics and to fill those only.

    \n
    \n

    Warning

    \n

    Will not work for semitransparent backgrounds

    \n
    \n
    \n
  • \n
  • QwtPlotCanvas.HackStyledBackground:

    \n
    \n

    Try to improve painting of styled backgrounds

    \n

    QwtPlotCanvas supports the box model attributes for\ncustomizing the layout with style sheets. Unfortunately\nthe design of Qt style sheets has no concept how to\nhandle backgrounds with rounded corners - beside of padding.

    \n

    When HackStyledBackground is enabled the plot canvas tries\nto separate the background from the background border\nby reverse engineering to paint the background before and\nthe border after the plot items. In this order the border\ngets perfectly antialiased and you can avoid some pixel\nartifacts in the corners.

    \n
    \n
  • \n
  • QwtPlotCanvas.ImmediatePaint:

    \n
    \n

    When ImmediatePaint is set replot() calls repaint()\ninstead of update().

    \n
    \n

    See also

    \n

    replot(), QWidget.repaint(),\nQWidget.update()

    \n
    \n
    \n
  • \n
\n
\n

Focus indicators:

\n
\n
    \n
  • QwtPlotCanvas.NoFocusIndicator:

    \n
    \n

    Don’t paint a focus indicator

    \n
    \n
  • \n
  • QwtPlotCanvas.CanvasFocusIndicator:

    \n
    \n

    The focus is related to the complete canvas.\nPaint the focus indicator using paintFocus()

    \n
    \n
  • \n
  • QwtPlotCanvas.ItemFocusIndicator:

    \n
    \n

    The focus is related to an item (curve, point, …) on\nthe canvas. It is up to the application to display a\nfocus indication using f.e. highlighting.

    \n
    \n
  • \n
\n
\n
\n
\nclass QwtPlotCanvas([plot=None])
\n

Constructor

\n
\n
Parameters:
\n

plot (qwt.plot.QwtPlot) – Parent plot widget

\n
\n
\n\n
\n\n
\n
\nplot()[source]
\n
\n
Returns:
\n

Parent plot widget

\n
\n
\n
\n\n
\n
\nsetPaintAttribute(attribute, on=True)[source]
\n

Changing the paint attributes

\n

Paint attributes:

\n
\n
    \n
  • QwtPlotCanvas.BackingStore

  • \n
  • QwtPlotCanvas.Opaque

  • \n
  • QwtPlotCanvas.HackStyledBackground

  • \n
  • QwtPlotCanvas.ImmediatePaint

  • \n
\n
\n
\n
Parameters:
\n
    \n
  • attribute (int) – Paint attribute

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n\n
\n\n
\n
\ntestPaintAttribute(attribute)[source]
\n

Test whether a paint attribute is enabled

\n
\n
Parameters:
\n

attribute (int) – Paint attribute

\n
\n
Returns:
\n

True, when attribute is enabled

\n
\n
\n
\n

See also

\n

setPaintAttribute()

\n
\n
\n\n
\n
\nbackingStore()[source]
\n
\n
Returns:
\n

Backing store, might be None

\n
\n
\n
\n\n
\n
\ninvalidateBackingStore()[source]
\n

Invalidate the internal backing store

\n
\n\n
\n
\nsetFocusIndicator(focusIndicator)[source]
\n

Set the focus indicator

\n

Focus indicators:

\n
\n
    \n
  • QwtPlotCanvas.NoFocusIndicator

  • \n
  • QwtPlotCanvas.CanvasFocusIndicator

  • \n
  • QwtPlotCanvas.ItemFocusIndicator

  • \n
\n
\n
\n
Parameters:
\n

focusIndicator (int) – Focus indicator

\n
\n
\n
\n

See also

\n

focusIndicator()

\n
\n
\n\n
\n
\nfocusIndicator()[source]
\n
\n
Returns:
\n

Focus indicator

\n
\n
\n
\n

See also

\n

setFocusIndicator()

\n
\n
\n\n
\n
\nsetBorderRadius(radius)[source]
\n

Set the radius for the corners of the border frame

\n
\n
Parameters:
\n

radius (float) – Radius of a rounded corner

\n
\n
\n
\n

See also

\n

borderRadius()

\n
\n
\n\n
\n
\nborderRadius()[source]
\n
\n
Returns:
\n

Radius for the corners of the border frame

\n
\n
\n
\n

See also

\n

setBorderRadius()

\n
\n
\n\n
\n
\nevent(self, e: QEvent | None) bool[source]
\n
\n\n
\n
\npaintEvent(self, a0: QPaintEvent | None)[source]
\n
\n\n
\n
\ndrawBorder(painter)[source]
\n

Draw the border of the plot canvas

\n
\n
Parameters:
\n

painter (QPainter) – Painter

\n
\n
\n
\n

See also

\n

setBorderRadius()

\n
\n
\n\n
\n
\nresizeEvent(self, a0: QResizeEvent | None)[source]
\n
\n\n
\n
\ndrawFocusIndicator(painter)[source]
\n

Draw the focus indication

\n
\n
Parameters:
\n

painter (QPainter) – Painter

\n
\n
\n
\n\n
\n
\nreplot()[source]
\n

Invalidate the paint cache and repaint the canvas

\n
\n\n
\n
\nupdateStyleSheetInfo()[source]
\n

Update the cached information about the current style sheet

\n
\n\n
\n
\nborderPath(rect)[source]
\n

Calculate the painter path for a styled or rounded border

\n

When the canvas has no styled background or rounded borders\nthe painter path is empty.

\n
\n
Parameters:
\n

rect (QRect) – Bounding rectangle of the canvas

\n
\n
Returns:
\n

Painter path, that can be used for clipping

\n
\n
\n
\n\n
\n\n
\n
\n
\n

Plot items

\n
\n

QwtPlotGrid

\n
\n
\nclass qwt.plot_grid.QwtPlotGrid(title=\'Grid\')[source]
\n

A class which draws a coordinate grid

\n

The QwtPlotGrid class can be used to draw a coordinate grid.\nA coordinate grid consists of major and minor vertical\nand horizontal grid lines. The locations of the grid lines\nare determined by the X and Y scale divisions which can\nbe assigned with setXDiv() and setYDiv().\nThe draw() member draws the grid within a bounding\nrectangle.

\n
\n
\nclassmethod make(plot=None, z=None, enablemajor=None, enableminor=None, color=None, width=None, style=None, mincolor=None, minwidth=None, minstyle=None)[source]
\n

Create and setup a new QwtPlotGrid object (convenience function).

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot or None) – Plot to attach the curve to

  • \n
  • z (float or None) – Z-value

  • \n
  • enablemajor (bool or None) – Tuple of two boolean values (x, y) for enabling major grid lines

  • \n
  • enableminor (bool or None) – Tuple of two boolean values (x, y) for enabling minor grid lines

  • \n
  • color (QColor or str or None) – Pen color for both major and minor grid lines (default: Qt.gray)

  • \n
  • width (float or None) – Pen width for both major and minor grid lines (default: 1.0)

  • \n
  • style (Qt.PenStyle or None) – Pen style for both major and minor grid lines (default: Qt.DotLine)

  • \n
  • mincolor (QColor or str or None) – Pen color for minor grid lines only (default: Qt.gray)

  • \n
  • minwidth (float or None) – Pen width for minor grid lines only (default: 1.0)

  • \n
  • minstyle (Qt.PenStyle or None) – Pen style for minor grid lines only (default: Qt.DotLine)

  • \n
\n
\n
\n\n
\n\n
\n
\nrtti()[source]
\n
\n
Returns:
\n

Return QwtPlotItem.Rtti_PlotGrid

\n
\n
\n
\n\n
\n
\nenableX(on)[source]
\n

Enable or disable vertical grid lines

\n
\n
Parameters:
\n

on (bool) – Enable (true) or disable

\n
\n
\n
\n

See also

\n

enableXMin()

\n
\n
\n\n
\n
\nenableY(on)[source]
\n

Enable or disable horizontal grid lines

\n
\n
Parameters:
\n

on (bool) – Enable (true) or disable

\n
\n
\n
\n

See also

\n

enableYMin()

\n
\n
\n\n
\n
\nenableXMin(on)[source]
\n

Enable or disable minor vertical grid lines.

\n
\n
Parameters:
\n

on (bool) – Enable (true) or disable

\n
\n
\n
\n

See also

\n

enableX()

\n
\n
\n\n
\n
\nenableYMin(on)[source]
\n

Enable or disable minor horizontal grid lines.

\n
\n
Parameters:
\n

on (bool) – Enable (true) or disable

\n
\n
\n
\n

See also

\n

enableY()

\n
\n
\n\n
\n
\nsetXDiv(scaleDiv)[source]
\n

Assign an x axis scale division

\n
\n
Parameters:
\n

scaleDiv (qwt.scale_div.QwtScaleDiv) – Scale division

\n
\n
\n
\n\n
\n
\nsetYDiv(scaleDiv)[source]
\n

Assign an y axis scale division

\n
\n
Parameters:
\n

scaleDiv (qwt.scale_div.QwtScaleDiv) – Scale division

\n
\n
\n
\n\n
\n
\nsetPen(*args)[source]
\n

Build and/or assign a pen for both major and minor grid lines

\n
\n
\nsetPen(color, width, style)[source]
\n

Build and assign a pen for both major and minor grid lines

\n

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\nnon cosmetic (see QPen.isCosmetic()). This method signature has\nbeen introduced to hide this incompatibility.

\n
\n
Parameters:
\n
    \n
  • color (QColor) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
\n
\n
\n
\n\n
\n
\nsetPen(pen)[source]
\n

Assign a pen for both major and minor grid lines

\n
\n
Parameters:
\n

pen (QPen) – New pen

\n
\n
\n
\n\n
\n

See also

\n

pen(), brush()

\n
\n
\n\n
\n
\nsetMajorPen(*args)[source]
\n

Build and/or assign a pen for both major grid lines

\n
\n
\nsetMajorPen(color, width, style)[source]
\n

Build and assign a pen for both major grid lines

\n

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\nnon cosmetic (see QPen.isCosmetic()). This method signature has\nbeen introduced to hide this incompatibility.

\n
\n
Parameters:
\n
    \n
  • color (QColor) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
\n
\n
\n
\n\n
\n
\nsetMajorPen(pen)[source]
\n

Assign a pen for the major grid lines

\n
\n
Parameters:
\n

pen (QPen) – New pen

\n
\n
\n
\n\n
\n

See also

\n

majorPen(), setMinorPen(),\nsetPen(), pen(), brush()

\n
\n
\n\n
\n
\nsetMinorPen(*args)[source]
\n

Build and/or assign a pen for both minor grid lines

\n
\n
\nsetMinorPen(color, width, style)[source]
\n

Build and assign a pen for both minor grid lines

\n

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\nnon cosmetic (see QPen.isCosmetic()). This method signature has\nbeen introduced to hide this incompatibility.

\n
\n
Parameters:
\n
    \n
  • color (QColor) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
\n
\n
\n
\n\n
\n
\nsetMinorPen(pen)[source]
\n

Assign a pen for the minor grid lines

\n
\n
Parameters:
\n

pen (QPen) – New pen

\n
\n
\n
\n\n
\n

See also

\n

minorPen(), setMajorPen(),\nsetPen(), pen(), brush()

\n
\n
\n\n
\n
\ndraw(painter, xMap, yMap, canvasRect)[source]
\n

Draw the grid

\n

The grid is drawn into the bounding rectangle such that\ngrid lines begin and end at the rectangle’s borders. The X and Y\nmaps are used to map the scale divisions into the drawing region\nscreen.

\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\nmajorPen()[source]
\n
\n
Returns:
\n

the pen for the major grid lines

\n
\n
\n\n
\n\n
\n
\nminorPen()[source]
\n
\n
Returns:
\n

the pen for the minor grid lines

\n
\n
\n\n
\n\n
\n
\nxEnabled()[source]
\n
\n
Returns:
\n

True if vertical grid lines are enabled

\n
\n
\n
\n

See also

\n

enableX()

\n
\n
\n\n
\n
\nyEnabled()[source]
\n
\n
Returns:
\n

True if horizontal grid lines are enabled

\n
\n
\n
\n

See also

\n

enableY()

\n
\n
\n\n
\n
\nxMinEnabled()[source]
\n
\n
Returns:
\n

True if minor vertical grid lines are enabled

\n
\n
\n
\n

See also

\n

enableXMin()

\n
\n
\n\n
\n
\nyMinEnabled()[source]
\n
\n
Returns:
\n

True if minor horizontal grid lines are enabled

\n
\n
\n
\n

See also

\n

enableYMin()

\n
\n
\n\n
\n
\nxScaleDiv()[source]
\n
\n
Returns:
\n

the scale division of the x axis

\n
\n
\n
\n\n
\n
\nyScaleDiv()[source]
\n
\n
Returns:
\n

the scale division of the y axis

\n
\n
\n
\n\n
\n
\nupdateScaleDiv(xScaleDiv, yScaleDiv)[source]
\n

Update the grid to changes of the axes scale division

\n
\n
Parameters:
\n
\n
\n
\n
\n

See also

\n

updateAxes()

\n
\n
\n\n
\n\n
\n
\n

QwtPlotCurve

\n
\n
\nclass qwt.plot_curve.QwtPlotCurve(title=None)[source]
\n

A plot item, that represents a series of points

\n

A curve is the representation of a series of points in the x-y plane.\nIt supports different display styles and symbols.

\n\n

Curve styles:

\n
\n
    \n
  • QwtPlotCurve.NoCurve:

    \n

    Don’t draw a curve. Note: This doesn’t affect the symbols.

    \n
  • \n
  • QwtPlotCurve.Lines:

    \n

    Connect the points with straight lines.

    \n
  • \n
  • QwtPlotCurve.Sticks:

    \n

    Draw vertical or horizontal sticks ( depending on the\norientation() ) from a baseline which is defined by setBaseline().

    \n
  • \n
  • QwtPlotCurve.Steps:

    \n

    Connect the points with a step function. The step function\nis drawn from the left to the right or vice versa,\ndepending on the QwtPlotCurve::Inverted attribute.

    \n
  • \n
  • QwtPlotCurve.Dots:

    \n

    Draw dots at the locations of the data points. Note:\nThis is different from a dotted line (see setPen()), and faster\nas a curve in QwtPlotCurve::NoStyle style and a symbol\npainting a point.

    \n
  • \n
  • QwtPlotCurve.UserCurve:

    \n

    Styles >= QwtPlotCurve.UserCurve are reserved for derived\nclasses of QwtPlotCurve that overload drawCurve() with\nadditional application specific curve types.

    \n
  • \n
\n
\n

Curve attributes:

\n
\n
    \n
  • QwtPlotCurve.Inverted:

    \n

    For QwtPlotCurve.Steps only.\nDraws a step function from the right to the left.

    \n
  • \n
\n
\n

Legend attributes:

\n
\n
    \n
  • QwtPlotCurve.LegendNoAttribute:

    \n

    QwtPlotCurve tries to find a color representing the curve\nand paints a rectangle with it.

    \n
  • \n
  • QwtPlotCurve.LegendShowLine:

    \n

    If the style() is not QwtPlotCurve.NoCurve a line\nis painted with the curve pen().

    \n
  • \n
  • QwtPlotCurve.LegendShowSymbol:

    \n

    If the curve has a valid symbol it is painted.

    \n
  • \n
  • QwtPlotCurve.LegendShowBrush:

    \n

    If the curve has a brush a rectangle filled with the\ncurve brush() is painted.

    \n
  • \n
\n
\n
\n
\nclass QwtPlotCurve([title=None])
\n

Constructor

\n
\n
Parameters:
\n

title (qwt.text.QwtText or str or None) – Curve title

\n
\n
\n
\n\n
\n
\nclassmethod make(xdata=None, ydata=None, title=None, plot=None, z=None, x_axis=None, y_axis=None, style=None, symbol=None, linecolor=None, linewidth=None, linestyle=None, antialiased=False, size=None, finite=None)[source]
\n

Create and setup a new QwtPlotCurve object (convenience function).

\n
\n
Parameters:
\n
    \n
  • xdata – List/array of x values

  • \n
  • ydata – List/array of y values

  • \n
  • title (qwt.text.QwtText or str or None) – Curve title

  • \n
  • plot (qwt.plot.QwtPlot or None) – Plot to attach the curve to

  • \n
  • z (float or None) – Z-value

  • \n
  • x_axis (int or None) – curve X-axis (default: QwtPlot.yLeft)

  • \n
  • y_axis (int or None) – curve Y-axis (default: QwtPlot.xBottom)

  • \n
  • style (int or None) – curve style (QwtPlotCurve.NoCurve, QwtPlotCurve.Lines, QwtPlotCurve.Sticks, QwtPlotCurve.Steps, QwtPlotCurve.Dots, QwtPlotCurve.UserCurve)

  • \n
  • symbol (qwt.symbol.QwtSymbol or None) – curve symbol

  • \n
  • linecolor (QColor or str or None) – curve line color

  • \n
  • linewidth (float or None) – curve line width

  • \n
  • linestyle (Qt.PenStyle or None) – curve pen style

  • \n
  • antialiased (bool) – if True, enable antialiasing rendering

  • \n
  • size (int or None) – size of xData and yData

  • \n
  • finite (bool) – if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements

  • \n
\n
\n
\n
\n

See also

\n

setData(), setPen(), attach()

\n
\n
\n\n
\n
\ninit()[source]
\n

Initialize internal members

\n
\n\n
\n
\nrtti()[source]
\n
\n
Returns:
\n

QwtPlotItem.Rtti_PlotCurve

\n
\n
\n
\n\n
\n
\nsetLegendAttribute(attribute, on=True)[source]
\n

Specify an attribute how to draw the legend icon

\n

Legend attributes:

\n
\n
    \n
  • QwtPlotCurve.LegendNoAttribute

  • \n
  • QwtPlotCurve.LegendShowLine

  • \n
  • QwtPlotCurve.LegendShowSymbol

  • \n
  • QwtPlotCurve.LegendShowBrush

  • \n
\n
\n
\n
Parameters:
\n
    \n
  • attribute (int) – Legend attribute

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n\n
\n\n
\n
\ntestLegendAttribute(attribute)[source]
\n
\n
Parameters:
\n

attribute (int) – Legend attribute

\n
\n
Returns:
\n

True, when attribute is enabled

\n
\n
\n
\n

See also

\n

setLegendAttribute()

\n
\n
\n\n
\n
\nsetStyle(style)[source]
\n

Set the curve’s drawing style

\n

Valid curve styles:

\n
\n
    \n
  • QwtPlotCurve.NoCurve

  • \n
  • QwtPlotCurve.Lines

  • \n
  • QwtPlotCurve.Sticks

  • \n
  • QwtPlotCurve.Steps

  • \n
  • QwtPlotCurve.Dots

  • \n
  • QwtPlotCurve.UserCurve

  • \n
\n
\n
\n
Parameters:
\n

style (int) – Curve style

\n
\n
\n
\n

See also

\n

style()

\n
\n
\n\n
\n
\nstyle()[source]
\n
\n
Returns:
\n

Style of the curve

\n
\n
\n
\n

See also

\n

setStyle()

\n
\n
\n\n
\n
\nsetSymbol(symbol)[source]
\n

Assign a symbol

\n

The curve will take the ownership of the symbol, hence the previously\nset symbol will be delete by setting a new one. If symbol is None no\nsymbol will be drawn.

\n
\n
Parameters:
\n

symbol (qwt.symbol.QwtSymbol) – Symbol

\n
\n
\n
\n

See also

\n

symbol()

\n
\n
\n\n
\n
\nsymbol()[source]
\n
\n
Returns:
\n

Current symbol or None, when no symbol has been assigned

\n
\n
\n
\n

See also

\n

setSymbol()

\n
\n
\n\n
\n
\nsetPen(*args)[source]
\n

Build and/or assign a pen, depending on the arguments.

\n
\n
\nsetPen(color, width, style)[source]
\n

Build and assign a pen

\n

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\nnon cosmetic (see QPen.isCosmetic()). This method signature has\nbeen introduced to hide this incompatibility.

\n
\n
Parameters:
\n
    \n
  • color (QColor) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
\n
\n
\n
\n\n
\n
\nsetPen(pen)[source]
\n

Assign a pen

\n
\n
Parameters:
\n

pen (QPen) – New pen

\n
\n
\n
\n\n
\n

See also

\n

pen(), brush()

\n
\n
\n\n
\n
\npen()[source]
\n
\n
Returns:
\n

Pen used to draw the lines

\n
\n
\n
\n

See also

\n

setPen(), brush()

\n
\n
\n\n
\n
\nsetBrush(brush)[source]
\n

Assign a brush.

\n

In case of brush.style() != QBrush.NoBrush\nand style() != QwtPlotCurve.Sticks\nthe area between the curve and the baseline will be filled.

\n

In case not brush.color().isValid() the area will be filled by\npen.color(). The fill algorithm simply connects the first and the\nlast curve point to the baseline. So the curve data has to be sorted\n(ascending or descending).

\n
\n
Parameters:
\n

brush (QBrush or QColor) – New brush

\n
\n
\n\n
\n\n
\n
\nbrush()[source]
\n
\n
Returns:
\n

Brush used to fill the area between lines and the baseline

\n
\n
\n\n
\n\n
\n
\ndirectPaint(from_, to)[source]
\n

When observing a measurement while it is running, new points have\nto be added to an existing seriesItem. This method can be used to\ndisplay them avoiding a complete redraw of the canvas.

\n

Setting plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)\nwill result in faster painting, if the paint engine of the canvas\nwidget supports this feature.

\n
\n
Parameters:
\n
    \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted

  • \n
\n
\n
\n
\n

See also

\n

drawSeries()

\n
\n
\n\n
\n
\ndrawSeries(painter, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw an interval of the curve

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n
\n

See also

\n

drawCurve(), drawSymbols()

\n
\n
\n\n
\n
\ndrawCurve(painter, style, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw the line part (without symbols) of a curve interval.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • style (int) – curve style, see QwtPlotCurve.CurveStyle

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n\n
\n\n
\n
\ndrawLines(painter, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw lines

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n
\n

See also

\n

draw(), drawDots(),\ndrawSteps(), drawSticks()

\n
\n
\n\n
\n
\ndrawSticks(painter, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw sticks

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n
\n

See also

\n

draw(), drawDots(),\ndrawSteps(), drawLines()

\n
\n
\n\n
\n
\ndrawDots(painter, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw dots

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n
\n

See also

\n

draw(), drawSticks(),\ndrawSteps(), drawLines()

\n
\n
\n\n
\n
\ndrawSteps(painter, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw steps

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n
\n

See also

\n

draw(), drawSticks(),\ndrawDots(), drawLines()

\n
\n
\n\n
\n
\nsetCurveAttribute(attribute, on=True)[source]
\n

Specify an attribute for drawing the curve

\n

Supported curve attributes:

\n
\n
    \n
  • QwtPlotCurve.Inverted

  • \n
\n
\n
\n
Parameters:
\n
    \n
  • attribute (int) – Curve attribute

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n
\n

See also

\n

testCurveAttribute()

\n
\n
\n\n
\n
\ntestCurveAttribute(attribute)[source]
\n
\n
Returns:
\n

True, if attribute is enabled

\n
\n
\n
\n

See also

\n

setCurveAttribute()

\n
\n
\n\n
\n
\nfillCurve(painter, xMap, yMap, canvasRect, polygon)[source]
\n

Fill the area between the curve and the baseline with\nthe curve brush

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • polygon (QPolygonF) – Polygon - will be modified !

  • \n
\n
\n
\n\n
\n\n
\n
\nclosePolyline(painter, xMap, yMap, polygon)[source]
\n

Complete a polygon to be a closed polygon including the\narea between the original polygon and the baseline.

\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\ndrawSymbols(painter, symbol, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw symbols

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • symbol (qwt.symbol.QwtSymbol) – Curve symbol

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n\n
\n\n
\n
\nsetBaseline(value)[source]
\n

Set the value of the baseline

\n

The baseline is needed for filling the curve with a brush or\nthe Sticks drawing style.

\n

The interpretation of the baseline depends on the orientation().\nWith Qt.Horizontal, the baseline is interpreted as a horizontal line\nat y = baseline(), with Qt.Vertical, it is interpreted as a vertical\nline at x = baseline().

\n

The default value is 0.0.

\n
\n
Parameters:
\n

value (float) – Value of the baseline

\n
\n
\n\n
\n\n
\n
\nbaseline()[source]
\n
\n
Returns:
\n

Value of the baseline

\n
\n
\n
\n

See also

\n

setBaseline()

\n
\n
\n\n
\n
\nclosestPoint(pos)[source]
\n

Find the closest curve point for a specific position

\n
\n
Parameters:
\n

pos (QPoint) – Position, where to look for the closest curve point

\n
\n
Returns:
\n

tuple (index, dist)

\n
\n
\n

dist is the distance between the position and the closest curve\npoint. index is the index of the closest curve point, or -1 if\nnone can be found ( f.e when the curve has no points ).

\n
\n

Note

\n

closestPoint() implements a dumb algorithm, that iterates\nover all points

\n
\n
\n\n
\n
\nlegendIcon(index, size)[source]
\n
\n
Parameters:
\n
    \n
  • index (int) – Index of the legend entry (ignored as there is only one)

  • \n
  • size (QSizeF) – Icon size

  • \n
\n
\n
Returns:
\n

Icon representing the curve on the legend

\n
\n
\n\n
\n\n
\n
\nsetData(*args, **kwargs)[source]
\n

Initialize data with a series data object or an array of points.

\n
\n
\nsetData(data):
\n
\n
Parameters:
\n

data (.plot_series.QwtSeriesData) – Series data (e.g. QwtPointArrayData instance)

\n
\n
\n
\n\n
\n
\nsetData(xData, yData, [size=None], [finite=True]):
\n

Initialize data with x and y arrays.

\n

This signature was removed in Qwt6 and is temporarily maintained here to ensure compatibility with Qwt5.

\n

Same as setSamples(x, y, [size=None], [finite=True])

\n
\n
Parameters:
\n
    \n
  • x – List/array of x values

  • \n
  • y – List/array of y values

  • \n
  • size (int or None) – size of xData and yData

  • \n
  • finite (bool) – if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements

  • \n
\n
\n
\n
\n\n
\n

See also

\n

setSamples()

\n
\n
\n\n
\n
\nsetSamples(*args, **kwargs)[source]
\n

Initialize data with an array of points.

\n
\n
\nsetSamples(data):
\n
\n
Parameters:
\n

data (.plot_series.QwtSeriesData) – Series data (e.g. QwtPointArrayData instance)

\n
\n
\n
\n\n
\n
\nsetSamples(samples):
\n

Same as setData(QwtPointArrayData(samples))

\n
\n
Parameters:
\n

samples – List/array of points

\n
\n
\n
\n\n
\n
\nsetSamples(xData, yData, [size=None], [finite=True]):
\n

Same as setData(QwtPointArrayData(xData, yData, [size=None]))

\n
\n
Parameters:
\n
    \n
  • xData – List/array of x values

  • \n
  • yData – List/array of y values

  • \n
  • size (int or None) – size of xData and yData

  • \n
  • finite (bool) – if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements

  • \n
\n
\n
\n
\n\n\n
\n\n
\n\n
\n
\n

QwtPlotMarker

\n
\n
\nclass qwt.plot_marker.QwtPlotMarker(title=None)[source]
\n

A class for drawing markers

\n

A marker can be a horizontal line, a vertical line,\na symbol, a label or any combination of them, which can\nbe drawn around a center point inside a bounding rectangle.

\n

The setSymbol() member assigns a symbol to the marker.\nThe symbol is drawn at the specified point.

\n

With setLabel(), a label can be assigned to the marker.\nThe setLabelAlignment() member specifies where the label is drawn. All\nthe Align*-constants in Qt.AlignmentFlags (see Qt documentation)\nare valid. The interpretation of the alignment depends on the marker’s\nline style. The alignment refers to the center point of\nthe marker, which means, for example, that the label would be printed\nleft above the center point if the alignment was set to\nQt.AlignLeft | Qt.AlignTop.

\n

Line styles:

\n
\n
    \n
  • QwtPlotMarker.NoLine: No line

  • \n
  • QwtPlotMarker.HLine: A horizontal line

  • \n
  • QwtPlotMarker.VLine: A vertical line

  • \n
  • QwtPlotMarker.Cross: A crosshair

  • \n
\n
\n
\n
\nclassmethod make(xvalue=None, yvalue=None, title=None, label=None, symbol=None, plot=None, z=None, x_axis=None, y_axis=None, align=None, orientation=None, spacing=None, linestyle=None, color=None, width=None, style=None, antialiased=False)[source]
\n

Create and setup a new QwtPlotMarker object (convenience function).

\n
\n
Parameters:
\n
    \n
  • xvalue (float or None) – x position (optional, default: None)

  • \n
  • yvalue (float or None) – y position (optional, default: None)

  • \n
  • title (qwt.text.QwtText or str or None) – Marker title

  • \n
  • label (qwt.text.QwtText or str or None) – Label text

  • \n
  • symbol (qwt.symbol.QwtSymbol or None) – New symbol

  • \n
  • plot (qwt.plot.QwtPlot or None) – Plot to attach the curve to

  • \n
  • z (float or None) – Z-value

  • \n
  • x_axis (int) – curve X-axis (default: QwtPlot.yLeft)

  • \n
  • y_axis (int) – curve Y-axis (default: QwtPlot.xBottom)

  • \n
  • align (Qt.Alignment or None) – Alignment of the label

  • \n
  • orientation (Qt.Orientation or None) – Orientation of the label

  • \n
  • spacing (int or None) – Spacing (distance between the position and the label)

  • \n
  • linestyle (int) – Line style

  • \n
  • color (QColor or str or None) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
  • antialiased (bool) – if True, enable antialiasing rendering

  • \n
\n
\n
\n
\n

See also

\n

setData(), setPen(), attach()

\n
\n
\n\n
\n
\nrtti()[source]
\n
\n
Returns:
\n

QwtPlotItem.Rtti_PlotMarker

\n
\n
\n
\n\n
\n
\nvalue()[source]
\n
\n
Returns:
\n

Value

\n
\n
\n
\n\n
\n
\nxValue()[source]
\n
\n
Returns:
\n

x Value

\n
\n
\n
\n\n
\n
\nyValue()[source]
\n
\n
Returns:
\n

y Value

\n
\n
\n
\n\n
\n
\nsetValue(*args)[source]
\n

Set Value

\n
\n
\nsetValue(pos):
\n
\n
Parameters:
\n

pos (QPointF) – Position

\n
\n
\n
\n\n
\n
\nsetValue(x, y):
\n
\n
Parameters:
\n
    \n
  • x (float) – x position

  • \n
  • y (float) – y position

  • \n
\n
\n
\n
\n\n
\n\n
\n
\nsetXValue(x)[source]
\n

Set X Value

\n
\n
Parameters:
\n

x (float) – x position

\n
\n
\n
\n\n
\n
\nsetYValue(y)[source]
\n

Set Y Value

\n
\n
Parameters:
\n

y (float) – y position

\n
\n
\n
\n\n
\n
\ndraw(painter, xMap, yMap, canvasRect)[source]
\n

Draw the marker

\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\ndrawLines(painter, canvasRect, pos)[source]
\n

Draw the lines marker

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas in painter coordinates

  • \n
  • pos (QPointF) – Position of the marker, translated into widget coordinates

  • \n
\n
\n
\n\n
\n\n
\n
\ndrawLabel(painter, canvasRect, pos)[source]
\n

Align and draw the text label of the marker

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas in painter coordinates

  • \n
  • pos (QPointF) – Position of the marker, translated into widget coordinates

  • \n
\n
\n
\n\n
\n\n
\n
\nsetLineStyle(style)[source]
\n

Set the line style

\n
\n
Parameters:
\n

style (int) – Line style

\n
\n
\n

Line styles:

\n
\n
    \n
  • QwtPlotMarker.NoLine: No line

  • \n
  • QwtPlotMarker.HLine: A horizontal line

  • \n
  • QwtPlotMarker.VLine: A vertical line

  • \n
  • QwtPlotMarker.Cross: A crosshair

  • \n
\n
\n
\n

See also

\n

lineStyle()

\n
\n
\n\n
\n
\nlineStyle()[source]
\n
\n
Returns:
\n

the line style

\n
\n
\n
\n

See also

\n

setLineStyle()

\n
\n
\n\n
\n
\nsetSymbol(symbol)[source]
\n

Assign a symbol

\n
\n
Parameters:
\n

symbol (qwt.symbol.QwtSymbol) – New symbol

\n
\n
\n
\n

See also

\n

symbol()

\n
\n
\n\n
\n
\nsymbol()[source]
\n
\n
Returns:
\n

the symbol

\n
\n
\n
\n

See also

\n

setSymbol()

\n
\n
\n\n
\n
\nsetLabel(label)[source]
\n

Set the label

\n
\n
Parameters:
\n

label (qwt.text.QwtText or str) – Label text

\n
\n
\n
\n

See also

\n

label()

\n
\n
\n\n
\n
\nlabel()[source]
\n
\n
Returns:
\n

the label

\n
\n
\n
\n

See also

\n

setLabel()

\n
\n
\n\n
\n
\nsetLabelAlignment(align)[source]
\n

Set the alignment of the label

\n

In case of QwtPlotMarker.HLine the alignment is relative to the\ny position of the marker, but the horizontal flags correspond to the\ncanvas rectangle. In case of QwtPlotMarker.VLine the alignment is\nrelative to the x position of the marker, but the vertical flags\ncorrespond to the canvas rectangle.

\n

In all other styles the alignment is relative to the marker’s position.

\n
\n
Parameters:
\n

align (Qt.Alignment) – Alignment

\n
\n
\n\n
\n\n
\n
\nlabelAlignment()[source]
\n
\n
Returns:
\n

the label alignment

\n
\n
\n\n
\n\n
\n
\nsetLabelOrientation(orientation)[source]
\n

Set the orientation of the label

\n

When orientation is Qt.Vertical the label is rotated by 90.0 degrees\n(from bottom to top).

\n
\n
Parameters:
\n

orientation (Qt.Orientation) – Orientation of the label

\n
\n
\n\n
\n\n
\n
\nlabelOrientation()[source]
\n
\n
Returns:
\n

the label orientation

\n
\n
\n\n
\n\n
\n
\nsetSpacing(spacing)[source]
\n

Set the spacing

\n

When the label is not centered on the marker position, the spacing\nis the distance between the position and the label.

\n
\n
Parameters:
\n

spacing (int) – Spacing

\n
\n
\n\n
\n\n
\n
\nspacing()[source]
\n
\n
Returns:
\n

the spacing

\n
\n
\n
\n

See also

\n

setSpacing()

\n
\n
\n\n
\n
\nsetLinePen(*args)[source]
\n

Build and/or assigna a line pen, depending on the arguments.

\n
\n
\nsetLinePen(color, width, style)[source]
\n

Build and assign a line pen

\n

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\nnon cosmetic (see QPen.isCosmetic()). This method signature has\nbeen introduced to hide this incompatibility.

\n
\n
Parameters:
\n
    \n
  • color (QColor) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
\n
\n
\n
\n\n
\n
\nsetLinePen(pen)[source]
\n

Specify a pen for the line.

\n
\n
Parameters:
\n

pen (QPen) – New pen

\n
\n
\n
\n\n
\n

See also

\n

pen(), brush()

\n
\n
\n\n
\n
\nlinePen()[source]
\n
\n
Returns:
\n

the line pen

\n
\n
\n
\n

See also

\n

setLinePen()

\n
\n
\n\n
\n
\nboundingRect()[source]
\n
\n
Returns:
\n

An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)

\n
\n
\n
\n

Note

\n

A width or height < 0.0 is ignored by the autoscaler

\n
\n
\n\n
\n
\nlegendIcon(index, size)[source]
\n
\n
Parameters:
\n
    \n
  • index (int) – Index of the legend entry (ignored as there is only one)

  • \n
  • size (QSizeF) – Icon size

  • \n
\n
\n
Returns:
\n

Icon representing the marker on the legend

\n
\n
\n\n
\n\n
\n\n
\n
\n
\n

Additional plot features

\n
\n

QwtLegend

\n
\n
\nclass qwt.legend.QwtLegendData[source]
\n

Attributes of an entry on a legend

\n

QwtLegendData is an abstract container ( like QAbstractModel )\nto exchange attributes, that are only known between to\nthe plot item and the legend.

\n

By overloading QwtPlotItem.legendData() any other set of attributes\ncould be used, that can be handled by a modified ( or completely\ndifferent ) implementation of a legend.

\n
\n

See also

\n

qwt.legend.QwtLegend

\n
\n
\n

Note

\n

The stockchart example implements a legend as a tree\nwith checkable items

\n
\n
\n
\nsetValues(map_)[source]
\n

Set the legend attributes

\n
\n
Parameters:
\n

map (dict) – Values

\n
\n
\n
\n

See also

\n

values()

\n
\n
\n\n
\n
\nvalues()[source]
\n
\n
Returns:
\n

Legend attributes

\n
\n
\n
\n

See also

\n

setValues()

\n
\n
\n\n
\n
\nhasRole(role)[source]
\n
\n
Parameters:
\n

role (int) – Attribute role

\n
\n
Returns:
\n

True, when the internal map has an entry for role

\n
\n
\n
\n\n
\n
\nsetValue(role, data)[source]
\n

Set an attribute value

\n
\n
Parameters:
\n
    \n
  • role (int) – Attribute role

  • \n
  • data (QVariant) – Attribute value

  • \n
\n
\n
\n
\n

See also

\n

value()

\n
\n
\n\n
\n
\nvalue(role)[source]
\n
\n
Parameters:
\n

role (int) – Attribute role

\n
\n
Returns:
\n

Attribute value for a specific role

\n
\n
\n
\n

See also

\n

setValue()

\n
\n
\n\n
\n
\nisValid()[source]
\n
\n
Returns:
\n

True, when the internal map is empty

\n
\n
\n
\n\n
\n
\ntitle()[source]
\n
\n
Returns:
\n

Value of the TitleRole attribute

\n
\n
\n
\n\n
\n
\nicon()[source]
\n
\n
Returns:
\n

Value of the IconRole attribute

\n
\n
\n
\n\n
\n
\nmode()[source]
\n
\n
Returns:
\n

Value of the ModeRole attribute

\n
\n
\n
\n\n
\n\n
\n
\nclass qwt.legend.QwtLegendLabel(parent=None)[source]
\n

A widget representing something on a QwtLegend.

\n
\n
\nsetData(legendData)[source]
\n

Set the attributes of the legend label

\n
\n
Parameters:
\n

legendData (QwtLegendData) – Attributes of the label

\n
\n
\n
\n

See also

\n

data()

\n
\n
\n\n
\n
\ndata()[source]
\n
\n
Returns:
\n

Attributes of the label

\n
\n
\n\n
\n\n
\n
\nsetText(text)[source]
\n

Set the text to the legend item

\n
\n
Parameters:
\n

text (qwt.text.QwtText) – Text label

\n
\n
\n
\n

See also

\n

text()

\n
\n
\n\n
\n
\nsetItemMode(mode)[source]
\n

Set the item mode.\nThe default is QwtLegendData.ReadOnly.

\n
\n
Parameters:
\n

mode (int) – Item mode

\n
\n
\n
\n

See also

\n

itemMode()

\n
\n
\n\n
\n
\nitemMode()[source]
\n
\n
Returns:
\n

Item mode

\n
\n
\n
\n

See also

\n

setItemMode()

\n
\n
\n\n
\n
\nsetIcon(icon)[source]
\n

Assign the icon

\n
\n
Parameters:
\n

icon (QPixmap) – Pixmap representing a plot item

\n
\n
\n\n
\n\n
\n
\nicon()[source]
\n
\n
Returns:
\n

Pixmap representing a plot item

\n
\n
\n
\n

See also

\n

setIcon()

\n
\n
\n\n
\n
\nsetSpacing(spacing)[source]
\n

Change the spacing between icon and text

\n
\n
Parameters:
\n

spacing (int) – Spacing

\n
\n
\n\n
\n\n
\n
\nspacing()[source]
\n
\n
Returns:
\n

Spacing between icon and text

\n
\n
\n
\n

See also

\n

setSpacing()

\n
\n
\n\n
\n
\nsetChecked(on)[source]
\n

Check/Uncheck a the item

\n
\n
Parameters:
\n

on (bool) – check/uncheck

\n
\n
\n
\n

See also

\n

isChecked(), setItemMode()

\n
\n
\n\n
\n
\nisChecked()[source]
\n
\n
Returns:
\n

true, if the item is checked

\n
\n
\n
\n

See also

\n

setChecked()

\n
\n
\n\n
\n
\nsetDown(down)[source]
\n

Set the item being down

\n
\n
Parameters:
\n

on (bool) – true, if the item is down

\n
\n
\n
\n

See also

\n

isDown()

\n
\n
\n\n
\n
\nisDown()[source]
\n
\n
Returns:
\n

true, if the item is down

\n
\n
\n
\n

See also

\n

setDown()

\n
\n
\n\n
\n
\nsizeHint()[source]
\n
\n
Returns:
\n

a size hint

\n
\n
\n
\n\n
\n
\npaintEvent(self, a0: QPaintEvent | None)[source]
\n
\n\n
\n
\nmousePressEvent(self, a0: QMouseEvent | None)[source]
\n
\n\n
\n
\nmouseReleaseEvent(self, a0: QMouseEvent | None)[source]
\n
\n\n
\n
\nkeyPressEvent(self, a0: QKeyEvent | None)[source]
\n
\n\n
\n
\nkeyReleaseEvent(self, a0: QKeyEvent | None)[source]
\n
\n\n
\n\n
\n
\nclass qwt.legend.QwtLegend(parent=None)[source]
\n

The legend widget

\n

The QwtLegend widget is a tabular arrangement of legend items. Legend\nitems might be any type of widget, but in general they will be\na QwtLegendLabel.

\n
\n

See also

\n

:py:class`qwt.legend.QwtLegendLabel`,\n:py:class`qwt.plot.QwtPlotItem`,\n:py:class`qwt.plot.QwtPlot`

\n
\n
\n
\nclass QwtLegend([parent=None])
\n

Constructor

\n
\n
Parameters:
\n

parent (QWidget) – Parent widget

\n
\n
\n
\n\n
\n
\nclicked
\n

A signal which is emitted when the user has clicked on\na legend label, which is in QwtLegendData.Clickable mode.

\n
\n
Parameters:
\n
    \n
  • itemInfo – Info for the item item of the selected legend item

  • \n
  • index – Index of the legend label in the list of widgets that are associated with the plot item

  • \n
\n
\n
\n
\n

Note

\n

Clicks are disabled as default

\n
\n
\n\n
\n
\nchecked
\n

A signal which is emitted when the user has clicked on\na legend label, which is in QwtLegendData.Checkable mode

\n
\n
Parameters:
\n
    \n
  • itemInfo – Info for the item of the selected legend label

  • \n
  • index – Index of the legend label in the list of widgets that are associated with the plot item

  • \n
  • on – True when the legend label is checked

  • \n
\n
\n
\n
\n

Note

\n

Clicks are disabled as default

\n
\n
\n\n
\n
\nsetMaxColumns(numColumns)[source]
\n

Set the maximum number of entries in a row

\n

F.e when the maximum is set to 1 all items are aligned\nvertically. 0 means unlimited

\n
\n
Parameters:
\n

numColumns (int) – Maximum number of entries in a row

\n
\n
\n
\n

See also

\n

maxColumns(),\nQwtDynGridLayout.setMaxColumns()

\n
\n
\n\n
\n
\nmaxColumns()[source]
\n
\n
Returns:
\n

Maximum number of entries in a row

\n
\n
\n
\n

See also

\n

setMaxColumns(),\nQwtDynGridLayout.maxColumns()

\n
\n
\n\n
\n
\nsetDefaultItemMode(mode)[source]
\n

Set the default mode for legend labels

\n

Legend labels will be constructed according to the\nattributes in a QwtLegendData object. When it doesn’t\ncontain a value for the QwtLegendData.ModeRole the\nlabel will be initialized with the default mode of the legend.

\n
\n
Parameters:
\n

mode (int) – Default item mode

\n
\n
\n
\n

See also

\n

itemMode(),\nQwtLegendData.value(),\nQwtPlotItem::legendData()

\n
\n

… note:

\n
Changing the mode doesn't have any effect on existing labels.\n
\n
\n
\n\n
\n
\ndefaultItemMode()[source]
\n
\n
Returns:
\n

Default item mode

\n
\n
\n
\n

See also

\n

setDefaultItemMode()

\n
\n
\n\n
\n
\ncontentsWidget()[source]
\n

The contents widget is the only child of the viewport of\nthe internal QScrollArea and the parent widget of all legend\nitems.

\n
\n
Returns:
\n

Container widget of the legend items

\n
\n
\n
\n\n
\n
\nhorizontalScrollBar()[source]
\n
\n
Returns:
\n

Horizontal scrollbar

\n
\n
\n
\n

See also

\n

verticalScrollBar()

\n
\n
\n\n
\n
\nverticalScrollBar()[source]
\n
\n
Returns:
\n

Vertical scrollbar

\n
\n
\n
\n

See also

\n

horizontalScrollBar()

\n
\n
\n\n
\n
\nupdateLegend(itemInfo, data)[source]
\n

Update the entries for an item

\n
\n
Parameters:
\n
    \n
  • itemInfo (QVariant) – Info for an item

  • \n
  • data (list) – Default item mode

  • \n
\n
\n
\n
\n\n
\n
\ncreateWidget(data)[source]
\n

Create a widget to be inserted into the legend

\n

The default implementation returns a QwtLegendLabel.

\n
\n
Parameters:
\n

data (QwtLegendData) – Attributes of the legend entry

\n
\n
Returns:
\n

Widget representing data on the legend

\n
\n
\n

… note:

\n
updateWidget() will called soon after createWidget()\nwith the same attributes.\n
\n
\n
\n\n
\n
\nupdateWidget(widget, data)[source]
\n

Update the widget

\n
\n
Parameters:
\n
    \n
  • widget (QWidget) – Usually a QwtLegendLabel

  • \n
  • data (QwtLegendData) – Attributes to be displayed

  • \n
\n
\n
\n
\n

See also

\n

createWidget()

\n
\n

… note:

\n
When widget is no QwtLegendLabel updateWidget() does nothing.\n
\n
\n
\n\n
\n
\nsizeHint()[source]
\n

Return a size hint

\n
\n\n
\n
\nheightForWidth(width)[source]
\n
\n
Parameters:
\n

width (int) – Width

\n
\n
Returns:
\n

The preferred height, for a width.

\n
\n
\n
\n\n
\n
\neventFilter(object_, event)[source]
\n

Handle QEvent.ChildRemoved andQEvent.LayoutRequest events\nfor the contentsWidget().

\n
\n
Parameters:
\n
    \n
  • object (QObject) – Object to be filtered

  • \n
  • event (QEvent) – Event

  • \n
\n
\n
Returns:
\n

Forwarded to QwtAbstractLegend.eventFilter()

\n
\n
\n
\n\n
\n
\nrenderLegend(painter, rect, fillBackground)[source]
\n

Render the legend into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
  • fillBackground (bool) – When true, fill rect with the widget background

  • \n
\n
\n
\n
\n\n
\n
\nrenderItem(painter, widget, rect, fillBackground)[source]
\n

Render a legend entry into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • widget (QWidget) – Widget representing a legend entry

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
  • fillBackground (bool) – When true, fill rect with the widget background

  • \n
\n
\n
\n
\n\n
\n
\nlegendWidgets(itemInfo)[source]
\n

List of widgets associated to a item

\n
\n
Parameters:
\n

itemInfo (QVariant) – Info about an item

\n
\n
\n
\n\n
\n
\nlegendWidget(itemInfo)[source]
\n

First widget in the list of widgets associated to an item

\n
\n
Parameters:
\n

itemInfo (QVariant) – Info about an item

\n
\n
\n
\n\n
\n
\nitemInfo(widget)[source]
\n

Find the item that is associated to a widget

\n
\n
Parameters:
\n

widget (QWidget) – Widget on the legend

\n
\n
Returns:
\n

Associated item info

\n
\n
\n
\n\n
\n\n
\n
\n

Color maps

\n
\n

QwtColorMap

\n
\n
\nclass qwt.color_map.QwtColorMap(format_=None)[source]
\n

QwtColorMap is used to map values into colors.

\n

For displaying 3D data on a 2D plane the 3rd dimension is often\ndisplayed using colors, like f.e in a spectrogram.

\n

Each color map is optimized to return colors for only one of the\nfollowing image formats:

\n
\n
    \n
  • QImage.Format_Indexed8

  • \n
  • QImage.Format_ARGB32

  • \n
\n
\n
\n
\nclass QwtColorMap(format_)
\n
\n
Parameters:
\n

format (int) – Preferred format of the color map (QwtColorMap.RGB or QwtColorMap.Indexed)

\n
\n
\n
\n\n
\n

See also

\n

qwt.QwtScaleWidget

\n
\n
\n
\ncolor(interval, value)[source]
\n

Map a value into a color

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

the color corresponding to value

\n
\n
\n
\n

Warning

\n

This method is slow for Indexed color maps. If it is necessary to\nmap many values, its better to get the color table once and find\nthe color using colorIndex().

\n
\n
\n\n
\n
\ncolorTable(interval)[source]
\n

Build and return a color map of 256 colors

\n
\n
Parameters:
\n

interval (qwt.interval.QwtInterval) – range for the values

\n
\n
Returns:
\n

a color table, that can be used for a QImage

\n
\n
\n

The color table is needed for rendering indexed images in combination\nwith using colorIndex().

\n
\n\n
\n\n
\n
\n

QwtLinearColorMap

\n
\n
\nclass qwt.color_map.QwtLinearColorMap(*args)[source]
\n

Build a linear color map with two stops.

\n
\n
\nclass QwtLinearColorMap(format_)
\n

Build a color map with two stops at 0.0 and 1.0.\nThe color at 0.0 is Qt.blue, at 1.0 it is Qt.yellow.

\n
\n
Parameters:
\n

format (int) – Preferred format of the color map (QwtColorMap.RGB or QwtColorMap.Indexed)

\n
\n
\n
\n\n
\n
\nQwtLinearColorMap(color1, color2, [format_=QwtColorMap.RGB]):
\n

Build a color map with two stops at 0.0 and 1.0.

\n
\n
Parameters:
\n
    \n
  • color1 (QColor) – color at 0.

  • \n
  • color2 (QColor) – color at 1.

  • \n
  • format (int) – Preferred format of the color map (QwtColorMap.RGB or QwtColorMap.Indexed)

  • \n
\n
\n
\n
\n\n
\n
\nQwtLinearColorMap.setMode(mode)[source]
\n

Set the mode of the color map

\n
\n
Parameters:
\n

mode (int) – QwtLinearColorMap.FixedColors or QwtLinearColorMap.ScaledColors

\n
\n
\n

FixedColors means the color is calculated from the next lower color\nstop. ScaledColors means the color is calculated by interpolating\nthe colors of the adjacent stops.

\n
\n\n
\n
\nQwtLinearColorMap.mode()[source]
\n
\n
Returns:
\n

the mode of the color map

\n
\n
\n\n
\n\n
\n\n
\n
\n

QwtAlphaColorMap

\n
\n
\nclass qwt.color_map.QwtAlphaColorMap(color)[source]
\n

QwtAlphaColorMap varies the alpha value of a color

\n
\n
\nclass QwtAlphaColorMap(color)
\n

Build a color map varying the alpha value of a color.

\n
\n
Parameters:
\n

color (QColor) – color of the map

\n
\n
\n
\n\n
\n
\nsetColor(color)[source]
\n

Set the color of the map

\n
\n
Parameters:
\n

color (QColor) – color of the map

\n
\n
\n
\n\n
\n
\ncolor()[source]
\n
\n
Returns:
\n

the color of the map

\n
\n
\n\n
\n\n
\n\n
\n
\n
\n

QwtPlotRenderer

\n
\n
\nclass qwt.plot_renderer.QwtPlotRenderer(parent=None)[source]
\n

Renderer for exporting a plot to a document, a printer\nor anything else, that is supported by QPainter/QPaintDevice

\n

Discard flags:

\n
\n
    \n
  • QwtPlotRenderer.DiscardNone: Render all components of the plot

  • \n
  • QwtPlotRenderer.DiscardBackground: Don’t render the background of the plot

  • \n
  • QwtPlotRenderer.DiscardTitle: Don’t render the title of the plot

  • \n
  • QwtPlotRenderer.DiscardLegend: Don’t render the legend of the plot

  • \n
  • QwtPlotRenderer.DiscardCanvasBackground: Don’t render the background of the canvas

  • \n
  • QwtPlotRenderer.DiscardFooter: Don’t render the footer of the plot

  • \n
  • QwtPlotRenderer.DiscardCanvasFrame: Don’t render the frame of the canvas

  • \n
\n
\n
\n

Note

\n

The QwtPlotRenderer.DiscardCanvasFrame flag has no effect when using\nstyle sheets, where the frame is part of the background

\n
\n

Layout flags:

\n
\n
    \n
  • QwtPlotRenderer.DefaultLayout: Use the default layout as on screen

  • \n
  • QwtPlotRenderer.FrameWithScales: Instead of the scales a box is painted around the plot canvas, where the scale ticks are aligned to.

  • \n
\n
\n
\n
\nsetDiscardFlag(flag, on=True)[source]
\n

Change a flag, indicating what to discard from rendering

\n
\n
Parameters:
\n
    \n
  • flag (int) – Flag to change

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n\n
\n\n
\n
\ntestDiscardFlag(flag)[source]
\n
\n
Parameters:
\n

flag (int) – Flag to be tested

\n
\n
Returns:
\n

True, if flag is enabled.

\n
\n
\n\n
\n\n
\n
\nsetDiscardFlags(flags)[source]
\n

Set the flags, indicating what to discard from rendering

\n
\n
Parameters:
\n

flags (int) – Flags

\n
\n
\n\n
\n\n
\n
\ndiscardFlags()[source]
\n
\n
Returns:
\n

Flags, indicating what to discard from rendering

\n
\n
\n\n
\n\n
\n
\nsetLayoutFlag(flag, on=True)[source]
\n

Change a layout flag

\n
\n
Parameters:
\n

flag (int) – Flag to change

\n
\n
\n\n
\n\n
\n
\ntestLayoutFlag(flag)[source]
\n
\n
Parameters:
\n

flag (int) – Flag to be tested

\n
\n
Returns:
\n

True, if flag is enabled.

\n
\n
\n\n
\n\n
\n
\nsetLayoutFlags(flags)[source]
\n

Set the layout flags

\n
\n
Parameters:
\n

flags (int) – Flags

\n
\n
\n\n
\n\n
\n
\nlayoutFlags()[source]
\n
\n
Returns:
\n

Layout flags

\n
\n
\n\n
\n\n
\n
\nrenderDocument(plot, filename, sizeMM=(300, 200), resolution=85, format_=None)[source]
\n

Render a plot to a file

\n

The format of the document will be auto-detected from the\nsuffix of the file name.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • fileName (str) – Path of the file, where the document will be stored

  • \n
  • sizeMM (QSizeF) – Size for the document in millimeters

  • \n
  • resolution (int) – Resolution in dots per Inch (dpi)

  • \n
\n
\n
\n
\n\n
\n
\nrenderTo(plot, dest)[source]
\n

Render a plot to a file

\n

Supported formats are:

\n
\n
    \n
  • pdf: Portable Document Format PDF

  • \n
  • ps: Postcript

  • \n
  • svg: Scalable Vector Graphics SVG

  • \n
  • all image formats supported by Qt, see QImageWriter.supportedImageFormats()

  • \n
\n
\n

Scalable vector graphic formats like PDF or SVG are superior to\nraster graphics formats.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • dest – QPaintDevice, QPrinter or QSvgGenerator instance

  • \n
\n
\n
\n
\n

See also

\n

render(),\nqwt.painter.QwtPainter.setRoundingAlignment()

\n
\n
\n\n
\n
\nrender(plot, painter, plotRect)[source]
\n

Paint the contents of a QwtPlot instance into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot to be rendered

  • \n
  • painter (QPainter) – Painter

  • \n
  • format (str) – Format for the document

  • \n
  • plotRect (QRectF) – Bounding rectangle

  • \n
\n
\n
\n
\n

See also

\n

renderDocument(), renderTo(),\nqwt.painter.QwtPainter.setRoundingAlignment()

\n
\n
\n\n
\n
\nrenderTitle(plot, painter, rect)[source]
\n

Render the title into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
\n
\n
\n
\n\n
\n
\nrenderFooter(plot, painter, rect)[source]
\n

Render the footer into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
\n
\n
\n
\n\n
\n
\nrenderLegend(plot, painter, rect)[source]
\n

Render the legend into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
\n
\n
\n
\n\n
\n
\nrenderScale(plot, painter, axisId, startDist, endDist, baseDist, rect)[source]
\n

Paint a scale into a given rectangle.\nPaint the scale into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • painter (QPainter) – Painter

  • \n
  • axisId (int) – Axis

  • \n
  • startDist (int) – Start border distance

  • \n
  • endDist (int) – End border distance

  • \n
  • baseDist (int) – Base distance

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
\n
\n
\n
\n\n
\n
\nrenderCanvas(plot, painter, canvasRect, maps)[source]
\n

Render the canvas into a given rectangle.

\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\nbuildCanvasMaps(plot, canvasRect)[source]
\n

Calculated the scale maps for rendering the canvas

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • canvasRect (QRectF) – Target rectangle

  • \n
\n
\n
Returns:
\n

Calculated scale maps

\n
\n
\n
\n\n
\n
\nexportTo(plot, documentname, sizeMM=None, resolution=85)[source]
\n

Execute a file dialog and render the plot to the selected file

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot widget

  • \n
  • documentName (str) – Default document name

  • \n
  • sizeMM (QSizeF) – Size for the document in millimeters

  • \n
  • resolution (int) – Resolution in dots per Inch (dpi)

  • \n
\n
\n
Returns:
\n

True, when exporting was successful

\n
\n
\n
\n

See also

\n

renderDocument()

\n
\n
\n\n
\n\n
\n
\n', 'metatags': '\n', 'sourcename': 'reference/plot.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f6a8e0>, 'js_tag': .js_tag at 0x7f3d39f6b6a0>},
) writing output... [ 78%] reference/plot_directpainter -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, <#text: 'QObject'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'QEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'bool'>) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, <#text: 'QObject'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'QEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'bool'>) [app] emitting event: 'doctree-resolved'(
>, 'reference/plot_directpainter') -[app] emitting event: 'html-page-context'('reference/plot_directpainter', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/plot_layout', 'QwtPlotLayout', 'N', 'next'), ('reference/interval', 'QwtInterval', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/plot_directpainter', 'current_page_name': 'reference/plot_directpainter', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d7074860>, 'hasdoc': .hasdoc at 0x7fc7d7076ac0>, 'toctree': . at 0x7fc7d70740e0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'interval.html', 'title': 'QwtInterval'}, 'next': {'link': 'plot_layout.html', 'title': 'QwtPlotLayout'}, 'title': 'QwtPlotDirectPainter', 'meta': {}, 'body': '
\n

QwtPlotDirectPainter

\n
\n
\nclass qwt.plot_directpainter.QwtPlotDirectPainter(parent=None)[source]
\n

Painter object trying to paint incrementally

\n

Often applications want to display samples while they are\ncollected. When there are too many samples complete replots\nwill be expensive to be processed in a collection cycle.

\n

QwtPlotDirectPainter offers an API to paint\nsubsets (f.e all additions points) without erasing/repainting\nthe plot canvas.

\n

On certain environments it might be important to calculate a proper\nclip region before painting. F.e. for Qt Embedded only the clipped part\nof the backing store will be copied to a (maybe unaccelerated)\nframe buffer.

\n
\n

Warning

\n

Incremental painting will only help when no replot is triggered\nby another operation (like changing scales) and nothing needs\nto be erased.

\n
\n

Paint attributes:

\n
\n
    \n
  • QwtPlotDirectPainter.AtomicPainter:

    \n

    Initializing a QPainter is an expensive operation.\nWhen AtomicPainter is set each call of drawSeries() opens/closes\na temporary QPainter. Otherwise QwtPlotDirectPainter tries to\nuse the same QPainter as long as possible.

    \n
  • \n
  • QwtPlotDirectPainter.FullRepaint:

    \n

    When FullRepaint is set the plot canvas is explicitly repainted\nafter the samples have been rendered.

    \n
  • \n
  • QwtPlotDirectPainter.CopyBackingStore:

    \n

    When QwtPlotCanvas.BackingStore is enabled the painter\nhas to paint to the backing store and the widget. In certain\nsituations/environments it might be faster to paint to\nthe backing store only and then copy the backing store to the canvas.\nThis flag can also be useful for settings, where Qt fills the\nthe clip region with the widget background.

    \n
  • \n
\n
\n
\n
\nsetAttribute(attribute, on=True)[source]
\n

Change an attribute

\n
\n
Parameters:
\n
    \n
  • attribute (int) – Attribute to change

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n
\n

See also

\n

testAttribute()

\n
\n
\n\n
\n
\ntestAttribute(attribute)[source]
\n
\n
Parameters:
\n

attribute (int) – Attribute to be tested

\n
\n
Returns:
\n

True, when attribute is enabled

\n
\n
\n
\n

See also

\n

setAttribute()

\n
\n
\n\n
\n
\nsetClipping(enable)[source]
\n

En/Disables clipping

\n
\n
Parameters:
\n

enable (bool) – Enables clipping is true, disable it otherwise

\n
\n
\n\n
\n\n
\n
\nhasClipping()[source]
\n
\n
Returns:
\n

Return true, when clipping is enabled

\n
\n
\n\n
\n\n
\n
\nsetClipRegion(region)[source]
\n

Assign a clip region and enable clipping

\n

Depending on the environment setting a proper clip region might\nimprove the performance heavily. F.e. on Qt embedded only the clipped\npart of the backing store will be copied to a (maybe unaccelerated)\nframe buffer device.

\n
\n
Parameters:
\n

region (QRegion) – Clip region

\n
\n
\n\n
\n\n
\n
\nclipRegion()[source]
\n
\n
Returns:
\n

Return Currently set clip region.

\n
\n
\n\n
\n\n
\n
\ndrawSeries(seriesItem, from_, to)[source]
\n

Draw a set of points of a seriesItem.

\n

When observing a measurement while it is running, new points have\nto be added to an existing seriesItem. drawSeries() can be used to\ndisplay them avoiding a complete redraw of the canvas.

\n

Setting plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)\nwill result in faster painting, if the paint engine of the canvas widget\nsupports this feature.

\n
\n
Parameters:
\n
    \n
  • seriesItem (qwt.plot_series.QwtPlotSeriesItem) – Item to be painted

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the series will be painted to its last point.

  • \n
\n
\n
\n
\n\n
\n
\nreset()[source]
\n

Close the internal QPainter

\n
\n\n
\n
\neventFilter(self, a0: QObject | None, a1: QEvent | None) bool[source]
\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/plot_directpainter.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d7076b60>, 'js_tag': .js_tag at 0x7fc7d70763e0>},
>) +[app] emitting event: 'html-page-context'('reference/plot_directpainter', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/plot_layout', 'QwtPlotLayout', 'N', 'next'), ('reference/interval', 'QwtInterval', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/plot_directpainter', 'current_page_name': 'reference/plot_directpainter', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3a294860>, 'hasdoc': .hasdoc at 0x7f3d3a296ac0>, 'toctree': . at 0x7f3d3a2940e0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'interval.html', 'title': 'QwtInterval'}, 'next': {'link': 'plot_layout.html', 'title': 'QwtPlotLayout'}, 'title': 'QwtPlotDirectPainter', 'meta': {}, 'body': '
\n

QwtPlotDirectPainter

\n
\n
\nclass qwt.plot_directpainter.QwtPlotDirectPainter(parent=None)[source]
\n

Painter object trying to paint incrementally

\n

Often applications want to display samples while they are\ncollected. When there are too many samples complete replots\nwill be expensive to be processed in a collection cycle.

\n

QwtPlotDirectPainter offers an API to paint\nsubsets (f.e all additions points) without erasing/repainting\nthe plot canvas.

\n

On certain environments it might be important to calculate a proper\nclip region before painting. F.e. for Qt Embedded only the clipped part\nof the backing store will be copied to a (maybe unaccelerated)\nframe buffer.

\n
\n

Warning

\n

Incremental painting will only help when no replot is triggered\nby another operation (like changing scales) and nothing needs\nto be erased.

\n
\n

Paint attributes:

\n
\n
    \n
  • QwtPlotDirectPainter.AtomicPainter:

    \n

    Initializing a QPainter is an expensive operation.\nWhen AtomicPainter is set each call of drawSeries() opens/closes\na temporary QPainter. Otherwise QwtPlotDirectPainter tries to\nuse the same QPainter as long as possible.

    \n
  • \n
  • QwtPlotDirectPainter.FullRepaint:

    \n

    When FullRepaint is set the plot canvas is explicitly repainted\nafter the samples have been rendered.

    \n
  • \n
  • QwtPlotDirectPainter.CopyBackingStore:

    \n

    When QwtPlotCanvas.BackingStore is enabled the painter\nhas to paint to the backing store and the widget. In certain\nsituations/environments it might be faster to paint to\nthe backing store only and then copy the backing store to the canvas.\nThis flag can also be useful for settings, where Qt fills the\nthe clip region with the widget background.

    \n
  • \n
\n
\n
\n
\nsetAttribute(attribute, on=True)[source]
\n

Change an attribute

\n
\n
Parameters:
\n
    \n
  • attribute (int) – Attribute to change

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n
\n

See also

\n

testAttribute()

\n
\n
\n\n
\n
\ntestAttribute(attribute)[source]
\n
\n
Parameters:
\n

attribute (int) – Attribute to be tested

\n
\n
Returns:
\n

True, when attribute is enabled

\n
\n
\n
\n

See also

\n

setAttribute()

\n
\n
\n\n
\n
\nsetClipping(enable)[source]
\n

En/Disables clipping

\n
\n
Parameters:
\n

enable (bool) – Enables clipping is true, disable it otherwise

\n
\n
\n\n
\n\n
\n
\nhasClipping()[source]
\n
\n
Returns:
\n

Return true, when clipping is enabled

\n
\n
\n\n
\n\n
\n
\nsetClipRegion(region)[source]
\n

Assign a clip region and enable clipping

\n

Depending on the environment setting a proper clip region might\nimprove the performance heavily. F.e. on Qt embedded only the clipped\npart of the backing store will be copied to a (maybe unaccelerated)\nframe buffer device.

\n
\n
Parameters:
\n

region (QRegion) – Clip region

\n
\n
\n\n
\n\n
\n
\nclipRegion()[source]
\n
\n
Returns:
\n

Return Currently set clip region.

\n
\n
\n\n
\n\n
\n
\ndrawSeries(seriesItem, from_, to)[source]
\n

Draw a set of points of a seriesItem.

\n

When observing a measurement while it is running, new points have\nto be added to an existing seriesItem. drawSeries() can be used to\ndisplay them avoiding a complete redraw of the canvas.

\n

Setting plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)\nwill result in faster painting, if the paint engine of the canvas widget\nsupports this feature.

\n
\n
Parameters:
\n
    \n
  • seriesItem (qwt.plot_series.QwtPlotSeriesItem) – Item to be painted

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the series will be painted to its last point.

  • \n
\n
\n
\n
\n\n
\n
\nreset()[source]
\n

Close the internal QPainter

\n
\n\n
\n
\neventFilter(self, a0: QObject | None, a1: QEvent | None) bool[source]
\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/plot_directpainter.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d3a296b60>, 'js_tag': .js_tag at 0x7f3d3a2963e0>},
>) writing output... [ 81%] reference/plot_layout -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(
>, 'reference/plot_layout') -[app] emitting event: 'html-page-context'('reference/plot_layout', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/plot_series', 'Plotting series item', 'N', 'next'), ('reference/plot_directpainter', 'QwtPlotDirectPainter', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/plot_layout', 'current_page_name': 'reference/plot_layout', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d7074a40>, 'hasdoc': .hasdoc at 0x7fc7d7076b60>, 'toctree': . at 0x7fc7d70740e0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'plot_directpainter.html', 'title': 'QwtPlotDirectPainter'}, 'next': {'link': 'plot_series.html', 'title': 'Plotting series item'}, 'title': 'QwtPlotLayout', 'meta': {}, 'body': '
\n

QwtPlotLayout

\n
\n
\nclass qwt.plot_layout.QwtPlotLayout[source]
\n

Layout engine for QwtPlot.

\n

It is used by the QwtPlot widget to organize its internal widgets\nor by QwtPlot.print() to render its content to a QPaintDevice like\na QPrinter, QPixmap/QImage or QSvgRenderer.

\n\n

Valid options:

\n
\n
    \n
  • QwtPlotLayout.AlignScales: Unused

  • \n
  • QwtPlotLayout.IgnoreScrollbars: Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is not rendered to widgets.

  • \n
  • QwtPlotLayout.IgnoreFrames: Ignore all frames.

  • \n
  • QwtPlotLayout.IgnoreLegend: Ignore the legend.

  • \n
  • QwtPlotLayout.IgnoreTitle: Ignore the title.

  • \n
  • QwtPlotLayout.IgnoreFooter: Ignore the footer.

  • \n
\n
\n
\n
\nsetCanvasMargin(margin, axis=-1)[source]
\n

Change a margin of the canvas. The margin is the space\nabove/below the scale ticks. A negative margin will\nbe set to -1, excluding the borders of the scales.

\n
\n
Parameters:
\n
    \n
  • margin (int) – New margin

  • \n
  • axisId (int) – Axis index

  • \n
\n
\n
\n
\n

See also

\n

canvasMargin()

\n
\n
\n

Warning

\n

The margin will have no effect when alignCanvasToScale() is True

\n
\n
\n\n
\n
\ncanvasMargin(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Margin around the scale tick borders

\n
\n
\n
\n

See also

\n

setCanvasMargin()

\n
\n
\n\n
\n
\nsetAlignCanvasToScales(*args)[source]
\n

Change the align-canvas-to-axis-scales setting.

\n
\n
\nsetAlignCanvasToScales(on):
\n

Set the align-canvas-to-axis-scales flag for all axes

\n
\n
Parameters:
\n

on (bool) – True/False

\n
\n
\n
\n\n
\n
\nsetAlignCanvasToScales(axisId, on):
\n

Change the align-canvas-to-axis-scales setting.\nThe canvas may:

\n
\n
    \n
  • extend beyond the axis scale ends to maximize its size,

  • \n
  • align with the axis scale ends to control its size.

  • \n
\n
\n

The axisId parameter is somehow confusing as it identifies a\nborder of the plot and not the axes, that are aligned. F.e when\nQwtPlot.yLeft is set, the left end of the the x-axes\n(QwtPlot.xTop, QwtPlot.xBottom) is aligned.

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • on (bool) – True/False

  • \n
\n
\n
\n
\n\n
\n

See also

\n

setAlignCanvasToScale(),\nalignCanvasToScale()

\n
\n
\n\n
\n
\nalignCanvasToScale(axisId)[source]
\n

Return the align-canvas-to-axis-scales setting.\nThe canvas may:

\n
\n
    \n
  • extend beyond the axis scale ends to maximize its size

  • \n
  • align with the axis scale ends to control its size.

  • \n
\n
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

align-canvas-to-axis-scales setting

\n
\n
\n
\n

See also

\n

setAlignCanvasToScale(), setCanvasMargin()

\n
\n
\n\n
\n
\nsetSpacing(spacing)[source]
\n

Change the spacing of the plot. The spacing is the distance\nbetween the plot components.

\n
\n
Parameters:
\n

spacing (int) – New spacing

\n
\n
\n\n
\n\n
\n
\nspacing()[source]
\n
\n
Returns:
\n

Spacing

\n
\n
\n
\n

See also

\n

margin(), setSpacing()

\n
\n
\n\n
\n
\nsetLegendPosition(*args)[source]
\n

Specify the position of the legend

\n
\n
\nsetLegendPosition(pos, [ratio=0.]):
\n

Specify the position of the legend

\n
\n
Parameters:
\n
    \n
  • pos (QwtPlot.LegendPosition) – Legend position

  • \n
  • ratio (float) – Ratio between legend and the bounding rectangle of title, footer, canvas and axes

  • \n
\n
\n
\n

The legend will be shrunk if it would need more space than the\ngiven ratio. The ratio is limited to ]0.0 .. 1.0]. In case of\n<= 0.0 it will be reset to the default ratio. The default\nvertical/horizontal ratio is 0.33/0.5.

\n

Valid position values:

\n
\n
    \n
  • QwtPlot.LeftLegend,

  • \n
  • QwtPlot.RightLegend,

  • \n
  • QwtPlot.TopLegend,

  • \n
  • QwtPlot.BottomLegend

  • \n
\n
\n
\n\n
\n

See also

\n

setLegendPosition()

\n
\n
\n\n
\n
\nlegendPosition()[source]
\n
\n
Returns:
\n

Position of the legend

\n
\n
\n
\n

See also

\n

legendPosition()

\n
\n
\n\n
\n
\nsetLegendRatio(ratio)[source]
\n

Specify the relative size of the legend in the plot

\n
\n
Parameters:
\n

ratio (float) – Ratio between legend and the bounding rectangle of title, footer, canvas and axes

\n
\n
\n

The legend will be shrunk if it would need more space than the\ngiven ratio. The ratio is limited to ]0.0 .. 1.0]. In case of\n<= 0.0 it will be reset to the default ratio. The default\nvertical/horizontal ratio is 0.33/0.5.

\n
\n

See also

\n

legendRatio()

\n
\n
\n\n
\n
\nlegendRatio()[source]
\n
\n
Returns:
\n

The relative size of the legend in the plot.

\n
\n
\n
\n

See also

\n

setLegendRatio()

\n
\n
\n\n
\n
\nsetTitleRect(rect)[source]
\n

Set the geometry for the title

\n

This method is intended to be used from derived layouts\noverloading activate()

\n
\n
Parameters:
\n

rect (QRectF) – Rectangle

\n
\n
\n
\n

See also

\n

titleRect(), activate()

\n
\n
\n\n
\n
\ntitleRect()[source]
\n
\n
Returns:
\n

Geometry for the title

\n
\n
\n
\n

See also

\n

invalidate(), activate()

\n
\n
\n\n
\n
\nsetFooterRect(rect)[source]
\n

Set the geometry for the footer

\n

This method is intended to be used from derived layouts\noverloading activate()

\n
\n
Parameters:
\n

rect (QRectF) – Rectangle

\n
\n
\n
\n

See also

\n

footerRect(), activate()

\n
\n
\n\n
\n
\nfooterRect()[source]
\n
\n
Returns:
\n

Geometry for the footer

\n
\n
\n
\n

See also

\n

invalidate(), activate()

\n
\n
\n\n
\n
\nsetLegendRect(rect)[source]
\n

Set the geometry for the legend

\n

This method is intended to be used from derived layouts\noverloading activate()

\n
\n
Parameters:
\n

rect (QRectF) – Rectangle for the legend

\n
\n
\n
\n

See also

\n

footerRect(), activate()

\n
\n
\n\n
\n
\nlegendRect()[source]
\n
\n
Returns:
\n

Geometry for the legend

\n
\n
\n
\n

See also

\n

invalidate(), activate()

\n
\n
\n\n
\n
\nsetScaleRect(axis, rect)[source]
\n

Set the geometry for an axis

\n

This method is intended to be used from derived layouts\noverloading activate()

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • rect (QRectF) – Rectangle for the scale

  • \n
\n
\n
\n
\n

See also

\n

scaleRect(), activate()

\n
\n
\n\n
\n
\nscaleRect(axis)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Geometry for the scale

\n
\n
\n
\n

See also

\n

invalidate(), activate()

\n
\n
\n\n
\n
\nsetCanvasRect(rect)[source]
\n

Set the geometry for the canvas

\n

This method is intended to be used from derived layouts\noverloading activate()

\n
\n
Parameters:
\n

rect (QRectF) – Rectangle

\n
\n
\n
\n

See also

\n

canvasRect(), activate()

\n
\n
\n\n
\n
\ncanvasRect()[source]
\n
\n
Returns:
\n

Geometry for the canvas

\n
\n
\n
\n

See also

\n

invalidate(), activate()

\n
\n
\n\n
\n
\ninvalidate()[source]
\n

Invalidate the geometry of all components.

\n
\n

See also

\n

activate()

\n
\n
\n\n
\n
\nminimumSizeHint(plot)[source]
\n
\n
Parameters:
\n

plot (qwt.plot.QwtPlot) – Plot widget

\n
\n
Returns:
\n

Minimum size hint

\n
\n
\n\n
\n\n
\n
\nlayoutLegend(options, rect)[source]
\n

Find the geometry for the legend

\n
\n
Parameters:
\n
    \n
  • options – Options how to layout the legend

  • \n
  • rect (QRectF) – Rectangle where to place the legend

  • \n
\n
\n
Returns:
\n

Geometry for the legend

\n
\n
\n
\n\n
\n
\nalignLegend(canvasRect, legendRect)[source]
\n

Align the legend to the canvas

\n
\n
Parameters:
\n
    \n
  • canvasRect (QRectF) – Geometry of the canvas

  • \n
  • legendRect (QRectF) – Maximum geometry for the legend

  • \n
\n
\n
Returns:
\n

Geometry for the aligned legend

\n
\n
\n
\n\n
\n
\nexpandLineBreaks(options, rect)[source]
\n

Expand all line breaks in text labels, and calculate the height\nof their widgets in orientation of the text.

\n
\n
Parameters:
\n
    \n
  • options – Options how to layout the legend

  • \n
  • rect (QRectF) – Bounding rectangle for title, footer, axes and canvas.

  • \n
\n
\n
Returns:
\n

tuple (dimTitle, dimFooter, dimAxes)

\n
\n
\n

Returns:

\n
\n
    \n
  • dimTitle: Expanded height of the title widget

  • \n
  • dimFooter: Expanded height of the footer widget

  • \n
  • dimAxes: Expanded heights of the axis in axis orientation.

  • \n
\n
\n
\n\n
\n
\nalignScales(options, canvasRect, scaleRect)[source]
\n

Align the ticks of the axis to the canvas borders using\nthe empty corners.

\n
\n
Parameters:
\n
    \n
  • options – Options how to layout the legend

  • \n
  • canvasRect (QRectF) – Geometry of the canvas ( IN/OUT )

  • \n
  • scaleRect (QRectF) – Geometry of the scales ( IN/OUT )

  • \n
\n
\n
\n
\n\n
\n
\nactivate(plot, plotRect, options=0)[source]
\n

Recalculate the geometry of all components.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot to be layout

  • \n
  • plotRect (QRectF) – Rectangle where to place the components

  • \n
  • options – Layout options

  • \n
\n
\n
\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/plot_layout.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d7076ac0>, 'js_tag': .js_tag at 0x7fc7d7074b80>},
>) +[app] emitting event: 'html-page-context'('reference/plot_layout', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/plot_series', 'Plotting series item', 'N', 'next'), ('reference/plot_directpainter', 'QwtPlotDirectPainter', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/plot_layout', 'current_page_name': 'reference/plot_layout', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3a294a40>, 'hasdoc': .hasdoc at 0x7f3d3a296b60>, 'toctree': . at 0x7f3d3a2940e0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'plot_directpainter.html', 'title': 'QwtPlotDirectPainter'}, 'next': {'link': 'plot_series.html', 'title': 'Plotting series item'}, 'title': 'QwtPlotLayout', 'meta': {}, 'body': '
\n

QwtPlotLayout

\n
\n
\nclass qwt.plot_layout.QwtPlotLayout[source]
\n

Layout engine for QwtPlot.

\n

It is used by the QwtPlot widget to organize its internal widgets\nor by QwtPlot.print() to render its content to a QPaintDevice like\na QPrinter, QPixmap/QImage or QSvgRenderer.

\n\n

Valid options:

\n
\n
    \n
  • QwtPlotLayout.AlignScales: Unused

  • \n
  • QwtPlotLayout.IgnoreScrollbars: Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is not rendered to widgets.

  • \n
  • QwtPlotLayout.IgnoreFrames: Ignore all frames.

  • \n
  • QwtPlotLayout.IgnoreLegend: Ignore the legend.

  • \n
  • QwtPlotLayout.IgnoreTitle: Ignore the title.

  • \n
  • QwtPlotLayout.IgnoreFooter: Ignore the footer.

  • \n
\n
\n
\n
\nsetCanvasMargin(margin, axis=-1)[source]
\n

Change a margin of the canvas. The margin is the space\nabove/below the scale ticks. A negative margin will\nbe set to -1, excluding the borders of the scales.

\n
\n
Parameters:
\n
    \n
  • margin (int) – New margin

  • \n
  • axisId (int) – Axis index

  • \n
\n
\n
\n
\n

See also

\n

canvasMargin()

\n
\n
\n

Warning

\n

The margin will have no effect when alignCanvasToScale() is True

\n
\n
\n\n
\n
\ncanvasMargin(axisId)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Margin around the scale tick borders

\n
\n
\n
\n

See also

\n

setCanvasMargin()

\n
\n
\n\n
\n
\nsetAlignCanvasToScales(*args)[source]
\n

Change the align-canvas-to-axis-scales setting.

\n
\n
\nsetAlignCanvasToScales(on):
\n

Set the align-canvas-to-axis-scales flag for all axes

\n
\n
Parameters:
\n

on (bool) – True/False

\n
\n
\n
\n\n
\n
\nsetAlignCanvasToScales(axisId, on):
\n

Change the align-canvas-to-axis-scales setting.\nThe canvas may:

\n
\n
    \n
  • extend beyond the axis scale ends to maximize its size,

  • \n
  • align with the axis scale ends to control its size.

  • \n
\n
\n

The axisId parameter is somehow confusing as it identifies a\nborder of the plot and not the axes, that are aligned. F.e when\nQwtPlot.yLeft is set, the left end of the the x-axes\n(QwtPlot.xTop, QwtPlot.xBottom) is aligned.

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • on (bool) – True/False

  • \n
\n
\n
\n
\n\n
\n

See also

\n

setAlignCanvasToScale(),\nalignCanvasToScale()

\n
\n
\n\n
\n
\nalignCanvasToScale(axisId)[source]
\n

Return the align-canvas-to-axis-scales setting.\nThe canvas may:

\n
\n
    \n
  • extend beyond the axis scale ends to maximize its size

  • \n
  • align with the axis scale ends to control its size.

  • \n
\n
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

align-canvas-to-axis-scales setting

\n
\n
\n
\n

See also

\n

setAlignCanvasToScale(), setCanvasMargin()

\n
\n
\n\n
\n
\nsetSpacing(spacing)[source]
\n

Change the spacing of the plot. The spacing is the distance\nbetween the plot components.

\n
\n
Parameters:
\n

spacing (int) – New spacing

\n
\n
\n\n
\n\n
\n
\nspacing()[source]
\n
\n
Returns:
\n

Spacing

\n
\n
\n
\n

See also

\n

margin(), setSpacing()

\n
\n
\n\n
\n
\nsetLegendPosition(*args)[source]
\n

Specify the position of the legend

\n
\n
\nsetLegendPosition(pos, [ratio=0.]):
\n

Specify the position of the legend

\n
\n
Parameters:
\n
    \n
  • pos (QwtPlot.LegendPosition) – Legend position

  • \n
  • ratio (float) – Ratio between legend and the bounding rectangle of title, footer, canvas and axes

  • \n
\n
\n
\n

The legend will be shrunk if it would need more space than the\ngiven ratio. The ratio is limited to ]0.0 .. 1.0]. In case of\n<= 0.0 it will be reset to the default ratio. The default\nvertical/horizontal ratio is 0.33/0.5.

\n

Valid position values:

\n
\n
    \n
  • QwtPlot.LeftLegend,

  • \n
  • QwtPlot.RightLegend,

  • \n
  • QwtPlot.TopLegend,

  • \n
  • QwtPlot.BottomLegend

  • \n
\n
\n
\n\n
\n

See also

\n

setLegendPosition()

\n
\n
\n\n
\n
\nlegendPosition()[source]
\n
\n
Returns:
\n

Position of the legend

\n
\n
\n
\n

See also

\n

legendPosition()

\n
\n
\n\n
\n
\nsetLegendRatio(ratio)[source]
\n

Specify the relative size of the legend in the plot

\n
\n
Parameters:
\n

ratio (float) – Ratio between legend and the bounding rectangle of title, footer, canvas and axes

\n
\n
\n

The legend will be shrunk if it would need more space than the\ngiven ratio. The ratio is limited to ]0.0 .. 1.0]. In case of\n<= 0.0 it will be reset to the default ratio. The default\nvertical/horizontal ratio is 0.33/0.5.

\n
\n

See also

\n

legendRatio()

\n
\n
\n\n
\n
\nlegendRatio()[source]
\n
\n
Returns:
\n

The relative size of the legend in the plot.

\n
\n
\n
\n

See also

\n

setLegendRatio()

\n
\n
\n\n
\n
\nsetTitleRect(rect)[source]
\n

Set the geometry for the title

\n

This method is intended to be used from derived layouts\noverloading activate()

\n
\n
Parameters:
\n

rect (QRectF) – Rectangle

\n
\n
\n
\n

See also

\n

titleRect(), activate()

\n
\n
\n\n
\n
\ntitleRect()[source]
\n
\n
Returns:
\n

Geometry for the title

\n
\n
\n
\n

See also

\n

invalidate(), activate()

\n
\n
\n\n
\n
\nsetFooterRect(rect)[source]
\n

Set the geometry for the footer

\n

This method is intended to be used from derived layouts\noverloading activate()

\n
\n
Parameters:
\n

rect (QRectF) – Rectangle

\n
\n
\n
\n

See also

\n

footerRect(), activate()

\n
\n
\n\n
\n
\nfooterRect()[source]
\n
\n
Returns:
\n

Geometry for the footer

\n
\n
\n
\n

See also

\n

invalidate(), activate()

\n
\n
\n\n
\n
\nsetLegendRect(rect)[source]
\n

Set the geometry for the legend

\n

This method is intended to be used from derived layouts\noverloading activate()

\n
\n
Parameters:
\n

rect (QRectF) – Rectangle for the legend

\n
\n
\n
\n

See also

\n

footerRect(), activate()

\n
\n
\n\n
\n
\nlegendRect()[source]
\n
\n
Returns:
\n

Geometry for the legend

\n
\n
\n
\n

See also

\n

invalidate(), activate()

\n
\n
\n\n
\n
\nsetScaleRect(axis, rect)[source]
\n

Set the geometry for an axis

\n

This method is intended to be used from derived layouts\noverloading activate()

\n
\n
Parameters:
\n
    \n
  • axisId (int) – Axis index

  • \n
  • rect (QRectF) – Rectangle for the scale

  • \n
\n
\n
\n
\n

See also

\n

scaleRect(), activate()

\n
\n
\n\n
\n
\nscaleRect(axis)[source]
\n
\n
Parameters:
\n

axisId (int) – Axis index

\n
\n
Returns:
\n

Geometry for the scale

\n
\n
\n
\n

See also

\n

invalidate(), activate()

\n
\n
\n\n
\n
\nsetCanvasRect(rect)[source]
\n

Set the geometry for the canvas

\n

This method is intended to be used from derived layouts\noverloading activate()

\n
\n
Parameters:
\n

rect (QRectF) – Rectangle

\n
\n
\n
\n

See also

\n

canvasRect(), activate()

\n
\n
\n\n
\n
\ncanvasRect()[source]
\n
\n
Returns:
\n

Geometry for the canvas

\n
\n
\n
\n

See also

\n

invalidate(), activate()

\n
\n
\n\n
\n
\ninvalidate()[source]
\n

Invalidate the geometry of all components.

\n
\n

See also

\n

activate()

\n
\n
\n\n
\n
\nminimumSizeHint(plot)[source]
\n
\n
Parameters:
\n

plot (qwt.plot.QwtPlot) – Plot widget

\n
\n
Returns:
\n

Minimum size hint

\n
\n
\n\n
\n\n
\n
\nlayoutLegend(options, rect)[source]
\n

Find the geometry for the legend

\n
\n
Parameters:
\n
    \n
  • options – Options how to layout the legend

  • \n
  • rect (QRectF) – Rectangle where to place the legend

  • \n
\n
\n
Returns:
\n

Geometry for the legend

\n
\n
\n
\n\n
\n
\nalignLegend(canvasRect, legendRect)[source]
\n

Align the legend to the canvas

\n
\n
Parameters:
\n
    \n
  • canvasRect (QRectF) – Geometry of the canvas

  • \n
  • legendRect (QRectF) – Maximum geometry for the legend

  • \n
\n
\n
Returns:
\n

Geometry for the aligned legend

\n
\n
\n
\n\n
\n
\nexpandLineBreaks(options, rect)[source]
\n

Expand all line breaks in text labels, and calculate the height\nof their widgets in orientation of the text.

\n
\n
Parameters:
\n
    \n
  • options – Options how to layout the legend

  • \n
  • rect (QRectF) – Bounding rectangle for title, footer, axes and canvas.

  • \n
\n
\n
Returns:
\n

tuple (dimTitle, dimFooter, dimAxes)

\n
\n
\n

Returns:

\n
\n
    \n
  • dimTitle: Expanded height of the title widget

  • \n
  • dimFooter: Expanded height of the footer widget

  • \n
  • dimAxes: Expanded heights of the axis in axis orientation.

  • \n
\n
\n
\n\n
\n
\nalignScales(options, canvasRect, scaleRect)[source]
\n

Align the ticks of the axis to the canvas borders using\nthe empty corners.

\n
\n
Parameters:
\n
    \n
  • options – Options how to layout the legend

  • \n
  • canvasRect (QRectF) – Geometry of the canvas ( IN/OUT )

  • \n
  • scaleRect (QRectF) – Geometry of the scales ( IN/OUT )

  • \n
\n
\n
\n
\n\n
\n
\nactivate(plot, plotRect, options=0)[source]
\n

Recalculate the geometry of all components.

\n
\n
Parameters:
\n
    \n
  • plot (qwt.plot.QwtPlot) – Plot to be layout

  • \n
  • plotRect (QRectF) – Rectangle where to place the components

  • \n
  • options – Layout options

  • \n
\n
\n
\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/plot_layout.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d3a296ac0>, 'js_tag': .js_tag at 0x7f3d3a294b80>},
>) writing output... [ 84%] reference/plot_series -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(
>, 'reference/plot_series') -[app] emitting event: 'html-page-context'('reference/plot_series', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/transform', 'Coordinate tranformations', 'N', 'next'), ('reference/plot_layout', 'QwtPlotLayout', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/plot_series', 'current_page_name': 'reference/plot_series', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d718e0c0>, 'hasdoc': .hasdoc at 0x7fc7d718c860>, 'toctree': . at 0x7fc7d718ee80>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'plot_layout.html', 'title': 'QwtPlotLayout'}, 'next': {'link': 'transform.html', 'title': 'Coordinate tranformations'}, 'title': 'Plotting series item', 'meta': {}, 'body': '
\n

Plotting series item

\n
\n

QwtPlotSeriesItem

\n
\n
\nclass qwt.plot_series.QwtPlotSeriesItem(title)[source]
\n

Base class for plot items representing a series of samples

\n
\n
\nsetOrientation(orientation)[source]
\n

Set the orientation of the item. Default is Qt.Horizontal.

\n

The orientation() might be used in specific way by a plot item.\nF.e. a QwtPlotCurve uses it to identify how to display the curve\nint QwtPlotCurve.Steps or QwtPlotCurve.Sticks style.

\n
\n

See also

\n

:py:meth`orientation()`

\n
\n
\n\n
\n
\norientation()[source]
\n
\n
Returns:
\n

Orientation of the plot item

\n
\n
\n
\n

See also

\n

:py:meth`setOrientation()`

\n
\n
\n\n
\n
\ndraw(painter, xMap, yMap, canvasRect)[source]
\n

Draw the complete series

\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\ndrawSeries(painter, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw a subset of the samples

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n
\n

See also

\n

This method is implemented in qwt.plot_curve.QwtPlotCurve

\n
\n
\n\n
\n
\nboundingRect()[source]
\n
\n
Returns:
\n

An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)

\n
\n
\n
\n

Note

\n

A width or height < 0.0 is ignored by the autoscaler

\n
\n
\n\n
\n\n
\n
\n

QwtSeriesData

\n
\n
\nclass qwt.plot_series.QwtSeriesData[source]
\n

Abstract interface for iterating over samples

\n

PythonQwt offers several implementations of the QwtSeriesData API,\nbut in situations, where data of an application specific format\nneeds to be displayed, without having to copy it, it is recommended\nto implement an individual data access.

\n

A subclass of QwtSeriesData must implement:

\n
\n
\n
    \n
  • size():

    \n

    Should return number of data points.

    \n
  • \n
\n
\n
    \n
  • sample()

    \n
    \n

    Should return values x and y values of the sample at specific position\nas QPointF object.

    \n
    \n
  • \n
  • boundingRect()

    \n
    \n

    Should return the bounding rectangle of the data series.\nIt is used for autoscaling and might help certain algorithms for\ndisplaying the data.\nThe member _boundingRect is intended for caching the calculated\nrectangle.

    \n
    \n
  • \n
\n
\n
\n
\nsetRectOfInterest(rect)[source]
\n

Set a the “rect of interest”

\n

QwtPlotSeriesItem defines the current area of the plot canvas\nas “rectangle of interest” ( QwtPlotSeriesItem::updateScaleDiv() ).\nIt can be used to implement different levels of details.

\n

The default implementation does nothing.

\n
\n
Parameters:
\n

rect (QRectF) – Rectangle of interest

\n
\n
\n
\n\n
\n
\nsize()[source]
\n
\n
Returns:
\n

Number of samples

\n
\n
\n
\n\n
\n
\nsample(i)[source]
\n

Return a sample

\n
\n
Parameters:
\n

i (int) – Index

\n
\n
Returns:
\n

Sample at position i

\n
\n
\n
\n\n
\n
\nboundingRect()[source]
\n

Calculate the bounding rect of all samples

\n

The bounding rect is necessary for autoscaling and can be used\nfor a couple of painting optimizations.

\n
\n
Returns:
\n

Bounding rectangle

\n
\n
\n
\n\n
\n\n
\n
\n

QwtPointArrayData

\n
\n
\nclass qwt.plot_series.QwtPointArrayData(x=None, y=None, size=None, finite=None)[source]
\n

Interface for iterating over two array objects

\n
\n
\nclass QwtCQwtPointArrayDataolorMap(x, y[, size=None])
\n
\n
Parameters:
\n
    \n
  • x (list or tuple or numpy.array) – Array of x values

  • \n
  • y (list or tuple or numpy.array) – Array of y values

  • \n
  • size (int) – Size of the x and y arrays

  • \n
  • finite (bool) – if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements

  • \n
\n
\n
\n
\n\n
\n
\nboundingRect()[source]
\n

Calculate the bounding rectangle

\n

The bounding rectangle is calculated once by iterating over all\npoints and is stored for all following requests.

\n
\n
Returns:
\n

Bounding rectangle

\n
\n
\n
\n\n
\n
\nsize()[source]
\n
\n
Returns:
\n

Size of the data set

\n
\n
\n
\n\n
\n
\nsample(index)[source]
\n
\n
Parameters:
\n

index (int) – Index

\n
\n
Returns:
\n

Sample at position index

\n
\n
\n
\n\n
\n
\nxData()[source]
\n
\n
Returns:
\n

Array of the x-values

\n
\n
\n
\n\n
\n
\nyData()[source]
\n
\n
Returns:
\n

Array of the y-values

\n
\n
\n
\n\n
\n\n
\n
\n

QwtSeriesStore

\n
\n
\nclass qwt.plot_series.QwtSeriesStore[source]
\n

Class storing a QwtSeriesData object

\n

QwtSeriesStore and QwtPlotSeriesItem are intended as base classes for\nall plot items iterating over a series of samples.

\n
\n
\nsetData(series)[source]
\n

Assign a series of samples

\n
\n
Parameters:
\n

series (qwt.plot_series.QwtSeriesData) – Data

\n
\n
\n
\n

Warning

\n

The item takes ownership of the data object, deleting it\nwhen its not used anymore.

\n
\n
\n\n
\n
\ndata()[source]
\n
\n
Returns:
\n

the series data

\n
\n
\n
\n\n
\n
\nsample(index)[source]
\n
\n
Parameters:
\n

index (int) – Index

\n
\n
Returns:
\n

Sample at position index

\n
\n
\n
\n\n
\n
\ndataSize()[source]
\n
\n
Returns:
\n

Number of samples of the series

\n
\n
\n\n
\n\n
\n
\ndataRect()[source]
\n
\n
Returns:
\n

Bounding rectangle of the series or an invalid rectangle, when no series is stored

\n
\n
\n\n
\n\n
\n
\nsetRectOfInterest(rect)[source]
\n

Set a the “rect of interest” for the series

\n
\n
Parameters:
\n

rect (QRectF) – Rectangle of interest

\n
\n
\n\n
\n\n
\n
\nswapData(series)[source]
\n

Replace a series without deleting the previous one

\n
\n
Parameters:
\n

series (qwt.plot_series.QwtSeriesData) – New series

\n
\n
Returns:
\n

Previously assigned series

\n
\n
\n
\n\n
\n\n
\n
\n', 'metatags': '\n', 'sourcename': 'reference/plot_series.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d718ede0>, 'js_tag': .js_tag at 0x7fc7d718ed40>},
>) +[app] emitting event: 'html-page-context'('reference/plot_series', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/transform', 'Coordinate tranformations', 'N', 'next'), ('reference/plot_layout', 'QwtPlotLayout', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/plot_series', 'current_page_name': 'reference/plot_series', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3a59e0c0>, 'hasdoc': .hasdoc at 0x7f3d3a59c860>, 'toctree': . at 0x7f3d3a59ee80>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'plot_layout.html', 'title': 'QwtPlotLayout'}, 'next': {'link': 'transform.html', 'title': 'Coordinate tranformations'}, 'title': 'Plotting series item', 'meta': {}, 'body': '
\n

Plotting series item

\n
\n

QwtPlotSeriesItem

\n
\n
\nclass qwt.plot_series.QwtPlotSeriesItem(title)[source]
\n

Base class for plot items representing a series of samples

\n
\n
\nsetOrientation(orientation)[source]
\n

Set the orientation of the item. Default is Qt.Horizontal.

\n

The orientation() might be used in specific way by a plot item.\nF.e. a QwtPlotCurve uses it to identify how to display the curve\nint QwtPlotCurve.Steps or QwtPlotCurve.Sticks style.

\n
\n

See also

\n

:py:meth`orientation()`

\n
\n
\n\n
\n
\norientation()[source]
\n
\n
Returns:
\n

Orientation of the plot item

\n
\n
\n
\n

See also

\n

:py:meth`setOrientation()`

\n
\n
\n\n
\n
\ndraw(painter, xMap, yMap, canvasRect)[source]
\n

Draw the complete series

\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\ndrawSeries(painter, xMap, yMap, canvasRect, from_, to)[source]
\n

Draw a subset of the samples

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • xMap (qwt.scale_map.QwtScaleMap) – Maps x-values into pixel coordinates.

  • \n
  • yMap (qwt.scale_map.QwtScaleMap) – Maps y-values into pixel coordinates.

  • \n
  • canvasRect (QRectF) – Contents rectangle of the canvas

  • \n
  • from (int) – Index of the first point to be painted

  • \n
  • to (int) – Index of the last point to be painted. If to < 0 the curve will be painted to its last point.

  • \n
\n
\n
\n
\n

See also

\n

This method is implemented in qwt.plot_curve.QwtPlotCurve

\n
\n
\n\n
\n
\nboundingRect()[source]
\n
\n
Returns:
\n

An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)

\n
\n
\n
\n

Note

\n

A width or height < 0.0 is ignored by the autoscaler

\n
\n
\n\n
\n\n
\n
\n

QwtSeriesData

\n
\n
\nclass qwt.plot_series.QwtSeriesData[source]
\n

Abstract interface for iterating over samples

\n

PythonQwt offers several implementations of the QwtSeriesData API,\nbut in situations, where data of an application specific format\nneeds to be displayed, without having to copy it, it is recommended\nto implement an individual data access.

\n

A subclass of QwtSeriesData must implement:

\n
\n
\n
    \n
  • size():

    \n

    Should return number of data points.

    \n
  • \n
\n
\n
    \n
  • sample()

    \n
    \n

    Should return values x and y values of the sample at specific position\nas QPointF object.

    \n
    \n
  • \n
  • boundingRect()

    \n
    \n

    Should return the bounding rectangle of the data series.\nIt is used for autoscaling and might help certain algorithms for\ndisplaying the data.\nThe member _boundingRect is intended for caching the calculated\nrectangle.

    \n
    \n
  • \n
\n
\n
\n
\nsetRectOfInterest(rect)[source]
\n

Set a the “rect of interest”

\n

QwtPlotSeriesItem defines the current area of the plot canvas\nas “rectangle of interest” ( QwtPlotSeriesItem::updateScaleDiv() ).\nIt can be used to implement different levels of details.

\n

The default implementation does nothing.

\n
\n
Parameters:
\n

rect (QRectF) – Rectangle of interest

\n
\n
\n
\n\n
\n
\nsize()[source]
\n
\n
Returns:
\n

Number of samples

\n
\n
\n
\n\n
\n
\nsample(i)[source]
\n

Return a sample

\n
\n
Parameters:
\n

i (int) – Index

\n
\n
Returns:
\n

Sample at position i

\n
\n
\n
\n\n
\n
\nboundingRect()[source]
\n

Calculate the bounding rect of all samples

\n

The bounding rect is necessary for autoscaling and can be used\nfor a couple of painting optimizations.

\n
\n
Returns:
\n

Bounding rectangle

\n
\n
\n
\n\n
\n\n
\n
\n

QwtPointArrayData

\n
\n
\nclass qwt.plot_series.QwtPointArrayData(x=None, y=None, size=None, finite=None)[source]
\n

Interface for iterating over two array objects

\n
\n
\nclass QwtCQwtPointArrayDataolorMap(x, y[, size=None])
\n
\n
Parameters:
\n
    \n
  • x (list or tuple or numpy.array) – Array of x values

  • \n
  • y (list or tuple or numpy.array) – Array of y values

  • \n
  • size (int) – Size of the x and y arrays

  • \n
  • finite (bool) – if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements

  • \n
\n
\n
\n
\n\n
\n
\nboundingRect()[source]
\n

Calculate the bounding rectangle

\n

The bounding rectangle is calculated once by iterating over all\npoints and is stored for all following requests.

\n
\n
Returns:
\n

Bounding rectangle

\n
\n
\n
\n\n
\n
\nsize()[source]
\n
\n
Returns:
\n

Size of the data set

\n
\n
\n
\n\n
\n
\nsample(index)[source]
\n
\n
Parameters:
\n

index (int) – Index

\n
\n
Returns:
\n

Sample at position index

\n
\n
\n
\n\n
\n
\nxData()[source]
\n
\n
Returns:
\n

Array of the x-values

\n
\n
\n
\n\n
\n
\nyData()[source]
\n
\n
Returns:
\n

Array of the y-values

\n
\n
\n
\n\n
\n\n
\n
\n

QwtSeriesStore

\n
\n
\nclass qwt.plot_series.QwtSeriesStore[source]
\n

Class storing a QwtSeriesData object

\n

QwtSeriesStore and QwtPlotSeriesItem are intended as base classes for\nall plot items iterating over a series of samples.

\n
\n
\nsetData(series)[source]
\n

Assign a series of samples

\n
\n
Parameters:
\n

series (qwt.plot_series.QwtSeriesData) – Data

\n
\n
\n
\n

Warning

\n

The item takes ownership of the data object, deleting it\nwhen its not used anymore.

\n
\n
\n\n
\n
\ndata()[source]
\n
\n
Returns:
\n

the series data

\n
\n
\n
\n\n
\n
\nsample(index)[source]
\n
\n
Parameters:
\n

index (int) – Index

\n
\n
Returns:
\n

Sample at position index

\n
\n
\n
\n\n
\n
\ndataSize()[source]
\n
\n
Returns:
\n

Number of samples of the series

\n
\n
\n\n
\n\n
\n
\ndataRect()[source]
\n
\n
Returns:
\n

Bounding rectangle of the series or an invalid rectangle, when no series is stored

\n
\n
\n\n
\n\n
\n
\nsetRectOfInterest(rect)[source]
\n

Set a the “rect of interest” for the series

\n
\n
Parameters:
\n

rect (QRectF) – Rectangle of interest

\n
\n
\n\n
\n\n
\n
\nswapData(series)[source]
\n

Replace a series without deleting the previous one

\n
\n
Parameters:
\n

series (qwt.plot_series.QwtSeriesData) – New series

\n
\n
Returns:
\n

Previously assigned series

\n
\n
\n
\n\n
\n\n
\n
\n', 'metatags': '\n', 'sourcename': 'reference/plot_series.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d3a59ede0>, 'js_tag': .js_tag at 0x7f3d3a59ed40>},
>) writing output... [ 88%] reference/scale -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, <#text: 'QPaintEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, <#text: 'QResizeEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, <#text: 'QSize'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'QSize'>) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, <#text: 'QPaintEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, <#text: 'QResizeEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, <#text: 'QSize'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'QSize'>) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(>, 'reference/scale') -[app] emitting event: 'html-page-context'('reference/scale', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/symbol', 'QwtSymbol', 'N', 'next'), ('reference/plot', 'Plot widget fundamentals', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/scale', 'current_page_name': 'reference/scale', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d7075080>, 'hasdoc': .hasdoc at 0x7fc7d7074fe0>, 'toctree': . at 0x7fc7d7075120>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'plot.html', 'title': 'Plot widget fundamentals'}, 'next': {'link': 'symbol.html', 'title': 'QwtSymbol'}, 'title': 'Scales', 'meta': {}, 'body': '
\n

Scales

\n
\n

QwtScaleMap

\n
\n
\nclass qwt.scale_map.QwtScaleMap(*args)[source]
\n

A scale map

\n

QwtScaleMap offers transformations from the coordinate system\nof a scale into the linear coordinate system of a paint device\nand vice versa.

\n

The scale and paint device intervals are both set to [0,1].

\n
\n
\nclass QwtScaleMap([other=None])
\n

Constructor (eventually, copy constructor)

\n
\n
Parameters:
\n

other (qwt.scale_map.QwtScaleMap) – Other scale map

\n
\n
\n
\n\n
\n
\nclass QwtScaleMap(p1, p2, s1, s2)
\n

Constructor (was provided by PyQwt but not by Qwt)

\n
\n
Parameters:
\n
    \n
  • p1 (int) – First border of the paint interval

  • \n
  • p2 (int) – Second border of the paint interval

  • \n
  • s1 (float) – First border of the scale interval

  • \n
  • s2 (float) – Second border of the scale interval

  • \n
\n
\n
\n
\n\n
\n
\ns1()[source]
\n
\n
Returns:
\n

First border of the scale interval

\n
\n
\n
\n\n
\n
\ns2()[source]
\n
\n
Returns:
\n

Second border of the scale interval

\n
\n
\n
\n\n
\n
\np1()[source]
\n
\n
Returns:
\n

First border of the paint interval

\n
\n
\n
\n\n
\n
\np2()[source]
\n
\n
Returns:
\n

Second border of the paint interval

\n
\n
\n
\n\n
\n
\npDist()[source]
\n
\n
Returns:
\n

abs(p2() - p1())

\n
\n
\n
\n\n
\n
\nsDist()[source]
\n
\n
Returns:
\n

abs(s2() - s1())

\n
\n
\n
\n\n
\n
\ntransform_scalar(s)[source]
\n

Transform a point related to the scale interval into an point\nrelated to the interval of the paint device

\n
\n
Parameters:
\n

s (float) – Value relative to the coordinates of the scale

\n
\n
Returns:
\n

Transformed value

\n
\n
\n
\n

See also

\n

invTransform_scalar()

\n
\n
\n\n
\n
\ninvTransform_scalar(p)[source]
\n

Transform an paint device value into a value in the\ninterval of the scale.

\n
\n
Parameters:
\n

p (float) – Value relative to the coordinates of the paint device

\n
\n
Returns:
\n

Transformed value

\n
\n
\n
\n

See also

\n

transform_scalar()

\n
\n
\n\n
\n
\nisInverting()[source]
\n
\n
Returns:
\n

True, when ( p1() < p2() ) != ( s1() < s2() )

\n
\n
\n
\n\n
\n
\nsetTransformation(transform)[source]
\n

Initialize the map with a transformation

\n
\n
Parameters:
\n

transform (qwt.transform.QwtTransform) – Transformation

\n
\n
\n
\n\n
\n
\ntransformation()[source]
\n
\n
Returns:
\n

the transformation

\n
\n
\n
\n\n
\n
\nsetScaleInterval(s1, s2)[source]
\n

Specify the borders of the scale interval

\n
\n
Parameters:
\n
    \n
  • s1 (float) – first border

  • \n
  • s2 (float) – second border

  • \n
\n
\n
\n
\n

Warning

\n

Scales might be aligned to transformation depending boundaries

\n
\n
\n\n
\n
\nsetPaintInterval(p1, p2)[source]
\n

Specify the borders of the paint device interval

\n
\n
Parameters:
\n
    \n
  • p1 (float) – first border

  • \n
  • p2 (float) – second border

  • \n
\n
\n
\n
\n\n
\n
\ntransform(*args)[source]
\n

Transform a rectangle from scale to paint coordinates.

\n

Transfom a scalar:

\n
\n
Parameters:
\n

scalar (float) – Scalar

\n
\n
\n

Transfom a rectangle:

\n
\n
Parameters:
\n
\n
\n
\n

Transfom a point:

\n
\n
Parameters:
\n
\n
\n
\n
\n

See also

\n

invTransform()

\n
\n
\n\n
\n
\ninvTransform(*args)[source]
\n

Transform from paint to scale coordinates

\n

Scalar: scalemap.invTransform(scalar)\nPoint (QPointF): scalemap.invTransform(xMap, yMap, pos)\nRectangle (QRectF): scalemap.invTransform(xMap, yMap, rect)

\n
\n\n
\n\n
\n
\n

QwtScaleWidget

\n
\n
\nclass qwt.scale_widget.QwtScaleWidget(*args)[source]
\n

A Widget which contains a scale

\n

This Widget can be used to decorate composite widgets with\na scale.

\n

Layout flags:

\n
\n
    \n
  • QwtScaleWidget.TitleInverted: The title of vertical scales is painted from top to bottom. Otherwise it is painted from bottom to top.

  • \n
\n
\n
\n
\nclass QwtScaleWidget([parent=None])
\n

Alignment default is QwtScaleDraw.LeftScale.

\n
\n
Parameters:
\n

parent (QWidget or None) – Parent widget

\n
\n
\n
\n\n
\n
\nclass QwtScaleWidget(align, parent)
\n
\n
Parameters:
\n
    \n
  • align (int) – Alignment

  • \n
  • parent (QWidget) – Parent widget

  • \n
\n
\n
\n
\n\n
\n
\ninitScale(align)[source]
\n

Initialize the scale

\n
\n
Parameters:
\n

align (int) – Alignment

\n
\n
\n
\n\n
\n
\nsetLayoutFlag(flag, on=True)[source]
\n

Toggle an layout flag

\n
\n
Parameters:
\n
    \n
  • flag (int) – Layout flag

  • \n
  • on (bool) – True/False

  • \n
\n
\n
\n
\n

See also

\n

testLayoutFlag()

\n
\n
\n\n
\n
\ntestLayoutFlag(flag)[source]
\n

Test a layout flag

\n
\n
Parameters:
\n

flag (int) – Layout flag

\n
\n
Returns:
\n

True/False

\n
\n
\n
\n

See also

\n

setLayoutFlag()

\n
\n
\n\n
\n
\nsetTitle(title)[source]
\n

Give title new text contents

\n
\n
Parameters:
\n

title (qwt.text.QwtText or str) – New title

\n
\n
\n
\n

See also

\n

title()

\n
\n
\n\n
\n
\nsetAlignment(alignment)[source]
\n

Change the alignment

\n
\n
Parameters:
\n

alignment (int) – New alignment

\n
\n
\n

Valid alignment values: see qwt.scale_draw.QwtScaleDraw

\n
\n

See also

\n

alignment()

\n
\n
\n\n
\n
\nalignment()[source]
\n
\n
Returns:
\n

position

\n
\n
\n
\n

See also

\n

setAlignment()

\n
\n
\n\n
\n
\nsetBorderDist(dist1, dist2)[source]
\n

Specify distances of the scale’s endpoints from the\nwidget’s borders. The actual borders will never be less\nthan minimum border distance.

\n
\n
Parameters:
\n
    \n
  • dist1 (int) – Left or top Distance

  • \n
  • dist2 (int) – Right or bottom distance

  • \n
\n
\n
\n
\n

See also

\n

borderDist()

\n
\n
\n\n
\n
\nsetMargin(margin)[source]
\n

Specify the margin to the colorBar/base line.

\n
\n
Parameters:
\n

margin (int) – Margin

\n
\n
\n
\n

See also

\n

margin()

\n
\n
\n\n
\n
\nsetSpacing(spacing)[source]
\n

Specify the distance between color bar, scale and title

\n
\n
Parameters:
\n

spacing (int) – Spacing

\n
\n
\n
\n

See also

\n

spacing()

\n
\n
\n\n
\n
\nsetLabelAlignment(alignment)[source]
\n

Change the alignment for the labels.

\n
\n
Parameters:
\n

spacing (int) – Spacing

\n
\n
\n\n
\n\n
\n
\nsetLabelRotation(rotation)[source]
\n

Change the rotation for the labels.

\n
\n
Parameters:
\n

rotation (float) – Rotation

\n
\n
\n
\n

See also

\n

qwt.scale_draw.QwtScaleDraw.setLabelRotation(),\nsetLabelFlags()

\n
\n
\n\n
\n
\nsetLabelAutoSize(state)[source]
\n

Set the automatic size option for labels (default: on).

\n
\n
Parameters:
\n

state (bool) – On/off

\n
\n
\n\n
\n\n
\n
\nsetScaleDraw(scaleDraw)[source]
\n

Set a scale draw

\n

scaleDraw has to be created with new and will be deleted in\nclass destructor or the next call of setScaleDraw().\nscaleDraw will be initialized with the attributes of\nthe previous scaleDraw object.

\n
\n
Parameters:
\n

scaleDraw (qwt.scale_draw.QwtScaleDraw) – ScaleDraw object

\n
\n
\n
\n

See also

\n

scaleDraw()

\n
\n
\n\n
\n
\nscaleDraw()[source]
\n
\n
Returns:
\n

scaleDraw of this scale

\n
\n
\n
\n

See also

\n

qwt.scale_draw.QwtScaleDraw.setScaleDraw()

\n
\n
\n\n
\n
\ntitle()[source]
\n
\n
Returns:
\n

title

\n
\n
\n
\n

See also

\n

setTitle()

\n
\n
\n\n
\n
\nstartBorderDist()[source]
\n
\n
Returns:
\n

start border distance

\n
\n
\n
\n

See also

\n

setBorderDist()

\n
\n
\n\n
\n
\nendBorderDist()[source]
\n
\n
Returns:
\n

end border distance

\n
\n
\n
\n

See also

\n

setBorderDist()

\n
\n
\n\n
\n
\nmargin()[source]
\n
\n
Returns:
\n

margin

\n
\n
\n
\n

See also

\n

setMargin()

\n
\n
\n\n
\n
\nspacing()[source]
\n
\n
Returns:
\n

distance between scale and title

\n
\n
\n
\n

See also

\n

setSpacing()

\n
\n
\n\n
\n
\npaintEvent(self, a0: QPaintEvent | None)[source]
\n
\n\n
\n
\ndraw(painter)[source]
\n

Draw the scale

\n
\n
Parameters:
\n

painter (QPainter) – Painter

\n
\n
\n
\n\n
\n
\ncolorBarRect(rect)[source]
\n

Calculate the the rectangle for the color bar

\n
\n
Parameters:
\n

rect (QRectF) – Bounding rectangle for all components of the scale

\n
\n
Returns:
\n

Rectangle for the color bar

\n
\n
\n
\n\n
\n
\nresizeEvent(self, a0: QResizeEvent | None)[source]
\n
\n\n
\n
\nlayoutScale(update_geometry=True)[source]
\n

Recalculate the scale’s geometry and layout based on\nthe current geometry and fonts.

\n
\n
Parameters:
\n

update_geometry (bool) – Notify the layout system and call update to redraw the scale

\n
\n
\n
\n\n
\n
\ndrawColorBar(painter, rect)[source]
\n

Draw the color bar of the scale widget

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Bounding rectangle for the color bar

  • \n
\n
\n
\n
\n

See also

\n

setColorBarEnabled()

\n
\n
\n\n
\n
\ndrawTitle(painter, align, rect)[source]
\n

Rotate and paint a title according to its position into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • align (int) – Alignment

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
\n
\n
\n
\n\n
\n
\nscaleChange()[source]
\n

Notify a change of the scale

\n

This method can be overloaded by derived classes. The default\nimplementation updates the geometry and repaints the widget.

\n
\n\n
\n
\nsizeHint(self) QSize[source]
\n
\n\n
\n
\nminimumSizeHint(self) QSize[source]
\n
\n\n
\n
\ntitleHeightForWidth(width)[source]
\n

Find the height of the title for a given width.

\n
\n
Parameters:
\n

width (int) – Width

\n
\n
Returns:
\n

Height

\n
\n
\n
\n\n
\n
\ndimForLength(length, scaleFont)[source]
\n

Find the minimum dimension for a given length.\ndim is the height, length the width seen in direction of the title.

\n
\n
Parameters:
\n
    \n
  • length (int) – width for horizontal, height for vertical scales

  • \n
  • scaleFont (QFont) – Font of the scale

  • \n
\n
\n
Returns:
\n

height for horizontal, width for vertical scales

\n
\n
\n
\n\n
\n
\ngetBorderDistHint()[source]
\n

Calculate a hint for the border distances.

\n

This member function calculates the distance\nof the scale’s endpoints from the widget borders which\nis required for the mark labels to fit into the widget.\nThe maximum of this distance an the minimum border distance\nis returned.

\n
\n
Parameters:
\n
    \n
  • start (int) – Return parameter for the border width at the beginning of the scale

  • \n
  • end (int) – Return parameter for the border width at the end of the scale

  • \n
\n
\n
\n
\n

Warning

\n

The minimum border distance depends on the font.

\n
\n\n
\n\n
\n
\nsetMinBorderDist(start, end)[source]
\n

Set a minimum value for the distances of the scale’s endpoints from\nthe widget borders. This is useful to avoid that the scales\nare “jumping”, when the tick labels or their positions change\noften.

\n
\n
Parameters:
\n
    \n
  • start (int) – Minimum for the start border

  • \n
  • end (int) – Minimum for the end border

  • \n
\n
\n
\n\n
\n\n
\n
\ngetMinBorderDist()[source]
\n

Get the minimum value for the distances of the scale’s endpoints from\nthe widget borders.

\n
\n
Parameters:
\n
    \n
  • start (int) – Return parameter for the border width at the beginning of the scale

  • \n
  • end (int) – Return parameter for the border width at the end of the scale

  • \n
\n
\n
\n\n
\n\n
\n
\nsetScaleDiv(scaleDiv)[source]
\n

Assign a scale division

\n

The scale division determines where to set the tick marks.

\n
\n
Parameters:
\n

scaleDiv (qwt.scale_div.QwtScaleDiv) – Scale Division

\n
\n
\n
\n

See also

\n

For more information about scale divisions,\nsee qwt.scale_div.QwtScaleDiv.

\n
\n
\n\n
\n
\nsetTransformation(transformation)[source]
\n

Set the transformation

\n
\n
Parameters:
\n

transformation (qwt.transform.Transform) – Transformation

\n
\n
\n
\n

See also

\n

qwt.scale_draw.QwtAbstractScaleDraw.scaleDraw(),\nqwt.scale_map.QwtScaleMap

\n
\n
\n\n
\n
\nsetColorBarEnabled(on)[source]
\n

En/disable a color bar associated to the scale

\n
\n
Parameters:
\n

on (bool) – On/Off

\n
\n
\n\n
\n\n
\n
\nisColorBarEnabled()[source]
\n
\n
Returns:
\n

True, when the color bar is enabled

\n
\n
\n\n
\n\n
\n
\nsetColorBarWidth(width)[source]
\n

Set the width of the color bar

\n
\n
Parameters:
\n

width (int) – Width

\n
\n
\n\n
\n\n
\n
\ncolorBarWidth()[source]
\n
\n
Returns:
\n

Width of the color bar

\n
\n
\n\n
\n\n
\n
\ncolorBarInterval()[source]
\n
\n
Returns:
\n

Value interval for the color bar

\n
\n
\n
\n

See also

\n

setColorMap(), colorMap()

\n
\n
\n\n
\n
\nsetColorMap(interval, colorMap)[source]
\n

Set the color map and value interval, that are used for displaying\nthe color bar.

\n
\n
Parameters:
\n
\n
\n
\n\n
\n\n
\n
\ncolorMap()[source]
\n
\n
Returns:
\n

Color map

\n
\n
\n\n
\n\n
\n\n
\n
\n

QwtScaleDiv

\n
\n
\nclass qwt.scale_div.QwtScaleDiv(*args)[source]
\n

A class representing a scale division

\n

A Qwt scale is defined by its boundaries and 3 list\nfor the positions of the major, medium and minor ticks.

\n

The upperLimit() might be smaller than the lowerLimit()\nto indicate inverted scales.

\n

Scale divisions can be calculated from a QwtScaleEngine.

\n\n

Scale tick types:

\n
\n
    \n
  • QwtScaleDiv.NoTick: No ticks

  • \n
  • QwtScaleDiv.MinorTick: Minor ticks

  • \n
  • QwtScaleDiv.MediumTick: Medium ticks

  • \n
  • QwtScaleDiv.MajorTick: Major ticks

  • \n
  • QwtScaleDiv.NTickTypes: Number of valid tick types

  • \n
\n
\n
\n
\nclass QwtScaleDiv
\n

Basic constructor. Lower bound = Upper bound = 0.

\n
\n\n
\n
\nclass QwtScaleDiv(interval, ticks)
\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\nclass QwtScaleDiv(lowerBound, upperBound)
\n
\n
Parameters:
\n
    \n
  • lowerBound (float) – First boundary

  • \n
  • upperBound (float) – Second boundary

  • \n
\n
\n
\n
\n\n
\n
\nclass QwtScaleDiv(lowerBound, upperBound, ticks)
\n
\n
Parameters:
\n
    \n
  • lowerBound (float) – First boundary

  • \n
  • upperBound (float) – Second boundary

  • \n
  • ticks (list) – list of major, medium and minor ticks

  • \n
\n
\n
\n
\n\n
\n
\nclass QwtScaleDiv(lowerBound, upperBound, minorTicks, mediumTicks, majorTicks)
\n
\n
Parameters:
\n
    \n
  • lowerBound (float) – First boundary

  • \n
  • upperBound (float) – Second boundary

  • \n
  • minorTicks (list) – list of minor ticks

  • \n
  • mediumTicks (list) – list of medium ticks

  • \n
  • majorTicks (list) – list of major ticks

  • \n
\n
\n
\n
\n\n
\n

Note

\n

lowerBound might be greater than upperBound for inverted scales

\n
\n
\n
\nsetInterval(*args)[source]
\n

Change the interval

\n
\n
\nsetInterval(lowerBound, upperBound)[source]
\n
\n
Parameters:
\n
    \n
  • lowerBound (float) – First boundary

  • \n
  • upperBound (float) – Second boundary

  • \n
\n
\n
\n
\n\n
\n
\nsetInterval(interval)[source]
\n
\n
Parameters:
\n

interval (qwt.interval.QwtInterval) – Interval

\n
\n
\n
\n\n
\n

Note

\n

lowerBound might be greater than upperBound for inverted scales

\n
\n
\n\n
\n
\ninterval()[source]
\n
\n
Returns:
\n

Interval

\n
\n
\n
\n\n
\n
\nsetLowerBound(lowerBound)[source]
\n

Set the first boundary

\n
\n
Parameters:
\n

lowerBound (float) – First boundary

\n
\n
\n\n
\n\n
\n
\nlowerBound()[source]
\n
\n
Returns:
\n

the first boundary

\n
\n
\n
\n

See also

\n

upperBound()

\n
\n
\n\n
\n
\nsetUpperBound(upperBound)[source]
\n

Set the second boundary

\n
\n
Parameters:
\n

lowerBound (float) – Second boundary

\n
\n
\n\n
\n\n
\n
\nupperBound()[source]
\n
\n
Returns:
\n

the second boundary

\n
\n
\n
\n

See also

\n

lowerBound()

\n
\n
\n\n
\n
\nrange()[source]
\n
\n
Returns:
\n

upperBound() - lowerBound()

\n
\n
\n
\n\n
\n
\nisEmpty()[source]
\n

Check if the scale division is empty( lowerBound() == upperBound() )

\n
\n\n
\n
\nisIncreasing()[source]
\n

Check if the scale division is increasing( lowerBound() <= upperBound() )

\n
\n\n
\n
\ncontains(value)[source]
\n

Return if a value is between lowerBound() and upperBound()

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

True/False

\n
\n
\n
\n\n
\n
\ninvert()[source]
\n

Invert the scale division

\n
\n

See also

\n

inverted()

\n
\n
\n\n
\n
\ninverted()[source]
\n
\n
Returns:
\n

A scale division with inverted boundaries and ticks

\n
\n
\n
\n

See also

\n

invert()

\n
\n
\n\n
\n
\nbounded(lowerBound, upperBound)[source]
\n

Return a scale division with an interval [lowerBound, upperBound]\nwhere all ticks outside this interval are removed

\n
\n
Parameters:
\n
    \n
  • lowerBound (float) – First boundary

  • \n
  • lowerBound – Second boundary

  • \n
\n
\n
Returns:
\n

Scale division with all ticks inside of the given interval

\n
\n
\n
\n

Note

\n

lowerBound might be greater than upperBound for inverted scales

\n
\n
\n\n
\n
\nsetTicks(tickType, ticks)[source]
\n

Assign ticks

\n
\n
Parameters:
\n
    \n
  • type (int) – MinorTick, MediumTick or MajorTick

  • \n
  • ticks (list) – Values of the tick positions

  • \n
\n
\n
\n
\n\n
\n
\nticks(tickType)[source]
\n

Return a list of ticks

\n
\n
Parameters:
\n

type (int) – MinorTick, MediumTick or MajorTick

\n
\n
Returns:
\n

Tick list

\n
\n
\n
\n\n
\n\n
\n
\n

QwtScaleEngine

\n
\n
\nclass qwt.scale_engine.QwtScaleEngine(base=10)[source]
\n

Base class for scale engines.

\n

A scale engine tries to find “reasonable” ranges and step sizes\nfor scales.

\n

The layout of the scale can be varied with setAttribute().

\n

PythonQwt offers implementations for logarithmic and linear scales.

\n

Layout attributes:

\n
\n
    \n
  • QwtScaleEngine.NoAttribute: No attributes

  • \n
  • QwtScaleEngine.IncludeReference: Build a scale which includes the\nreference() value

  • \n
  • QwtScaleEngine.Symmetric: Build a scale which is symmetric to the\nreference() value

  • \n
  • QwtScaleEngine.Floating: The endpoints of the scale are supposed to\nbe equal the outmost included values plus the specified margins (see\nsetMargins()). If this attribute is not set, the endpoints of the\nscale will be integer multiples of the step size.

  • \n
  • QwtScaleEngine.Inverted: Turn the scale upside down

  • \n
\n
\n
\n
\nautoScale(maxNumSteps, x1, x2, stepSize)[source]
\n

Align and divide an interval

\n
\n
Parameters:
\n
    \n
  • maxNumSteps (int) – Max. number of steps

  • \n
  • x1 (float) – First limit of the interval (In/Out)

  • \n
  • x2 (float) – Second limit of the interval (In/Out)

  • \n
  • stepSize (float) – Step size

  • \n
\n
\n
Returns:
\n

tuple (x1, x2, stepSize)

\n
\n
\n
\n\n
\n
\ndivideScale(x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0)[source]
\n

Calculate a scale division

\n
\n
Parameters:
\n
    \n
  • x1 (float) – First interval limit

  • \n
  • x2 (float) – Second interval limit

  • \n
  • maxMajorSteps (int) – Maximum for the number of major steps

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
  • stepSize (float) – Step size. If stepSize == 0.0, the scaleEngine calculates one

  • \n
\n
\n
Returns:
\n

Calculated scale division

\n
\n
\n
\n\n
\n
\nsetTransformation(transform)[source]
\n

Assign a transformation

\n
\n
Parameters:
\n

transform (qwt.transform.QwtTransform) – Transformation

\n
\n
\n

The transformation object is used as factory for clones\nthat are returned by transformation()

\n

The scale engine takes ownership of the transformation.

\n
\n

See also

\n

QwtTransform.copy(), transformation()

\n
\n
\n\n
\n
\ntransformation()[source]
\n

Create and return a clone of the transformation\nof the engine. When the engine has no special transformation\nNone is returned, indicating no transformation.

\n
\n
Returns:
\n

A clone of the transfomation

\n
\n
\n
\n

See also

\n

setTransformation()

\n
\n
\n\n
\n
\nlowerMargin()[source]
\n
\n
Returns:
\n

the margin at the lower end of the scale

\n
\n
\n

The default margin is 0.

\n
\n

See also

\n

setMargins()

\n
\n
\n\n
\n
\nupperMargin()[source]
\n
\n
Returns:
\n

the margin at the upper end of the scale

\n
\n
\n

The default margin is 0.

\n
\n

See also

\n

setMargins()

\n
\n
\n\n
\n
\nsetMargins(lower, upper)[source]
\n

Specify margins at the scale’s endpoints

\n
\n
Parameters:
\n
    \n
  • lower (float) – minimum distance between the scale’s lower boundary and the smallest enclosed value

  • \n
  • upper (float) – minimum distance between the scale’s upper boundary and the greatest enclosed value

  • \n
\n
\n
Returns:
\n

A clone of the transfomation

\n
\n
\n

Margins can be used to leave a minimum amount of space between\nthe enclosed intervals and the boundaries of the scale.

\n
\n

Warning

\n

QwtLogScaleEngine measures the margins in decades.

\n
\n\n
\n\n
\n
\ndivideInterval(intervalSize, numSteps)[source]
\n

Calculate a step size for a given interval

\n
\n
Parameters:
\n
    \n
  • intervalSize (float) – Interval size

  • \n
  • numSteps (float) – Number of steps

  • \n
\n
\n
Returns:
\n

Step size

\n
\n
\n
\n\n
\n
\ncontains(interval, value)[source]
\n

Check if an interval “contains” a value

\n
\n
Parameters:
\n
    \n
  • intervalSize (float) – Interval size

  • \n
  • value (float) – Value

  • \n
\n
\n
Returns:
\n

True, when the value is inside the interval

\n
\n
\n
\n\n
\n
\nstrip(ticks, interval)[source]
\n

Remove ticks from a list, that are not inside an interval

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Stripped tick list

\n
\n
\n
\n\n
\n
\nbuildInterval(value)[source]
\n

Build an interval around a value

\n

In case of v == 0.0 the interval is [-0.5, 0.5],\notherwide it is [0.5 * v, 1.5 * v]

\n
\n
Parameters:
\n

value (float) – Initial value

\n
\n
Returns:
\n

Calculated interval

\n
\n
\n
\n\n
\n
\nsetAttribute(attribute, on=True)[source]
\n

Change a scale attribute

\n
\n
Parameters:
\n
    \n
  • attribute (int) – Attribute to change

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
Returns:
\n

Calculated interval

\n
\n
\n
\n

See also

\n

testAttribute()

\n
\n
\n\n
\n
\ntestAttribute(attribute)[source]
\n
\n
Parameters:
\n

attribute (int) – Attribute to be tested

\n
\n
Returns:
\n

True, if attribute is enabled

\n
\n
\n
\n

See also

\n

setAttribute()

\n
\n
\n\n
\n
\nsetAttributes(attributes)[source]
\n

Change the scale attribute

\n
\n
Parameters:
\n

attributes – Set scale attributes

\n
\n
\n
\n

See also

\n

attributes()

\n
\n
\n\n
\n
\nattributes()[source]
\n
\n
Returns:
\n

Scale attributes

\n
\n
\n\n
\n\n
\n
\nsetReference(r)[source]
\n

Specify a reference point

\n
\n
Parameters:
\n

r (float) – new reference value

\n
\n
\n

The reference point is needed if options IncludeReference or\nSymmetric are active. Its default value is 0.0.

\n
\n\n
\n
\nreference()[source]
\n
\n
Returns:
\n

the reference value

\n
\n
\n\n
\n\n
\n
\nsetBase(base)[source]
\n

Set the base of the scale engine

\n

While a base of 10 is what 99.9% of all applications need\ncertain scales might need a different base: f.e 2

\n

The default setting is 10

\n
\n
Parameters:
\n

base (int) – Base of the engine

\n
\n
\n
\n

See also

\n

base()

\n
\n
\n\n
\n
\nbase()[source]
\n
\n
Returns:
\n

Base of the scale engine

\n
\n
\n
\n

See also

\n

setBase()

\n
\n
\n\n
\n\n
\n
\n

QwtLinearScaleEngine

\n
\n
\nclass qwt.scale_engine.QwtLinearScaleEngine(base=10)[source]
\n

A scale engine for linear scales

\n

The step size will fit into the pattern\nf$left{ 1,2,5right} cdot 10^{n}f$, where n is an integer.

\n
\n
\nautoScale(maxNumSteps, x1, x2, stepSize)[source]
\n

Align and divide an interval

\n
\n
Parameters:
\n
    \n
  • maxNumSteps (int) – Max. number of steps

  • \n
  • x1 (float) – First limit of the interval (In/Out)

  • \n
  • x2 (float) – Second limit of the interval (In/Out)

  • \n
  • stepSize (float) – Step size

  • \n
\n
\n
Returns:
\n

tuple (x1, x2, stepSize)

\n
\n
\n
\n

See also

\n

setAttribute()

\n
\n
\n\n
\n
\ndivideScale(x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0)[source]
\n

Calculate a scale division for an interval

\n
\n
Parameters:
\n
    \n
  • x1 (float) – First interval limit

  • \n
  • x2 (float) – Second interval limit

  • \n
  • maxMajorSteps (int) – Maximum for the number of major steps

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
  • stepSize (float) – Step size. If stepSize == 0.0, the scaleEngine calculates one

  • \n
\n
\n
Returns:
\n

Calculated scale division

\n
\n
\n
\n\n
\n
\nbuildTicks(interval, stepSize, maxMinorSteps)[source]
\n

Calculate ticks for an interval

\n
\n
Parameters:
\n
    \n
  • interval (qwt.interval.QwtInterval) – Interval

  • \n
  • stepSize (float) – Step size

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
\n
\n
Returns:
\n

Calculated ticks

\n
\n
\n
\n\n
\n
\nbuildMajorTicks(interval, stepSize)[source]
\n

Calculate major ticks for an interval

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Calculated ticks

\n
\n
\n
\n\n
\n
\nbuildMinorTicks(ticks, maxMinorSteps, stepSize)[source]
\n

Calculate minor ticks for an interval

\n
\n
Parameters:
\n
    \n
  • ticks (list) – Major ticks (returned)

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
  • stepSize (float) – Step size

  • \n
\n
\n
\n
\n\n
\n
\nalign(interval, stepSize)[source]
\n

Align an interval to a step size

\n

The limits of an interval are aligned that both are integer\nmultiples of the step size.

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Aligned interval

\n
\n
\n
\n\n
\n\n
\n
\n

QwtLogScaleEngine

\n
\n
\nclass qwt.scale_engine.QwtLogScaleEngine(base=10)[source]
\n

A scale engine for logarithmic scales

\n

The step size is measured in decades and the major step size will be\nadjusted to fit the pattern {1,2,3,5}.10**n, where n is a natural number\nincluding zero.

\n
\n

Warning

\n

The step size as well as the margins are measured in decades.

\n
\n
\n
\nautoScale(maxNumSteps, x1, x2, stepSize)[source]
\n

Align and divide an interval

\n
\n
Parameters:
\n
    \n
  • maxNumSteps (int) – Max. number of steps

  • \n
  • x1 (float) – First limit of the interval (In/Out)

  • \n
  • x2 (float) – Second limit of the interval (In/Out)

  • \n
  • stepSize (float) – Step size

  • \n
\n
\n
Returns:
\n

tuple (x1, x2, stepSize)

\n
\n
\n
\n

See also

\n

setAttribute()

\n
\n
\n\n
\n
\ndivideScale(x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0)[source]
\n

Calculate a scale division for an interval

\n
\n
Parameters:
\n
    \n
  • x1 (float) – First interval limit

  • \n
  • x2 (float) – Second interval limit

  • \n
  • maxMajorSteps (int) – Maximum for the number of major steps

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
  • stepSize (float) – Step size. If stepSize == 0.0, the scaleEngine calculates one

  • \n
\n
\n
Returns:
\n

Calculated scale division

\n
\n
\n
\n\n
\n
\nbuildTicks(interval, stepSize, maxMinorSteps)[source]
\n

Calculate ticks for an interval

\n
\n
Parameters:
\n
    \n
  • interval (qwt.interval.QwtInterval) – Interval

  • \n
  • stepSize (float) – Step size

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
\n
\n
Returns:
\n

Calculated ticks

\n
\n
\n
\n\n
\n
\nbuildMajorTicks(interval, stepSize)[source]
\n

Calculate major ticks for an interval

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Calculated ticks

\n
\n
\n
\n\n
\n
\nbuildMinorTicks(ticks, maxMinorSteps, stepSize)[source]
\n

Calculate minor ticks for an interval

\n
\n
Parameters:
\n
    \n
  • ticks (list) – Major ticks (returned)

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
  • stepSize (float) – Step size

  • \n
\n
\n
\n
\n\n
\n
\nalign(interval, stepSize)[source]
\n

Align an interval to a step size

\n

The limits of an interval are aligned that both are integer\nmultiples of the step size.

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Aligned interval

\n
\n
\n
\n\n
\n\n
\n
\n

QwtAbstractScaleDraw

\n
\n
\nclass qwt.scale_draw.QwtAbstractScaleDraw[source]
\n

A abstract base class for drawing scales

\n

QwtAbstractScaleDraw can be used to draw linear or logarithmic scales.

\n

After a scale division has been specified as a QwtScaleDiv object\nusing setScaleDiv(), the scale can be drawn with the draw() member.

\n

Scale components:

\n
\n
    \n
  • QwtAbstractScaleDraw.Backbone: Backbone = the line where the ticks are located

  • \n
  • QwtAbstractScaleDraw.Ticks: Ticks

  • \n
  • QwtAbstractScaleDraw.Labels: Labels

  • \n
\n
\n
\n
\nclass QwtAbstractScaleDraw
\n

The range of the scale is initialized to [0, 100],\nThe spacing (distance between ticks and labels) is\nset to 4, the tick lengths are set to 4,6 and 8 pixels

\n
\n\n
\n
\nextent(font)[source]
\n

Calculate the extent

\n

The extent is the distance from the baseline to the outermost\npixel of the scale draw in opposite to its orientation.\nIt is at least minimumExtent() pixels.

\n
\n
Parameters:
\n

font (QFont) – Font used for drawing the tick labels

\n
\n
Returns:
\n

Number of pixels

\n
\n
\n\n
\n\n
\n
\ndrawTick(painter, value, len_)[source]
\n

Draw a tick

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • value (float) – Value of the tick

  • \n
  • len (float) – Length of the tick

  • \n
\n
\n
\n\n
\n\n
\n
\ndrawBackbone(painter)[source]
\n

Draws the baseline of the scale

\n
\n
Parameters:
\n

painter (QPainter) – Painter

\n
\n
\n
\n

See also

\n

drawTick(), drawLabel()

\n
\n
\n\n
\n
\ndrawLabel(painter, value)[source]
\n

Draws the label for a major scale tick

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • value (float) – Value

  • \n
\n
\n
\n
\n

See also

\n

drawTick(), drawBackbone()

\n
\n
\n\n
\n
\nenableComponent(component, enable)[source]
\n

En/Disable a component of the scale

\n
\n
Parameters:
\n
    \n
  • component (int) – Scale component

  • \n
  • enable (bool) – On/Off

  • \n
\n
\n
\n
\n

See also

\n

hasComponent()

\n
\n
\n\n
\n
\nhasComponent(component)[source]
\n

Check if a component is enabled

\n
\n
Parameters:
\n

component (int) – Component type

\n
\n
Returns:
\n

True, when component is enabled

\n
\n
\n
\n

See also

\n

enableComponent()

\n
\n
\n\n
\n
\nsetScaleDiv(scaleDiv)[source]
\n

Change the scale division

\n
\n
Parameters:
\n

scaleDiv (qwt.scale_div.QwtScaleDiv) – New scale division

\n
\n
\n
\n\n
\n
\nsetTransformation(transformation)[source]
\n

Change the transformation of the scale

\n
\n
Parameters:
\n

transformation (qwt.transform.QwtTransform) – New scale transformation

\n
\n
\n
\n\n
\n
\nscaleMap()[source]
\n
\n
Returns:
\n

Map how to translate between scale and pixel values

\n
\n
\n
\n\n
\n
\nscaleDiv()[source]
\n
\n
Returns:
\n

scale division

\n
\n
\n
\n\n
\n
\nsetPenWidth(width)[source]
\n

Specify the width of the scale pen

\n
\n
Parameters:
\n

width (int) – Pen width

\n
\n
\n
\n

See also

\n

penWidth()

\n
\n
\n\n
\n
\npenWidth()[source]
\n
\n
Returns:
\n

Scale pen width

\n
\n
\n
\n

See also

\n

setPenWidth()

\n
\n
\n\n
\n
\ndraw(painter, palette)[source]
\n

Draw the scale

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – The painter

  • \n
  • palette (QPalette) – Palette, text color is used for the labels,\nforeground color for ticks and backbone

  • \n
\n
\n
\n
\n\n
\n
\nsetSpacing(spacing)[source]
\n

Set the spacing between tick and labels

\n

The spacing is the distance between ticks and labels.\nThe default spacing is 4 pixels.

\n
\n
Parameters:
\n

spacing (float) – Spacing

\n
\n
\n
\n

See also

\n

spacing()

\n
\n
\n\n
\n
\nspacing()[source]
\n

Get the spacing

\n

The spacing is the distance between ticks and labels.\nThe default spacing is 4 pixels.

\n
\n
Returns:
\n

Spacing

\n
\n
\n
\n

See also

\n

setSpacing()

\n
\n
\n\n
\n
\nsetMinimumExtent(minExtent)[source]
\n

Set a minimum for the extent

\n

The extent is calculated from the components of the\nscale draw. In situations, where the labels are\nchanging and the layout depends on the extent (f.e scrolling\na scale), setting an upper limit as minimum extent will\navoid jumps of the layout.

\n
\n
Parameters:
\n

minExtent (float) – Minimum extent

\n
\n
\n
\n

See also

\n

extent(), minimumExtent()

\n
\n
\n\n
\n
\nminimumExtent()[source]
\n

Get the minimum extent

\n
\n
Returns:
\n

Minimum extent

\n
\n
\n\n
\n\n
\n
\nsetTickLength(tick_type, length)[source]
\n

Set the length of the ticks

\n
\n
Parameters:
\n
    \n
  • tick_type (int) – Tick type

  • \n
  • length (float) – New length

  • \n
\n
\n
\n
\n

Warning

\n

the length is limited to [0..1000]

\n
\n
\n\n
\n
\ntickLength(tick_type)[source]
\n
\n
Parameters:
\n

tick_type (int) – Tick type

\n
\n
Returns:
\n

Length of the ticks

\n
\n
\n\n
\n\n
\n
\nmaxTickLength()[source]
\n
\n
Returns:
\n

Length of the longest tick

\n
\n
\n

Useful for layout calculations

\n\n
\n\n
\n
\nsetTickLighterFactor(tick_type, factor)[source]
\n

Set the color lighter factor of the ticks

\n
\n
Parameters:
\n
    \n
  • tick_type (int) – Tick type

  • \n
  • factor (int) – New factor

  • \n
\n
\n
\n
\n\n
\n
\ntickLighterFactor(tick_type)[source]
\n
\n
Parameters:
\n

tick_type (int) – Tick type

\n
\n
Returns:
\n

Color lighter factor of the ticks

\n
\n
\n\n
\n\n
\n
\nlabel(value)[source]
\n

Convert a value into its representing label

\n

The value is converted to a plain text using\nQLocale().toString(value).\nThis method is often overloaded by applications to have individual\nlabels.

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Label string

\n
\n
\n
\n\n
\n
\ntickLabel(font, value)[source]
\n

Convert a value into its representing label and cache it.

\n

The conversion between value and label is called very often\nin the layout and painting code. Unfortunately the\ncalculation of the label sizes might be slow (really slow\nfor rich text in Qt4), so it’s necessary to cache the labels.

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font

  • \n
  • value (float) – Value

  • \n
\n
\n
Returns:
\n

Tuple (tick label, text size)

\n
\n
\n
\n\n
\n
\ninvalidateCache()[source]
\n

Invalidate the cache used by tickLabel()

\n

The cache is invalidated, when a new QwtScaleDiv is set. If\nthe labels need to be changed. while the same QwtScaleDiv is set,\ninvalidateCache() needs to be called manually.

\n
\n\n
\n\n
\n
\n

QwtScaleDraw

\n
\n
\nclass qwt.scale_draw.QwtScaleDraw[source]
\n

A class for drawing scales

\n

QwtScaleDraw can be used to draw linear or logarithmic scales.\nA scale has a position, an alignment and a length, which can be specified .\nThe labels can be rotated and aligned\nto the ticks using setLabelRotation() and setLabelAlignment().

\n

After a scale division has been specified as a QwtScaleDiv object\nusing QwtAbstractScaleDraw.setScaleDiv(scaleDiv),\nthe scale can be drawn with the QwtAbstractScaleDraw.draw() member.

\n

Alignment of the scale draw:

\n
\n
    \n
  • QwtScaleDraw.BottomScale: The scale is below

  • \n
  • QwtScaleDraw.TopScale: The scale is above

  • \n
  • QwtScaleDraw.LeftScale: The scale is left

  • \n
  • QwtScaleDraw.RightScale: The scale is right

  • \n
\n
\n
\n
\nclass QwtScaleDraw
\n

The range of the scale is initialized to [0, 100],\nThe position is at (0, 0) with a length of 100.\nThe orientation is QwtAbstractScaleDraw.Bottom.

\n
\n\n
\n
\nalignment()[source]
\n
\n
Returns:
\n

Alignment of the scale

\n
\n
\n
\n

See also

\n

setAlignment()

\n
\n
\n\n
\n
\nsetAlignment(align)[source]
\n

Set the alignment of the scale

\n
\n
Parameters:
\n

align (int) – Alignment of the scale

\n
\n
\n

Alignment of the scale draw:

\n
\n
\n
    \n
  • QwtScaleDraw.BottomScale: The scale is below

  • \n
  • QwtScaleDraw.TopScale: The scale is above

  • \n
  • QwtScaleDraw.LeftScale: The scale is left

  • \n
  • QwtScaleDraw.RightScale: The scale is right

  • \n
\n
\n

The default alignment is QwtScaleDraw.BottomScale

\n
\n
\n

See also

\n

alignment()

\n
\n
\n\n
\n
\norientation()[source]
\n

Return the orientation

\n

TopScale, BottomScale are horizontal (Qt.Horizontal) scales,\nLeftScale, RightScale are vertical (Qt.Vertical) scales.

\n
\n
Returns:
\n

Orientation of the scale

\n
\n
\n
\n

See also

\n

alignment()

\n
\n
\n\n
\n
\ngetBorderDistHint(font)[source]
\n

Determine the minimum border distance

\n

This member function returns the minimum space\nneeded to draw the mark labels at the scale’s endpoints.

\n
\n
Parameters:
\n

font (QFont) – Font

\n
\n
Returns:
\n

tuple (start, end)

\n
\n
\n

Returned tuple:

\n
\n
    \n
  • start: Start border distance

  • \n
  • end: End border distance

  • \n
\n
\n
\n\n
\n
\nminLabelDist(font)[source]
\n

Determine the minimum distance between two labels, that is necessary\nthat the texts don’t overlap.

\n
\n
Parameters:
\n

font (QFont) – Font

\n
\n
Returns:
\n

The maximum width of a label

\n
\n
\n
\n

See also

\n

getBorderDistHint()

\n
\n
\n\n
\n
\nextent(font)[source]
\n

Calculate the width/height that is needed for a\nvertical/horizontal scale.

\n

The extent is calculated from the pen width of the backbone,\nthe major tick length, the spacing and the maximum width/height\nof the labels.

\n
\n
Parameters:
\n

font (QFont) – Font used for painting the labels

\n
\n
Returns:
\n

Extent

\n
\n
\n
\n

See also

\n

minLength()

\n
\n
\n\n
\n
\nminLength(font)[source]
\n

Calculate the minimum length that is needed to draw the scale

\n
\n
Parameters:
\n

font (QFont) – Font used for painting the labels

\n
\n
Returns:
\n

Minimum length that is needed to draw the scale

\n
\n
\n
\n

See also

\n

extent()

\n
\n
\n\n
\n
\nlabelPosition(value)[source]
\n

Find the position, where to paint a label

\n

The position has a distance that depends on the length of the ticks\nin direction of the alignment().

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Position, where to paint a label

\n
\n
\n
\n\n
\n
\ndrawTick(painter, value, len_)[source]
\n

Draw a tick

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • value (float) – Value of the tick

  • \n
  • len (float) – Length of the tick

  • \n
\n
\n
\n\n
\n\n
\n
\ndrawBackbone(painter)[source]
\n

Draws the baseline of the scale

\n
\n
Parameters:
\n

painter (QPainter) – Painter

\n
\n
\n
\n

See also

\n

drawTick(), drawLabel()

\n
\n
\n\n
\n
\nmove(*args)[source]
\n

Move the position of the scale

\n

The meaning of the parameter pos depends on the alignment:

\n
\n
    \n
  • QwtScaleDraw.LeftScale:

    \n

    The origin is the topmost point of the backbone. The backbone is a\nvertical line. Scale marks and labels are drawn at the left of the\nbackbone.

    \n
  • \n
  • QwtScaleDraw.RightScale:

    \n

    The origin is the topmost point of the backbone. The backbone is a\nvertical line. Scale marks and labels are drawn at the right of\nthe backbone.

    \n
  • \n
  • QwtScaleDraw.TopScale:

    \n

    The origin is the leftmost point of the backbone. The backbone is\na horizontal line. Scale marks and labels are drawn above the\nbackbone.

    \n
  • \n
  • QwtScaleDraw.BottomScale:

    \n

    The origin is the leftmost point of the backbone. The backbone is\na horizontal line Scale marks and labels are drawn below the\nbackbone.

    \n
  • \n
\n
\n
\n
\nmove(x, y)[source]
\n
\n
Parameters:
\n
    \n
  • x (float) – X coordinate

  • \n
  • y (float) – Y coordinate

  • \n
\n
\n
\n
\n\n
\n
\nmove(pos)[source]
\n
\n
Parameters:
\n

pos (QPointF) – position

\n
\n
\n
\n\n
\n

See also

\n

pos(), setLength()

\n
\n
\n\n
\n
\npos()[source]
\n
\n
Returns:
\n

Origin of the scale

\n
\n
\n
\n

See also

\n

pos(), setLength()

\n
\n
\n\n
\n
\nsetLength(length)[source]
\n

Set the length of the backbone.

\n

The length doesn’t include the space needed for overlapping labels.

\n
\n
Parameters:
\n

length (float) – Length of the backbone

\n
\n
\n
\n

See also

\n

move(), minLabelDist()

\n
\n
\n\n
\n
\nlength()[source]
\n
\n
Returns:
\n

the length of the backbone

\n
\n
\n
\n

See also

\n

setLength(), pos()

\n
\n
\n\n
\n
\ndrawLabel(painter, value)[source]
\n

Draws the label for a major scale tick

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • value (float) – Value

  • \n
\n
\n
\n\n
\n\n
\n
\nboundingLabelRect(font, value)[source]
\n

Find the bounding rectangle for the label.

\n

The coordinates of the rectangle are absolute (calculated from\npos()) in direction of the tick.

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font used for painting

  • \n
  • value (float) – Value

  • \n
\n
\n
Returns:
\n

Bounding rectangle

\n
\n
\n
\n

See also

\n

labelRect()

\n
\n
\n\n
\n
\nlabelTransformation(pos, size)[source]
\n

Calculate the transformation that is needed to paint a label\ndepending on its alignment and rotation.

\n
\n
Parameters:
\n
    \n
  • pos (QPointF) – Position where to paint the label

  • \n
  • size (QSizeF) – Size of the label

  • \n
\n
\n
Returns:
\n

Transformation matrix

\n
\n
\n\n
\n\n
\n
\nlabelRect(font, value)[source]
\n

Find the bounding rectangle for the label. The coordinates of\nthe rectangle are relative to spacing + tick length from the backbone\nin direction of the tick.

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font used for painting

  • \n
  • value (float) – Value

  • \n
\n
\n
Returns:
\n

Bounding rectangle that is needed to draw a label

\n
\n
\n
\n\n
\n
\nlabelSize(font, value)[source]
\n

Calculate the size that is needed to draw a label

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Label font

  • \n
  • value (float) – Value

  • \n
\n
\n
Returns:
\n

Size that is needed to draw a label

\n
\n
\n
\n\n
\n
\nsetLabelRotation(rotation)[source]
\n

Rotate all labels.

\n

When changing the rotation, it might be necessary to\nadjust the label flags too. Finding a useful combination is\noften the result of try and error.

\n
\n
Parameters:
\n

rotation (float) – Angle in degrees. When changing the label rotation, the\nlabel flags often needs to be adjusted too.

\n
\n
\n\n
\n\n
\n
\nlabelRotation()[source]
\n
\n
Returns:
\n

the label rotation

\n
\n
\n\n
\n\n
\n
\nsetLabelAlignment(alignment)[source]
\n

Change the label flags

\n

Labels are aligned to the point tick length + spacing away from the\nbackbone.

\n

The alignment is relative to the orientation of the label text.\nIn case of an flags of 0 the label will be aligned\ndepending on the orientation of the scale:

\n
\n
    \n
  • QwtScaleDraw.TopScale: Qt.AlignHCenter | Qt.AlignTop

  • \n
  • QwtScaleDraw.BottomScale: Qt.AlignHCenter | Qt.AlignBottom

  • \n
  • QwtScaleDraw.LeftScale: Qt.AlignLeft | Qt.AlignVCenter

  • \n
  • QwtScaleDraw.RightScale: Qt.AlignRight | Qt.AlignVCenter

  • \n
\n
\n

Changing the alignment is often necessary for rotated labels.

\n

:param Qt.Alignment alignment Or’d Qt.AlignmentFlags

\n\n
\n

Warning

\n

The various alignments might be confusing. The alignment of the\nlabel is not the alignment of the scale and is not the alignment\nof the flags (QwtText.flags()) returned from\nQwtAbstractScaleDraw.label().

\n
\n
\n\n
\n
\nlabelAlignment()[source]
\n
\n
Returns:
\n

the label flags

\n
\n
\n\n
\n\n
\n
\nsetLabelAutoSize(state)[source]
\n

Set label automatic size option state

\n

When drawing text labels, if automatic size mode is enabled (default\nbehavior), the axes are drawn in order to optimize layout space and\ndepends on text label individual sizes. Otherwise, width and height\nwon’t change when axis range is changing.

\n

This option is not implemented in Qwt C++ library: this may be used\neither as an optimization (updating plot layout is faster when this\noption is enabled) or as an appearance preference (with Qwt default\nbehavior, the size of axes may change when zooming and/or panning\nplot canvas which in some cases may not be desired).

\n
\n
Parameters:
\n

state (bool) – On/off

\n
\n
\n
\n

See also

\n

labelAutoSize()

\n
\n
\n\n
\n
\nlabelAutoSize()[source]
\n
\n
Returns:
\n

True if automatic size option is enabled for labels

\n
\n
\n
\n

See also

\n

setLabelAutoSize()

\n
\n
\n\n
\n
\nmaxLabelWidth(font)[source]
\n
\n
Parameters:
\n

font (QFont) – Font

\n
\n
Returns:
\n

the maximum width of a label

\n
\n
\n
\n\n
\n
\nmaxLabelHeight(font)[source]
\n
\n
Parameters:
\n

font (QFont) – Font

\n
\n
Returns:
\n

the maximum height of a label

\n
\n
\n
\n\n
\n\n
\n
\n', 'metatags': '\n', 'sourcename': 'reference/scale.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d70749a0>, 'js_tag': .js_tag at 0x7fc7d7074860>}, >) +[app] emitting event: 'html-page-context'('reference/scale', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/symbol', 'QwtSymbol', 'N', 'next'), ('reference/plot', 'Plot widget fundamentals', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/scale', 'current_page_name': 'reference/scale', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3a295080>, 'hasdoc': .hasdoc at 0x7f3d3a294fe0>, 'toctree': . at 0x7f3d3a295120>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'plot.html', 'title': 'Plot widget fundamentals'}, 'next': {'link': 'symbol.html', 'title': 'QwtSymbol'}, 'title': 'Scales', 'meta': {}, 'body': '
\n

Scales

\n
\n

QwtScaleMap

\n
\n
\nclass qwt.scale_map.QwtScaleMap(*args)[source]
\n

A scale map

\n

QwtScaleMap offers transformations from the coordinate system\nof a scale into the linear coordinate system of a paint device\nand vice versa.

\n

The scale and paint device intervals are both set to [0,1].

\n
\n
\nclass QwtScaleMap([other=None])
\n

Constructor (eventually, copy constructor)

\n
\n
Parameters:
\n

other (qwt.scale_map.QwtScaleMap) – Other scale map

\n
\n
\n
\n\n
\n
\nclass QwtScaleMap(p1, p2, s1, s2)
\n

Constructor (was provided by PyQwt but not by Qwt)

\n
\n
Parameters:
\n
    \n
  • p1 (int) – First border of the paint interval

  • \n
  • p2 (int) – Second border of the paint interval

  • \n
  • s1 (float) – First border of the scale interval

  • \n
  • s2 (float) – Second border of the scale interval

  • \n
\n
\n
\n
\n\n
\n
\ns1()[source]
\n
\n
Returns:
\n

First border of the scale interval

\n
\n
\n
\n\n
\n
\ns2()[source]
\n
\n
Returns:
\n

Second border of the scale interval

\n
\n
\n
\n\n
\n
\np1()[source]
\n
\n
Returns:
\n

First border of the paint interval

\n
\n
\n
\n\n
\n
\np2()[source]
\n
\n
Returns:
\n

Second border of the paint interval

\n
\n
\n
\n\n
\n
\npDist()[source]
\n
\n
Returns:
\n

abs(p2() - p1())

\n
\n
\n
\n\n
\n
\nsDist()[source]
\n
\n
Returns:
\n

abs(s2() - s1())

\n
\n
\n
\n\n
\n
\ntransform_scalar(s)[source]
\n

Transform a point related to the scale interval into an point\nrelated to the interval of the paint device

\n
\n
Parameters:
\n

s (float) – Value relative to the coordinates of the scale

\n
\n
Returns:
\n

Transformed value

\n
\n
\n
\n

See also

\n

invTransform_scalar()

\n
\n
\n\n
\n
\ninvTransform_scalar(p)[source]
\n

Transform an paint device value into a value in the\ninterval of the scale.

\n
\n
Parameters:
\n

p (float) – Value relative to the coordinates of the paint device

\n
\n
Returns:
\n

Transformed value

\n
\n
\n
\n

See also

\n

transform_scalar()

\n
\n
\n\n
\n
\nisInverting()[source]
\n
\n
Returns:
\n

True, when ( p1() < p2() ) != ( s1() < s2() )

\n
\n
\n
\n\n
\n
\nsetTransformation(transform)[source]
\n

Initialize the map with a transformation

\n
\n
Parameters:
\n

transform (qwt.transform.QwtTransform) – Transformation

\n
\n
\n
\n\n
\n
\ntransformation()[source]
\n
\n
Returns:
\n

the transformation

\n
\n
\n
\n\n
\n
\nsetScaleInterval(s1, s2)[source]
\n

Specify the borders of the scale interval

\n
\n
Parameters:
\n
    \n
  • s1 (float) – first border

  • \n
  • s2 (float) – second border

  • \n
\n
\n
\n
\n

Warning

\n

Scales might be aligned to transformation depending boundaries

\n
\n
\n\n
\n
\nsetPaintInterval(p1, p2)[source]
\n

Specify the borders of the paint device interval

\n
\n
Parameters:
\n
    \n
  • p1 (float) – first border

  • \n
  • p2 (float) – second border

  • \n
\n
\n
\n
\n\n
\n
\ntransform(*args)[source]
\n

Transform a rectangle from scale to paint coordinates.

\n

Transfom a scalar:

\n
\n
Parameters:
\n

scalar (float) – Scalar

\n
\n
\n

Transfom a rectangle:

\n
\n
Parameters:
\n
\n
\n
\n

Transfom a point:

\n
\n
Parameters:
\n
\n
\n
\n
\n

See also

\n

invTransform()

\n
\n
\n\n
\n
\ninvTransform(*args)[source]
\n

Transform from paint to scale coordinates

\n

Scalar: scalemap.invTransform(scalar)\nPoint (QPointF): scalemap.invTransform(xMap, yMap, pos)\nRectangle (QRectF): scalemap.invTransform(xMap, yMap, rect)

\n
\n\n
\n\n
\n
\n

QwtScaleWidget

\n
\n
\nclass qwt.scale_widget.QwtScaleWidget(*args)[source]
\n

A Widget which contains a scale

\n

This Widget can be used to decorate composite widgets with\na scale.

\n

Layout flags:

\n
\n
    \n
  • QwtScaleWidget.TitleInverted: The title of vertical scales is painted from top to bottom. Otherwise it is painted from bottom to top.

  • \n
\n
\n
\n
\nclass QwtScaleWidget([parent=None])
\n

Alignment default is QwtScaleDraw.LeftScale.

\n
\n
Parameters:
\n

parent (QWidget or None) – Parent widget

\n
\n
\n
\n\n
\n
\nclass QwtScaleWidget(align, parent)
\n
\n
Parameters:
\n
    \n
  • align (int) – Alignment

  • \n
  • parent (QWidget) – Parent widget

  • \n
\n
\n
\n
\n\n
\n
\ninitScale(align)[source]
\n

Initialize the scale

\n
\n
Parameters:
\n

align (int) – Alignment

\n
\n
\n
\n\n
\n
\nsetLayoutFlag(flag, on=True)[source]
\n

Toggle an layout flag

\n
\n
Parameters:
\n
    \n
  • flag (int) – Layout flag

  • \n
  • on (bool) – True/False

  • \n
\n
\n
\n
\n

See also

\n

testLayoutFlag()

\n
\n
\n\n
\n
\ntestLayoutFlag(flag)[source]
\n

Test a layout flag

\n
\n
Parameters:
\n

flag (int) – Layout flag

\n
\n
Returns:
\n

True/False

\n
\n
\n
\n

See also

\n

setLayoutFlag()

\n
\n
\n\n
\n
\nsetTitle(title)[source]
\n

Give title new text contents

\n
\n
Parameters:
\n

title (qwt.text.QwtText or str) – New title

\n
\n
\n
\n

See also

\n

title()

\n
\n
\n\n
\n
\nsetAlignment(alignment)[source]
\n

Change the alignment

\n
\n
Parameters:
\n

alignment (int) – New alignment

\n
\n
\n

Valid alignment values: see qwt.scale_draw.QwtScaleDraw

\n
\n

See also

\n

alignment()

\n
\n
\n\n
\n
\nalignment()[source]
\n
\n
Returns:
\n

position

\n
\n
\n
\n

See also

\n

setAlignment()

\n
\n
\n\n
\n
\nsetBorderDist(dist1, dist2)[source]
\n

Specify distances of the scale’s endpoints from the\nwidget’s borders. The actual borders will never be less\nthan minimum border distance.

\n
\n
Parameters:
\n
    \n
  • dist1 (int) – Left or top Distance

  • \n
  • dist2 (int) – Right or bottom distance

  • \n
\n
\n
\n
\n

See also

\n

borderDist()

\n
\n
\n\n
\n
\nsetMargin(margin)[source]
\n

Specify the margin to the colorBar/base line.

\n
\n
Parameters:
\n

margin (int) – Margin

\n
\n
\n
\n

See also

\n

margin()

\n
\n
\n\n
\n
\nsetSpacing(spacing)[source]
\n

Specify the distance between color bar, scale and title

\n
\n
Parameters:
\n

spacing (int) – Spacing

\n
\n
\n
\n

See also

\n

spacing()

\n
\n
\n\n
\n
\nsetLabelAlignment(alignment)[source]
\n

Change the alignment for the labels.

\n
\n
Parameters:
\n

spacing (int) – Spacing

\n
\n
\n\n
\n\n
\n
\nsetLabelRotation(rotation)[source]
\n

Change the rotation for the labels.

\n
\n
Parameters:
\n

rotation (float) – Rotation

\n
\n
\n
\n

See also

\n

qwt.scale_draw.QwtScaleDraw.setLabelRotation(),\nsetLabelFlags()

\n
\n
\n\n
\n
\nsetLabelAutoSize(state)[source]
\n

Set the automatic size option for labels (default: on).

\n
\n
Parameters:
\n

state (bool) – On/off

\n
\n
\n\n
\n\n
\n
\nsetScaleDraw(scaleDraw)[source]
\n

Set a scale draw

\n

scaleDraw has to be created with new and will be deleted in\nclass destructor or the next call of setScaleDraw().\nscaleDraw will be initialized with the attributes of\nthe previous scaleDraw object.

\n
\n
Parameters:
\n

scaleDraw (qwt.scale_draw.QwtScaleDraw) – ScaleDraw object

\n
\n
\n
\n

See also

\n

scaleDraw()

\n
\n
\n\n
\n
\nscaleDraw()[source]
\n
\n
Returns:
\n

scaleDraw of this scale

\n
\n
\n
\n

See also

\n

qwt.scale_draw.QwtScaleDraw.setScaleDraw()

\n
\n
\n\n
\n
\ntitle()[source]
\n
\n
Returns:
\n

title

\n
\n
\n
\n

See also

\n

setTitle()

\n
\n
\n\n
\n
\nstartBorderDist()[source]
\n
\n
Returns:
\n

start border distance

\n
\n
\n
\n

See also

\n

setBorderDist()

\n
\n
\n\n
\n
\nendBorderDist()[source]
\n
\n
Returns:
\n

end border distance

\n
\n
\n
\n

See also

\n

setBorderDist()

\n
\n
\n\n
\n
\nmargin()[source]
\n
\n
Returns:
\n

margin

\n
\n
\n
\n

See also

\n

setMargin()

\n
\n
\n\n
\n
\nspacing()[source]
\n
\n
Returns:
\n

distance between scale and title

\n
\n
\n
\n

See also

\n

setSpacing()

\n
\n
\n\n
\n
\npaintEvent(self, a0: QPaintEvent | None)[source]
\n
\n\n
\n
\ndraw(painter)[source]
\n

Draw the scale

\n
\n
Parameters:
\n

painter (QPainter) – Painter

\n
\n
\n
\n\n
\n
\ncolorBarRect(rect)[source]
\n

Calculate the the rectangle for the color bar

\n
\n
Parameters:
\n

rect (QRectF) – Bounding rectangle for all components of the scale

\n
\n
Returns:
\n

Rectangle for the color bar

\n
\n
\n
\n\n
\n
\nresizeEvent(self, a0: QResizeEvent | None)[source]
\n
\n\n
\n
\nlayoutScale(update_geometry=True)[source]
\n

Recalculate the scale’s geometry and layout based on\nthe current geometry and fonts.

\n
\n
Parameters:
\n

update_geometry (bool) – Notify the layout system and call update to redraw the scale

\n
\n
\n
\n\n
\n
\ndrawColorBar(painter, rect)[source]
\n

Draw the color bar of the scale widget

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Bounding rectangle for the color bar

  • \n
\n
\n
\n
\n

See also

\n

setColorBarEnabled()

\n
\n
\n\n
\n
\ndrawTitle(painter, align, rect)[source]
\n

Rotate and paint a title according to its position into a given rectangle.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • align (int) – Alignment

  • \n
  • rect (QRectF) – Bounding rectangle

  • \n
\n
\n
\n
\n\n
\n
\nscaleChange()[source]
\n

Notify a change of the scale

\n

This method can be overloaded by derived classes. The default\nimplementation updates the geometry and repaints the widget.

\n
\n\n
\n
\nsizeHint(self) QSize[source]
\n
\n\n
\n
\nminimumSizeHint(self) QSize[source]
\n
\n\n
\n
\ntitleHeightForWidth(width)[source]
\n

Find the height of the title for a given width.

\n
\n
Parameters:
\n

width (int) – Width

\n
\n
Returns:
\n

Height

\n
\n
\n
\n\n
\n
\ndimForLength(length, scaleFont)[source]
\n

Find the minimum dimension for a given length.\ndim is the height, length the width seen in direction of the title.

\n
\n
Parameters:
\n
    \n
  • length (int) – width for horizontal, height for vertical scales

  • \n
  • scaleFont (QFont) – Font of the scale

  • \n
\n
\n
Returns:
\n

height for horizontal, width for vertical scales

\n
\n
\n
\n\n
\n
\ngetBorderDistHint()[source]
\n

Calculate a hint for the border distances.

\n

This member function calculates the distance\nof the scale’s endpoints from the widget borders which\nis required for the mark labels to fit into the widget.\nThe maximum of this distance an the minimum border distance\nis returned.

\n
\n
Parameters:
\n
    \n
  • start (int) – Return parameter for the border width at the beginning of the scale

  • \n
  • end (int) – Return parameter for the border width at the end of the scale

  • \n
\n
\n
\n
\n

Warning

\n

The minimum border distance depends on the font.

\n
\n\n
\n\n
\n
\nsetMinBorderDist(start, end)[source]
\n

Set a minimum value for the distances of the scale’s endpoints from\nthe widget borders. This is useful to avoid that the scales\nare “jumping”, when the tick labels or their positions change\noften.

\n
\n
Parameters:
\n
    \n
  • start (int) – Minimum for the start border

  • \n
  • end (int) – Minimum for the end border

  • \n
\n
\n
\n\n
\n\n
\n
\ngetMinBorderDist()[source]
\n

Get the minimum value for the distances of the scale’s endpoints from\nthe widget borders.

\n
\n
Parameters:
\n
    \n
  • start (int) – Return parameter for the border width at the beginning of the scale

  • \n
  • end (int) – Return parameter for the border width at the end of the scale

  • \n
\n
\n
\n\n
\n\n
\n
\nsetScaleDiv(scaleDiv)[source]
\n

Assign a scale division

\n

The scale division determines where to set the tick marks.

\n
\n
Parameters:
\n

scaleDiv (qwt.scale_div.QwtScaleDiv) – Scale Division

\n
\n
\n
\n

See also

\n

For more information about scale divisions,\nsee qwt.scale_div.QwtScaleDiv.

\n
\n
\n\n
\n
\nsetTransformation(transformation)[source]
\n

Set the transformation

\n
\n
Parameters:
\n

transformation (qwt.transform.Transform) – Transformation

\n
\n
\n
\n

See also

\n

qwt.scale_draw.QwtAbstractScaleDraw.scaleDraw(),\nqwt.scale_map.QwtScaleMap

\n
\n
\n\n
\n
\nsetColorBarEnabled(on)[source]
\n

En/disable a color bar associated to the scale

\n
\n
Parameters:
\n

on (bool) – On/Off

\n
\n
\n\n
\n\n
\n
\nisColorBarEnabled()[source]
\n
\n
Returns:
\n

True, when the color bar is enabled

\n
\n
\n\n
\n\n
\n
\nsetColorBarWidth(width)[source]
\n

Set the width of the color bar

\n
\n
Parameters:
\n

width (int) – Width

\n
\n
\n\n
\n\n
\n
\ncolorBarWidth()[source]
\n
\n
Returns:
\n

Width of the color bar

\n
\n
\n\n
\n\n
\n
\ncolorBarInterval()[source]
\n
\n
Returns:
\n

Value interval for the color bar

\n
\n
\n
\n

See also

\n

setColorMap(), colorMap()

\n
\n
\n\n
\n
\nsetColorMap(interval, colorMap)[source]
\n

Set the color map and value interval, that are used for displaying\nthe color bar.

\n
\n
Parameters:
\n
\n
\n
\n\n
\n\n
\n
\ncolorMap()[source]
\n
\n
Returns:
\n

Color map

\n
\n
\n\n
\n\n
\n\n
\n
\n

QwtScaleDiv

\n
\n
\nclass qwt.scale_div.QwtScaleDiv(*args)[source]
\n

A class representing a scale division

\n

A Qwt scale is defined by its boundaries and 3 list\nfor the positions of the major, medium and minor ticks.

\n

The upperLimit() might be smaller than the lowerLimit()\nto indicate inverted scales.

\n

Scale divisions can be calculated from a QwtScaleEngine.

\n\n

Scale tick types:

\n
\n
    \n
  • QwtScaleDiv.NoTick: No ticks

  • \n
  • QwtScaleDiv.MinorTick: Minor ticks

  • \n
  • QwtScaleDiv.MediumTick: Medium ticks

  • \n
  • QwtScaleDiv.MajorTick: Major ticks

  • \n
  • QwtScaleDiv.NTickTypes: Number of valid tick types

  • \n
\n
\n
\n
\nclass QwtScaleDiv
\n

Basic constructor. Lower bound = Upper bound = 0.

\n
\n\n
\n
\nclass QwtScaleDiv(interval, ticks)
\n
\n
Parameters:
\n
\n
\n
\n
\n\n
\n
\nclass QwtScaleDiv(lowerBound, upperBound)
\n
\n
Parameters:
\n
    \n
  • lowerBound (float) – First boundary

  • \n
  • upperBound (float) – Second boundary

  • \n
\n
\n
\n
\n\n
\n
\nclass QwtScaleDiv(lowerBound, upperBound, ticks)
\n
\n
Parameters:
\n
    \n
  • lowerBound (float) – First boundary

  • \n
  • upperBound (float) – Second boundary

  • \n
  • ticks (list) – list of major, medium and minor ticks

  • \n
\n
\n
\n
\n\n
\n
\nclass QwtScaleDiv(lowerBound, upperBound, minorTicks, mediumTicks, majorTicks)
\n
\n
Parameters:
\n
    \n
  • lowerBound (float) – First boundary

  • \n
  • upperBound (float) – Second boundary

  • \n
  • minorTicks (list) – list of minor ticks

  • \n
  • mediumTicks (list) – list of medium ticks

  • \n
  • majorTicks (list) – list of major ticks

  • \n
\n
\n
\n
\n\n
\n

Note

\n

lowerBound might be greater than upperBound for inverted scales

\n
\n
\n
\nsetInterval(*args)[source]
\n

Change the interval

\n
\n
\nsetInterval(lowerBound, upperBound)[source]
\n
\n
Parameters:
\n
    \n
  • lowerBound (float) – First boundary

  • \n
  • upperBound (float) – Second boundary

  • \n
\n
\n
\n
\n\n
\n
\nsetInterval(interval)[source]
\n
\n
Parameters:
\n

interval (qwt.interval.QwtInterval) – Interval

\n
\n
\n
\n\n
\n

Note

\n

lowerBound might be greater than upperBound for inverted scales

\n
\n
\n\n
\n
\ninterval()[source]
\n
\n
Returns:
\n

Interval

\n
\n
\n
\n\n
\n
\nsetLowerBound(lowerBound)[source]
\n

Set the first boundary

\n
\n
Parameters:
\n

lowerBound (float) – First boundary

\n
\n
\n\n
\n\n
\n
\nlowerBound()[source]
\n
\n
Returns:
\n

the first boundary

\n
\n
\n
\n

See also

\n

upperBound()

\n
\n
\n\n
\n
\nsetUpperBound(upperBound)[source]
\n

Set the second boundary

\n
\n
Parameters:
\n

lowerBound (float) – Second boundary

\n
\n
\n\n
\n\n
\n
\nupperBound()[source]
\n
\n
Returns:
\n

the second boundary

\n
\n
\n
\n

See also

\n

lowerBound()

\n
\n
\n\n
\n
\nrange()[source]
\n
\n
Returns:
\n

upperBound() - lowerBound()

\n
\n
\n
\n\n
\n
\nisEmpty()[source]
\n

Check if the scale division is empty( lowerBound() == upperBound() )

\n
\n\n
\n
\nisIncreasing()[source]
\n

Check if the scale division is increasing( lowerBound() <= upperBound() )

\n
\n\n
\n
\ncontains(value)[source]
\n

Return if a value is between lowerBound() and upperBound()

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

True/False

\n
\n
\n
\n\n
\n
\ninvert()[source]
\n

Invert the scale division

\n
\n

See also

\n

inverted()

\n
\n
\n\n
\n
\ninverted()[source]
\n
\n
Returns:
\n

A scale division with inverted boundaries and ticks

\n
\n
\n
\n

See also

\n

invert()

\n
\n
\n\n
\n
\nbounded(lowerBound, upperBound)[source]
\n

Return a scale division with an interval [lowerBound, upperBound]\nwhere all ticks outside this interval are removed

\n
\n
Parameters:
\n
    \n
  • lowerBound (float) – First boundary

  • \n
  • lowerBound – Second boundary

  • \n
\n
\n
Returns:
\n

Scale division with all ticks inside of the given interval

\n
\n
\n
\n

Note

\n

lowerBound might be greater than upperBound for inverted scales

\n
\n
\n\n
\n
\nsetTicks(tickType, ticks)[source]
\n

Assign ticks

\n
\n
Parameters:
\n
    \n
  • type (int) – MinorTick, MediumTick or MajorTick

  • \n
  • ticks (list) – Values of the tick positions

  • \n
\n
\n
\n
\n\n
\n
\nticks(tickType)[source]
\n

Return a list of ticks

\n
\n
Parameters:
\n

type (int) – MinorTick, MediumTick or MajorTick

\n
\n
Returns:
\n

Tick list

\n
\n
\n
\n\n
\n\n
\n
\n

QwtScaleEngine

\n
\n
\nclass qwt.scale_engine.QwtScaleEngine(base=10)[source]
\n

Base class for scale engines.

\n

A scale engine tries to find “reasonable” ranges and step sizes\nfor scales.

\n

The layout of the scale can be varied with setAttribute().

\n

PythonQwt offers implementations for logarithmic and linear scales.

\n

Layout attributes:

\n
\n
    \n
  • QwtScaleEngine.NoAttribute: No attributes

  • \n
  • QwtScaleEngine.IncludeReference: Build a scale which includes the\nreference() value

  • \n
  • QwtScaleEngine.Symmetric: Build a scale which is symmetric to the\nreference() value

  • \n
  • QwtScaleEngine.Floating: The endpoints of the scale are supposed to\nbe equal the outmost included values plus the specified margins (see\nsetMargins()). If this attribute is not set, the endpoints of the\nscale will be integer multiples of the step size.

  • \n
  • QwtScaleEngine.Inverted: Turn the scale upside down

  • \n
\n
\n
\n
\nautoScale(maxNumSteps, x1, x2, stepSize)[source]
\n

Align and divide an interval

\n
\n
Parameters:
\n
    \n
  • maxNumSteps (int) – Max. number of steps

  • \n
  • x1 (float) – First limit of the interval (In/Out)

  • \n
  • x2 (float) – Second limit of the interval (In/Out)

  • \n
  • stepSize (float) – Step size

  • \n
\n
\n
Returns:
\n

tuple (x1, x2, stepSize)

\n
\n
\n
\n\n
\n
\ndivideScale(x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0)[source]
\n

Calculate a scale division

\n
\n
Parameters:
\n
    \n
  • x1 (float) – First interval limit

  • \n
  • x2 (float) – Second interval limit

  • \n
  • maxMajorSteps (int) – Maximum for the number of major steps

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
  • stepSize (float) – Step size. If stepSize == 0.0, the scaleEngine calculates one

  • \n
\n
\n
Returns:
\n

Calculated scale division

\n
\n
\n
\n\n
\n
\nsetTransformation(transform)[source]
\n

Assign a transformation

\n
\n
Parameters:
\n

transform (qwt.transform.QwtTransform) – Transformation

\n
\n
\n

The transformation object is used as factory for clones\nthat are returned by transformation()

\n

The scale engine takes ownership of the transformation.

\n
\n

See also

\n

QwtTransform.copy(), transformation()

\n
\n
\n\n
\n
\ntransformation()[source]
\n

Create and return a clone of the transformation\nof the engine. When the engine has no special transformation\nNone is returned, indicating no transformation.

\n
\n
Returns:
\n

A clone of the transfomation

\n
\n
\n
\n

See also

\n

setTransformation()

\n
\n
\n\n
\n
\nlowerMargin()[source]
\n
\n
Returns:
\n

the margin at the lower end of the scale

\n
\n
\n

The default margin is 0.

\n
\n

See also

\n

setMargins()

\n
\n
\n\n
\n
\nupperMargin()[source]
\n
\n
Returns:
\n

the margin at the upper end of the scale

\n
\n
\n

The default margin is 0.

\n
\n

See also

\n

setMargins()

\n
\n
\n\n
\n
\nsetMargins(lower, upper)[source]
\n

Specify margins at the scale’s endpoints

\n
\n
Parameters:
\n
    \n
  • lower (float) – minimum distance between the scale’s lower boundary and the smallest enclosed value

  • \n
  • upper (float) – minimum distance between the scale’s upper boundary and the greatest enclosed value

  • \n
\n
\n
Returns:
\n

A clone of the transfomation

\n
\n
\n

Margins can be used to leave a minimum amount of space between\nthe enclosed intervals and the boundaries of the scale.

\n
\n

Warning

\n

QwtLogScaleEngine measures the margins in decades.

\n
\n\n
\n\n
\n
\ndivideInterval(intervalSize, numSteps)[source]
\n

Calculate a step size for a given interval

\n
\n
Parameters:
\n
    \n
  • intervalSize (float) – Interval size

  • \n
  • numSteps (float) – Number of steps

  • \n
\n
\n
Returns:
\n

Step size

\n
\n
\n
\n\n
\n
\ncontains(interval, value)[source]
\n

Check if an interval “contains” a value

\n
\n
Parameters:
\n
    \n
  • intervalSize (float) – Interval size

  • \n
  • value (float) – Value

  • \n
\n
\n
Returns:
\n

True, when the value is inside the interval

\n
\n
\n
\n\n
\n
\nstrip(ticks, interval)[source]
\n

Remove ticks from a list, that are not inside an interval

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Stripped tick list

\n
\n
\n
\n\n
\n
\nbuildInterval(value)[source]
\n

Build an interval around a value

\n

In case of v == 0.0 the interval is [-0.5, 0.5],\notherwide it is [0.5 * v, 1.5 * v]

\n
\n
Parameters:
\n

value (float) – Initial value

\n
\n
Returns:
\n

Calculated interval

\n
\n
\n
\n\n
\n
\nsetAttribute(attribute, on=True)[source]
\n

Change a scale attribute

\n
\n
Parameters:
\n
    \n
  • attribute (int) – Attribute to change

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
Returns:
\n

Calculated interval

\n
\n
\n
\n

See also

\n

testAttribute()

\n
\n
\n\n
\n
\ntestAttribute(attribute)[source]
\n
\n
Parameters:
\n

attribute (int) – Attribute to be tested

\n
\n
Returns:
\n

True, if attribute is enabled

\n
\n
\n
\n

See also

\n

setAttribute()

\n
\n
\n\n
\n
\nsetAttributes(attributes)[source]
\n

Change the scale attribute

\n
\n
Parameters:
\n

attributes – Set scale attributes

\n
\n
\n
\n

See also

\n

attributes()

\n
\n
\n\n
\n
\nattributes()[source]
\n
\n
Returns:
\n

Scale attributes

\n
\n
\n\n
\n\n
\n
\nsetReference(r)[source]
\n

Specify a reference point

\n
\n
Parameters:
\n

r (float) – new reference value

\n
\n
\n

The reference point is needed if options IncludeReference or\nSymmetric are active. Its default value is 0.0.

\n
\n\n
\n
\nreference()[source]
\n
\n
Returns:
\n

the reference value

\n
\n
\n\n
\n\n
\n
\nsetBase(base)[source]
\n

Set the base of the scale engine

\n

While a base of 10 is what 99.9% of all applications need\ncertain scales might need a different base: f.e 2

\n

The default setting is 10

\n
\n
Parameters:
\n

base (int) – Base of the engine

\n
\n
\n
\n

See also

\n

base()

\n
\n
\n\n
\n
\nbase()[source]
\n
\n
Returns:
\n

Base of the scale engine

\n
\n
\n
\n

See also

\n

setBase()

\n
\n
\n\n
\n\n
\n
\n

QwtLinearScaleEngine

\n
\n
\nclass qwt.scale_engine.QwtLinearScaleEngine(base=10)[source]
\n

A scale engine for linear scales

\n

The step size will fit into the pattern\nf$left{ 1,2,5right} cdot 10^{n}f$, where n is an integer.

\n
\n
\nautoScale(maxNumSteps, x1, x2, stepSize)[source]
\n

Align and divide an interval

\n
\n
Parameters:
\n
    \n
  • maxNumSteps (int) – Max. number of steps

  • \n
  • x1 (float) – First limit of the interval (In/Out)

  • \n
  • x2 (float) – Second limit of the interval (In/Out)

  • \n
  • stepSize (float) – Step size

  • \n
\n
\n
Returns:
\n

tuple (x1, x2, stepSize)

\n
\n
\n
\n

See also

\n

setAttribute()

\n
\n
\n\n
\n
\ndivideScale(x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0)[source]
\n

Calculate a scale division for an interval

\n
\n
Parameters:
\n
    \n
  • x1 (float) – First interval limit

  • \n
  • x2 (float) – Second interval limit

  • \n
  • maxMajorSteps (int) – Maximum for the number of major steps

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
  • stepSize (float) – Step size. If stepSize == 0.0, the scaleEngine calculates one

  • \n
\n
\n
Returns:
\n

Calculated scale division

\n
\n
\n
\n\n
\n
\nbuildTicks(interval, stepSize, maxMinorSteps)[source]
\n

Calculate ticks for an interval

\n
\n
Parameters:
\n
    \n
  • interval (qwt.interval.QwtInterval) – Interval

  • \n
  • stepSize (float) – Step size

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
\n
\n
Returns:
\n

Calculated ticks

\n
\n
\n
\n\n
\n
\nbuildMajorTicks(interval, stepSize)[source]
\n

Calculate major ticks for an interval

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Calculated ticks

\n
\n
\n
\n\n
\n
\nbuildMinorTicks(ticks, maxMinorSteps, stepSize)[source]
\n

Calculate minor ticks for an interval

\n
\n
Parameters:
\n
    \n
  • ticks (list) – Major ticks (returned)

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
  • stepSize (float) – Step size

  • \n
\n
\n
\n
\n\n
\n
\nalign(interval, stepSize)[source]
\n

Align an interval to a step size

\n

The limits of an interval are aligned that both are integer\nmultiples of the step size.

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Aligned interval

\n
\n
\n
\n\n
\n\n
\n
\n

QwtLogScaleEngine

\n
\n
\nclass qwt.scale_engine.QwtLogScaleEngine(base=10)[source]
\n

A scale engine for logarithmic scales

\n

The step size is measured in decades and the major step size will be\nadjusted to fit the pattern {1,2,3,5}.10**n, where n is a natural number\nincluding zero.

\n
\n

Warning

\n

The step size as well as the margins are measured in decades.

\n
\n
\n
\nautoScale(maxNumSteps, x1, x2, stepSize)[source]
\n

Align and divide an interval

\n
\n
Parameters:
\n
    \n
  • maxNumSteps (int) – Max. number of steps

  • \n
  • x1 (float) – First limit of the interval (In/Out)

  • \n
  • x2 (float) – Second limit of the interval (In/Out)

  • \n
  • stepSize (float) – Step size

  • \n
\n
\n
Returns:
\n

tuple (x1, x2, stepSize)

\n
\n
\n
\n

See also

\n

setAttribute()

\n
\n
\n\n
\n
\ndivideScale(x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0)[source]
\n

Calculate a scale division for an interval

\n
\n
Parameters:
\n
    \n
  • x1 (float) – First interval limit

  • \n
  • x2 (float) – Second interval limit

  • \n
  • maxMajorSteps (int) – Maximum for the number of major steps

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
  • stepSize (float) – Step size. If stepSize == 0.0, the scaleEngine calculates one

  • \n
\n
\n
Returns:
\n

Calculated scale division

\n
\n
\n
\n\n
\n
\nbuildTicks(interval, stepSize, maxMinorSteps)[source]
\n

Calculate ticks for an interval

\n
\n
Parameters:
\n
    \n
  • interval (qwt.interval.QwtInterval) – Interval

  • \n
  • stepSize (float) – Step size

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
\n
\n
Returns:
\n

Calculated ticks

\n
\n
\n
\n\n
\n
\nbuildMajorTicks(interval, stepSize)[source]
\n

Calculate major ticks for an interval

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Calculated ticks

\n
\n
\n
\n\n
\n
\nbuildMinorTicks(ticks, maxMinorSteps, stepSize)[source]
\n

Calculate minor ticks for an interval

\n
\n
Parameters:
\n
    \n
  • ticks (list) – Major ticks (returned)

  • \n
  • maxMinorSteps (int) – Maximum number of minor steps

  • \n
  • stepSize (float) – Step size

  • \n
\n
\n
\n
\n\n
\n
\nalign(interval, stepSize)[source]
\n

Align an interval to a step size

\n

The limits of an interval are aligned that both are integer\nmultiples of the step size.

\n
\n
Parameters:
\n
\n
\n
Returns:
\n

Aligned interval

\n
\n
\n
\n\n
\n\n
\n
\n

QwtAbstractScaleDraw

\n
\n
\nclass qwt.scale_draw.QwtAbstractScaleDraw[source]
\n

A abstract base class for drawing scales

\n

QwtAbstractScaleDraw can be used to draw linear or logarithmic scales.

\n

After a scale division has been specified as a QwtScaleDiv object\nusing setScaleDiv(), the scale can be drawn with the draw() member.

\n

Scale components:

\n
\n
    \n
  • QwtAbstractScaleDraw.Backbone: Backbone = the line where the ticks are located

  • \n
  • QwtAbstractScaleDraw.Ticks: Ticks

  • \n
  • QwtAbstractScaleDraw.Labels: Labels

  • \n
\n
\n
\n
\nclass QwtAbstractScaleDraw
\n

The range of the scale is initialized to [0, 100],\nThe spacing (distance between ticks and labels) is\nset to 4, the tick lengths are set to 4,6 and 8 pixels

\n
\n\n
\n
\nextent(font)[source]
\n

Calculate the extent

\n

The extent is the distance from the baseline to the outermost\npixel of the scale draw in opposite to its orientation.\nIt is at least minimumExtent() pixels.

\n
\n
Parameters:
\n

font (QFont) – Font used for drawing the tick labels

\n
\n
Returns:
\n

Number of pixels

\n
\n
\n\n
\n\n
\n
\ndrawTick(painter, value, len_)[source]
\n

Draw a tick

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • value (float) – Value of the tick

  • \n
  • len (float) – Length of the tick

  • \n
\n
\n
\n\n
\n\n
\n
\ndrawBackbone(painter)[source]
\n

Draws the baseline of the scale

\n
\n
Parameters:
\n

painter (QPainter) – Painter

\n
\n
\n
\n

See also

\n

drawTick(), drawLabel()

\n
\n
\n\n
\n
\ndrawLabel(painter, value)[source]
\n

Draws the label for a major scale tick

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • value (float) – Value

  • \n
\n
\n
\n
\n

See also

\n

drawTick(), drawBackbone()

\n
\n
\n\n
\n
\nenableComponent(component, enable)[source]
\n

En/Disable a component of the scale

\n
\n
Parameters:
\n
    \n
  • component (int) – Scale component

  • \n
  • enable (bool) – On/Off

  • \n
\n
\n
\n
\n

See also

\n

hasComponent()

\n
\n
\n\n
\n
\nhasComponent(component)[source]
\n

Check if a component is enabled

\n
\n
Parameters:
\n

component (int) – Component type

\n
\n
Returns:
\n

True, when component is enabled

\n
\n
\n
\n

See also

\n

enableComponent()

\n
\n
\n\n
\n
\nsetScaleDiv(scaleDiv)[source]
\n

Change the scale division

\n
\n
Parameters:
\n

scaleDiv (qwt.scale_div.QwtScaleDiv) – New scale division

\n
\n
\n
\n\n
\n
\nsetTransformation(transformation)[source]
\n

Change the transformation of the scale

\n
\n
Parameters:
\n

transformation (qwt.transform.QwtTransform) – New scale transformation

\n
\n
\n
\n\n
\n
\nscaleMap()[source]
\n
\n
Returns:
\n

Map how to translate between scale and pixel values

\n
\n
\n
\n\n
\n
\nscaleDiv()[source]
\n
\n
Returns:
\n

scale division

\n
\n
\n
\n\n
\n
\nsetPenWidth(width)[source]
\n

Specify the width of the scale pen

\n
\n
Parameters:
\n

width (int) – Pen width

\n
\n
\n
\n

See also

\n

penWidth()

\n
\n
\n\n
\n
\npenWidth()[source]
\n
\n
Returns:
\n

Scale pen width

\n
\n
\n
\n

See also

\n

setPenWidth()

\n
\n
\n\n
\n
\ndraw(painter, palette)[source]
\n

Draw the scale

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – The painter

  • \n
  • palette (QPalette) – Palette, text color is used for the labels,\nforeground color for ticks and backbone

  • \n
\n
\n
\n
\n\n
\n
\nsetSpacing(spacing)[source]
\n

Set the spacing between tick and labels

\n

The spacing is the distance between ticks and labels.\nThe default spacing is 4 pixels.

\n
\n
Parameters:
\n

spacing (float) – Spacing

\n
\n
\n
\n

See also

\n

spacing()

\n
\n
\n\n
\n
\nspacing()[source]
\n

Get the spacing

\n

The spacing is the distance between ticks and labels.\nThe default spacing is 4 pixels.

\n
\n
Returns:
\n

Spacing

\n
\n
\n
\n

See also

\n

setSpacing()

\n
\n
\n\n
\n
\nsetMinimumExtent(minExtent)[source]
\n

Set a minimum for the extent

\n

The extent is calculated from the components of the\nscale draw. In situations, where the labels are\nchanging and the layout depends on the extent (f.e scrolling\na scale), setting an upper limit as minimum extent will\navoid jumps of the layout.

\n
\n
Parameters:
\n

minExtent (float) – Minimum extent

\n
\n
\n
\n

See also

\n

extent(), minimumExtent()

\n
\n
\n\n
\n
\nminimumExtent()[source]
\n

Get the minimum extent

\n
\n
Returns:
\n

Minimum extent

\n
\n
\n\n
\n\n
\n
\nsetTickLength(tick_type, length)[source]
\n

Set the length of the ticks

\n
\n
Parameters:
\n
    \n
  • tick_type (int) – Tick type

  • \n
  • length (float) – New length

  • \n
\n
\n
\n
\n

Warning

\n

the length is limited to [0..1000]

\n
\n
\n\n
\n
\ntickLength(tick_type)[source]
\n
\n
Parameters:
\n

tick_type (int) – Tick type

\n
\n
Returns:
\n

Length of the ticks

\n
\n
\n\n
\n\n
\n
\nmaxTickLength()[source]
\n
\n
Returns:
\n

Length of the longest tick

\n
\n
\n

Useful for layout calculations

\n\n
\n\n
\n
\nsetTickLighterFactor(tick_type, factor)[source]
\n

Set the color lighter factor of the ticks

\n
\n
Parameters:
\n
    \n
  • tick_type (int) – Tick type

  • \n
  • factor (int) – New factor

  • \n
\n
\n
\n
\n\n
\n
\ntickLighterFactor(tick_type)[source]
\n
\n
Parameters:
\n

tick_type (int) – Tick type

\n
\n
Returns:
\n

Color lighter factor of the ticks

\n
\n
\n\n
\n\n
\n
\nlabel(value)[source]
\n

Convert a value into its representing label

\n

The value is converted to a plain text using\nQLocale().toString(value).\nThis method is often overloaded by applications to have individual\nlabels.

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Label string

\n
\n
\n
\n\n
\n
\ntickLabel(font, value)[source]
\n

Convert a value into its representing label and cache it.

\n

The conversion between value and label is called very often\nin the layout and painting code. Unfortunately the\ncalculation of the label sizes might be slow (really slow\nfor rich text in Qt4), so it’s necessary to cache the labels.

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font

  • \n
  • value (float) – Value

  • \n
\n
\n
Returns:
\n

Tuple (tick label, text size)

\n
\n
\n
\n\n
\n
\ninvalidateCache()[source]
\n

Invalidate the cache used by tickLabel()

\n

The cache is invalidated, when a new QwtScaleDiv is set. If\nthe labels need to be changed. while the same QwtScaleDiv is set,\ninvalidateCache() needs to be called manually.

\n
\n\n
\n\n
\n
\n

QwtScaleDraw

\n
\n
\nclass qwt.scale_draw.QwtScaleDraw[source]
\n

A class for drawing scales

\n

QwtScaleDraw can be used to draw linear or logarithmic scales.\nA scale has a position, an alignment and a length, which can be specified .\nThe labels can be rotated and aligned\nto the ticks using setLabelRotation() and setLabelAlignment().

\n

After a scale division has been specified as a QwtScaleDiv object\nusing QwtAbstractScaleDraw.setScaleDiv(scaleDiv),\nthe scale can be drawn with the QwtAbstractScaleDraw.draw() member.

\n

Alignment of the scale draw:

\n
\n
    \n
  • QwtScaleDraw.BottomScale: The scale is below

  • \n
  • QwtScaleDraw.TopScale: The scale is above

  • \n
  • QwtScaleDraw.LeftScale: The scale is left

  • \n
  • QwtScaleDraw.RightScale: The scale is right

  • \n
\n
\n
\n
\nclass QwtScaleDraw
\n

The range of the scale is initialized to [0, 100],\nThe position is at (0, 0) with a length of 100.\nThe orientation is QwtAbstractScaleDraw.Bottom.

\n
\n\n
\n
\nalignment()[source]
\n
\n
Returns:
\n

Alignment of the scale

\n
\n
\n
\n

See also

\n

setAlignment()

\n
\n
\n\n
\n
\nsetAlignment(align)[source]
\n

Set the alignment of the scale

\n
\n
Parameters:
\n

align (int) – Alignment of the scale

\n
\n
\n

Alignment of the scale draw:

\n
\n
\n
    \n
  • QwtScaleDraw.BottomScale: The scale is below

  • \n
  • QwtScaleDraw.TopScale: The scale is above

  • \n
  • QwtScaleDraw.LeftScale: The scale is left

  • \n
  • QwtScaleDraw.RightScale: The scale is right

  • \n
\n
\n

The default alignment is QwtScaleDraw.BottomScale

\n
\n
\n

See also

\n

alignment()

\n
\n
\n\n
\n
\norientation()[source]
\n

Return the orientation

\n

TopScale, BottomScale are horizontal (Qt.Horizontal) scales,\nLeftScale, RightScale are vertical (Qt.Vertical) scales.

\n
\n
Returns:
\n

Orientation of the scale

\n
\n
\n
\n

See also

\n

alignment()

\n
\n
\n\n
\n
\ngetBorderDistHint(font)[source]
\n

Determine the minimum border distance

\n

This member function returns the minimum space\nneeded to draw the mark labels at the scale’s endpoints.

\n
\n
Parameters:
\n

font (QFont) – Font

\n
\n
Returns:
\n

tuple (start, end)

\n
\n
\n

Returned tuple:

\n
\n
    \n
  • start: Start border distance

  • \n
  • end: End border distance

  • \n
\n
\n
\n\n
\n
\nminLabelDist(font)[source]
\n

Determine the minimum distance between two labels, that is necessary\nthat the texts don’t overlap.

\n
\n
Parameters:
\n

font (QFont) – Font

\n
\n
Returns:
\n

The maximum width of a label

\n
\n
\n
\n

See also

\n

getBorderDistHint()

\n
\n
\n\n
\n
\nextent(font)[source]
\n

Calculate the width/height that is needed for a\nvertical/horizontal scale.

\n

The extent is calculated from the pen width of the backbone,\nthe major tick length, the spacing and the maximum width/height\nof the labels.

\n
\n
Parameters:
\n

font (QFont) – Font used for painting the labels

\n
\n
Returns:
\n

Extent

\n
\n
\n
\n

See also

\n

minLength()

\n
\n
\n\n
\n
\nminLength(font)[source]
\n

Calculate the minimum length that is needed to draw the scale

\n
\n
Parameters:
\n

font (QFont) – Font used for painting the labels

\n
\n
Returns:
\n

Minimum length that is needed to draw the scale

\n
\n
\n
\n

See also

\n

extent()

\n
\n
\n\n
\n
\nlabelPosition(value)[source]
\n

Find the position, where to paint a label

\n

The position has a distance that depends on the length of the ticks\nin direction of the alignment().

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Position, where to paint a label

\n
\n
\n
\n\n
\n
\ndrawTick(painter, value, len_)[source]
\n

Draw a tick

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • value (float) – Value of the tick

  • \n
  • len (float) – Length of the tick

  • \n
\n
\n
\n\n
\n\n
\n
\ndrawBackbone(painter)[source]
\n

Draws the baseline of the scale

\n
\n
Parameters:
\n

painter (QPainter) – Painter

\n
\n
\n
\n

See also

\n

drawTick(), drawLabel()

\n
\n
\n\n
\n
\nmove(*args)[source]
\n

Move the position of the scale

\n

The meaning of the parameter pos depends on the alignment:

\n
\n
    \n
  • QwtScaleDraw.LeftScale:

    \n

    The origin is the topmost point of the backbone. The backbone is a\nvertical line. Scale marks and labels are drawn at the left of the\nbackbone.

    \n
  • \n
  • QwtScaleDraw.RightScale:

    \n

    The origin is the topmost point of the backbone. The backbone is a\nvertical line. Scale marks and labels are drawn at the right of\nthe backbone.

    \n
  • \n
  • QwtScaleDraw.TopScale:

    \n

    The origin is the leftmost point of the backbone. The backbone is\na horizontal line. Scale marks and labels are drawn above the\nbackbone.

    \n
  • \n
  • QwtScaleDraw.BottomScale:

    \n

    The origin is the leftmost point of the backbone. The backbone is\na horizontal line Scale marks and labels are drawn below the\nbackbone.

    \n
  • \n
\n
\n
\n
\nmove(x, y)[source]
\n
\n
Parameters:
\n
    \n
  • x (float) – X coordinate

  • \n
  • y (float) – Y coordinate

  • \n
\n
\n
\n
\n\n
\n
\nmove(pos)[source]
\n
\n
Parameters:
\n

pos (QPointF) – position

\n
\n
\n
\n\n
\n

See also

\n

pos(), setLength()

\n
\n
\n\n
\n
\npos()[source]
\n
\n
Returns:
\n

Origin of the scale

\n
\n
\n
\n

See also

\n

pos(), setLength()

\n
\n
\n\n
\n
\nsetLength(length)[source]
\n

Set the length of the backbone.

\n

The length doesn’t include the space needed for overlapping labels.

\n
\n
Parameters:
\n

length (float) – Length of the backbone

\n
\n
\n
\n

See also

\n

move(), minLabelDist()

\n
\n
\n\n
\n
\nlength()[source]
\n
\n
Returns:
\n

the length of the backbone

\n
\n
\n
\n

See also

\n

setLength(), pos()

\n
\n
\n\n
\n
\ndrawLabel(painter, value)[source]
\n

Draws the label for a major scale tick

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • value (float) – Value

  • \n
\n
\n
\n\n
\n\n
\n
\nboundingLabelRect(font, value)[source]
\n

Find the bounding rectangle for the label.

\n

The coordinates of the rectangle are absolute (calculated from\npos()) in direction of the tick.

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font used for painting

  • \n
  • value (float) – Value

  • \n
\n
\n
Returns:
\n

Bounding rectangle

\n
\n
\n
\n

See also

\n

labelRect()

\n
\n
\n\n
\n
\nlabelTransformation(pos, size)[source]
\n

Calculate the transformation that is needed to paint a label\ndepending on its alignment and rotation.

\n
\n
Parameters:
\n
    \n
  • pos (QPointF) – Position where to paint the label

  • \n
  • size (QSizeF) – Size of the label

  • \n
\n
\n
Returns:
\n

Transformation matrix

\n
\n
\n\n
\n\n
\n
\nlabelRect(font, value)[source]
\n

Find the bounding rectangle for the label. The coordinates of\nthe rectangle are relative to spacing + tick length from the backbone\nin direction of the tick.

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font used for painting

  • \n
  • value (float) – Value

  • \n
\n
\n
Returns:
\n

Bounding rectangle that is needed to draw a label

\n
\n
\n
\n\n
\n
\nlabelSize(font, value)[source]
\n

Calculate the size that is needed to draw a label

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Label font

  • \n
  • value (float) – Value

  • \n
\n
\n
Returns:
\n

Size that is needed to draw a label

\n
\n
\n
\n\n
\n
\nsetLabelRotation(rotation)[source]
\n

Rotate all labels.

\n

When changing the rotation, it might be necessary to\nadjust the label flags too. Finding a useful combination is\noften the result of try and error.

\n
\n
Parameters:
\n

rotation (float) – Angle in degrees. When changing the label rotation, the\nlabel flags often needs to be adjusted too.

\n
\n
\n\n
\n\n
\n
\nlabelRotation()[source]
\n
\n
Returns:
\n

the label rotation

\n
\n
\n\n
\n\n
\n
\nsetLabelAlignment(alignment)[source]
\n

Change the label flags

\n

Labels are aligned to the point tick length + spacing away from the\nbackbone.

\n

The alignment is relative to the orientation of the label text.\nIn case of an flags of 0 the label will be aligned\ndepending on the orientation of the scale:

\n
\n
    \n
  • QwtScaleDraw.TopScale: Qt.AlignHCenter | Qt.AlignTop

  • \n
  • QwtScaleDraw.BottomScale: Qt.AlignHCenter | Qt.AlignBottom

  • \n
  • QwtScaleDraw.LeftScale: Qt.AlignLeft | Qt.AlignVCenter

  • \n
  • QwtScaleDraw.RightScale: Qt.AlignRight | Qt.AlignVCenter

  • \n
\n
\n

Changing the alignment is often necessary for rotated labels.

\n

:param Qt.Alignment alignment Or’d Qt.AlignmentFlags

\n\n
\n

Warning

\n

The various alignments might be confusing. The alignment of the\nlabel is not the alignment of the scale and is not the alignment\nof the flags (QwtText.flags()) returned from\nQwtAbstractScaleDraw.label().

\n
\n
\n\n
\n
\nlabelAlignment()[source]
\n
\n
Returns:
\n

the label flags

\n
\n
\n\n
\n\n
\n
\nsetLabelAutoSize(state)[source]
\n

Set label automatic size option state

\n

When drawing text labels, if automatic size mode is enabled (default\nbehavior), the axes are drawn in order to optimize layout space and\ndepends on text label individual sizes. Otherwise, width and height\nwon’t change when axis range is changing.

\n

This option is not implemented in Qwt C++ library: this may be used\neither as an optimization (updating plot layout is faster when this\noption is enabled) or as an appearance preference (with Qwt default\nbehavior, the size of axes may change when zooming and/or panning\nplot canvas which in some cases may not be desired).

\n
\n
Parameters:
\n

state (bool) – On/off

\n
\n
\n
\n

See also

\n

labelAutoSize()

\n
\n
\n\n
\n
\nlabelAutoSize()[source]
\n
\n
Returns:
\n

True if automatic size option is enabled for labels

\n
\n
\n
\n

See also

\n

setLabelAutoSize()

\n
\n
\n\n
\n
\nmaxLabelWidth(font)[source]
\n
\n
Parameters:
\n

font (QFont) – Font

\n
\n
Returns:
\n

the maximum width of a label

\n
\n
\n
\n\n
\n
\nmaxLabelHeight(font)[source]
\n
\n
Parameters:
\n

font (QFont) – Font

\n
\n
Returns:
\n

the maximum height of a label

\n
\n
\n
\n\n
\n\n
\n
\n', 'metatags': '\n', 'sourcename': 'reference/scale.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d3a2949a0>, 'js_tag': .js_tag at 0x7f3d3a294860>}, >) writing output... [ 91%] reference/symbol -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(
>, 'reference/symbol') -[app] emitting event: 'html-page-context'('reference/symbol', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/text', 'Text widgets', 'N', 'next'), ('reference/scale', 'Scales', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/symbol', 'current_page_name': 'reference/symbol', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d718ccc0>, 'hasdoc': .hasdoc at 0x7fc7d718e340>, 'toctree': . at 0x7fc7d718eca0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'scale.html', 'title': 'Scales'}, 'next': {'link': 'text.html', 'title': 'Text widgets'}, 'title': 'QwtSymbol', 'meta': {}, 'body': '
\n

QwtSymbol

\n
\n
\nclass qwt.symbol.QwtSymbol(*args)[source]
\n

A class for drawing symbols

\n

Symbol styles:

\n
\n
    \n
  • QwtSymbol.NoSymbol: No Style. The symbol cannot be drawn.

  • \n
  • QwtSymbol.Ellipse: Ellipse or circle

  • \n
  • QwtSymbol.Rect: Rectangle

  • \n
  • QwtSymbol.Diamond: Diamond

  • \n
  • QwtSymbol.Triangle: Triangle pointing upwards

  • \n
  • QwtSymbol.DTriangle: Triangle pointing downwards

  • \n
  • QwtSymbol.UTriangle: Triangle pointing upwards

  • \n
  • QwtSymbol.LTriangle: Triangle pointing left

  • \n
  • QwtSymbol.RTriangle: Triangle pointing right

  • \n
  • QwtSymbol.Cross: Cross (+)

  • \n
  • QwtSymbol.XCross: Diagonal cross (X)

  • \n
  • QwtSymbol.HLine: Horizontal line

  • \n
  • QwtSymbol.VLine: Vertical line

  • \n
  • QwtSymbol.Star1: X combined with +

  • \n
  • QwtSymbol.Star2: Six-pointed star

  • \n
  • QwtSymbol.Hexagon: Hexagon

  • \n
  • QwtSymbol.Path: The symbol is represented by a painter path, where\nthe origin (0, 0) of the path coordinate system is mapped to the\nposition of the symbol

    \n

    ..seealso:

    \n
    :py:meth:`setPath()`, :py:meth:`path()`\n
    \n
    \n
  • \n
  • QwtSymbol.Pixmap: The symbol is represented by a pixmap.\nThe pixmap is centered or aligned to its pin point.

    \n

    ..seealso:

    \n
    :py:meth:`setPinPoint()`\n
    \n
    \n
  • \n
  • QwtSymbol.Graphic: The symbol is represented by a graphic.\nThe graphic is centered or aligned to its pin point.

    \n

    ..seealso:

    \n
    :py:meth:`setPinPoint()`\n
    \n
    \n
  • \n
  • QwtSymbol.SvgDocument: The symbol is represented by a SVG graphic.\nThe graphic is centered or aligned to its pin point.

    \n

    ..seealso:

    \n
    :py:meth:`setPinPoint()`\n
    \n
    \n
  • \n
  • QwtSymbol.UserStyle: Styles >= QwtSymbol.UserStyle are reserved\nfor derived classes of QwtSymbol that overload drawSymbols() with\nadditional application specific symbol types.

  • \n
\n
\n

Cache policies:

\n
\n

Depending on the render engine and the complexity of the\nsymbol shape it might be faster to render the symbol\nto a pixmap and to paint this pixmap.

\n

F.e. the raster paint engine is a pure software renderer\nwhere in cache mode a draw operation usually ends in\nraster operation with the the backing store, that are usually\nfaster, than the algorithms for rendering polygons.\nBut the opposite can be expected for graphic pipelines\nthat can make use of hardware acceleration.

\n

The default setting is AutoCache

\n

..seealso:

\n
:py:meth:`setCachePolicy()`, :py:meth:`cachePolicy()`\n
\n
\n
\n

Note

\n

The policy has no effect, when the symbol is painted\nto a vector graphics format (PDF, SVG).

\n
\n
\n

Warning

\n

Since Qt 4.8 raster is the default backend on X11

\n
\n

Valid cache policies:

\n
\n
    \n
  • QwtSymbol.NoCache: Don’t use a pixmap cache

  • \n
  • QwtSymbol.Cache: Always use a pixmap cache

  • \n
  • QwtSymbol.AutoCache: Use a cache when the symbol is rendered\nwith the software renderer (QPaintEngine.Raster)

  • \n
\n
\n
\n
\n
\nclass QwtSymbol([style=QwtSymbol.NoSymbol])
\n

The symbol is constructed with gray interior,\nblack outline with zero width, no size and style ‘NoSymbol’.

\n
\n
Parameters:
\n

style (int) – Symbol Style

\n
\n
\n
\n\n
\n
\nclass QwtSymbol(style, brush, pen, size)
\n
\n
Parameters:
\n
    \n
  • style (int) – Symbol Style

  • \n
  • brush (QBrush) – Brush to fill the interior

  • \n
  • pen (QPen) – Outline pen

  • \n
  • size (QSize) – Size

  • \n
\n
\n
\n
\n\n
\n
\nclass QwtSymbol(path, brush, pen)
\n
\n
Parameters:
\n
    \n
  • path (QPainterPath) – Painter path

  • \n
  • brush (QBrush) – Brush to fill the interior

  • \n
  • pen (QPen) – Outline pen

  • \n
\n
\n
\n
\n\n\n
\n
\nStyle
\n

alias of int

\n
\n\n
\n
\nclassmethod make(style=None, brush=None, pen=None, size=None, path=None, pixmap=None, graphic=None, svgdocument=None, pinpoint=None)[source]
\n

Create and setup a new QwtSymbol object (convenience function).

\n
\n
Parameters:
\n
    \n
  • style (int or None) – Symbol Style

  • \n
  • brush (QBrush or None) – Brush to fill the interior

  • \n
  • pen (QPen or None) – Outline pen

  • \n
  • size (QSize or None) – Size

  • \n
  • path (QPainterPath or None) – Painter path

  • \n
  • path – Painter path

  • \n
  • pixmap (QPixmap or None) – Pixmap as symbol

  • \n
  • graphic (qwt.graphic.QwtGraphic or None) – Graphic

  • \n
  • svgdocument – SVG icon as symbol

  • \n
\n
\n
\n\n
\n\n
\n
\nsetCachePolicy(policy)[source]
\n

Change the cache policy

\n

The default policy is AutoCache

\n
\n
Parameters:
\n

policy (int) – Cache policy

\n
\n
\n
\n

See also

\n

cachePolicy()

\n
\n
\n\n
\n
\ncachePolicy()[source]
\n
\n
Returns:
\n

Cache policy

\n
\n
\n
\n

See also

\n

setCachePolicy()

\n
\n
\n\n
\n
\nsetPath(path)[source]
\n

Set a painter path as symbol

\n

The symbol is represented by a painter path, where the\norigin (0, 0) of the path coordinate system is mapped to\nthe position of the symbol.

\n

When the symbol has valid size the painter path gets scaled\nto fit into the size. Otherwise the symbol size depends on\nthe bounding rectangle of the path.

\n

The following code defines a symbol drawing an arrow:

\n
from qtpy.QtGui import QApplication, QPen, QPainterPath, QTransform\nfrom qtpy.QtCore import Qt, QPointF\nfrom qwt import QwtPlot, QwtPlotCurve, QwtSymbol\nimport numpy as np\n\napp = QApplication([])\n\n# --- Construct custom symbol ---\n\npath = QPainterPath()\npath.moveTo(0, 8)\npath.lineTo(0, 5)\npath.lineTo(-3, 5)\npath.lineTo(0, 0)\npath.lineTo(3, 5)\npath.lineTo(0, 5)\n\ntransform = QTransform()\ntransform.rotate(-30.0)\npath = transform.map(path)\n\npen = QPen(Qt.black, 2 );\npen.setJoinStyle(Qt.MiterJoin)\n\nsymbol = QwtSymbol()\nsymbol.setPen(pen)\nsymbol.setBrush(Qt.red)\nsymbol.setPath(path)\nsymbol.setPinPoint(QPointF(0., 0.))\nsymbol.setSize(10, 14)\n\n# --- Test it within a simple plot ---\n\ncurve = QwtPlotCurve()\ncurve_pen = QPen(Qt.blue)\ncurve_pen.setStyle(Qt.DotLine)\ncurve.setPen(curve_pen)\ncurve.setSymbol(symbol)\nx = np.linspace(0, 10, 10)\ncurve.setData(x, np.sin(x))\n\nplot = QwtPlot()\ncurve.attach(plot)\nplot.resize(600, 300)\nplot.replot()\nplot.show()\n\napp.exec_()\n
\n
\n../_images/symbol_path_example.png\n
\n
Parameters:
\n

path (QPainterPath) – Painter path

\n
\n
\n
\n

See also

\n

path(), setSize()

\n
\n
\n\n
\n
\npath()[source]
\n
\n
Returns:
\n

Painter path for displaying the symbol

\n
\n
\n
\n

See also

\n

setPath()

\n
\n
\n\n
\n
\nsetPixmap(pixmap)[source]
\n

Set a pixmap as symbol

\n
\n
Parameters:
\n

pixmap (QPixmap) – Pixmap

\n
\n
\n
\n

See also

\n

pixmap(), setGraphic()

\n
\n
\n

Note

\n

The style() is set to QwtSymbol.Pixmap

\n
\n
\n

Note

\n

brush() and pen() have no effect

\n
\n
\n\n
\n
\npixmap()[source]
\n
\n
Returns:
\n

Assigned pixmap

\n
\n
\n
\n

See also

\n

setPixmap()

\n
\n
\n\n
\n
\nsetGraphic(graphic)[source]
\n

Set a graphic as symbol

\n
\n
Parameters:
\n

graphic (qwt.graphic.QwtGraphic) – Graphic

\n
\n
\n
\n

See also

\n

graphic(), setPixmap()

\n
\n
\n

Note

\n

The style() is set to QwtSymbol.Graphic

\n
\n
\n

Note

\n

brush() and pen() have no effect

\n
\n
\n\n
\n
\ngraphic()[source]
\n
\n
Returns:
\n

Assigned graphic

\n
\n
\n
\n

See also

\n

setGraphic()

\n
\n
\n\n
\n
\nsetSvgDocument(svgDocument)[source]
\n

Set a SVG icon as symbol

\n
\n
Parameters:
\n

svgDocument – SVG icon

\n
\n
\n
\n

See also

\n

setGraphic(), setPixmap()

\n
\n
\n

Note

\n

The style() is set to QwtSymbol.SvgDocument

\n
\n
\n

Note

\n

brush() and pen() have no effect

\n
\n
\n\n
\n
\nsetSize(*args)[source]
\n

Specify the symbol’s size

\n
\n
\nsetSize(width[, height=-1])[source]
\n
\n
Parameters:
\n
    \n
  • width (int) – Width

  • \n
  • height (int) – Height

  • \n
\n
\n
\n
\n\n
\n
\nsetSize(size)[source]
\n
\n
Parameters:
\n

size (QSize) – Size

\n
\n
\n
\n\n
\n

See also

\n

size()

\n
\n
\n\n
\n
\nsize()[source]
\n
\n
Returns:
\n

Size

\n
\n
\n
\n

See also

\n

setSize()

\n
\n
\n\n
\n
\nsetBrush(brush)[source]
\n

Assign a brush

\n

The brush is used to draw the interior of the symbol.

\n
\n
Parameters:
\n

brush (QBrush) – Brush

\n
\n
\n
\n

See also

\n

brush()

\n
\n
\n\n
\n
\nbrush()[source]
\n
\n
Returns:
\n

Brush

\n
\n
\n
\n

See also

\n

setBrush()

\n
\n
\n\n
\n
\nsetPen(*args)[source]
\n

Build and/or assign a pen, depending on the arguments.

\n
\n
\nsetPen(color, width, style)[source]
\n

Build and assign a pen

\n

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\nnon cosmetic (see QPen.isCosmetic()). This method signature has\nbeen introduced to hide this incompatibility.

\n
\n
Parameters:
\n
    \n
  • color (QColor) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
\n
\n
\n
\n\n
\n
\nsetPen(pen)[source]
\n

Assign a pen

\n
\n
Parameters:
\n

pen (QPen) – New pen

\n
\n
\n
\n\n
\n

See also

\n

pen(), brush()

\n
\n
\n\n
\n
\npen()[source]
\n
\n
Returns:
\n

Pen

\n
\n
\n
\n

See also

\n

setPen(), brush()

\n
\n
\n\n
\n
\nsetColor(color)[source]
\n

Set the color of the symbol

\n

Change the color of the brush for symbol types with a filled area.\nFor all other symbol types the color will be assigned to the pen.

\n
\n
Parameters:
\n

color (QColor) – Color

\n
\n
\n
\n

See also

\n

setPen(), setBrush(),\nbrush(), pen()

\n
\n
\n\n
\n
\nsetPinPoint(pos, enable=True)[source]
\n

Set and enable a pin point

\n

The position of a complex symbol is not always aligned to its center\n( f.e an arrow, where the peak points to a position ). The pin point\ndefines the position inside of a Pixmap, Graphic, SvgDocument\nor PainterPath symbol where the represented point has to\nbe aligned to.

\n
\n
Parameters:
\n

pos (QPointF) – Position

\n
\n
Enable bool enable:
\n

En/Disable the pin point alignment

\n
\n
\n\n
\n\n
\n
\npinPoint()[source]
\n
\n
Returns:
\n

Pin point

\n
\n
\n\n
\n\n
\n
\nsetPinPointEnabled(on)[source]
\n

En/Disable the pin point alignment

\n
\n
Parameters:
\n

on (bool) – Enabled, when on is true

\n
\n
\n\n
\n\n
\n
\nisPinPointEnabled()[source]
\n
\n
Returns:
\n

True, when the pin point translation is enabled

\n
\n
\n\n
\n\n
\n
\ndrawSymbols(painter, points)[source]
\n

Render an array of symbols

\n

Painting several symbols is more effective than drawing symbols\none by one, as a couple of layout calculations and setting of pen/brush\ncan be done once for the complete array.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • points (QPolygonF) – Positions of the symbols in screen coordinates

  • \n
\n
\n
\n
\n\n
\n
\ndrawSymbol(painter, point_or_rect)[source]
\n

Draw the symbol into a rectangle

\n

The symbol is painted centered and scaled into the target rectangle.\nIt is always painted uncached and the pin point is ignored.

\n

This method is primarily intended for drawing a symbol to the legend.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • point_or_rect (QPointF or QPoint or QRectF) – Position or target rectangle of the symbol in screen coordinates

  • \n
\n
\n
\n
\n\n
\n
\nrenderSymbols(painter, points)[source]
\n

Render the symbol to series of points

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • point_or_rect – Positions of the symbols

  • \n
\n
\n
\n
\n\n
\n
\nboundingRect()[source]
\n

Calculate the bounding rectangle for a symbol at position (0,0).

\n
\n
Returns:
\n

Bounding rectangle

\n
\n
\n
\n\n
\n
\ninvalidateCache()[source]
\n

Invalidate the cached symbol pixmap

\n

The symbol invalidates its cache, whenever an attribute is changed\nthat has an effect ob how to display a symbol. In case of derived\nclasses with individual styles (>= QwtSymbol.UserStyle) it\nmight be necessary to call invalidateCache() for attributes\nthat are relevant for this style.

\n\n
\n\n
\n
\nsetStyle(style)[source]
\n

Specify the symbol style

\n
\n
Parameters:
\n

style (int) – Style

\n
\n
\n
\n

See also

\n

style()

\n
\n
\n\n
\n
\nstyle()[source]
\n
\n
Returns:
\n

Current symbol style

\n
\n
\n
\n

See also

\n

setStyle()

\n
\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/symbol.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d718e0c0>, 'js_tag': .js_tag at 0x7fc7d718c400>},
>) +[app] emitting event: 'html-page-context'('reference/symbol', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/text', 'Text widgets', 'N', 'next'), ('reference/scale', 'Scales', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/symbol', 'current_page_name': 'reference/symbol', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3a59ccc0>, 'hasdoc': .hasdoc at 0x7f3d3a59e340>, 'toctree': . at 0x7f3d3a59eca0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'scale.html', 'title': 'Scales'}, 'next': {'link': 'text.html', 'title': 'Text widgets'}, 'title': 'QwtSymbol', 'meta': {}, 'body': '
\n

QwtSymbol

\n
\n
\nclass qwt.symbol.QwtSymbol(*args)[source]
\n

A class for drawing symbols

\n

Symbol styles:

\n
\n
    \n
  • QwtSymbol.NoSymbol: No Style. The symbol cannot be drawn.

  • \n
  • QwtSymbol.Ellipse: Ellipse or circle

  • \n
  • QwtSymbol.Rect: Rectangle

  • \n
  • QwtSymbol.Diamond: Diamond

  • \n
  • QwtSymbol.Triangle: Triangle pointing upwards

  • \n
  • QwtSymbol.DTriangle: Triangle pointing downwards

  • \n
  • QwtSymbol.UTriangle: Triangle pointing upwards

  • \n
  • QwtSymbol.LTriangle: Triangle pointing left

  • \n
  • QwtSymbol.RTriangle: Triangle pointing right

  • \n
  • QwtSymbol.Cross: Cross (+)

  • \n
  • QwtSymbol.XCross: Diagonal cross (X)

  • \n
  • QwtSymbol.HLine: Horizontal line

  • \n
  • QwtSymbol.VLine: Vertical line

  • \n
  • QwtSymbol.Star1: X combined with +

  • \n
  • QwtSymbol.Star2: Six-pointed star

  • \n
  • QwtSymbol.Hexagon: Hexagon

  • \n
  • QwtSymbol.Path: The symbol is represented by a painter path, where\nthe origin (0, 0) of the path coordinate system is mapped to the\nposition of the symbol

    \n

    ..seealso:

    \n
    :py:meth:`setPath()`, :py:meth:`path()`\n
    \n
    \n
  • \n
  • QwtSymbol.Pixmap: The symbol is represented by a pixmap.\nThe pixmap is centered or aligned to its pin point.

    \n

    ..seealso:

    \n
    :py:meth:`setPinPoint()`\n
    \n
    \n
  • \n
  • QwtSymbol.Graphic: The symbol is represented by a graphic.\nThe graphic is centered or aligned to its pin point.

    \n

    ..seealso:

    \n
    :py:meth:`setPinPoint()`\n
    \n
    \n
  • \n
  • QwtSymbol.SvgDocument: The symbol is represented by a SVG graphic.\nThe graphic is centered or aligned to its pin point.

    \n

    ..seealso:

    \n
    :py:meth:`setPinPoint()`\n
    \n
    \n
  • \n
  • QwtSymbol.UserStyle: Styles >= QwtSymbol.UserStyle are reserved\nfor derived classes of QwtSymbol that overload drawSymbols() with\nadditional application specific symbol types.

  • \n
\n
\n

Cache policies:

\n
\n

Depending on the render engine and the complexity of the\nsymbol shape it might be faster to render the symbol\nto a pixmap and to paint this pixmap.

\n

F.e. the raster paint engine is a pure software renderer\nwhere in cache mode a draw operation usually ends in\nraster operation with the the backing store, that are usually\nfaster, than the algorithms for rendering polygons.\nBut the opposite can be expected for graphic pipelines\nthat can make use of hardware acceleration.

\n

The default setting is AutoCache

\n

..seealso:

\n
:py:meth:`setCachePolicy()`, :py:meth:`cachePolicy()`\n
\n
\n
\n

Note

\n

The policy has no effect, when the symbol is painted\nto a vector graphics format (PDF, SVG).

\n
\n
\n

Warning

\n

Since Qt 4.8 raster is the default backend on X11

\n
\n

Valid cache policies:

\n
\n
    \n
  • QwtSymbol.NoCache: Don’t use a pixmap cache

  • \n
  • QwtSymbol.Cache: Always use a pixmap cache

  • \n
  • QwtSymbol.AutoCache: Use a cache when the symbol is rendered\nwith the software renderer (QPaintEngine.Raster)

  • \n
\n
\n
\n
\n
\nclass QwtSymbol([style=QwtSymbol.NoSymbol])
\n

The symbol is constructed with gray interior,\nblack outline with zero width, no size and style ‘NoSymbol’.

\n
\n
Parameters:
\n

style (int) – Symbol Style

\n
\n
\n
\n\n
\n
\nclass QwtSymbol(style, brush, pen, size)
\n
\n
Parameters:
\n
    \n
  • style (int) – Symbol Style

  • \n
  • brush (QBrush) – Brush to fill the interior

  • \n
  • pen (QPen) – Outline pen

  • \n
  • size (QSize) – Size

  • \n
\n
\n
\n
\n\n
\n
\nclass QwtSymbol(path, brush, pen)
\n
\n
Parameters:
\n
    \n
  • path (QPainterPath) – Painter path

  • \n
  • brush (QBrush) – Brush to fill the interior

  • \n
  • pen (QPen) – Outline pen

  • \n
\n
\n
\n
\n\n\n
\n
\nStyle
\n

alias of int

\n
\n\n
\n
\nclassmethod make(style=None, brush=None, pen=None, size=None, path=None, pixmap=None, graphic=None, svgdocument=None, pinpoint=None)[source]
\n

Create and setup a new QwtSymbol object (convenience function).

\n
\n
Parameters:
\n
    \n
  • style (int or None) – Symbol Style

  • \n
  • brush (QBrush or None) – Brush to fill the interior

  • \n
  • pen (QPen or None) – Outline pen

  • \n
  • size (QSize or None) – Size

  • \n
  • path (QPainterPath or None) – Painter path

  • \n
  • path – Painter path

  • \n
  • pixmap (QPixmap or None) – Pixmap as symbol

  • \n
  • graphic (qwt.graphic.QwtGraphic or None) – Graphic

  • \n
  • svgdocument – SVG icon as symbol

  • \n
\n
\n
\n\n
\n\n
\n
\nsetCachePolicy(policy)[source]
\n

Change the cache policy

\n

The default policy is AutoCache

\n
\n
Parameters:
\n

policy (int) – Cache policy

\n
\n
\n
\n

See also

\n

cachePolicy()

\n
\n
\n\n
\n
\ncachePolicy()[source]
\n
\n
Returns:
\n

Cache policy

\n
\n
\n
\n

See also

\n

setCachePolicy()

\n
\n
\n\n
\n
\nsetPath(path)[source]
\n

Set a painter path as symbol

\n

The symbol is represented by a painter path, where the\norigin (0, 0) of the path coordinate system is mapped to\nthe position of the symbol.

\n

When the symbol has valid size the painter path gets scaled\nto fit into the size. Otherwise the symbol size depends on\nthe bounding rectangle of the path.

\n

The following code defines a symbol drawing an arrow:

\n
from qtpy.QtGui import QApplication, QPen, QPainterPath, QTransform\nfrom qtpy.QtCore import Qt, QPointF\nfrom qwt import QwtPlot, QwtPlotCurve, QwtSymbol\nimport numpy as np\n\napp = QApplication([])\n\n# --- Construct custom symbol ---\n\npath = QPainterPath()\npath.moveTo(0, 8)\npath.lineTo(0, 5)\npath.lineTo(-3, 5)\npath.lineTo(0, 0)\npath.lineTo(3, 5)\npath.lineTo(0, 5)\n\ntransform = QTransform()\ntransform.rotate(-30.0)\npath = transform.map(path)\n\npen = QPen(Qt.black, 2 );\npen.setJoinStyle(Qt.MiterJoin)\n\nsymbol = QwtSymbol()\nsymbol.setPen(pen)\nsymbol.setBrush(Qt.red)\nsymbol.setPath(path)\nsymbol.setPinPoint(QPointF(0., 0.))\nsymbol.setSize(10, 14)\n\n# --- Test it within a simple plot ---\n\ncurve = QwtPlotCurve()\ncurve_pen = QPen(Qt.blue)\ncurve_pen.setStyle(Qt.DotLine)\ncurve.setPen(curve_pen)\ncurve.setSymbol(symbol)\nx = np.linspace(0, 10, 10)\ncurve.setData(x, np.sin(x))\n\nplot = QwtPlot()\ncurve.attach(plot)\nplot.resize(600, 300)\nplot.replot()\nplot.show()\n\napp.exec_()\n
\n
\n../_images/symbol_path_example.png\n
\n
Parameters:
\n

path (QPainterPath) – Painter path

\n
\n
\n
\n

See also

\n

path(), setSize()

\n
\n
\n\n
\n
\npath()[source]
\n
\n
Returns:
\n

Painter path for displaying the symbol

\n
\n
\n
\n

See also

\n

setPath()

\n
\n
\n\n
\n
\nsetPixmap(pixmap)[source]
\n

Set a pixmap as symbol

\n
\n
Parameters:
\n

pixmap (QPixmap) – Pixmap

\n
\n
\n
\n

See also

\n

pixmap(), setGraphic()

\n
\n
\n

Note

\n

The style() is set to QwtSymbol.Pixmap

\n
\n
\n

Note

\n

brush() and pen() have no effect

\n
\n
\n\n
\n
\npixmap()[source]
\n
\n
Returns:
\n

Assigned pixmap

\n
\n
\n
\n

See also

\n

setPixmap()

\n
\n
\n\n
\n
\nsetGraphic(graphic)[source]
\n

Set a graphic as symbol

\n
\n
Parameters:
\n

graphic (qwt.graphic.QwtGraphic) – Graphic

\n
\n
\n
\n

See also

\n

graphic(), setPixmap()

\n
\n
\n

Note

\n

The style() is set to QwtSymbol.Graphic

\n
\n
\n

Note

\n

brush() and pen() have no effect

\n
\n
\n\n
\n
\ngraphic()[source]
\n
\n
Returns:
\n

Assigned graphic

\n
\n
\n
\n

See also

\n

setGraphic()

\n
\n
\n\n
\n
\nsetSvgDocument(svgDocument)[source]
\n

Set a SVG icon as symbol

\n
\n
Parameters:
\n

svgDocument – SVG icon

\n
\n
\n
\n

See also

\n

setGraphic(), setPixmap()

\n
\n
\n

Note

\n

The style() is set to QwtSymbol.SvgDocument

\n
\n
\n

Note

\n

brush() and pen() have no effect

\n
\n
\n\n
\n
\nsetSize(*args)[source]
\n

Specify the symbol’s size

\n
\n
\nsetSize(width[, height=-1])[source]
\n
\n
Parameters:
\n
    \n
  • width (int) – Width

  • \n
  • height (int) – Height

  • \n
\n
\n
\n
\n\n
\n
\nsetSize(size)[source]
\n
\n
Parameters:
\n

size (QSize) – Size

\n
\n
\n
\n\n
\n

See also

\n

size()

\n
\n
\n\n
\n
\nsize()[source]
\n
\n
Returns:
\n

Size

\n
\n
\n
\n

See also

\n

setSize()

\n
\n
\n\n
\n
\nsetBrush(brush)[source]
\n

Assign a brush

\n

The brush is used to draw the interior of the symbol.

\n
\n
Parameters:
\n

brush (QBrush) – Brush

\n
\n
\n
\n

See also

\n

brush()

\n
\n
\n\n
\n
\nbrush()[source]
\n
\n
Returns:
\n

Brush

\n
\n
\n
\n

See also

\n

setBrush()

\n
\n
\n\n
\n
\nsetPen(*args)[source]
\n

Build and/or assign a pen, depending on the arguments.

\n
\n
\nsetPen(color, width, style)[source]
\n

Build and assign a pen

\n

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\nnon cosmetic (see QPen.isCosmetic()). This method signature has\nbeen introduced to hide this incompatibility.

\n
\n
Parameters:
\n
    \n
  • color (QColor) – Pen color

  • \n
  • width (float) – Pen width

  • \n
  • style (Qt.PenStyle) – Pen style

  • \n
\n
\n
\n
\n\n
\n
\nsetPen(pen)[source]
\n

Assign a pen

\n
\n
Parameters:
\n

pen (QPen) – New pen

\n
\n
\n
\n\n
\n

See also

\n

pen(), brush()

\n
\n
\n\n
\n
\npen()[source]
\n
\n
Returns:
\n

Pen

\n
\n
\n
\n

See also

\n

setPen(), brush()

\n
\n
\n\n
\n
\nsetColor(color)[source]
\n

Set the color of the symbol

\n

Change the color of the brush for symbol types with a filled area.\nFor all other symbol types the color will be assigned to the pen.

\n
\n
Parameters:
\n

color (QColor) – Color

\n
\n
\n
\n

See also

\n

setPen(), setBrush(),\nbrush(), pen()

\n
\n
\n\n
\n
\nsetPinPoint(pos, enable=True)[source]
\n

Set and enable a pin point

\n

The position of a complex symbol is not always aligned to its center\n( f.e an arrow, where the peak points to a position ). The pin point\ndefines the position inside of a Pixmap, Graphic, SvgDocument\nor PainterPath symbol where the represented point has to\nbe aligned to.

\n
\n
Parameters:
\n

pos (QPointF) – Position

\n
\n
Enable bool enable:
\n

En/Disable the pin point alignment

\n
\n
\n\n
\n\n
\n
\npinPoint()[source]
\n
\n
Returns:
\n

Pin point

\n
\n
\n\n
\n\n
\n
\nsetPinPointEnabled(on)[source]
\n

En/Disable the pin point alignment

\n
\n
Parameters:
\n

on (bool) – Enabled, when on is true

\n
\n
\n\n
\n\n
\n
\nisPinPointEnabled()[source]
\n
\n
Returns:
\n

True, when the pin point translation is enabled

\n
\n
\n\n
\n\n
\n
\ndrawSymbols(painter, points)[source]
\n

Render an array of symbols

\n

Painting several symbols is more effective than drawing symbols\none by one, as a couple of layout calculations and setting of pen/brush\ncan be done once for the complete array.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • points (QPolygonF) – Positions of the symbols in screen coordinates

  • \n
\n
\n
\n
\n\n
\n
\ndrawSymbol(painter, point_or_rect)[source]
\n

Draw the symbol into a rectangle

\n

The symbol is painted centered and scaled into the target rectangle.\nIt is always painted uncached and the pin point is ignored.

\n

This method is primarily intended for drawing a symbol to the legend.

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • point_or_rect (QPointF or QPoint or QRectF) – Position or target rectangle of the symbol in screen coordinates

  • \n
\n
\n
\n
\n\n
\n
\nrenderSymbols(painter, points)[source]
\n

Render the symbol to series of points

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • point_or_rect – Positions of the symbols

  • \n
\n
\n
\n
\n\n
\n
\nboundingRect()[source]
\n

Calculate the bounding rectangle for a symbol at position (0,0).

\n
\n
Returns:
\n

Bounding rectangle

\n
\n
\n
\n\n
\n
\ninvalidateCache()[source]
\n

Invalidate the cached symbol pixmap

\n

The symbol invalidates its cache, whenever an attribute is changed\nthat has an effect ob how to display a symbol. In case of derived\nclasses with individual styles (>= QwtSymbol.UserStyle) it\nmight be necessary to call invalidateCache() for attributes\nthat are relevant for this style.

\n\n
\n\n
\n
\nsetStyle(style)[source]
\n

Specify the symbol style

\n
\n
Parameters:
\n

style (int) – Style

\n
\n
\n
\n

See also

\n

style()

\n
\n
\n\n
\n
\nstyle()[source]
\n
\n
Returns:
\n

Current symbol style

\n
\n
\n
\n

See also

\n

setStyle()

\n
\n
\n\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/symbol.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d3a59e0c0>, 'js_tag': .js_tag at 0x7f3d3a59c400>},
>) writing output... [ 94%] reference/text -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, <#text: 'QPaintEvent'>) -[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, <#text: 'QPaintEvent'>) +[app] emitting event: 'missing-reference'(, >, <#text: 'None'>) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(
, 'reference/text') -[app] emitting event: 'html-page-context'('reference/text', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/toqimage', 'NumPy array to QImage', 'N', 'next'), ('reference/symbol', 'QwtSymbol', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/text', 'current_page_name': 'reference/text', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d718f920>, 'hasdoc': .hasdoc at 0x7fc7d718e980>, 'toctree': . at 0x7fc7d718dee0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'symbol.html', 'title': 'QwtSymbol'}, 'next': {'link': 'toqimage.html', 'title': 'NumPy array to QImage'}, 'title': 'Text widgets', 'meta': {}, 'body': '
\n

Text widgets

\n
\n

QwtText

\n
\n
\nclass qwt.text.QwtText(text=None, textFormat=None, other=None)[source]
\n

A class representing a text

\n

A QwtText is a text including a set of attributes how to render it.

\n
\n
    \n
  • Format:

  • \n
\n

A text might include control sequences (f.e tags) describing\nhow to render it. Each format (f.e MathML, TeX, Qt Rich Text)\nhas its own set of control sequences, that can be handles by\na special QwtTextEngine for this format.

\n
    \n
  • Background:

  • \n
\n

A text might have a background, defined by a QPen and QBrush\nto improve its visibility. The corners of the background might\nbe rounded.

\n
    \n
  • Font:

  • \n
\n

A text might have an individual font.

\n
    \n
  • Color

  • \n
\n

A text might have an individual color.

\n
    \n
  • Render Flags

  • \n
\n

Flags from Qt.AlignmentFlag and Qt.TextFlag used like in\nQPainter.drawText().

\n
\n

..seealso:

\n
:py:meth:`qwt.text.QwtTextEngine`,\n:py:meth:`qwt.text.QwtTextLabel`\n
\n
\n

Text formats:

\n
\n
    \n
  • QwtText.AutoText:

    \n

    The text format is determined using QwtTextEngine.mightRender() for\nall available text engines in increasing order > PlainText.\nIf none of the text engines can render the text is rendered\nlike QwtText.PlainText.

    \n
  • \n
  • QwtText.PlainText:

    \n

    Draw the text as it is, using a QwtPlainTextEngine.

    \n
  • \n
  • QwtText.RichText:

    \n

    Use the Scribe framework (Qt Rich Text) to render the text.

    \n
  • \n
  • QwtText.OtherFormat:

    \n

    The number of text formats can be extended using setTextEngine.\nFormats >= QwtText.OtherFormat are not used by Qwt.

    \n
  • \n
\n
\n

Paint attributes:

\n
\n
    \n
  • QwtText.PaintUsingTextFont: The text has an individual font.

  • \n
  • QwtText.PaintUsingTextColor: The text has an individual color.

  • \n
  • QwtText.PaintBackground: The text has an individual background.

  • \n
\n
\n

Layout attributes:

\n
\n
    \n
  • QwtText.MinimumLayout:

    \n

    Layout the text without its margins. This mode is useful if a\ntext needs to be aligned accurately, like the tick labels of a scale.\nIf QwtTextEngine.textMargins is not implemented for the format\nof the text, MinimumLayout has no effect.

    \n
  • \n
\n
\n
\n
\nclass QwtText([text=None][, textFormat=None][, other=None])
\n
\n
Parameters:
\n
    \n
  • text (str) – Text content

  • \n
  • textFormat (int) – Text format

  • \n
  • other (qwt.text.QwtText) – Object to copy (text and textFormat arguments are ignored)

  • \n
\n
\n
\n
\n\n
\n
\nclassmethod make(text=None, textformat=None, renderflags=None, font=None, family=None, pointsize=None, weight=None, color=None, borderradius=None, borderpen=None, brush=None)[source]
\n

Create and setup a new QwtText object (convenience function).

\n
\n
Parameters:
\n
    \n
  • text (str) – Text content

  • \n
  • textformat (int) – Text format

  • \n
  • renderflags (int) – Flags from Qt.AlignmentFlag and Qt.TextFlag

  • \n
  • font (QFont or None) – Font

  • \n
  • family (str or None) – Font family (default: Helvetica)

  • \n
  • pointsize (int or None) – Font point size (default: 10)

  • \n
  • weight (int or None) – Font weight (default: QFont.Normal)

  • \n
  • color (QColor or str or None) – Pen color

  • \n
  • borderradius (float or None) – Radius for the corners of the border frame

  • \n
  • borderpen (QPen or None) – Background pen

  • \n
  • brush (QBrush or None) – Background brush

  • \n
\n
\n
\n
\n

See also

\n

setText()

\n
\n
\n\n
\n
\nisEmpty()[source]
\n
\n
Returns:
\n

True if text is empty

\n
\n
\n
\n\n
\n
\nsetText(text, textFormat=None)[source]
\n

Assign a new text content

\n
\n
Parameters:
\n
    \n
  • text (str) – Text content

  • \n
  • textFormat (int) – Text format

  • \n
\n
\n
\n
\n

See also

\n

text()

\n
\n
\n\n
\n
\ntext()[source]
\n
\n
Returns:
\n

Text content

\n
\n
\n
\n

See also

\n

setText()

\n
\n
\n\n
\n
\nsetRenderFlags(renderFlags)[source]
\n

Change the render flags

\n

The default setting is Qt.AlignCenter

\n
\n
Parameters:
\n

renderFlags (int) – Bitwise OR of the flags used like in QPainter.drawText()

\n
\n
\n\n
\n\n
\n
\nrenderFlags()[source]
\n
\n
Returns:
\n

Render flags

\n
\n
\n
\n

See also

\n

setRenderFlags()

\n
\n
\n\n
\n
\nsetFont(font)[source]
\n

Set the font.

\n
\n
Parameters:
\n

font (QFont) – Font

\n
\n
\n
\n

Note

\n

Setting the font might have no effect, when\nthe text contains control sequences for setting fonts.

\n
\n
\n

See also

\n

font(), usedFont()

\n
\n
\n\n
\n
\nfont()[source]
\n
\n
Returns:
\n

Return the font

\n
\n
\n
\n

See also

\n

setFont(), usedFont()

\n
\n
\n\n
\n
\nusedFont(defaultFont)[source]
\n

Return the font of the text, if it has one.\nOtherwise return defaultFont.

\n
\n
Parameters:
\n

defaultFont (QFont) – Default font

\n
\n
Returns:
\n

Font used for drawing the text

\n
\n
\n
\n

See also

\n

setFont(), font()

\n
\n
\n\n
\n
\nsetColor(color)[source]
\n

Set the pen color used for drawing the text.

\n
\n
Parameters:
\n

color (QColor) – Color

\n
\n
\n
\n

Note

\n

Setting the color might have no effect, when\nthe text contains control sequences for setting colors.

\n
\n
\n

See also

\n

color(), usedColor()

\n
\n
\n\n
\n
\ncolor()[source]
\n
\n
Returns:
\n

Return the pen color, used for painting the text

\n
\n
\n
\n

See also

\n

setColor(), usedColor()

\n
\n
\n\n
\n
\nusedColor(defaultColor)[source]
\n

Return the color of the text, if it has one.\nOtherwise return defaultColor.

\n
\n
Parameters:
\n

defaultColor (QColor) – Default color

\n
\n
Returns:
\n

Color used for drawing the text

\n
\n
\n
\n

See also

\n

setColor(), color()

\n
\n
\n\n
\n
\nsetBorderRadius(radius)[source]
\n

Set the radius for the corners of the border frame

\n
\n
Parameters:
\n

radius (float) – Radius of a rounded corner

\n
\n
\n\n
\n\n
\n
\nborderRadius()[source]
\n
\n
Returns:
\n

Radius for the corners of the border frame

\n
\n
\n\n
\n\n
\n
\nsetBorderPen(pen)[source]
\n

Set the background pen

\n
\n
Parameters:
\n

pen (QPen) – Background pen

\n
\n
\n\n
\n\n
\n
\nborderPen()[source]
\n
\n
Returns:
\n

Background pen

\n
\n
\n\n
\n\n
\n
\nsetBackgroundBrush(brush)[source]
\n

Set the background brush

\n
\n
Parameters:
\n

brush (QBrush) – Background brush

\n
\n
\n\n
\n\n
\n
\nbackgroundBrush()[source]
\n
\n
Returns:
\n

Background brush

\n
\n
\n\n
\n\n
\n
\nsetPaintAttribute(attribute, on=True)[source]
\n

Change a paint attribute

\n
\n
Parameters:
\n
    \n
  • attribute (int) – Paint attribute

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n
\n

Note

\n

Used by setFont(), setColor(), setBorderPen()\nand setBackgroundBrush()

\n
\n
\n

See also

\n

testPaintAttribute()

\n
\n
\n\n
\n
\ntestPaintAttribute(attribute)[source]
\n

Test a paint attribute

\n
\n
Parameters:
\n

attribute (int) – Paint attribute

\n
\n
Returns:
\n

True, if attribute is enabled

\n
\n
\n
\n

See also

\n

setPaintAttribute()

\n
\n
\n\n
\n
\nsetLayoutAttribute(attribute, on=True)[source]
\n

Change a layout attribute

\n
\n
Parameters:
\n
    \n
  • attribute (int) – Layout attribute

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n
\n

See also

\n

testLayoutAttribute()

\n
\n
\n\n
\n
\ntestLayoutAttribute(attribute)[source]
\n

Test a layout attribute

\n
\n
Parameters:
\n

attribute (int) – Layout attribute

\n
\n
Returns:
\n

True, if attribute is enabled

\n
\n
\n
\n

See also

\n

setLayoutAttribute()

\n
\n
\n\n
\n
\nheightForWidth(width, defaultFont=None)[source]
\n

Find the height for a given width

\n
\n
Parameters:
\n
    \n
  • width (float) – Width

  • \n
  • defaultFont (QFont) – Font, used for the calculation if the text has no font

  • \n
\n
\n
Returns:
\n

Calculated height

\n
\n
\n
\n\n
\n
\ntextSize(defaultFont)[source]
\n

Returns the size, that is needed to render text

\n

:param QFont defaultFont Font, used for the calculation if the text has no font\n:return: Caluclated size

\n
\n\n
\n
\ndraw(painter, rect)[source]
\n

Draw a text into a rectangle

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Rectangle

  • \n
\n
\n
\n
\n\n
\n
\ntextEngine(text=None, format_=None)[source]
\n

Find the text engine for a text format

\n

In case of QwtText.AutoText the first text engine\n(beside QwtPlainTextEngine) is returned, where\nQwtTextEngine.mightRender returns true.\nIf there is none QwtPlainTextEngine is returned.

\n

If no text engine is registered for the format QwtPlainTextEngine\nis returned.

\n
\n
Parameters:
\n
    \n
  • text (str) – Text, needed in case of AutoText

  • \n
  • format (int) – Text format

  • \n
\n
\n
Returns:
\n

Corresponding text engine

\n
\n
\n
\n\n
\n
\nsetTextEngine(format_, engine)[source]
\n

Assign/Replace a text engine for a text format

\n

With setTextEngine it is possible to extend PythonQwt with\nother types of text formats.

\n

For QwtText.PlainText it is not allowed to assign a engine to None.

\n
\n
Parameters:
\n
\n
\n
\n
\n

See also

\n

setPaintAttribute()

\n
\n
\n

Warning

\n

Using QwtText.AutoText does nothing.

\n
\n
\n\n
\n\n
\n
\n

QwtTextLabel

\n
\n
\nclass qwt.text.QwtTextLabel(*args)[source]
\n

A Widget which displays a QwtText

\n
\n
\nclass QwtTextLabel(parent)
\n
\n
Parameters:
\n

parent (QWidget) – Parent widget

\n
\n
\n
\n\n
\n
\nclass QwtTextLabel([text=None][, parent=None])
\n
\n
Parameters:
\n
    \n
  • text (str) – Text

  • \n
  • parent (QWidget) – Parent widget

  • \n
\n
\n
\n
\n\n
\n
\nsetPlainText(text)[source]
\n

Interface for the designer plugin - does the same as setText()

\n
\n
Parameters:
\n

text (str) – Text

\n
\n
\n
\n

See also

\n

plainText()

\n
\n
\n\n
\n
\nplainText()[source]
\n

Interface for the designer plugin

\n
\n
Returns:
\n

Text as plain text

\n
\n
\n
\n

See also

\n

setPlainText()

\n
\n
\n\n
\n
\nsetText(text, textFormat=0)[source]
\n

Change the label’s text, keeping all other QwtText attributes

\n
\n
Parameters:
\n
    \n
  • text (qwt.text.QwtText or str) – New text

  • \n
  • textFormat (int) – Format of text

  • \n
\n
\n
\n
\n

See also

\n

text()

\n
\n
\n\n
\n
\ntext()[source]
\n
\n
Returns:
\n

Return the text

\n
\n
\n
\n

See also

\n

setText()

\n
\n
\n\n
\n
\nclear()[source]
\n

Clear the text and all QwtText attributes

\n
\n\n
\n
\nindent()[source]
\n
\n
Returns:
\n

Label’s text indent in pixels

\n
\n
\n
\n

See also

\n

setIndent()

\n
\n
\n\n
\n
\nsetIndent(indent)[source]
\n

Set label’s text indent in pixels

\n
\n
Parameters:
\n

indent (int) – Indentation in pixels

\n
\n
\n
\n

See also

\n

indent()

\n
\n
\n\n
\n
\nmargin()[source]
\n
\n
Returns:
\n

Label’s text indent in pixels

\n
\n
\n
\n

See also

\n

setMargin()

\n
\n
\n\n
\n
\nsetMargin(margin)[source]
\n

Set label’s margin in pixels

\n
\n
Parameters:
\n

margin (int) – Margin in pixels

\n
\n
\n
\n

See also

\n

margin()

\n
\n
\n\n
\n
\nsizeHint()[source]
\n

Return a size hint

\n
\n\n
\n
\nminimumSizeHint()[source]
\n

Return a minimum size hint

\n
\n\n
\n
\nheightForWidth(width)[source]
\n
\n
Parameters:
\n

width (int) – Width

\n
\n
Returns:
\n

Preferred height for this widget, given the width.

\n
\n
\n
\n\n
\n
\npaintEvent(self, a0: QPaintEvent | None)[source]
\n
\n\n
\n
\ndrawContents(painter)[source]
\n

Redraw the text and focus indicator

\n
\n
Parameters:
\n

painter (QPainter) – Painter

\n
\n
\n
\n\n
\n
\ndrawText(painter, textRect)[source]
\n

Redraw the text

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • textRect (QRectF) – Text rectangle

  • \n
\n
\n
\n
\n\n
\n
\ntextRect()[source]
\n

Calculate geometry for the text in widget coordinates

\n
\n
Returns:
\n

Geometry for the text

\n
\n
\n
\n\n
\n\n
\n
\n
\n

Text engines

\n
\n

QwtTextEngine

\n
\n
\nclass qwt.text.QwtTextEngine[source]
\n

Abstract base class for rendering text strings

\n

A text engine is responsible for rendering texts for a\nspecific text format. They are used by QwtText to render a text.

\n

QwtPlainTextEngine and QwtRichTextEngine are part of the\nPythonQwt library.

\n\n
\n
\nheightForWidth(font, flags, text, width)[source]
\n

Find the height for a given width

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font of the text

  • \n
  • flags (int) – Bitwise OR of the flags used like in QPainter::drawText

  • \n
  • text (str) – Text to be rendered

  • \n
  • width (float) – Width

  • \n
\n
\n
Returns:
\n

Calculated height

\n
\n
\n
\n\n
\n
\ntextSize(font, flags, text)[source]
\n

Returns the size, that is needed to render text

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font of the text

  • \n
  • flags (int) – Bitwise OR of the flags like in for QPainter::drawText

  • \n
  • text (str) – Text to be rendered

  • \n
\n
\n
Returns:
\n

Calculated size

\n
\n
\n
\n\n
\n
\nmightRender(text)[source]
\n

Test if a string can be rendered by this text engine

\n
\n
Parameters:
\n

text (str) – Text to be tested

\n
\n
Returns:
\n

True, if it can be rendered

\n
\n
\n
\n\n
\n
\ntextMargins(font)[source]
\n

Return margins around the texts

\n

The textSize might include margins around the\ntext, like QFontMetrics::descent(). In situations\nwhere texts need to be aligned in detail, knowing\nthese margins might improve the layout calculations.

\n
\n
Parameters:
\n

font (QFont) – Font of the text

\n
\n
Returns:
\n

tuple (left, right, top, bottom) representing margins

\n
\n
\n
\n\n
\n
\ndraw(painter, rect, flags, text)[source]
\n

Draw the text in a clipping rectangle

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Clipping rectangle

  • \n
  • flags (int) – Bitwise OR of the flags like in for QPainter::drawText()

  • \n
  • text (str) – Text to be rendered

  • \n
\n
\n
\n
\n\n
\n\n
\n
\n

QwtPlainTextEngine

\n
\n
\nclass qwt.text.QwtPlainTextEngine[source]
\n

A text engine for plain texts

\n

QwtPlainTextEngine renders texts using the basic Qt classes\nQPainter and QFontMetrics.

\n
\n
\nheightForWidth(font, flags, text, width)[source]
\n

Find the height for a given width

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font of the text

  • \n
  • flags (int) – Bitwise OR of the flags used like in QPainter::drawText

  • \n
  • text (str) – Text to be rendered

  • \n
  • width (float) – Width

  • \n
\n
\n
Returns:
\n

Calculated height

\n
\n
\n
\n\n
\n
\ntextSize(font, flags, text)[source]
\n

Returns the size, that is needed to render text

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font of the text

  • \n
  • flags (int) – Bitwise OR of the flags like in for QPainter::drawText

  • \n
  • text (str) – Text to be rendered

  • \n
\n
\n
Returns:
\n

Calculated size

\n
\n
\n
\n\n
\n
\ntextMargins(font)[source]
\n

Return margins around the texts

\n

The textSize might include margins around the\ntext, like QFontMetrics::descent(). In situations\nwhere texts need to be aligned in detail, knowing\nthese margins might improve the layout calculations.

\n
\n
Parameters:
\n

font (QFont) – Font of the text

\n
\n
Returns:
\n

tuple (left, right, top, bottom) representing margins

\n
\n
\n
\n\n
\n
\ndraw(painter, rect, flags, text)[source]
\n

Draw the text in a clipping rectangle

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Clipping rectangle

  • \n
  • flags (int) – Bitwise OR of the flags like in for QPainter::drawText()

  • \n
  • text (str) – Text to be rendered

  • \n
\n
\n
\n
\n\n
\n
\nmightRender(text)[source]
\n

Test if a string can be rendered by this text engine

\n
\n
Parameters:
\n

text (str) – Text to be tested

\n
\n
Returns:
\n

True, if it can be rendered

\n
\n
\n
\n\n
\n\n
\n
\n

QwtRichTextEngine

\n
\n
\nclass qwt.text.QwtRichTextEngine[source]
\n

A text engine for Qt rich texts

\n

QwtRichTextEngine renders Qt rich texts using the classes\nof the Scribe framework of Qt.

\n
\n
\nheightForWidth(font, flags, text, width)[source]
\n

Find the height for a given width

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font of the text

  • \n
  • flags (int) – Bitwise OR of the flags used like in QPainter::drawText

  • \n
  • text (str) – Text to be rendered

  • \n
  • width (float) – Width

  • \n
\n
\n
Returns:
\n

Calculated height

\n
\n
\n
\n\n
\n
\ntextSize(font, flags, text)[source]
\n

Returns the size, that is needed to render text

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font of the text

  • \n
  • flags (int) – Bitwise OR of the flags like in for QPainter::drawText

  • \n
  • text (str) – Text to be rendered

  • \n
\n
\n
Returns:
\n

Calculated size

\n
\n
\n
\n\n
\n
\ndraw(painter, rect, flags, text)[source]
\n

Draw the text in a clipping rectangle

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Clipping rectangle

  • \n
  • flags (int) – Bitwise OR of the flags like in for QPainter::drawText()

  • \n
  • text (str) – Text to be rendered

  • \n
\n
\n
\n
\n\n
\n
\nmightRender(text)[source]
\n

Test if a string can be rendered by this text engine

\n
\n
Parameters:
\n

text (str) – Text to be tested

\n
\n
Returns:
\n

True, if it can be rendered

\n
\n
\n
\n\n
\n
\ntextMargins(font)[source]
\n

Return margins around the texts

\n

The textSize might include margins around the\ntext, like QFontMetrics::descent(). In situations\nwhere texts need to be aligned in detail, knowing\nthese margins might improve the layout calculations.

\n
\n
Parameters:
\n

font (QFont) – Font of the text

\n
\n
Returns:
\n

tuple (left, right, top, bottom) representing margins

\n
\n
\n
\n\n
\n\n
\n
\n', 'metatags': '\n', 'sourcename': 'reference/text.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d718f100>, 'js_tag': .js_tag at 0x7fc7d718d080>},
) +[app] emitting event: 'html-page-context'('reference/text', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/toqimage', 'NumPy array to QImage', 'N', 'next'), ('reference/symbol', 'QwtSymbol', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/text', 'current_page_name': 'reference/text', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3a59f920>, 'hasdoc': .hasdoc at 0x7f3d3a59e980>, 'toctree': . at 0x7f3d3a59dee0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'symbol.html', 'title': 'QwtSymbol'}, 'next': {'link': 'toqimage.html', 'title': 'NumPy array to QImage'}, 'title': 'Text widgets', 'meta': {}, 'body': '
\n

Text widgets

\n
\n

QwtText

\n
\n
\nclass qwt.text.QwtText(text=None, textFormat=None, other=None)[source]
\n

A class representing a text

\n

A QwtText is a text including a set of attributes how to render it.

\n
\n
    \n
  • Format:

  • \n
\n

A text might include control sequences (f.e tags) describing\nhow to render it. Each format (f.e MathML, TeX, Qt Rich Text)\nhas its own set of control sequences, that can be handles by\na special QwtTextEngine for this format.

\n
    \n
  • Background:

  • \n
\n

A text might have a background, defined by a QPen and QBrush\nto improve its visibility. The corners of the background might\nbe rounded.

\n
    \n
  • Font:

  • \n
\n

A text might have an individual font.

\n
    \n
  • Color

  • \n
\n

A text might have an individual color.

\n
    \n
  • Render Flags

  • \n
\n

Flags from Qt.AlignmentFlag and Qt.TextFlag used like in\nQPainter.drawText().

\n
\n

..seealso:

\n
:py:meth:`qwt.text.QwtTextEngine`,\n:py:meth:`qwt.text.QwtTextLabel`\n
\n
\n

Text formats:

\n
\n
    \n
  • QwtText.AutoText:

    \n

    The text format is determined using QwtTextEngine.mightRender() for\nall available text engines in increasing order > PlainText.\nIf none of the text engines can render the text is rendered\nlike QwtText.PlainText.

    \n
  • \n
  • QwtText.PlainText:

    \n

    Draw the text as it is, using a QwtPlainTextEngine.

    \n
  • \n
  • QwtText.RichText:

    \n

    Use the Scribe framework (Qt Rich Text) to render the text.

    \n
  • \n
  • QwtText.OtherFormat:

    \n

    The number of text formats can be extended using setTextEngine.\nFormats >= QwtText.OtherFormat are not used by Qwt.

    \n
  • \n
\n
\n

Paint attributes:

\n
\n
    \n
  • QwtText.PaintUsingTextFont: The text has an individual font.

  • \n
  • QwtText.PaintUsingTextColor: The text has an individual color.

  • \n
  • QwtText.PaintBackground: The text has an individual background.

  • \n
\n
\n

Layout attributes:

\n
\n
    \n
  • QwtText.MinimumLayout:

    \n

    Layout the text without its margins. This mode is useful if a\ntext needs to be aligned accurately, like the tick labels of a scale.\nIf QwtTextEngine.textMargins is not implemented for the format\nof the text, MinimumLayout has no effect.

    \n
  • \n
\n
\n
\n
\nclass QwtText([text=None][, textFormat=None][, other=None])
\n
\n
Parameters:
\n
    \n
  • text (str) – Text content

  • \n
  • textFormat (int) – Text format

  • \n
  • other (qwt.text.QwtText) – Object to copy (text and textFormat arguments are ignored)

  • \n
\n
\n
\n
\n\n
\n
\nclassmethod make(text=None, textformat=None, renderflags=None, font=None, family=None, pointsize=None, weight=None, color=None, borderradius=None, borderpen=None, brush=None)[source]
\n

Create and setup a new QwtText object (convenience function).

\n
\n
Parameters:
\n
    \n
  • text (str) – Text content

  • \n
  • textformat (int) – Text format

  • \n
  • renderflags (int) – Flags from Qt.AlignmentFlag and Qt.TextFlag

  • \n
  • font (QFont or None) – Font

  • \n
  • family (str or None) – Font family (default: Helvetica)

  • \n
  • pointsize (int or None) – Font point size (default: 10)

  • \n
  • weight (int or None) – Font weight (default: QFont.Normal)

  • \n
  • color (QColor or str or None) – Pen color

  • \n
  • borderradius (float or None) – Radius for the corners of the border frame

  • \n
  • borderpen (QPen or None) – Background pen

  • \n
  • brush (QBrush or None) – Background brush

  • \n
\n
\n
\n
\n

See also

\n

setText()

\n
\n
\n\n
\n
\nisEmpty()[source]
\n
\n
Returns:
\n

True if text is empty

\n
\n
\n
\n\n
\n
\nsetText(text, textFormat=None)[source]
\n

Assign a new text content

\n
\n
Parameters:
\n
    \n
  • text (str) – Text content

  • \n
  • textFormat (int) – Text format

  • \n
\n
\n
\n
\n

See also

\n

text()

\n
\n
\n\n
\n
\ntext()[source]
\n
\n
Returns:
\n

Text content

\n
\n
\n
\n

See also

\n

setText()

\n
\n
\n\n
\n
\nsetRenderFlags(renderFlags)[source]
\n

Change the render flags

\n

The default setting is Qt.AlignCenter

\n
\n
Parameters:
\n

renderFlags (int) – Bitwise OR of the flags used like in QPainter.drawText()

\n
\n
\n\n
\n\n
\n
\nrenderFlags()[source]
\n
\n
Returns:
\n

Render flags

\n
\n
\n
\n

See also

\n

setRenderFlags()

\n
\n
\n\n
\n
\nsetFont(font)[source]
\n

Set the font.

\n
\n
Parameters:
\n

font (QFont) – Font

\n
\n
\n
\n

Note

\n

Setting the font might have no effect, when\nthe text contains control sequences for setting fonts.

\n
\n
\n

See also

\n

font(), usedFont()

\n
\n
\n\n
\n
\nfont()[source]
\n
\n
Returns:
\n

Return the font

\n
\n
\n
\n

See also

\n

setFont(), usedFont()

\n
\n
\n\n
\n
\nusedFont(defaultFont)[source]
\n

Return the font of the text, if it has one.\nOtherwise return defaultFont.

\n
\n
Parameters:
\n

defaultFont (QFont) – Default font

\n
\n
Returns:
\n

Font used for drawing the text

\n
\n
\n
\n

See also

\n

setFont(), font()

\n
\n
\n\n
\n
\nsetColor(color)[source]
\n

Set the pen color used for drawing the text.

\n
\n
Parameters:
\n

color (QColor) – Color

\n
\n
\n
\n

Note

\n

Setting the color might have no effect, when\nthe text contains control sequences for setting colors.

\n
\n
\n

See also

\n

color(), usedColor()

\n
\n
\n\n
\n
\ncolor()[source]
\n
\n
Returns:
\n

Return the pen color, used for painting the text

\n
\n
\n
\n

See also

\n

setColor(), usedColor()

\n
\n
\n\n
\n
\nusedColor(defaultColor)[source]
\n

Return the color of the text, if it has one.\nOtherwise return defaultColor.

\n
\n
Parameters:
\n

defaultColor (QColor) – Default color

\n
\n
Returns:
\n

Color used for drawing the text

\n
\n
\n
\n

See also

\n

setColor(), color()

\n
\n
\n\n
\n
\nsetBorderRadius(radius)[source]
\n

Set the radius for the corners of the border frame

\n
\n
Parameters:
\n

radius (float) – Radius of a rounded corner

\n
\n
\n\n
\n\n
\n
\nborderRadius()[source]
\n
\n
Returns:
\n

Radius for the corners of the border frame

\n
\n
\n\n
\n\n
\n
\nsetBorderPen(pen)[source]
\n

Set the background pen

\n
\n
Parameters:
\n

pen (QPen) – Background pen

\n
\n
\n\n
\n\n
\n
\nborderPen()[source]
\n
\n
Returns:
\n

Background pen

\n
\n
\n\n
\n\n
\n
\nsetBackgroundBrush(brush)[source]
\n

Set the background brush

\n
\n
Parameters:
\n

brush (QBrush) – Background brush

\n
\n
\n\n
\n\n
\n
\nbackgroundBrush()[source]
\n
\n
Returns:
\n

Background brush

\n
\n
\n\n
\n\n
\n
\nsetPaintAttribute(attribute, on=True)[source]
\n

Change a paint attribute

\n
\n
Parameters:
\n
    \n
  • attribute (int) – Paint attribute

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n
\n

Note

\n

Used by setFont(), setColor(), setBorderPen()\nand setBackgroundBrush()

\n
\n
\n

See also

\n

testPaintAttribute()

\n
\n
\n\n
\n
\ntestPaintAttribute(attribute)[source]
\n

Test a paint attribute

\n
\n
Parameters:
\n

attribute (int) – Paint attribute

\n
\n
Returns:
\n

True, if attribute is enabled

\n
\n
\n
\n

See also

\n

setPaintAttribute()

\n
\n
\n\n
\n
\nsetLayoutAttribute(attribute, on=True)[source]
\n

Change a layout attribute

\n
\n
Parameters:
\n
    \n
  • attribute (int) – Layout attribute

  • \n
  • on (bool) – On/Off

  • \n
\n
\n
\n
\n

See also

\n

testLayoutAttribute()

\n
\n
\n\n
\n
\ntestLayoutAttribute(attribute)[source]
\n

Test a layout attribute

\n
\n
Parameters:
\n

attribute (int) – Layout attribute

\n
\n
Returns:
\n

True, if attribute is enabled

\n
\n
\n
\n

See also

\n

setLayoutAttribute()

\n
\n
\n\n
\n
\nheightForWidth(width, defaultFont=None)[source]
\n

Find the height for a given width

\n
\n
Parameters:
\n
    \n
  • width (float) – Width

  • \n
  • defaultFont (QFont) – Font, used for the calculation if the text has no font

  • \n
\n
\n
Returns:
\n

Calculated height

\n
\n
\n
\n\n
\n
\ntextSize(defaultFont)[source]
\n

Returns the size, that is needed to render text

\n

:param QFont defaultFont Font, used for the calculation if the text has no font\n:return: Caluclated size

\n
\n\n
\n
\ndraw(painter, rect)[source]
\n

Draw a text into a rectangle

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Rectangle

  • \n
\n
\n
\n
\n\n
\n
\ntextEngine(text=None, format_=None)[source]
\n

Find the text engine for a text format

\n

In case of QwtText.AutoText the first text engine\n(beside QwtPlainTextEngine) is returned, where\nQwtTextEngine.mightRender returns true.\nIf there is none QwtPlainTextEngine is returned.

\n

If no text engine is registered for the format QwtPlainTextEngine\nis returned.

\n
\n
Parameters:
\n
    \n
  • text (str) – Text, needed in case of AutoText

  • \n
  • format (int) – Text format

  • \n
\n
\n
Returns:
\n

Corresponding text engine

\n
\n
\n
\n\n
\n
\nsetTextEngine(format_, engine)[source]
\n

Assign/Replace a text engine for a text format

\n

With setTextEngine it is possible to extend PythonQwt with\nother types of text formats.

\n

For QwtText.PlainText it is not allowed to assign a engine to None.

\n
\n
Parameters:
\n
\n
\n
\n
\n

See also

\n

setPaintAttribute()

\n
\n
\n

Warning

\n

Using QwtText.AutoText does nothing.

\n
\n
\n\n
\n\n
\n
\n

QwtTextLabel

\n
\n
\nclass qwt.text.QwtTextLabel(*args)[source]
\n

A Widget which displays a QwtText

\n
\n
\nclass QwtTextLabel(parent)
\n
\n
Parameters:
\n

parent (QWidget) – Parent widget

\n
\n
\n
\n\n
\n
\nclass QwtTextLabel([text=None][, parent=None])
\n
\n
Parameters:
\n
    \n
  • text (str) – Text

  • \n
  • parent (QWidget) – Parent widget

  • \n
\n
\n
\n
\n\n
\n
\nsetPlainText(text)[source]
\n

Interface for the designer plugin - does the same as setText()

\n
\n
Parameters:
\n

text (str) – Text

\n
\n
\n
\n

See also

\n

plainText()

\n
\n
\n\n
\n
\nplainText()[source]
\n

Interface for the designer plugin

\n
\n
Returns:
\n

Text as plain text

\n
\n
\n
\n

See also

\n

setPlainText()

\n
\n
\n\n
\n
\nsetText(text, textFormat=0)[source]
\n

Change the label’s text, keeping all other QwtText attributes

\n
\n
Parameters:
\n
    \n
  • text (qwt.text.QwtText or str) – New text

  • \n
  • textFormat (int) – Format of text

  • \n
\n
\n
\n
\n

See also

\n

text()

\n
\n
\n\n
\n
\ntext()[source]
\n
\n
Returns:
\n

Return the text

\n
\n
\n
\n

See also

\n

setText()

\n
\n
\n\n
\n
\nclear()[source]
\n

Clear the text and all QwtText attributes

\n
\n\n
\n
\nindent()[source]
\n
\n
Returns:
\n

Label’s text indent in pixels

\n
\n
\n
\n

See also

\n

setIndent()

\n
\n
\n\n
\n
\nsetIndent(indent)[source]
\n

Set label’s text indent in pixels

\n
\n
Parameters:
\n

indent (int) – Indentation in pixels

\n
\n
\n
\n

See also

\n

indent()

\n
\n
\n\n
\n
\nmargin()[source]
\n
\n
Returns:
\n

Label’s text indent in pixels

\n
\n
\n
\n

See also

\n

setMargin()

\n
\n
\n\n
\n
\nsetMargin(margin)[source]
\n

Set label’s margin in pixels

\n
\n
Parameters:
\n

margin (int) – Margin in pixels

\n
\n
\n
\n

See also

\n

margin()

\n
\n
\n\n
\n
\nsizeHint()[source]
\n

Return a size hint

\n
\n\n
\n
\nminimumSizeHint()[source]
\n

Return a minimum size hint

\n
\n\n
\n
\nheightForWidth(width)[source]
\n
\n
Parameters:
\n

width (int) – Width

\n
\n
Returns:
\n

Preferred height for this widget, given the width.

\n
\n
\n
\n\n
\n
\npaintEvent(self, a0: QPaintEvent | None)[source]
\n
\n\n
\n
\ndrawContents(painter)[source]
\n

Redraw the text and focus indicator

\n
\n
Parameters:
\n

painter (QPainter) – Painter

\n
\n
\n
\n\n
\n
\ndrawText(painter, textRect)[source]
\n

Redraw the text

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • textRect (QRectF) – Text rectangle

  • \n
\n
\n
\n
\n\n
\n
\ntextRect()[source]
\n

Calculate geometry for the text in widget coordinates

\n
\n
Returns:
\n

Geometry for the text

\n
\n
\n
\n\n
\n\n
\n
\n
\n

Text engines

\n
\n

QwtTextEngine

\n
\n
\nclass qwt.text.QwtTextEngine[source]
\n

Abstract base class for rendering text strings

\n

A text engine is responsible for rendering texts for a\nspecific text format. They are used by QwtText to render a text.

\n

QwtPlainTextEngine and QwtRichTextEngine are part of the\nPythonQwt library.

\n\n
\n
\nheightForWidth(font, flags, text, width)[source]
\n

Find the height for a given width

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font of the text

  • \n
  • flags (int) – Bitwise OR of the flags used like in QPainter::drawText

  • \n
  • text (str) – Text to be rendered

  • \n
  • width (float) – Width

  • \n
\n
\n
Returns:
\n

Calculated height

\n
\n
\n
\n\n
\n
\ntextSize(font, flags, text)[source]
\n

Returns the size, that is needed to render text

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font of the text

  • \n
  • flags (int) – Bitwise OR of the flags like in for QPainter::drawText

  • \n
  • text (str) – Text to be rendered

  • \n
\n
\n
Returns:
\n

Calculated size

\n
\n
\n
\n\n
\n
\nmightRender(text)[source]
\n

Test if a string can be rendered by this text engine

\n
\n
Parameters:
\n

text (str) – Text to be tested

\n
\n
Returns:
\n

True, if it can be rendered

\n
\n
\n
\n\n
\n
\ntextMargins(font)[source]
\n

Return margins around the texts

\n

The textSize might include margins around the\ntext, like QFontMetrics::descent(). In situations\nwhere texts need to be aligned in detail, knowing\nthese margins might improve the layout calculations.

\n
\n
Parameters:
\n

font (QFont) – Font of the text

\n
\n
Returns:
\n

tuple (left, right, top, bottom) representing margins

\n
\n
\n
\n\n
\n
\ndraw(painter, rect, flags, text)[source]
\n

Draw the text in a clipping rectangle

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Clipping rectangle

  • \n
  • flags (int) – Bitwise OR of the flags like in for QPainter::drawText()

  • \n
  • text (str) – Text to be rendered

  • \n
\n
\n
\n
\n\n
\n\n
\n
\n

QwtPlainTextEngine

\n
\n
\nclass qwt.text.QwtPlainTextEngine[source]
\n

A text engine for plain texts

\n

QwtPlainTextEngine renders texts using the basic Qt classes\nQPainter and QFontMetrics.

\n
\n
\nheightForWidth(font, flags, text, width)[source]
\n

Find the height for a given width

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font of the text

  • \n
  • flags (int) – Bitwise OR of the flags used like in QPainter::drawText

  • \n
  • text (str) – Text to be rendered

  • \n
  • width (float) – Width

  • \n
\n
\n
Returns:
\n

Calculated height

\n
\n
\n
\n\n
\n
\ntextSize(font, flags, text)[source]
\n

Returns the size, that is needed to render text

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font of the text

  • \n
  • flags (int) – Bitwise OR of the flags like in for QPainter::drawText

  • \n
  • text (str) – Text to be rendered

  • \n
\n
\n
Returns:
\n

Calculated size

\n
\n
\n
\n\n
\n
\ntextMargins(font)[source]
\n

Return margins around the texts

\n

The textSize might include margins around the\ntext, like QFontMetrics::descent(). In situations\nwhere texts need to be aligned in detail, knowing\nthese margins might improve the layout calculations.

\n
\n
Parameters:
\n

font (QFont) – Font of the text

\n
\n
Returns:
\n

tuple (left, right, top, bottom) representing margins

\n
\n
\n
\n\n
\n
\ndraw(painter, rect, flags, text)[source]
\n

Draw the text in a clipping rectangle

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Clipping rectangle

  • \n
  • flags (int) – Bitwise OR of the flags like in for QPainter::drawText()

  • \n
  • text (str) – Text to be rendered

  • \n
\n
\n
\n
\n\n
\n
\nmightRender(text)[source]
\n

Test if a string can be rendered by this text engine

\n
\n
Parameters:
\n

text (str) – Text to be tested

\n
\n
Returns:
\n

True, if it can be rendered

\n
\n
\n
\n\n
\n\n
\n
\n

QwtRichTextEngine

\n
\n
\nclass qwt.text.QwtRichTextEngine[source]
\n

A text engine for Qt rich texts

\n

QwtRichTextEngine renders Qt rich texts using the classes\nof the Scribe framework of Qt.

\n
\n
\nheightForWidth(font, flags, text, width)[source]
\n

Find the height for a given width

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font of the text

  • \n
  • flags (int) – Bitwise OR of the flags used like in QPainter::drawText

  • \n
  • text (str) – Text to be rendered

  • \n
  • width (float) – Width

  • \n
\n
\n
Returns:
\n

Calculated height

\n
\n
\n
\n\n
\n
\ntextSize(font, flags, text)[source]
\n

Returns the size, that is needed to render text

\n
\n
Parameters:
\n
    \n
  • font (QFont) – Font of the text

  • \n
  • flags (int) – Bitwise OR of the flags like in for QPainter::drawText

  • \n
  • text (str) – Text to be rendered

  • \n
\n
\n
Returns:
\n

Calculated size

\n
\n
\n
\n\n
\n
\ndraw(painter, rect, flags, text)[source]
\n

Draw the text in a clipping rectangle

\n
\n
Parameters:
\n
    \n
  • painter (QPainter) – Painter

  • \n
  • rect (QRectF) – Clipping rectangle

  • \n
  • flags (int) – Bitwise OR of the flags like in for QPainter::drawText()

  • \n
  • text (str) – Text to be rendered

  • \n
\n
\n
\n
\n\n
\n
\nmightRender(text)[source]
\n

Test if a string can be rendered by this text engine

\n
\n
Parameters:
\n

text (str) – Text to be tested

\n
\n
Returns:
\n

True, if it can be rendered

\n
\n
\n
\n\n
\n
\ntextMargins(font)[source]
\n

Return margins around the texts

\n

The textSize might include margins around the\ntext, like QFontMetrics::descent(). In situations\nwhere texts need to be aligned in detail, knowing\nthese margins might improve the layout calculations.

\n
\n
Parameters:
\n

font (QFont) – Font of the text

\n
\n
Returns:
\n

tuple (left, right, top, bottom) representing margins

\n
\n
\n
\n\n
\n\n
\n
\n', 'metatags': '\n', 'sourcename': 'reference/text.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d3a59f100>, 'js_tag': .js_tag at 0x7f3d3a59d080>},
) writing output... [ 97%] reference/toqimage -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(
>, 'reference/toqimage') -[app] emitting event: 'html-page-context'('reference/toqimage', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/graphic', 'QwtGraphic', 'N', 'next'), ('reference/text', 'Text widgets', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/toqimage', 'current_page_name': 'reference/toqimage', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d718d9e0>, 'hasdoc': .hasdoc at 0x7fc7d718c400>, 'toctree': . at 0x7fc7d718c540>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'text.html', 'title': 'Text widgets'}, 'next': {'link': 'graphic.html', 'title': 'QwtGraphic'}, 'title': 'NumPy array to QImage', 'meta': {}, 'body': '
\n

NumPy array to QImage

\n
\n
\nqwt.toqimage.array_to_qimage(arr, copy=False)[source]
\n

Convert NumPy array to QImage object

\n
\n
Parameters:
\n
    \n
  • arr (numpy.array) – NumPy array

  • \n
  • copy (bool) – if True, make a copy of the array

  • \n
\n
\n
Returns:
\n

QImage object

\n
\n
\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/toqimage.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d718e0c0>, 'js_tag': .js_tag at 0x7fc7d718eca0>},
>) +[app] emitting event: 'html-page-context'('reference/toqimage', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/graphic', 'QwtGraphic', 'N', 'next'), ('reference/text', 'Text widgets', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/toqimage', 'current_page_name': 'reference/toqimage', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3a59d9e0>, 'hasdoc': .hasdoc at 0x7f3d3a59c400>, 'toctree': . at 0x7f3d3a59c540>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'text.html', 'title': 'Text widgets'}, 'next': {'link': 'graphic.html', 'title': 'QwtGraphic'}, 'title': 'NumPy array to QImage', 'meta': {}, 'body': '
\n

NumPy array to QImage

\n
\n
\nqwt.toqimage.array_to_qimage(arr, copy=False)[source]
\n

Convert NumPy array to QImage object

\n
\n
Parameters:
\n
    \n
  • arr (numpy.array) – NumPy array

  • \n
  • copy (bool) – if True, make a copy of the array

  • \n
\n
\n
Returns:
\n

QImage object

\n
\n
\n
\n\n
\n', 'metatags': '\n', 'sourcename': 'reference/toqimage.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d3a59e0c0>, 'js_tag': .js_tag at 0x7f3d3a59eca0>},
>) writing output... [100%] reference/transform -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) -[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) +[app] emitting event: 'missing-reference'(, >, >) [app] emitting event: 'doctree-resolved'(
, 'reference/transform') -[app] emitting event: 'html-page-context'('reference/transform', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/plot_series', 'Plotting series item', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/transform', 'current_page_name': 'reference/transform', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d718e200>, 'hasdoc': .hasdoc at 0x7fc7d718f920>, 'toctree': . at 0x7fc7d718d080>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'plot_series.html', 'title': 'Plotting series item'}, 'next': None, 'title': 'Coordinate tranformations', 'meta': {}, 'body': '
\n

Coordinate tranformations

\n
\n

QwtTransform

\n
\n
\nclass qwt.transform.QwtTransform[source]
\n

A transformation between coordinate systems

\n

QwtTransform manipulates values, when being mapped between\nthe scale and the paint device coordinate system.

\n

A transformation consists of 2 methods:

\n
\n
    \n
  • transform

  • \n
  • invTransform

  • \n
\n
\n

where one is is the inverse function of the other.

\n

When p1, p2 are the boundaries of the paint device coordinates\nand s1, s2 the boundaries of the scale, QwtScaleMap uses the\nfollowing calculations:

\n
p = p1 + (p2 - p1) * ( T(s) - T(s1) / (T(s2) - T(s1)) )\ns = invT( T(s1) + ( T(s2) - T(s1) ) * (p - p1) / (p2 - p1) )\n
\n
\n
\n
\nbounded(value)[source]
\n

Modify value to be a valid value for the transformation.\nThe default implementation does nothing.

\n
\n\n
\n
\ntransform(value)[source]
\n

Transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

invTransform()

\n
\n
\n\n
\n
\ninvTransform(value)[source]
\n

Inverse transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

transform()

\n
\n
\n\n
\n
\ncopy()[source]
\n
\n
Returns:
\n

Clone of the transformation

\n
\n
\n

The default implementation does nothing.

\n
\n\n
\n\n
\n
\n

QwtNullTransform

\n
\n
\nclass qwt.transform.QwtNullTransform[source]
\n
\n
\ntransform(value)[source]
\n

Transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

invTransform()

\n
\n
\n\n
\n
\ninvTransform(value)[source]
\n

Inverse transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

transform()

\n
\n
\n\n
\n
\ncopy()[source]
\n
\n
Returns:
\n

Clone of the transformation

\n
\n
\n
\n\n
\n\n
\n
\n

QwtLogTransform

\n
\n
\nclass qwt.transform.QwtLogTransform[source]
\n

Logarithmic transformation

\n

QwtLogTransform modifies the values using numpy.log() and\nnumpy.exp().

\n
\n

Note

\n

In the calculations of QwtScaleMap the base of the log function\nhas no effect on the mapping. So QwtLogTransform can be used\nfor logarithmic scale in base 2 or base 10 or any other base.

\n
\n

Extremum values:

\n
\n
    \n
  • QwtLogTransform.LogMin: Smallest allowed value for logarithmic\nscales: 1.0e-150

  • \n
  • QwtLogTransform.LogMax: Largest allowed value for logarithmic\nscales: 1.0e150

  • \n
\n
\n
\n
\nbounded(value)[source]
\n

Modify value to be a valid value for the transformation.

\n
\n
Parameters:
\n

value (float) – Value to be bounded

\n
\n
Returns:
\n

Value modified

\n
\n
\n
\n\n
\n
\ntransform(value)[source]
\n

Transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

invTransform()

\n
\n
\n\n
\n
\ninvTransform(value)[source]
\n

Inverse transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

transform()

\n
\n
\n\n
\n
\ncopy()[source]
\n
\n
Returns:
\n

Clone of the transformation

\n
\n
\n
\n\n
\n\n
\n
\n

QwtPowerTransform

\n
\n
\nclass qwt.transform.QwtPowerTransform(exponent)[source]
\n

A transformation using numpy.pow()

\n

QwtPowerTransform preserves the sign of a value.\nF.e. a transformation with a factor of 2\ntransforms a value of -3 to -9 and v.v. Thus QwtPowerTransform\ncan be used for scales including negative values.

\n
\n
\ntransform(value)[source]
\n

Transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

invTransform()

\n
\n
\n\n
\n
\ninvTransform(value)[source]
\n

Inverse transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

transform()

\n
\n
\n\n
\n
\ncopy()[source]
\n
\n
Returns:
\n

Clone of the transformation

\n
\n
\n
\n\n
\n\n
\n
\n', 'metatags': '\n', 'sourcename': 'reference/transform.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d718f100>, 'js_tag': .js_tag at 0x7fc7d718dee0>},
) +[app] emitting event: 'html-page-context'('reference/transform', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules'), ('reference/plot_series', 'Plotting series item', 'P', 'previous')], 'builder': 'html', 'parents': [{'link': 'index.html', 'title': 'Reference'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'reference/transform', 'current_page_name': 'reference/transform', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3a59e200>, 'hasdoc': .hasdoc at 0x7f3d3a59f920>, 'toctree': . at 0x7f3d3a59d080>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'prev': {'link': 'plot_series.html', 'title': 'Plotting series item'}, 'next': None, 'title': 'Coordinate tranformations', 'meta': {}, 'body': '
\n

Coordinate tranformations

\n
\n

QwtTransform

\n
\n
\nclass qwt.transform.QwtTransform[source]
\n

A transformation between coordinate systems

\n

QwtTransform manipulates values, when being mapped between\nthe scale and the paint device coordinate system.

\n

A transformation consists of 2 methods:

\n
\n
    \n
  • transform

  • \n
  • invTransform

  • \n
\n
\n

where one is is the inverse function of the other.

\n

When p1, p2 are the boundaries of the paint device coordinates\nand s1, s2 the boundaries of the scale, QwtScaleMap uses the\nfollowing calculations:

\n
p = p1 + (p2 - p1) * ( T(s) - T(s1) / (T(s2) - T(s1)) )\ns = invT( T(s1) + ( T(s2) - T(s1) ) * (p - p1) / (p2 - p1) )\n
\n
\n
\n
\nbounded(value)[source]
\n

Modify value to be a valid value for the transformation.\nThe default implementation does nothing.

\n
\n\n
\n
\ntransform(value)[source]
\n

Transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

invTransform()

\n
\n
\n\n
\n
\ninvTransform(value)[source]
\n

Inverse transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

transform()

\n
\n
\n\n
\n
\ncopy()[source]
\n
\n
Returns:
\n

Clone of the transformation

\n
\n
\n

The default implementation does nothing.

\n
\n\n
\n\n
\n
\n

QwtNullTransform

\n
\n
\nclass qwt.transform.QwtNullTransform[source]
\n
\n
\ntransform(value)[source]
\n

Transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

invTransform()

\n
\n
\n\n
\n
\ninvTransform(value)[source]
\n

Inverse transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

transform()

\n
\n
\n\n
\n
\ncopy()[source]
\n
\n
Returns:
\n

Clone of the transformation

\n
\n
\n
\n\n
\n\n
\n
\n

QwtLogTransform

\n
\n
\nclass qwt.transform.QwtLogTransform[source]
\n

Logarithmic transformation

\n

QwtLogTransform modifies the values using numpy.log() and\nnumpy.exp().

\n
\n

Note

\n

In the calculations of QwtScaleMap the base of the log function\nhas no effect on the mapping. So QwtLogTransform can be used\nfor logarithmic scale in base 2 or base 10 or any other base.

\n
\n

Extremum values:

\n
\n
    \n
  • QwtLogTransform.LogMin: Smallest allowed value for logarithmic\nscales: 1.0e-150

  • \n
  • QwtLogTransform.LogMax: Largest allowed value for logarithmic\nscales: 1.0e150

  • \n
\n
\n
\n
\nbounded(value)[source]
\n

Modify value to be a valid value for the transformation.

\n
\n
Parameters:
\n

value (float) – Value to be bounded

\n
\n
Returns:
\n

Value modified

\n
\n
\n
\n\n
\n
\ntransform(value)[source]
\n

Transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

invTransform()

\n
\n
\n\n
\n
\ninvTransform(value)[source]
\n

Inverse transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

transform()

\n
\n
\n\n
\n
\ncopy()[source]
\n
\n
Returns:
\n

Clone of the transformation

\n
\n
\n
\n\n
\n\n
\n
\n

QwtPowerTransform

\n
\n
\nclass qwt.transform.QwtPowerTransform(exponent)[source]
\n

A transformation using numpy.pow()

\n

QwtPowerTransform preserves the sign of a value.\nF.e. a transformation with a factor of 2\ntransforms a value of -3 to -9 and v.v. Thus QwtPowerTransform\ncan be used for scales including negative values.

\n
\n
\ntransform(value)[source]
\n

Transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

invTransform()

\n
\n
\n\n
\n
\ninvTransform(value)[source]
\n

Inverse transformation function

\n
\n
Parameters:
\n

value (float) – Value

\n
\n
Returns:
\n

Modified value

\n
\n
\n
\n

See also

\n

transform()

\n
\n
\n\n
\n
\ncopy()[source]
\n
\n
Returns:
\n

Clone of the transformation

\n
\n
\n
\n\n
\n\n
\n
\n', 'metatags': '\n', 'sourcename': 'reference/transform.rst.txt', 'toc': '\n', 'display_toc': True, 'page_source_suffix': '.rst', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d3a59f100>, 'js_tag': .js_tag at 0x7f3d3a59dee0>},
) -generating indices... genindex [app] emitting event: 'html-page-context'('genindex', 'genindex.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'genindex', 'current_page_name': 'genindex', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d718e980>, 'hasdoc': .hasdoc at 0x7fc7d718e200>, 'toctree': . at 0x7fc7d718dee0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'genindexentries': [('A', [('activate() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.activate')], [], None)), ('align() (qwt.scale_engine.QwtLinearScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine.align')], [('(qwt.scale_engine.QwtLogScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine.align')])], None)), ('alignCanvasToScale() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.alignCanvasToScale')], [], None)), ('alignLegend() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.alignLegend')], [], None)), ('alignment() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.alignment')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.alignment')])], None)), ('alignScales() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.alignScales')], [], None)), ('array_to_qimage() (in module qwt.toqimage)', ([('', 'reference/toqimage.html#qwt.toqimage.array_to_qimage')], [], None)), ('attach() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.attach')], [], None)), ('attachItem() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.attachItem')], [], None)), ('attributes() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.attributes')], [], None)), ('autoRefresh() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.autoRefresh')], [], None)), ('autoReplot() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.autoReplot')], [], None)), ('autoScale() (qwt.scale_engine.QwtLinearScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine.autoScale')], [('(qwt.scale_engine.QwtLogScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine.autoScale')]), ('(qwt.scale_engine.QwtScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.autoScale')])], None)), ('axisAutoScale() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisAutoScale')], [], None)), ('axisEnabled() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisEnabled')], [], None)), ('axisFont() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisFont')], [], None)), ('axisInterval() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisInterval')], [], None)), ('axisMargin() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisMargin')], [], None)), ('axisMaxMajor() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisMaxMajor')], [], None)), ('axisMaxMinor() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisMaxMinor')], [], None)), ('axisScaleDiv() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisScaleDiv')], [], None)), ('axisScaleDraw() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisScaleDraw')], [], None)), ('axisScaleEngine() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisScaleEngine')], [], None)), ('axisStepSize() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisStepSize')], [], None)), ('axisTitle() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisTitle')], [], None)), ('axisValid() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisValid')], [], None)), ('axisWidget() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisWidget')], [], None))]), ('B', [('backgroundBrush() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.backgroundBrush')], [], None)), ('backingStore() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.backingStore')], [], None)), ('base() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.base')], [], None)), ('baseline() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.baseline')], [], None)), ('borderFlags() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.borderFlags')], [], None)), ('borderPath() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.borderPath')], [], None)), ('borderPen() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.borderPen')], [], None)), ('borderRadius() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.borderRadius')], [('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.borderRadius')])], None)), ('bounded() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.bounded')], [('(qwt.transform.QwtLogTransform method)', [('', 'reference/transform.html#qwt.transform.QwtLogTransform.bounded')]), ('(qwt.transform.QwtTransform method)', [('', 'reference/transform.html#qwt.transform.QwtTransform.bounded')])], None)), ('boundingLabelRect() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.boundingLabelRect')], [], None)), ('boundingRect() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.boundingRect')], [('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.boundingRect')]), ('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.boundingRect')]), ('(qwt.plot_series.QwtPlotSeriesItem method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtPlotSeriesItem.boundingRect')]), ('(qwt.plot_series.QwtPointArrayData method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData.boundingRect')]), ('(qwt.plot_series.QwtSeriesData method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesData.boundingRect')]), ('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.boundingRect')])], None)), ('brush() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.brush')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.brush')])], None)), ('buildCanvasMaps() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.buildCanvasMaps')], [], None)), ('buildInterval() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.buildInterval')], [], None)), ('buildMajorTicks() (qwt.scale_engine.QwtLinearScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine.buildMajorTicks')], [('(qwt.scale_engine.QwtLogScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine.buildMajorTicks')])], None)), ('buildMinorTicks() (qwt.scale_engine.QwtLinearScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine.buildMinorTicks')], [('(qwt.scale_engine.QwtLogScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine.buildMinorTicks')])], None)), ('buildTicks() (qwt.scale_engine.QwtLinearScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine.buildTicks')], [('(qwt.scale_engine.QwtLogScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine.buildTicks')])], None))]), ('C', [('cachePolicy() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.cachePolicy')], [], None)), ('canvas() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.canvas')], [], None)), ('canvasBackground() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.canvasBackground')], [], None)), ('canvasMap() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.canvasMap')], [], None)), ('canvasMargin() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.canvasMargin')], [], None)), ('canvasRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.canvasRect')], [], None)), ('clear() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.clear')], [], None)), ('clipRegion() (qwt.plot_directpainter.QwtPlotDirectPainter method)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.clipRegion')], [], None)), ('closePolyline() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.closePolyline')], [], None)), ('closestPoint() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.closestPoint')], [], None)), ('color() (qwt.color_map.QwtAlphaColorMap method)', ([('', 'reference/plot.html#qwt.color_map.QwtAlphaColorMap.color')], [('(qwt.color_map.QwtColorMap method)', [('', 'reference/plot.html#qwt.color_map.QwtColorMap.color')]), ('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.color')])], None)), ('colorBarInterval() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.colorBarInterval')], [], None)), ('colorBarRect() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.colorBarRect')], [], None)), ('colorBarWidth() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.colorBarWidth')], [], None)), ('colorMap() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.colorMap')], [], None)), ('colorTable() (qwt.color_map.QwtColorMap method)', ([('', 'reference/plot.html#qwt.color_map.QwtColorMap.colorTable')], [], None)), ('contains() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.contains')], [('(qwt.scale_div.QwtScaleDiv method)', [('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.contains')]), ('(qwt.scale_engine.QwtScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.contains')])], None)), ('contentsWidget() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.contentsWidget')], [], None)), ('controlPointRect() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.controlPointRect')], [], None)), ('copy() (qwt.transform.QwtLogTransform method)', ([('', 'reference/transform.html#qwt.transform.QwtLogTransform.copy')], [('(qwt.transform.QwtNullTransform method)', [('', 'reference/transform.html#qwt.transform.QwtNullTransform.copy')]), ('(qwt.transform.QwtPowerTransform method)', [('', 'reference/transform.html#qwt.transform.QwtPowerTransform.copy')]), ('(qwt.transform.QwtTransform method)', [('', 'reference/transform.html#qwt.transform.QwtTransform.copy')])], None)), ('createWidget() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.createWidget')], [], None))]), ('D', [('data() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.data')], [('(qwt.plot_series.QwtSeriesStore method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.data')])], None)), ('dataRect() (qwt.plot_series.QwtSeriesStore method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.dataRect')], [], None)), ('dataSize() (qwt.plot_series.QwtSeriesStore method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.dataSize')], [], None)), ('defaultItemMode() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.defaultItemMode')], [], None)), ('defaultSize() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.defaultSize')], [], None)), ('detach() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.detach')], [], None)), ('detachItems() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.detachItems')], [], None)), ('dimForLength() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.dimForLength')], [], None)), ('directPaint() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.directPaint')], [], None)), ('discardFlags() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.discardFlags')], [], None)), ('divideInterval() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.divideInterval')], [], None)), ('divideScale() (qwt.scale_engine.QwtLinearScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine.divideScale')], [('(qwt.scale_engine.QwtLogScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine.divideScale')]), ('(qwt.scale_engine.QwtScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.divideScale')])], None)), ('draw() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.draw')], [('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.draw')]), ('(qwt.plot_series.QwtPlotSeriesItem method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtPlotSeriesItem.draw')]), ('(qwt.scale_draw.QwtAbstractScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.draw')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.draw')]), ('(qwt.text.QwtPlainTextEngine method)', [('', 'reference/text.html#qwt.text.QwtPlainTextEngine.draw')]), ('(qwt.text.QwtRichTextEngine method)', [('', 'reference/text.html#qwt.text.QwtRichTextEngine.draw')]), ('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.draw')]), ('(qwt.text.QwtTextEngine method)', [('', 'reference/text.html#qwt.text.QwtTextEngine.draw')])], None)), ('drawBackbone() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.drawBackbone')], [('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.drawBackbone')])], None)), ('drawBorder() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.drawBorder')], [], None)), ('drawCanvas() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.drawCanvas')], [], None)), ('drawColorBar() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.drawColorBar')], [], None)), ('drawContents() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.drawContents')], [], None)), ('drawCurve() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawCurve')], [], None)), ('drawDots() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawDots')], [], None)), ('drawFocusIndicator() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.drawFocusIndicator')], [], None)), ('drawImage() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.drawImage')], [], None)), ('drawItems() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.drawItems')], [], None)), ('drawLabel() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.drawLabel')], [('(qwt.scale_draw.QwtAbstractScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.drawLabel')]), ('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.drawLabel')])], None)), ('drawLines() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawLines')], [('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.drawLines')])], None)), ('drawPath() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.drawPath')], [], None)), ('drawPixmap() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.drawPixmap')], [], None)), ('drawSeries() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawSeries')], [('(qwt.plot_directpainter.QwtPlotDirectPainter method)', [('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.drawSeries')]), ('(qwt.plot_series.QwtPlotSeriesItem method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtPlotSeriesItem.drawSeries')])], None)), ('drawSteps() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawSteps')], [], None)), ('drawSticks() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawSticks')], [], None)), ('drawSymbol() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.drawSymbol')], [], None)), ('drawSymbols() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawSymbols')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.drawSymbols')])], None)), ('drawText() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.drawText')], [], None)), ('drawTick() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.drawTick')], [('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.drawTick')])], None)), ('drawTitle() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.drawTitle')], [], None))]), ('E', [('enableAxis() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.enableAxis')], [], None)), ('enableComponent() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.enableComponent')], [], None)), ('enableX() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.enableX')], [], None)), ('enableXMin() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.enableXMin')], [], None)), ('enableY() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.enableY')], [], None)), ('enableYMin() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.enableYMin')], [], None)), ('endBorderDist() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.endBorderDist')], [], None)), ('event() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.event')], [('(qwt.plot_canvas.QwtPlotCanvas method)', [('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.event')])], None)), ('eventFilter() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.eventFilter')], [('(qwt.plot.QwtPlot method)', [('', 'reference/plot.html#qwt.plot.QwtPlot.eventFilter')]), ('(qwt.plot_directpainter.QwtPlotDirectPainter method)', [('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.eventFilter')])], None)), ('expandLineBreaks() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.expandLineBreaks')], [], None)), ('exportTo() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.exportTo')], [('(qwt.plot_renderer.QwtPlotRenderer method)', [('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.exportTo')])], None)), ('extend() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.extend')], [], None)), ('extend_fraction() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.extend_fraction')], [], None)), ('extent() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.extent')], [('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.extent')])], None))]), ('F', [('fillCurve() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.fillCurve')], [], None)), ('flatStyle() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.flatStyle')], [], None)), ('focusIndicator() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.focusIndicator')], [], None)), ('font() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.font')], [], None)), ('footer() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.footer')], [], None)), ('footerLabel() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.footerLabel')], [], None)), ('footerRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.footerRect')], [], None))]), ('G', [('getBorderDistHint() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.getBorderDistHint')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.getBorderDistHint')])], None)), ('getCanvasMarginHint() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.getCanvasMarginHint')], [], None)), ('getCanvasMarginsHint() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.getCanvasMarginsHint')], [], None)), ('getMinBorderDist() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.getMinBorderDist')], [], None)), ('graphic() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.graphic')], [], None))]), ('H', [('hasClipping() (qwt.plot_directpainter.QwtPlotDirectPainter method)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.hasClipping')], [], None)), ('hasComponent() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.hasComponent')], [], None)), ('hasRole() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.hasRole')], [], None)), ('heightForWidth() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.heightForWidth')], [('(qwt.text.QwtPlainTextEngine method)', [('', 'reference/text.html#qwt.text.QwtPlainTextEngine.heightForWidth')]), ('(qwt.text.QwtRichTextEngine method)', [('', 'reference/text.html#qwt.text.QwtRichTextEngine.heightForWidth')]), ('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.heightForWidth')]), ('(qwt.text.QwtTextEngine method)', [('', 'reference/text.html#qwt.text.QwtTextEngine.heightForWidth')]), ('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.heightForWidth')])], None)), ('hide() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.hide')], [], None)), ('horizontalScrollBar() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.horizontalScrollBar')], [], None))]), ('I', [('icon() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.icon')], [('(qwt.legend.QwtLegendLabel method)', [('', 'reference/plot.html#qwt.legend.QwtLegendLabel.icon')]), ('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.icon')])], None)), ('indent() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.indent')], [], None)), ('init() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.init')], [], None)), ('initAxesData() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.initAxesData')], [], None)), ('initScale() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.initScale')], [], None)), ('insertItem() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.insertItem')], [], None)), ('insertLegend() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.insertLegend')], [], None)), ('intersect() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.intersect')], [], None)), ('intersects() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.intersects')], [], None)), ('interval() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.interval')], [], None)), ('invalidate() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.invalidate')], [('(qwt.plot_layout.QwtPlotLayout method)', [('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.invalidate')])], None)), ('invalidateBackingStore() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.invalidateBackingStore')], [], None)), ('invalidateCache() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.invalidateCache')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.invalidateCache')])], None)), ('invert() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.invert')], [], None)), ('inverted() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.inverted')], [('(qwt.scale_div.QwtScaleDiv method)', [('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.inverted')])], None)), ('invTransform() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.invTransform')], [('(qwt.scale_map.QwtScaleMap method)', [('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.invTransform')]), ('(qwt.transform.QwtLogTransform method)', [('', 'reference/transform.html#qwt.transform.QwtLogTransform.invTransform')]), ('(qwt.transform.QwtNullTransform method)', [('', 'reference/transform.html#qwt.transform.QwtNullTransform.invTransform')]), ('(qwt.transform.QwtPowerTransform method)', [('', 'reference/transform.html#qwt.transform.QwtPowerTransform.invTransform')]), ('(qwt.transform.QwtTransform method)', [('', 'reference/transform.html#qwt.transform.QwtTransform.invTransform')])], None)), ('invTransform_scalar() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.invTransform_scalar')], [], None)), ('isChecked() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.isChecked')], [], None)), ('isColorBarEnabled() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.isColorBarEnabled')], [], None)), ('isDown() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.isDown')], [], None)), ('isEmpty() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.isEmpty')], [('(qwt.scale_div.QwtScaleDiv method)', [('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.isEmpty')]), ('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.isEmpty')])], None)), ('isIncreasing() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.isIncreasing')], [], None)), ('isInverting() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.isInverting')], [], None)), ('isNull() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.isNull')], [('(qwt.interval.QwtInterval method)', [('', 'reference/interval.html#qwt.interval.QwtInterval.isNull')])], None)), ('isPinPointEnabled() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.isPinPointEnabled')], [], None)), ('isValid() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.isValid')], [('(qwt.legend.QwtLegendData method)', [('', 'reference/plot.html#qwt.legend.QwtLegendData.isValid')])], None)), ('isVisible() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.isVisible')], [], None)), ('itemChanged() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.itemChanged')], [], None)), ('itemInfo() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.itemInfo')], [], None)), ('itemList() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.itemList')], [], None)), ('itemMode() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.itemMode')], [], None))]), ('K', [('keyPressEvent() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.keyPressEvent')], [], None)), ('keyReleaseEvent() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.keyReleaseEvent')], [], None))]), ('L', [('label() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.label')], [('(qwt.scale_draw.QwtAbstractScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.label')])], None)), ('labelAlignment() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.labelAlignment')], [('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelAlignment')])], None)), ('labelAutoSize() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelAutoSize')], [], None)), ('labelOrientation() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.labelOrientation')], [], None)), ('labelPosition() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelPosition')], [], None)), ('labelRect() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelRect')], [], None)), ('labelRotation() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelRotation')], [], None)), ('labelSize() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelSize')], [], None)), ('labelTransformation() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelTransformation')], [], None)), ('layoutFlags() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.layoutFlags')], [], None)), ('layoutLegend() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.layoutLegend')], [], None)), ('layoutScale() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.layoutScale')], [], None)), ('legend() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.legend')], [], None)), ('legendChanged() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.legendChanged')], [], None)), ('legendData() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.legendData')], [], None)), ('legendIcon() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.legendIcon')], [('(qwt.plot_curve.QwtPlotCurve method)', [('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.legendIcon')]), ('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.legendIcon')])], None)), ('legendIconSize() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.legendIconSize')], [], None)), ('legendPosition() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.legendPosition')], [], None)), ('legendRatio() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.legendRatio')], [], None)), ('legendRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.legendRect')], [], None)), ('legendWidget() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.legendWidget')], [], None)), ('legendWidgets() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.legendWidgets')], [], None)), ('length() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.length')], [], None)), ('limited() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.limited')], [], None)), ('linePen() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.linePen')], [], None)), ('lineStyle() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.lineStyle')], [], None)), ('lowerBound() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.lowerBound')], [], None)), ('lowerMargin() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.lowerMargin')], [], None))]), ('M', [('majorPen() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.majorPen')], [], None)), ('make() (qwt.plot_curve.QwtPlotCurve class method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.make')], [('(qwt.plot_grid.QwtPlotGrid class method)', [('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.make')]), ('(qwt.plot_marker.QwtPlotMarker class method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.make')]), ('(qwt.symbol.QwtSymbol class method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.make')]), ('(qwt.text.QwtText class method)', [('', 'reference/text.html#qwt.text.QwtText.make')])], None)), ('margin() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.margin')], [('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.margin')])], None)), ('maxColumns() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.maxColumns')], [], None)), ('maxLabelHeight() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.maxLabelHeight')], [], None)), ('maxLabelWidth() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.maxLabelWidth')], [], None)), ('maxTickLength() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.maxTickLength')], [], None)), ('maxValue() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.maxValue')], [], None)), ('mightRender() (qwt.text.QwtPlainTextEngine method)', ([('', 'reference/text.html#qwt.text.QwtPlainTextEngine.mightRender')], [('(qwt.text.QwtRichTextEngine method)', [('', 'reference/text.html#qwt.text.QwtRichTextEngine.mightRender')]), ('(qwt.text.QwtTextEngine method)', [('', 'reference/text.html#qwt.text.QwtTextEngine.mightRender')])], None)), ('minimumExtent() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.minimumExtent')], [], None)), ('minimumSizeHint() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.minimumSizeHint')], [('(qwt.plot_layout.QwtPlotLayout method)', [('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.minimumSizeHint')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.minimumSizeHint')]), ('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.minimumSizeHint')])], None)), ('minLabelDist() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.minLabelDist')], [], None)), ('minLength() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.minLength')], [], None)), ('minorPen() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.minorPen')], [], None)), ('minValue() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.minValue')], [], None)), ('mode() (qwt.color_map.QwtLinearColorMap method)', ([('', 'reference/plot.html#qwt.color_map.QwtLinearColorMap.mode')], [('(qwt.legend.QwtLegendData method)', [('', 'reference/plot.html#qwt.legend.QwtLegendData.mode')])], None)), ('module', ([], [('qwt', [('', 'index.html#module-qwt')]), ('qwt.color_map', [('', 'reference/plot.html#module-qwt.color_map')]), ('qwt.graphic', [('', 'reference/graphic.html#module-qwt.graphic')]), ('qwt.interval', [('', 'reference/interval.html#module-qwt.interval')]), ('qwt.legend', [('', 'reference/plot.html#module-qwt.legend')]), ('qwt.plot', [('', 'reference/plot.html#module-qwt.plot')]), ('qwt.plot_canvas', [('', 'reference/plot.html#module-qwt.plot_canvas')]), ('qwt.plot_curve', [('', 'reference/plot.html#module-qwt.plot_curve')]), ('qwt.plot_directpainter', [('', 'reference/plot_directpainter.html#module-qwt.plot_directpainter')]), ('qwt.plot_grid', [('', 'reference/plot.html#module-qwt.plot_grid')]), ('qwt.plot_layout', [('', 'reference/plot_layout.html#module-qwt.plot_layout')]), ('qwt.plot_marker', [('', 'reference/plot.html#module-qwt.plot_marker')]), ('qwt.plot_renderer', [('', 'reference/plot.html#module-qwt.plot_renderer')]), ('qwt.plot_series', [('', 'reference/plot_series.html#module-qwt.plot_series')]), ('qwt.scale_div', [('', 'reference/scale.html#module-qwt.scale_div')]), ('qwt.scale_draw', [('', 'reference/scale.html#module-qwt.scale_draw')]), ('qwt.scale_engine', [('', 'reference/scale.html#module-qwt.scale_engine')]), ('qwt.scale_map', [('', 'reference/scale.html#module-qwt.scale_map')]), ('qwt.scale_widget', [('', 'reference/scale.html#module-qwt.scale_widget')]), ('qwt.symbol', [('', 'reference/symbol.html#module-qwt.symbol')]), ('qwt.text', [('', 'reference/text.html#module-qwt.text')]), ('qwt.toqimage', [('', 'reference/toqimage.html#module-qwt.toqimage')]), ('qwt.transform', [('', 'reference/transform.html#module-qwt.transform')])], None)), ('mousePressEvent() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.mousePressEvent')], [], None)), ('mouseReleaseEvent() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.mouseReleaseEvent')], [], None)), ('move() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.move')], [], None))]), ('N', [('normalized() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.normalized')], [], None))]), ('O', [('orientation() (qwt.plot_series.QwtPlotSeriesItem method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPlotSeriesItem.orientation')], [('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.orientation')])], None))]), ('P', [('p1() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.p1')], [], None)), ('p2() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.p2')], [], None)), ('paintEvent() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.paintEvent')], [('(qwt.plot_canvas.QwtPlotCanvas method)', [('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.paintEvent')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.paintEvent')]), ('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.paintEvent')])], None)), ('paintRect() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.paintRect')], [], None)), ('path() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.path')], [], None)), ('pDist() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.pDist')], [], None)), ('pen() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.pen')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.pen')])], None)), ('penWidth() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.penWidth')], [], None)), ('pinPoint() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.pinPoint')], [], None)), ('pixmap() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.pixmap')], [], None)), ('plainText() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.plainText')], [], None)), ('plot() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.plot')], [('(qwt.plot_canvas.QwtPlotCanvas method)', [('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.plot')])], None)), ('plotLayout() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.plotLayout')], [], None)), ('pos() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.pos')], [], None)), ('print_() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.print_')], [], None))]), ('Q', [('qwt', ([], [('module', [('', 'index.html#module-qwt')])], None)), ('qwt.color_map', ([], [('module', [('', 'reference/plot.html#module-qwt.color_map')])], None)), ('qwt.graphic', ([], [('module', [('', 'reference/graphic.html#module-qwt.graphic')])], None)), ('qwt.interval', ([], [('module', [('', 'reference/interval.html#module-qwt.interval')])], None)), ('qwt.legend', ([], [('module', [('', 'reference/plot.html#module-qwt.legend')])], None)), ('qwt.plot', ([], [('module', [('', 'reference/plot.html#module-qwt.plot')])], None)), ('qwt.plot_canvas', ([], [('module', [('', 'reference/plot.html#module-qwt.plot_canvas')])], None)), ('qwt.plot_curve', ([], [('module', [('', 'reference/plot.html#module-qwt.plot_curve')])], None)), ('qwt.plot_directpainter', ([], [('module', [('', 'reference/plot_directpainter.html#module-qwt.plot_directpainter')])], None)), ('qwt.plot_grid', ([], [('module', [('', 'reference/plot.html#module-qwt.plot_grid')])], None)), ('qwt.plot_layout', ([], [('module', [('', 'reference/plot_layout.html#module-qwt.plot_layout')])], None)), ('qwt.plot_marker', ([], [('module', [('', 'reference/plot.html#module-qwt.plot_marker')])], None)), ('qwt.plot_renderer', ([], [('module', [('', 'reference/plot.html#module-qwt.plot_renderer')])], None)), ('qwt.plot_series', ([], [('module', [('', 'reference/plot_series.html#module-qwt.plot_series')])], None)), ('qwt.scale_div', ([], [('module', [('', 'reference/scale.html#module-qwt.scale_div')])], None)), ('qwt.scale_draw', ([], [('module', [('', 'reference/scale.html#module-qwt.scale_draw')])], None)), ('qwt.scale_engine', ([], [('module', [('', 'reference/scale.html#module-qwt.scale_engine')])], None)), ('qwt.scale_map', ([], [('module', [('', 'reference/scale.html#module-qwt.scale_map')])], None)), ('qwt.scale_widget', ([], [('module', [('', 'reference/scale.html#module-qwt.scale_widget')])], None)), ('qwt.symbol', ([], [('module', [('', 'reference/symbol.html#module-qwt.symbol')])], None)), ('qwt.text', ([], [('module', [('', 'reference/text.html#module-qwt.text')])], None)), ('qwt.toqimage', ([], [('module', [('', 'reference/toqimage.html#module-qwt.toqimage')])], None)), ('qwt.transform', ([], [('module', [('', 'reference/transform.html#module-qwt.transform')])], None)), ('QwtAbstractScaleDraw (class in qwt.scale_draw)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw')], [], None)), ('QwtAbstractScaleDraw.QwtAbstractScaleDraw (class in qwt.scale_draw)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.QwtAbstractScaleDraw')], [], None)), ('QwtAlphaColorMap (class in qwt.color_map)', ([('', 'reference/plot.html#qwt.color_map.QwtAlphaColorMap')], [], None)), ('QwtAlphaColorMap.QwtAlphaColorMap (class in qwt.color_map)', ([('', 'reference/plot.html#qwt.color_map.QwtAlphaColorMap.QwtAlphaColorMap')], [], None)), ('QwtColorMap (class in qwt.color_map)', ([('', 'reference/plot.html#qwt.color_map.QwtColorMap')], [], None)), ('QwtColorMap.QwtColorMap (class in qwt.color_map)', ([('', 'reference/plot.html#qwt.color_map.QwtColorMap.QwtColorMap')], [], None)), ('QwtGraphic (class in qwt.graphic)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic')], [], None)), ('QwtGraphic.QwtGraphic (class in qwt.graphic)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.QwtGraphic')], [], None)), ('QwtInterval (class in qwt.interval)', ([('', 'reference/interval.html#qwt.interval.QwtInterval')], [], None)), ('QwtInterval.QwtInterval (class in qwt.interval)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.QwtInterval')], [], None)), ('QwtLegend (class in qwt.legend)', ([('', 'reference/plot.html#qwt.legend.QwtLegend')], [], None)), ('QwtLegend.checked (in module qwt.legend)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.checked')], [], None)), ('QwtLegend.clicked (in module qwt.legend)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.clicked')], [], None)), ('QwtLegend.QwtLegend (class in qwt.legend)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.QwtLegend')], [], None)), ('QwtLegendData (class in qwt.legend)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData')], [], None)), ('QwtLegendLabel (class in qwt.legend)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel')], [], None)), ('QwtLinearColorMap (class in qwt.color_map)', ([('', 'reference/plot.html#qwt.color_map.QwtLinearColorMap')], [], None)), ('QwtLinearColorMap.QwtLinearColorMap (class in qwt.color_map)', ([('', 'reference/plot.html#qwt.color_map.QwtLinearColorMap.QwtLinearColorMap')], [], None)), ('QwtLinearScaleEngine (class in qwt.scale_engine)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine')], [], None)), ('QwtLogScaleEngine (class in qwt.scale_engine)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine')], [], None)), ('QwtLogTransform (class in qwt.transform)', ([('', 'reference/transform.html#qwt.transform.QwtLogTransform')], [], None)), ('QwtNullTransform (class in qwt.transform)', ([('', 'reference/transform.html#qwt.transform.QwtNullTransform')], [], None)), ('QwtPlainTextEngine (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtPlainTextEngine')], [], None)), ('QwtPlot (class in qwt.plot)', ([('', 'reference/plot.html#qwt.plot.QwtPlot')], [], None)), ('QwtPlot.itemAttached (in module qwt.plot)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.itemAttached')], [], None)), ('QwtPlot.legendDataChanged (in module qwt.plot)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.legendDataChanged')], [], None)), ('QwtPlot.QwtPlot (class in qwt.plot)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.QwtPlot')], [], None)), ('QwtPlotCanvas (class in qwt.plot_canvas)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas')], [], None)), ('QwtPlotCanvas.QwtPlotCanvas (class in qwt.plot_canvas)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.QwtPlotCanvas')], [], None)), ('QwtPlotCurve (class in qwt.plot_curve)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve')], [], None)), ('QwtPlotCurve.QwtPlotCurve (class in qwt.plot_curve)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.QwtPlotCurve')], [], None)), ('QwtPlotDirectPainter (class in qwt.plot_directpainter)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter')], [], None)), ('QwtPlotGrid (class in qwt.plot_grid)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid')], [], None)), ('QwtPlotItem (class in qwt.plot)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem')], [], None)), ('QwtPlotItem.QwtPlotItem (class in qwt.plot)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.QwtPlotItem')], [], None)), ('QwtPlotLayout (class in qwt.plot_layout)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout')], [], None)), ('QwtPlotMarker (class in qwt.plot_marker)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker')], [], None)), ('QwtPlotRenderer (class in qwt.plot_renderer)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer')], [], None)), ('QwtPlotSeriesItem (class in qwt.plot_series)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPlotSeriesItem')], [], None)), ('QwtPointArrayData (class in qwt.plot_series)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData')], [], None)), ('QwtPointArrayData.QwtCQwtPointArrayDataolorMap (class in qwt.plot_series)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData.QwtCQwtPointArrayDataolorMap')], [], None)), ('QwtPowerTransform (class in qwt.transform)', ([('', 'reference/transform.html#qwt.transform.QwtPowerTransform')], [], None)), ('QwtRichTextEngine (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtRichTextEngine')], [], None)), ('QwtScaleDiv (class in qwt.scale_div)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv')], [], None)), ('QwtScaleDiv.QwtScaleDiv (class in qwt.scale_div)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.QwtScaleDiv')], [], None)), ('QwtScaleDraw (class in qwt.scale_draw)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw')], [], None)), ('QwtScaleDraw.QwtScaleDraw (class in qwt.scale_draw)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.QwtScaleDraw')], [], None)), ('QwtScaleEngine (class in qwt.scale_engine)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine')], [], None)), ('QwtScaleMap (class in qwt.scale_map)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap')], [], None)), ('QwtScaleMap.QwtScaleMap (class in qwt.scale_map)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.QwtScaleMap')], [], None)), ('QwtScaleWidget (class in qwt.scale_widget)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget')], [], None)), ('QwtScaleWidget.QwtScaleWidget (class in qwt.scale_widget)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.QwtScaleWidget')], [], None)), ('QwtSeriesData (class in qwt.plot_series)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesData')], [], None)), ('QwtSeriesStore (class in qwt.plot_series)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore')], [], None)), ('QwtSymbol (class in qwt.symbol)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol')], [], None)), ('QwtSymbol.QwtSymbol (class in qwt.symbol)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.QwtSymbol')], [], None)), ('QwtText (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtText')], [], None)), ('QwtText.QwtText (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtText.QwtText')], [], None)), ('QwtTextEngine (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtTextEngine')], [], None)), ('QwtTextLabel (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtTextLabel')], [], None)), ('QwtTextLabel.QwtTextLabel (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.QwtTextLabel')], [], None)), ('QwtTransform (class in qwt.transform)', ([('', 'reference/transform.html#qwt.transform.QwtTransform')], [], None))]), ('R', [('range() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.range')], [], None)), ('reference() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.reference')], [], None)), ('removeItem() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.removeItem')], [], None)), ('render() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.render')], [('(qwt.plot_renderer.QwtPlotRenderer method)', [('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.render')])], None)), ('renderCanvas() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderCanvas')], [], None)), ('renderDocument() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderDocument')], [], None)), ('renderFlags() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.renderFlags')], [], None)), ('renderFooter() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderFooter')], [], None)), ('renderItem() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.renderItem')], [], None)), ('renderLegend() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.renderLegend')], [('(qwt.plot_renderer.QwtPlotRenderer method)', [('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderLegend')])], None)), ('renderScale() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderScale')], [], None)), ('renderSymbols() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.renderSymbols')], [], None)), ('renderTitle() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderTitle')], [], None)), ('renderTo() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderTo')], [], None)), ('replot() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.replot')], [('(qwt.plot_canvas.QwtPlotCanvas method)', [('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.replot')])], None)), ('reset() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.reset')], [('(qwt.plot_directpainter.QwtPlotDirectPainter method)', [('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.reset')])], None)), ('resizeEvent() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.resizeEvent')], [('(qwt.plot_canvas.QwtPlotCanvas method)', [('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.resizeEvent')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.resizeEvent')])], None)), ('rtti() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.rtti')], [('(qwt.plot_curve.QwtPlotCurve method)', [('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.rtti')]), ('(qwt.plot_grid.QwtPlotGrid method)', [('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.rtti')]), ('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.rtti')])], None))]), ('S', [('s1() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.s1')], [], None)), ('s2() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.s2')], [], None)), ('sample() (qwt.plot_series.QwtPointArrayData method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData.sample')], [('(qwt.plot_series.QwtSeriesData method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesData.sample')]), ('(qwt.plot_series.QwtSeriesStore method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.sample')])], None)), ('scaleChange() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.scaleChange')], [], None)), ('scaledBoundingRect() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.scaledBoundingRect')], [], None)), ('scaleDiv() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.scaleDiv')], [], None)), ('scaleDraw() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.scaleDraw')], [], None)), ('scaleMap() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.scaleMap')], [], None)), ('scaleRect() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.scaleRect')], [('(qwt.plot_layout.QwtPlotLayout method)', [('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.scaleRect')])], None)), ('sDist() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.sDist')], [], None)), ('setAlignCanvasToScales() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setAlignCanvasToScales')], [], None)), ('setAlignment() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.setAlignment')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setAlignment')])], None)), ('setAttribute() (qwt.plot_directpainter.QwtPlotDirectPainter method)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.setAttribute')], [('(qwt.scale_engine.QwtScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.setAttribute')])], None)), ('setAttributes() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.setAttributes')], [], None)), ('setAutoReplot() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAutoReplot')], [], None)), ('setAxes() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setAxes')], [], None)), ('setAxis() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setAxis')], [], None)), ('setAxisAutoScale() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisAutoScale')], [], None)), ('setAxisFont() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisFont')], [], None)), ('setAxisLabelAlignment() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisLabelAlignment')], [], None)), ('setAxisLabelAutoSize() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisLabelAutoSize')], [], None)), ('setAxisLabelRotation() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisLabelRotation')], [], None)), ('setAxisMargin() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisMargin')], [], None)), ('setAxisMaxMajor() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisMaxMajor')], [], None)), ('setAxisMaxMinor() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisMaxMinor')], [], None)), ('setAxisScale() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisScale')], [], None)), ('setAxisScaleDiv() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisScaleDiv')], [], None)), ('setAxisScaleDraw() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisScaleDraw')], [], None)), ('setAxisScaleEngine() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisScaleEngine')], [], None)), ('setAxisTitle() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisTitle')], [], None)), ('setBackgroundBrush() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.setBackgroundBrush')], [], None)), ('setBase() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.setBase')], [], None)), ('setBaseline() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setBaseline')], [], None)), ('setBorderDist() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setBorderDist')], [], None)), ('setBorderFlags() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.setBorderFlags')], [], None)), ('setBorderPen() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.setBorderPen')], [], None)), ('setBorderRadius() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.setBorderRadius')], [('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.setBorderRadius')])], None)), ('setBrush() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setBrush')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setBrush')])], None)), ('setCachePolicy() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setCachePolicy')], [], None)), ('setCanvas() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setCanvas')], [], None)), ('setCanvasBackground() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setCanvasBackground')], [], None)), ('setCanvasMargin() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setCanvasMargin')], [], None)), ('setCanvasRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setCanvasRect')], [], None)), ('setChecked() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setChecked')], [], None)), ('setClipping() (qwt.plot_directpainter.QwtPlotDirectPainter method)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.setClipping')], [], None)), ('setClipRegion() (qwt.plot_directpainter.QwtPlotDirectPainter method)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.setClipRegion')], [], None)), ('setColor() (qwt.color_map.QwtAlphaColorMap method)', ([('', 'reference/plot.html#qwt.color_map.QwtAlphaColorMap.setColor')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setColor')]), ('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.setColor')])], None)), ('setColorBarEnabled() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setColorBarEnabled')], [], None)), ('setColorBarWidth() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setColorBarWidth')], [], None)), ('setColorMap() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setColorMap')], [], None)), ('setCurveAttribute() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setCurveAttribute')], [], None)), ('setData() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setData')], [('(qwt.plot_curve.QwtPlotCurve method)', [('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setData')]), ('(qwt.plot_series.QwtSeriesStore method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.setData')])], None)), ('setDefaultItemMode() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.setDefaultItemMode')], [], None)), ('setDefaultSize() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.setDefaultSize')], [], None)), ('setDiscardFlag() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.setDiscardFlag')], [], None)), ('setDiscardFlags() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.setDiscardFlags')], [], None)), ('setDown() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setDown')], [], None)), ('setFlatStyle() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setFlatStyle')], [], None)), ('setFocusIndicator() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.setFocusIndicator')], [], None)), ('setFont() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.setFont')], [], None)), ('setFooter() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setFooter')], [], None)), ('setFooterRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setFooterRect')], [], None)), ('setGraphic() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setGraphic')], [], None)), ('setIcon() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setIcon')], [('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.setIcon')])], None)), ('setIndent() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.setIndent')], [], None)), ('setInterval() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.setInterval')], [('(qwt.scale_div.QwtScaleDiv method)', [('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.setInterval')])], None)), ('setItemAttribute() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setItemAttribute')], [], None)), ('setItemInterest() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setItemInterest')], [], None)), ('setItemMode() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setItemMode')], [], None)), ('setLabel() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setLabel')], [], None)), ('setLabelAlignment() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setLabelAlignment')], [('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.setLabelAlignment')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setLabelAlignment')])], None)), ('setLabelAutoSize() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.setLabelAutoSize')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setLabelAutoSize')])], None)), ('setLabelOrientation() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setLabelOrientation')], [], None)), ('setLabelRotation() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.setLabelRotation')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setLabelRotation')])], None)), ('setLayoutAttribute() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.setLayoutAttribute')], [], None)), ('setLayoutFlag() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.setLayoutFlag')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setLayoutFlag')])], None)), ('setLayoutFlags() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.setLayoutFlags')], [], None)), ('setLegendAttribute() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setLegendAttribute')], [], None)), ('setLegendIconSize() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setLegendIconSize')], [], None)), ('setLegendPosition() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setLegendPosition')], [], None)), ('setLegendRatio() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setLegendRatio')], [], None)), ('setLegendRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setLegendRect')], [], None)), ('setLength() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.setLength')], [], None)), ('setLinePen() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setLinePen')], [], None)), ('setLineStyle() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setLineStyle')], [], None)), ('setLowerBound() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.setLowerBound')], [], None)), ('setMajorPen() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.setMajorPen')], [], None)), ('setMargin() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setMargin')], [('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.setMargin')])], None)), ('setMargins() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.setMargins')], [], None)), ('setMaxColumns() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.setMaxColumns')], [], None)), ('setMaxValue() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.setMaxValue')], [], None)), ('setMinBorderDist() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setMinBorderDist')], [], None)), ('setMinimumExtent() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setMinimumExtent')], [], None)), ('setMinorPen() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.setMinorPen')], [], None)), ('setMinValue() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.setMinValue')], [], None)), ('setMode() (qwt.color_map.QwtLinearColorMap method)', ([('', 'reference/plot.html#qwt.color_map.QwtLinearColorMap.setMode')], [], None)), ('setOrientation() (qwt.plot_series.QwtPlotSeriesItem method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPlotSeriesItem.setOrientation')], [], None)), ('setPaintAttribute() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.setPaintAttribute')], [('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.setPaintAttribute')])], None)), ('setPaintInterval() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.setPaintInterval')], [], None)), ('setPath() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setPath')], [], None)), ('setPen() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setPen')], [('(qwt.plot_grid.QwtPlotGrid method)', [('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.setPen')]), ('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setPen')])], None)), ('setPenWidth() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setPenWidth')], [], None)), ('setPinPoint() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setPinPoint')], [], None)), ('setPinPointEnabled() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setPinPointEnabled')], [], None)), ('setPixmap() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setPixmap')], [], None)), ('setPlainText() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.setPlainText')], [], None)), ('setPlotLayout() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setPlotLayout')], [], None)), ('setRectOfInterest() (qwt.plot_series.QwtSeriesData method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesData.setRectOfInterest')], [('(qwt.plot_series.QwtSeriesStore method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.setRectOfInterest')])], None)), ('setReference() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.setReference')], [], None)), ('setRenderFlags() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.setRenderFlags')], [], None)), ('setRenderHint() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.setRenderHint')], [('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.setRenderHint')])], None)), ('setSamples() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setSamples')], [], None)), ('setScaleDiv() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setScaleDiv')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setScaleDiv')])], None)), ('setScaleDraw() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setScaleDraw')], [], None)), ('setScaleInterval() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.setScaleInterval')], [], None)), ('setScaleRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setScaleRect')], [], None)), ('setSize() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setSize')], [], None)), ('setSpacing() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setSpacing')], [('(qwt.plot_layout.QwtPlotLayout method)', [('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setSpacing')]), ('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setSpacing')]), ('(qwt.scale_draw.QwtAbstractScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setSpacing')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setSpacing')])], None)), ('setStyle() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setStyle')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setStyle')])], None)), ('setSvgDocument() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setSvgDocument')], [], None)), ('setSymbol() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setSymbol')], [('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setSymbol')])], None)), ('setText() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setText')], [('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.setText')]), ('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.setText')])], None)), ('setTextEngine() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.setTextEngine')], [], None)), ('setTickLength() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setTickLength')], [], None)), ('setTickLighterFactor() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setTickLighterFactor')], [], None)), ('setTicks() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.setTicks')], [], None)), ('setTitle() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setTitle')], [('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.setTitle')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setTitle')])], None)), ('setTitleRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setTitleRect')], [], None)), ('setTransformation() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setTransformation')], [('(qwt.scale_engine.QwtScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.setTransformation')]), ('(qwt.scale_map.QwtScaleMap method)', [('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.setTransformation')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setTransformation')])], None)), ('setUpperBound() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.setUpperBound')], [], None)), ('setValue() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.setValue')], [('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setValue')])], None)), ('setValues() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.setValues')], [], None)), ('setVisible() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setVisible')], [], None)), ('setXAxis() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setXAxis')], [], None)), ('setXDiv() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.setXDiv')], [], None)), ('setXValue() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setXValue')], [], None)), ('setYAxis() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setYAxis')], [], None)), ('setYDiv() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.setYDiv')], [], None)), ('setYValue() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setYValue')], [], None)), ('setZ() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setZ')], [], None)), ('show() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.show')], [], None)), ('size() (qwt.plot_series.QwtPointArrayData method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData.size')], [('(qwt.plot_series.QwtSeriesData method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesData.size')]), ('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.size')])], None)), ('sizeHint() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.sizeHint')], [('(qwt.legend.QwtLegendLabel method)', [('', 'reference/plot.html#qwt.legend.QwtLegendLabel.sizeHint')]), ('(qwt.plot.QwtPlot method)', [('', 'reference/plot.html#qwt.plot.QwtPlot.sizeHint')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.sizeHint')]), ('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.sizeHint')])], None)), ('sizeMetrics() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.sizeMetrics')], [], None)), ('spacing() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.spacing')], [('(qwt.plot_layout.QwtPlotLayout method)', [('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.spacing')]), ('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.spacing')]), ('(qwt.scale_draw.QwtAbstractScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.spacing')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.spacing')])], None)), ('startBorderDist() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.startBorderDist')], [], None)), ('strip() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.strip')], [], None)), ('Style (qwt.symbol.QwtSymbol attribute)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.Style')], [], None)), ('style() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.style')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.style')])], None)), ('swapData() (qwt.plot_series.QwtSeriesStore method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.swapData')], [], None)), ('symbol() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.symbol')], [('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.symbol')])], None)), ('symmetrize() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.symmetrize')], [], None))]), ('T', [('testAttribute() (qwt.plot_directpainter.QwtPlotDirectPainter method)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.testAttribute')], [('(qwt.scale_engine.QwtScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.testAttribute')])], None)), ('testCurveAttribute() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.testCurveAttribute')], [], None)), ('testDiscardFlag() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.testDiscardFlag')], [], None)), ('testItemAttribute() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.testItemAttribute')], [], None)), ('testItemInterest() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.testItemInterest')], [], None)), ('testLayoutAttribute() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.testLayoutAttribute')], [], None)), ('testLayoutFlag() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.testLayoutFlag')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.testLayoutFlag')])], None)), ('testLegendAttribute() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.testLegendAttribute')], [], None)), ('testPaintAttribute() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.testPaintAttribute')], [('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.testPaintAttribute')])], None)), ('testRenderHint() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.testRenderHint')], [('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.testRenderHint')])], None)), ('text() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.text')], [('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.text')])], None)), ('textEngine() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.textEngine')], [], None)), ('textMargins() (qwt.text.QwtPlainTextEngine method)', ([('', 'reference/text.html#qwt.text.QwtPlainTextEngine.textMargins')], [('(qwt.text.QwtRichTextEngine method)', [('', 'reference/text.html#qwt.text.QwtRichTextEngine.textMargins')]), ('(qwt.text.QwtTextEngine method)', [('', 'reference/text.html#qwt.text.QwtTextEngine.textMargins')])], None)), ('textRect() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.textRect')], [], None)), ('textSize() (qwt.text.QwtPlainTextEngine method)', ([('', 'reference/text.html#qwt.text.QwtPlainTextEngine.textSize')], [('(qwt.text.QwtRichTextEngine method)', [('', 'reference/text.html#qwt.text.QwtRichTextEngine.textSize')]), ('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.textSize')]), ('(qwt.text.QwtTextEngine method)', [('', 'reference/text.html#qwt.text.QwtTextEngine.textSize')])], None)), ('tickLabel() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.tickLabel')], [], None)), ('tickLength() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.tickLength')], [], None)), ('tickLighterFactor() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.tickLighterFactor')], [], None)), ('ticks() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.ticks')], [], None)), ('title() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.title')], [('(qwt.plot.QwtPlot method)', [('', 'reference/plot.html#qwt.plot.QwtPlot.title')]), ('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.title')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.title')])], None)), ('titleHeightForWidth() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.titleHeightForWidth')], [], None)), ('titleLabel() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.titleLabel')], [], None)), ('titleRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.titleRect')], [], None)), ('toImage() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.toImage')], [], None)), ('toPixmap() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.toPixmap')], [], None)), ('transform() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.transform')], [('(qwt.scale_map.QwtScaleMap method)', [('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.transform')]), ('(qwt.transform.QwtLogTransform method)', [('', 'reference/transform.html#qwt.transform.QwtLogTransform.transform')]), ('(qwt.transform.QwtNullTransform method)', [('', 'reference/transform.html#qwt.transform.QwtNullTransform.transform')]), ('(qwt.transform.QwtPowerTransform method)', [('', 'reference/transform.html#qwt.transform.QwtPowerTransform.transform')]), ('(qwt.transform.QwtTransform method)', [('', 'reference/transform.html#qwt.transform.QwtTransform.transform')])], None)), ('transform_scalar() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.transform_scalar')], [], None)), ('transformation() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.transformation')], [('(qwt.scale_map.QwtScaleMap method)', [('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.transformation')])], None))]), ('U', [('unite() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.unite')], [], None)), ('updateAxes() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.updateAxes')], [], None)), ('updateCanvasMargins() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.updateCanvasMargins')], [], None)), ('updateLayout() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.updateLayout')], [], None)), ('updateLegend() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.updateLegend')], [('(qwt.plot.QwtPlot method)', [('', 'reference/plot.html#qwt.plot.QwtPlot.updateLegend')]), ('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.updateLegend')])], None)), ('updateLegendItems() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.updateLegendItems')], [], None)), ('updateScaleDiv() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.updateScaleDiv')], [], None)), ('updateState() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.updateState')], [], None)), ('updateStyleSheetInfo() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.updateStyleSheetInfo')], [], None)), ('updateWidget() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.updateWidget')], [], None)), ('upperBound() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.upperBound')], [], None)), ('upperMargin() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.upperMargin')], [], None)), ('usedColor() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.usedColor')], [], None)), ('usedFont() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.usedFont')], [], None))]), ('V', [('value() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.value')], [('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.value')])], None)), ('values() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.values')], [], None)), ('verticalScrollBar() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.verticalScrollBar')], [], None))]), ('W', [('width() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.width')], [], None))]), ('X', [('xAxis() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.xAxis')], [], None)), ('xData() (qwt.plot_series.QwtPointArrayData method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData.xData')], [], None)), ('xEnabled() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.xEnabled')], [], None)), ('xMinEnabled() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.xMinEnabled')], [], None)), ('xScaleDiv() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.xScaleDiv')], [], None)), ('xValue() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.xValue')], [], None))]), ('Y', [('yAxis() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.yAxis')], [], None)), ('yData() (qwt.plot_series.QwtPointArrayData method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData.yData')], [], None)), ('yEnabled() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.yEnabled')], [], None)), ('yMinEnabled() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.yMinEnabled')], [], None)), ('yScaleDiv() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.yScaleDiv')], [], None)), ('yValue() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.yValue')], [], None))]), ('Z', [('z() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.z')], [], None))])], 'genindexcounts': [31, 30, 28, 54, 19, 7, 6, 11, 45, 2, 32, 54, 1, 2, 20, 108, 27, 203, 47, 16, 4, 1, 6, 6, 1], 'split_index': False, 'content_root': './', 'css_tag': .css_tag at 0x7fc7d718f100>, 'js_tag': .js_tag at 0x7fc7d718d080>}, None) -py-modindex [app] emitting event: 'html-page-context'('py-modindex', 'domainindex.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'py-modindex', 'current_page_name': 'py-modindex', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d8bd4a40>, 'hasdoc': .hasdoc at 0x7fc7d7527240>, 'toctree': . at 0x7fc7d7524180>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'indextitle': 'Python Module Index', 'content': [('c', [IndexEntry(name='qwt.color_map', subtype=0, docname='reference/plot', anchor='module-qwt.color_map', extra='', qualifier='', descr='')]), ('g', [IndexEntry(name='qwt.graphic', subtype=0, docname='reference/graphic', anchor='module-qwt.graphic', extra='', qualifier='', descr='')]), ('i', [IndexEntry(name='qwt.interval', subtype=0, docname='reference/interval', anchor='module-qwt.interval', extra='', qualifier='', descr='')]), ('l', [IndexEntry(name='qwt.legend', subtype=0, docname='reference/plot', anchor='module-qwt.legend', extra='', qualifier='', descr='')]), ('p', [IndexEntry(name='qwt.plot', subtype=0, docname='reference/plot', anchor='module-qwt.plot', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_canvas', subtype=0, docname='reference/plot', anchor='module-qwt.plot_canvas', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_curve', subtype=0, docname='reference/plot', anchor='module-qwt.plot_curve', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_directpainter', subtype=0, docname='reference/plot_directpainter', anchor='module-qwt.plot_directpainter', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_grid', subtype=0, docname='reference/plot', anchor='module-qwt.plot_grid', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_layout', subtype=0, docname='reference/plot_layout', anchor='module-qwt.plot_layout', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_marker', subtype=0, docname='reference/plot', anchor='module-qwt.plot_marker', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_renderer', subtype=0, docname='reference/plot', anchor='module-qwt.plot_renderer', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_series', subtype=0, docname='reference/plot_series', anchor='module-qwt.plot_series', extra='', qualifier='', descr='')]), ('q', [IndexEntry(name='qwt', subtype=0, docname='index', anchor='module-qwt', extra='', qualifier='', descr='')]), ('s', [IndexEntry(name='qwt.scale_div', subtype=0, docname='reference/scale', anchor='module-qwt.scale_div', extra='', qualifier='', descr=''), IndexEntry(name='qwt.scale_draw', subtype=0, docname='reference/scale', anchor='module-qwt.scale_draw', extra='', qualifier='', descr=''), IndexEntry(name='qwt.scale_engine', subtype=0, docname='reference/scale', anchor='module-qwt.scale_engine', extra='', qualifier='', descr=''), IndexEntry(name='qwt.scale_map', subtype=0, docname='reference/scale', anchor='module-qwt.scale_map', extra='', qualifier='', descr=''), IndexEntry(name='qwt.scale_widget', subtype=0, docname='reference/scale', anchor='module-qwt.scale_widget', extra='', qualifier='', descr=''), IndexEntry(name='qwt.symbol', subtype=0, docname='reference/symbol', anchor='module-qwt.symbol', extra='', qualifier='', descr='')]), ('t', [IndexEntry(name='qwt.text', subtype=0, docname='reference/text', anchor='module-qwt.text', extra='', qualifier='', descr=''), IndexEntry(name='qwt.toqimage', subtype=0, docname='reference/toqimage', anchor='module-qwt.toqimage', extra='', qualifier='', descr=''), IndexEntry(name='qwt.transform', subtype=0, docname='reference/transform', anchor='module-qwt.transform', extra='', qualifier='', descr='')])], 'collapse_index': True, 'content_root': './', 'css_tag': .css_tag at 0x7fc7d7526980>, 'js_tag': .js_tag at 0x7fc7d75268e0>}, None) +generating indices... genindex [app] emitting event: 'html-page-context'('genindex', 'genindex.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'genindex', 'current_page_name': 'genindex', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3a59e980>, 'hasdoc': .hasdoc at 0x7f3d3a59e200>, 'toctree': . at 0x7f3d3a59dee0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'genindexentries': [('A', [('activate() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.activate')], [], None)), ('align() (qwt.scale_engine.QwtLinearScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine.align')], [('(qwt.scale_engine.QwtLogScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine.align')])], None)), ('alignCanvasToScale() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.alignCanvasToScale')], [], None)), ('alignLegend() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.alignLegend')], [], None)), ('alignment() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.alignment')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.alignment')])], None)), ('alignScales() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.alignScales')], [], None)), ('array_to_qimage() (in module qwt.toqimage)', ([('', 'reference/toqimage.html#qwt.toqimage.array_to_qimage')], [], None)), ('attach() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.attach')], [], None)), ('attachItem() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.attachItem')], [], None)), ('attributes() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.attributes')], [], None)), ('autoRefresh() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.autoRefresh')], [], None)), ('autoReplot() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.autoReplot')], [], None)), ('autoScale() (qwt.scale_engine.QwtLinearScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine.autoScale')], [('(qwt.scale_engine.QwtLogScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine.autoScale')]), ('(qwt.scale_engine.QwtScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.autoScale')])], None)), ('axisAutoScale() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisAutoScale')], [], None)), ('axisEnabled() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisEnabled')], [], None)), ('axisFont() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisFont')], [], None)), ('axisInterval() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisInterval')], [], None)), ('axisMargin() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisMargin')], [], None)), ('axisMaxMajor() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisMaxMajor')], [], None)), ('axisMaxMinor() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisMaxMinor')], [], None)), ('axisScaleDiv() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisScaleDiv')], [], None)), ('axisScaleDraw() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisScaleDraw')], [], None)), ('axisScaleEngine() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisScaleEngine')], [], None)), ('axisStepSize() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisStepSize')], [], None)), ('axisTitle() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisTitle')], [], None)), ('axisValid() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisValid')], [], None)), ('axisWidget() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.axisWidget')], [], None))]), ('B', [('backgroundBrush() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.backgroundBrush')], [], None)), ('backingStore() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.backingStore')], [], None)), ('base() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.base')], [], None)), ('baseline() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.baseline')], [], None)), ('borderFlags() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.borderFlags')], [], None)), ('borderPath() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.borderPath')], [], None)), ('borderPen() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.borderPen')], [], None)), ('borderRadius() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.borderRadius')], [('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.borderRadius')])], None)), ('bounded() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.bounded')], [('(qwt.transform.QwtLogTransform method)', [('', 'reference/transform.html#qwt.transform.QwtLogTransform.bounded')]), ('(qwt.transform.QwtTransform method)', [('', 'reference/transform.html#qwt.transform.QwtTransform.bounded')])], None)), ('boundingLabelRect() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.boundingLabelRect')], [], None)), ('boundingRect() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.boundingRect')], [('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.boundingRect')]), ('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.boundingRect')]), ('(qwt.plot_series.QwtPlotSeriesItem method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtPlotSeriesItem.boundingRect')]), ('(qwt.plot_series.QwtPointArrayData method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData.boundingRect')]), ('(qwt.plot_series.QwtSeriesData method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesData.boundingRect')]), ('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.boundingRect')])], None)), ('brush() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.brush')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.brush')])], None)), ('buildCanvasMaps() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.buildCanvasMaps')], [], None)), ('buildInterval() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.buildInterval')], [], None)), ('buildMajorTicks() (qwt.scale_engine.QwtLinearScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine.buildMajorTicks')], [('(qwt.scale_engine.QwtLogScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine.buildMajorTicks')])], None)), ('buildMinorTicks() (qwt.scale_engine.QwtLinearScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine.buildMinorTicks')], [('(qwt.scale_engine.QwtLogScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine.buildMinorTicks')])], None)), ('buildTicks() (qwt.scale_engine.QwtLinearScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine.buildTicks')], [('(qwt.scale_engine.QwtLogScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine.buildTicks')])], None))]), ('C', [('cachePolicy() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.cachePolicy')], [], None)), ('canvas() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.canvas')], [], None)), ('canvasBackground() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.canvasBackground')], [], None)), ('canvasMap() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.canvasMap')], [], None)), ('canvasMargin() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.canvasMargin')], [], None)), ('canvasRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.canvasRect')], [], None)), ('clear() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.clear')], [], None)), ('clipRegion() (qwt.plot_directpainter.QwtPlotDirectPainter method)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.clipRegion')], [], None)), ('closePolyline() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.closePolyline')], [], None)), ('closestPoint() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.closestPoint')], [], None)), ('color() (qwt.color_map.QwtAlphaColorMap method)', ([('', 'reference/plot.html#qwt.color_map.QwtAlphaColorMap.color')], [('(qwt.color_map.QwtColorMap method)', [('', 'reference/plot.html#qwt.color_map.QwtColorMap.color')]), ('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.color')])], None)), ('colorBarInterval() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.colorBarInterval')], [], None)), ('colorBarRect() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.colorBarRect')], [], None)), ('colorBarWidth() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.colorBarWidth')], [], None)), ('colorMap() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.colorMap')], [], None)), ('colorTable() (qwt.color_map.QwtColorMap method)', ([('', 'reference/plot.html#qwt.color_map.QwtColorMap.colorTable')], [], None)), ('contains() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.contains')], [('(qwt.scale_div.QwtScaleDiv method)', [('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.contains')]), ('(qwt.scale_engine.QwtScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.contains')])], None)), ('contentsWidget() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.contentsWidget')], [], None)), ('controlPointRect() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.controlPointRect')], [], None)), ('copy() (qwt.transform.QwtLogTransform method)', ([('', 'reference/transform.html#qwt.transform.QwtLogTransform.copy')], [('(qwt.transform.QwtNullTransform method)', [('', 'reference/transform.html#qwt.transform.QwtNullTransform.copy')]), ('(qwt.transform.QwtPowerTransform method)', [('', 'reference/transform.html#qwt.transform.QwtPowerTransform.copy')]), ('(qwt.transform.QwtTransform method)', [('', 'reference/transform.html#qwt.transform.QwtTransform.copy')])], None)), ('createWidget() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.createWidget')], [], None))]), ('D', [('data() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.data')], [('(qwt.plot_series.QwtSeriesStore method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.data')])], None)), ('dataRect() (qwt.plot_series.QwtSeriesStore method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.dataRect')], [], None)), ('dataSize() (qwt.plot_series.QwtSeriesStore method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.dataSize')], [], None)), ('defaultItemMode() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.defaultItemMode')], [], None)), ('defaultSize() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.defaultSize')], [], None)), ('detach() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.detach')], [], None)), ('detachItems() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.detachItems')], [], None)), ('dimForLength() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.dimForLength')], [], None)), ('directPaint() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.directPaint')], [], None)), ('discardFlags() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.discardFlags')], [], None)), ('divideInterval() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.divideInterval')], [], None)), ('divideScale() (qwt.scale_engine.QwtLinearScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine.divideScale')], [('(qwt.scale_engine.QwtLogScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine.divideScale')]), ('(qwt.scale_engine.QwtScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.divideScale')])], None)), ('draw() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.draw')], [('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.draw')]), ('(qwt.plot_series.QwtPlotSeriesItem method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtPlotSeriesItem.draw')]), ('(qwt.scale_draw.QwtAbstractScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.draw')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.draw')]), ('(qwt.text.QwtPlainTextEngine method)', [('', 'reference/text.html#qwt.text.QwtPlainTextEngine.draw')]), ('(qwt.text.QwtRichTextEngine method)', [('', 'reference/text.html#qwt.text.QwtRichTextEngine.draw')]), ('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.draw')]), ('(qwt.text.QwtTextEngine method)', [('', 'reference/text.html#qwt.text.QwtTextEngine.draw')])], None)), ('drawBackbone() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.drawBackbone')], [('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.drawBackbone')])], None)), ('drawBorder() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.drawBorder')], [], None)), ('drawCanvas() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.drawCanvas')], [], None)), ('drawColorBar() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.drawColorBar')], [], None)), ('drawContents() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.drawContents')], [], None)), ('drawCurve() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawCurve')], [], None)), ('drawDots() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawDots')], [], None)), ('drawFocusIndicator() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.drawFocusIndicator')], [], None)), ('drawImage() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.drawImage')], [], None)), ('drawItems() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.drawItems')], [], None)), ('drawLabel() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.drawLabel')], [('(qwt.scale_draw.QwtAbstractScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.drawLabel')]), ('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.drawLabel')])], None)), ('drawLines() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawLines')], [('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.drawLines')])], None)), ('drawPath() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.drawPath')], [], None)), ('drawPixmap() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.drawPixmap')], [], None)), ('drawSeries() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawSeries')], [('(qwt.plot_directpainter.QwtPlotDirectPainter method)', [('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.drawSeries')]), ('(qwt.plot_series.QwtPlotSeriesItem method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtPlotSeriesItem.drawSeries')])], None)), ('drawSteps() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawSteps')], [], None)), ('drawSticks() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawSticks')], [], None)), ('drawSymbol() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.drawSymbol')], [], None)), ('drawSymbols() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.drawSymbols')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.drawSymbols')])], None)), ('drawText() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.drawText')], [], None)), ('drawTick() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.drawTick')], [('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.drawTick')])], None)), ('drawTitle() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.drawTitle')], [], None))]), ('E', [('enableAxis() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.enableAxis')], [], None)), ('enableComponent() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.enableComponent')], [], None)), ('enableX() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.enableX')], [], None)), ('enableXMin() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.enableXMin')], [], None)), ('enableY() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.enableY')], [], None)), ('enableYMin() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.enableYMin')], [], None)), ('endBorderDist() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.endBorderDist')], [], None)), ('event() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.event')], [('(qwt.plot_canvas.QwtPlotCanvas method)', [('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.event')])], None)), ('eventFilter() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.eventFilter')], [('(qwt.plot.QwtPlot method)', [('', 'reference/plot.html#qwt.plot.QwtPlot.eventFilter')]), ('(qwt.plot_directpainter.QwtPlotDirectPainter method)', [('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.eventFilter')])], None)), ('expandLineBreaks() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.expandLineBreaks')], [], None)), ('exportTo() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.exportTo')], [('(qwt.plot_renderer.QwtPlotRenderer method)', [('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.exportTo')])], None)), ('extend() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.extend')], [], None)), ('extend_fraction() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.extend_fraction')], [], None)), ('extent() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.extent')], [('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.extent')])], None))]), ('F', [('fillCurve() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.fillCurve')], [], None)), ('flatStyle() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.flatStyle')], [], None)), ('focusIndicator() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.focusIndicator')], [], None)), ('font() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.font')], [], None)), ('footer() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.footer')], [], None)), ('footerLabel() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.footerLabel')], [], None)), ('footerRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.footerRect')], [], None))]), ('G', [('getBorderDistHint() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.getBorderDistHint')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.getBorderDistHint')])], None)), ('getCanvasMarginHint() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.getCanvasMarginHint')], [], None)), ('getCanvasMarginsHint() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.getCanvasMarginsHint')], [], None)), ('getMinBorderDist() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.getMinBorderDist')], [], None)), ('graphic() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.graphic')], [], None))]), ('H', [('hasClipping() (qwt.plot_directpainter.QwtPlotDirectPainter method)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.hasClipping')], [], None)), ('hasComponent() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.hasComponent')], [], None)), ('hasRole() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.hasRole')], [], None)), ('heightForWidth() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.heightForWidth')], [('(qwt.text.QwtPlainTextEngine method)', [('', 'reference/text.html#qwt.text.QwtPlainTextEngine.heightForWidth')]), ('(qwt.text.QwtRichTextEngine method)', [('', 'reference/text.html#qwt.text.QwtRichTextEngine.heightForWidth')]), ('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.heightForWidth')]), ('(qwt.text.QwtTextEngine method)', [('', 'reference/text.html#qwt.text.QwtTextEngine.heightForWidth')]), ('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.heightForWidth')])], None)), ('hide() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.hide')], [], None)), ('horizontalScrollBar() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.horizontalScrollBar')], [], None))]), ('I', [('icon() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.icon')], [('(qwt.legend.QwtLegendLabel method)', [('', 'reference/plot.html#qwt.legend.QwtLegendLabel.icon')]), ('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.icon')])], None)), ('indent() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.indent')], [], None)), ('init() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.init')], [], None)), ('initAxesData() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.initAxesData')], [], None)), ('initScale() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.initScale')], [], None)), ('insertItem() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.insertItem')], [], None)), ('insertLegend() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.insertLegend')], [], None)), ('intersect() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.intersect')], [], None)), ('intersects() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.intersects')], [], None)), ('interval() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.interval')], [], None)), ('invalidate() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.invalidate')], [('(qwt.plot_layout.QwtPlotLayout method)', [('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.invalidate')])], None)), ('invalidateBackingStore() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.invalidateBackingStore')], [], None)), ('invalidateCache() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.invalidateCache')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.invalidateCache')])], None)), ('invert() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.invert')], [], None)), ('inverted() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.inverted')], [('(qwt.scale_div.QwtScaleDiv method)', [('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.inverted')])], None)), ('invTransform() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.invTransform')], [('(qwt.scale_map.QwtScaleMap method)', [('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.invTransform')]), ('(qwt.transform.QwtLogTransform method)', [('', 'reference/transform.html#qwt.transform.QwtLogTransform.invTransform')]), ('(qwt.transform.QwtNullTransform method)', [('', 'reference/transform.html#qwt.transform.QwtNullTransform.invTransform')]), ('(qwt.transform.QwtPowerTransform method)', [('', 'reference/transform.html#qwt.transform.QwtPowerTransform.invTransform')]), ('(qwt.transform.QwtTransform method)', [('', 'reference/transform.html#qwt.transform.QwtTransform.invTransform')])], None)), ('invTransform_scalar() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.invTransform_scalar')], [], None)), ('isChecked() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.isChecked')], [], None)), ('isColorBarEnabled() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.isColorBarEnabled')], [], None)), ('isDown() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.isDown')], [], None)), ('isEmpty() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.isEmpty')], [('(qwt.scale_div.QwtScaleDiv method)', [('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.isEmpty')]), ('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.isEmpty')])], None)), ('isIncreasing() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.isIncreasing')], [], None)), ('isInverting() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.isInverting')], [], None)), ('isNull() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.isNull')], [('(qwt.interval.QwtInterval method)', [('', 'reference/interval.html#qwt.interval.QwtInterval.isNull')])], None)), ('isPinPointEnabled() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.isPinPointEnabled')], [], None)), ('isValid() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.isValid')], [('(qwt.legend.QwtLegendData method)', [('', 'reference/plot.html#qwt.legend.QwtLegendData.isValid')])], None)), ('isVisible() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.isVisible')], [], None)), ('itemChanged() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.itemChanged')], [], None)), ('itemInfo() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.itemInfo')], [], None)), ('itemList() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.itemList')], [], None)), ('itemMode() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.itemMode')], [], None))]), ('K', [('keyPressEvent() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.keyPressEvent')], [], None)), ('keyReleaseEvent() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.keyReleaseEvent')], [], None))]), ('L', [('label() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.label')], [('(qwt.scale_draw.QwtAbstractScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.label')])], None)), ('labelAlignment() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.labelAlignment')], [('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelAlignment')])], None)), ('labelAutoSize() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelAutoSize')], [], None)), ('labelOrientation() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.labelOrientation')], [], None)), ('labelPosition() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelPosition')], [], None)), ('labelRect() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelRect')], [], None)), ('labelRotation() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelRotation')], [], None)), ('labelSize() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelSize')], [], None)), ('labelTransformation() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.labelTransformation')], [], None)), ('layoutFlags() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.layoutFlags')], [], None)), ('layoutLegend() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.layoutLegend')], [], None)), ('layoutScale() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.layoutScale')], [], None)), ('legend() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.legend')], [], None)), ('legendChanged() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.legendChanged')], [], None)), ('legendData() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.legendData')], [], None)), ('legendIcon() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.legendIcon')], [('(qwt.plot_curve.QwtPlotCurve method)', [('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.legendIcon')]), ('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.legendIcon')])], None)), ('legendIconSize() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.legendIconSize')], [], None)), ('legendPosition() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.legendPosition')], [], None)), ('legendRatio() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.legendRatio')], [], None)), ('legendRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.legendRect')], [], None)), ('legendWidget() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.legendWidget')], [], None)), ('legendWidgets() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.legendWidgets')], [], None)), ('length() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.length')], [], None)), ('limited() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.limited')], [], None)), ('linePen() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.linePen')], [], None)), ('lineStyle() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.lineStyle')], [], None)), ('lowerBound() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.lowerBound')], [], None)), ('lowerMargin() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.lowerMargin')], [], None))]), ('M', [('majorPen() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.majorPen')], [], None)), ('make() (qwt.plot_curve.QwtPlotCurve class method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.make')], [('(qwt.plot_grid.QwtPlotGrid class method)', [('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.make')]), ('(qwt.plot_marker.QwtPlotMarker class method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.make')]), ('(qwt.symbol.QwtSymbol class method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.make')]), ('(qwt.text.QwtText class method)', [('', 'reference/text.html#qwt.text.QwtText.make')])], None)), ('margin() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.margin')], [('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.margin')])], None)), ('maxColumns() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.maxColumns')], [], None)), ('maxLabelHeight() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.maxLabelHeight')], [], None)), ('maxLabelWidth() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.maxLabelWidth')], [], None)), ('maxTickLength() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.maxTickLength')], [], None)), ('maxValue() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.maxValue')], [], None)), ('mightRender() (qwt.text.QwtPlainTextEngine method)', ([('', 'reference/text.html#qwt.text.QwtPlainTextEngine.mightRender')], [('(qwt.text.QwtRichTextEngine method)', [('', 'reference/text.html#qwt.text.QwtRichTextEngine.mightRender')]), ('(qwt.text.QwtTextEngine method)', [('', 'reference/text.html#qwt.text.QwtTextEngine.mightRender')])], None)), ('minimumExtent() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.minimumExtent')], [], None)), ('minimumSizeHint() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.minimumSizeHint')], [('(qwt.plot_layout.QwtPlotLayout method)', [('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.minimumSizeHint')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.minimumSizeHint')]), ('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.minimumSizeHint')])], None)), ('minLabelDist() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.minLabelDist')], [], None)), ('minLength() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.minLength')], [], None)), ('minorPen() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.minorPen')], [], None)), ('minValue() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.minValue')], [], None)), ('mode() (qwt.color_map.QwtLinearColorMap method)', ([('', 'reference/plot.html#qwt.color_map.QwtLinearColorMap.mode')], [('(qwt.legend.QwtLegendData method)', [('', 'reference/plot.html#qwt.legend.QwtLegendData.mode')])], None)), ('module', ([], [('qwt', [('', 'index.html#module-qwt')]), ('qwt.color_map', [('', 'reference/plot.html#module-qwt.color_map')]), ('qwt.graphic', [('', 'reference/graphic.html#module-qwt.graphic')]), ('qwt.interval', [('', 'reference/interval.html#module-qwt.interval')]), ('qwt.legend', [('', 'reference/plot.html#module-qwt.legend')]), ('qwt.plot', [('', 'reference/plot.html#module-qwt.plot')]), ('qwt.plot_canvas', [('', 'reference/plot.html#module-qwt.plot_canvas')]), ('qwt.plot_curve', [('', 'reference/plot.html#module-qwt.plot_curve')]), ('qwt.plot_directpainter', [('', 'reference/plot_directpainter.html#module-qwt.plot_directpainter')]), ('qwt.plot_grid', [('', 'reference/plot.html#module-qwt.plot_grid')]), ('qwt.plot_layout', [('', 'reference/plot_layout.html#module-qwt.plot_layout')]), ('qwt.plot_marker', [('', 'reference/plot.html#module-qwt.plot_marker')]), ('qwt.plot_renderer', [('', 'reference/plot.html#module-qwt.plot_renderer')]), ('qwt.plot_series', [('', 'reference/plot_series.html#module-qwt.plot_series')]), ('qwt.scale_div', [('', 'reference/scale.html#module-qwt.scale_div')]), ('qwt.scale_draw', [('', 'reference/scale.html#module-qwt.scale_draw')]), ('qwt.scale_engine', [('', 'reference/scale.html#module-qwt.scale_engine')]), ('qwt.scale_map', [('', 'reference/scale.html#module-qwt.scale_map')]), ('qwt.scale_widget', [('', 'reference/scale.html#module-qwt.scale_widget')]), ('qwt.symbol', [('', 'reference/symbol.html#module-qwt.symbol')]), ('qwt.text', [('', 'reference/text.html#module-qwt.text')]), ('qwt.toqimage', [('', 'reference/toqimage.html#module-qwt.toqimage')]), ('qwt.transform', [('', 'reference/transform.html#module-qwt.transform')])], None)), ('mousePressEvent() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.mousePressEvent')], [], None)), ('mouseReleaseEvent() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.mouseReleaseEvent')], [], None)), ('move() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.move')], [], None))]), ('N', [('normalized() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.normalized')], [], None))]), ('O', [('orientation() (qwt.plot_series.QwtPlotSeriesItem method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPlotSeriesItem.orientation')], [('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.orientation')])], None))]), ('P', [('p1() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.p1')], [], None)), ('p2() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.p2')], [], None)), ('paintEvent() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.paintEvent')], [('(qwt.plot_canvas.QwtPlotCanvas method)', [('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.paintEvent')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.paintEvent')]), ('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.paintEvent')])], None)), ('paintRect() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.paintRect')], [], None)), ('path() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.path')], [], None)), ('pDist() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.pDist')], [], None)), ('pen() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.pen')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.pen')])], None)), ('penWidth() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.penWidth')], [], None)), ('pinPoint() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.pinPoint')], [], None)), ('pixmap() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.pixmap')], [], None)), ('plainText() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.plainText')], [], None)), ('plot() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.plot')], [('(qwt.plot_canvas.QwtPlotCanvas method)', [('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.plot')])], None)), ('plotLayout() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.plotLayout')], [], None)), ('pos() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.pos')], [], None)), ('print_() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.print_')], [], None))]), ('Q', [('qwt', ([], [('module', [('', 'index.html#module-qwt')])], None)), ('qwt.color_map', ([], [('module', [('', 'reference/plot.html#module-qwt.color_map')])], None)), ('qwt.graphic', ([], [('module', [('', 'reference/graphic.html#module-qwt.graphic')])], None)), ('qwt.interval', ([], [('module', [('', 'reference/interval.html#module-qwt.interval')])], None)), ('qwt.legend', ([], [('module', [('', 'reference/plot.html#module-qwt.legend')])], None)), ('qwt.plot', ([], [('module', [('', 'reference/plot.html#module-qwt.plot')])], None)), ('qwt.plot_canvas', ([], [('module', [('', 'reference/plot.html#module-qwt.plot_canvas')])], None)), ('qwt.plot_curve', ([], [('module', [('', 'reference/plot.html#module-qwt.plot_curve')])], None)), ('qwt.plot_directpainter', ([], [('module', [('', 'reference/plot_directpainter.html#module-qwt.plot_directpainter')])], None)), ('qwt.plot_grid', ([], [('module', [('', 'reference/plot.html#module-qwt.plot_grid')])], None)), ('qwt.plot_layout', ([], [('module', [('', 'reference/plot_layout.html#module-qwt.plot_layout')])], None)), ('qwt.plot_marker', ([], [('module', [('', 'reference/plot.html#module-qwt.plot_marker')])], None)), ('qwt.plot_renderer', ([], [('module', [('', 'reference/plot.html#module-qwt.plot_renderer')])], None)), ('qwt.plot_series', ([], [('module', [('', 'reference/plot_series.html#module-qwt.plot_series')])], None)), ('qwt.scale_div', ([], [('module', [('', 'reference/scale.html#module-qwt.scale_div')])], None)), ('qwt.scale_draw', ([], [('module', [('', 'reference/scale.html#module-qwt.scale_draw')])], None)), ('qwt.scale_engine', ([], [('module', [('', 'reference/scale.html#module-qwt.scale_engine')])], None)), ('qwt.scale_map', ([], [('module', [('', 'reference/scale.html#module-qwt.scale_map')])], None)), ('qwt.scale_widget', ([], [('module', [('', 'reference/scale.html#module-qwt.scale_widget')])], None)), ('qwt.symbol', ([], [('module', [('', 'reference/symbol.html#module-qwt.symbol')])], None)), ('qwt.text', ([], [('module', [('', 'reference/text.html#module-qwt.text')])], None)), ('qwt.toqimage', ([], [('module', [('', 'reference/toqimage.html#module-qwt.toqimage')])], None)), ('qwt.transform', ([], [('module', [('', 'reference/transform.html#module-qwt.transform')])], None)), ('QwtAbstractScaleDraw (class in qwt.scale_draw)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw')], [], None)), ('QwtAbstractScaleDraw.QwtAbstractScaleDraw (class in qwt.scale_draw)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.QwtAbstractScaleDraw')], [], None)), ('QwtAlphaColorMap (class in qwt.color_map)', ([('', 'reference/plot.html#qwt.color_map.QwtAlphaColorMap')], [], None)), ('QwtAlphaColorMap.QwtAlphaColorMap (class in qwt.color_map)', ([('', 'reference/plot.html#qwt.color_map.QwtAlphaColorMap.QwtAlphaColorMap')], [], None)), ('QwtColorMap (class in qwt.color_map)', ([('', 'reference/plot.html#qwt.color_map.QwtColorMap')], [], None)), ('QwtColorMap.QwtColorMap (class in qwt.color_map)', ([('', 'reference/plot.html#qwt.color_map.QwtColorMap.QwtColorMap')], [], None)), ('QwtGraphic (class in qwt.graphic)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic')], [], None)), ('QwtGraphic.QwtGraphic (class in qwt.graphic)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.QwtGraphic')], [], None)), ('QwtInterval (class in qwt.interval)', ([('', 'reference/interval.html#qwt.interval.QwtInterval')], [], None)), ('QwtInterval.QwtInterval (class in qwt.interval)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.QwtInterval')], [], None)), ('QwtLegend (class in qwt.legend)', ([('', 'reference/plot.html#qwt.legend.QwtLegend')], [], None)), ('QwtLegend.checked (in module qwt.legend)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.checked')], [], None)), ('QwtLegend.clicked (in module qwt.legend)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.clicked')], [], None)), ('QwtLegend.QwtLegend (class in qwt.legend)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.QwtLegend')], [], None)), ('QwtLegendData (class in qwt.legend)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData')], [], None)), ('QwtLegendLabel (class in qwt.legend)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel')], [], None)), ('QwtLinearColorMap (class in qwt.color_map)', ([('', 'reference/plot.html#qwt.color_map.QwtLinearColorMap')], [], None)), ('QwtLinearColorMap.QwtLinearColorMap (class in qwt.color_map)', ([('', 'reference/plot.html#qwt.color_map.QwtLinearColorMap.QwtLinearColorMap')], [], None)), ('QwtLinearScaleEngine (class in qwt.scale_engine)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLinearScaleEngine')], [], None)), ('QwtLogScaleEngine (class in qwt.scale_engine)', ([('', 'reference/scale.html#qwt.scale_engine.QwtLogScaleEngine')], [], None)), ('QwtLogTransform (class in qwt.transform)', ([('', 'reference/transform.html#qwt.transform.QwtLogTransform')], [], None)), ('QwtNullTransform (class in qwt.transform)', ([('', 'reference/transform.html#qwt.transform.QwtNullTransform')], [], None)), ('QwtPlainTextEngine (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtPlainTextEngine')], [], None)), ('QwtPlot (class in qwt.plot)', ([('', 'reference/plot.html#qwt.plot.QwtPlot')], [], None)), ('QwtPlot.itemAttached (in module qwt.plot)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.itemAttached')], [], None)), ('QwtPlot.legendDataChanged (in module qwt.plot)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.legendDataChanged')], [], None)), ('QwtPlot.QwtPlot (class in qwt.plot)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.QwtPlot')], [], None)), ('QwtPlotCanvas (class in qwt.plot_canvas)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas')], [], None)), ('QwtPlotCanvas.QwtPlotCanvas (class in qwt.plot_canvas)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.QwtPlotCanvas')], [], None)), ('QwtPlotCurve (class in qwt.plot_curve)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve')], [], None)), ('QwtPlotCurve.QwtPlotCurve (class in qwt.plot_curve)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.QwtPlotCurve')], [], None)), ('QwtPlotDirectPainter (class in qwt.plot_directpainter)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter')], [], None)), ('QwtPlotGrid (class in qwt.plot_grid)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid')], [], None)), ('QwtPlotItem (class in qwt.plot)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem')], [], None)), ('QwtPlotItem.QwtPlotItem (class in qwt.plot)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.QwtPlotItem')], [], None)), ('QwtPlotLayout (class in qwt.plot_layout)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout')], [], None)), ('QwtPlotMarker (class in qwt.plot_marker)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker')], [], None)), ('QwtPlotRenderer (class in qwt.plot_renderer)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer')], [], None)), ('QwtPlotSeriesItem (class in qwt.plot_series)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPlotSeriesItem')], [], None)), ('QwtPointArrayData (class in qwt.plot_series)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData')], [], None)), ('QwtPointArrayData.QwtCQwtPointArrayDataolorMap (class in qwt.plot_series)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData.QwtCQwtPointArrayDataolorMap')], [], None)), ('QwtPowerTransform (class in qwt.transform)', ([('', 'reference/transform.html#qwt.transform.QwtPowerTransform')], [], None)), ('QwtRichTextEngine (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtRichTextEngine')], [], None)), ('QwtScaleDiv (class in qwt.scale_div)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv')], [], None)), ('QwtScaleDiv.QwtScaleDiv (class in qwt.scale_div)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.QwtScaleDiv')], [], None)), ('QwtScaleDraw (class in qwt.scale_draw)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw')], [], None)), ('QwtScaleDraw.QwtScaleDraw (class in qwt.scale_draw)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.QwtScaleDraw')], [], None)), ('QwtScaleEngine (class in qwt.scale_engine)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine')], [], None)), ('QwtScaleMap (class in qwt.scale_map)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap')], [], None)), ('QwtScaleMap.QwtScaleMap (class in qwt.scale_map)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.QwtScaleMap')], [], None)), ('QwtScaleWidget (class in qwt.scale_widget)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget')], [], None)), ('QwtScaleWidget.QwtScaleWidget (class in qwt.scale_widget)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.QwtScaleWidget')], [], None)), ('QwtSeriesData (class in qwt.plot_series)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesData')], [], None)), ('QwtSeriesStore (class in qwt.plot_series)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore')], [], None)), ('QwtSymbol (class in qwt.symbol)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol')], [], None)), ('QwtSymbol.QwtSymbol (class in qwt.symbol)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.QwtSymbol')], [], None)), ('QwtText (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtText')], [], None)), ('QwtText.QwtText (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtText.QwtText')], [], None)), ('QwtTextEngine (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtTextEngine')], [], None)), ('QwtTextLabel (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtTextLabel')], [], None)), ('QwtTextLabel.QwtTextLabel (class in qwt.text)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.QwtTextLabel')], [], None)), ('QwtTransform (class in qwt.transform)', ([('', 'reference/transform.html#qwt.transform.QwtTransform')], [], None))]), ('R', [('range() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.range')], [], None)), ('reference() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.reference')], [], None)), ('removeItem() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.removeItem')], [], None)), ('render() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.render')], [('(qwt.plot_renderer.QwtPlotRenderer method)', [('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.render')])], None)), ('renderCanvas() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderCanvas')], [], None)), ('renderDocument() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderDocument')], [], None)), ('renderFlags() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.renderFlags')], [], None)), ('renderFooter() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderFooter')], [], None)), ('renderItem() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.renderItem')], [], None)), ('renderLegend() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.renderLegend')], [('(qwt.plot_renderer.QwtPlotRenderer method)', [('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderLegend')])], None)), ('renderScale() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderScale')], [], None)), ('renderSymbols() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.renderSymbols')], [], None)), ('renderTitle() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderTitle')], [], None)), ('renderTo() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.renderTo')], [], None)), ('replot() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.replot')], [('(qwt.plot_canvas.QwtPlotCanvas method)', [('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.replot')])], None)), ('reset() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.reset')], [('(qwt.plot_directpainter.QwtPlotDirectPainter method)', [('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.reset')])], None)), ('resizeEvent() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.resizeEvent')], [('(qwt.plot_canvas.QwtPlotCanvas method)', [('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.resizeEvent')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.resizeEvent')])], None)), ('rtti() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.rtti')], [('(qwt.plot_curve.QwtPlotCurve method)', [('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.rtti')]), ('(qwt.plot_grid.QwtPlotGrid method)', [('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.rtti')]), ('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.rtti')])], None))]), ('S', [('s1() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.s1')], [], None)), ('s2() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.s2')], [], None)), ('sample() (qwt.plot_series.QwtPointArrayData method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData.sample')], [('(qwt.plot_series.QwtSeriesData method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesData.sample')]), ('(qwt.plot_series.QwtSeriesStore method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.sample')])], None)), ('scaleChange() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.scaleChange')], [], None)), ('scaledBoundingRect() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.scaledBoundingRect')], [], None)), ('scaleDiv() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.scaleDiv')], [], None)), ('scaleDraw() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.scaleDraw')], [], None)), ('scaleMap() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.scaleMap')], [], None)), ('scaleRect() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.scaleRect')], [('(qwt.plot_layout.QwtPlotLayout method)', [('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.scaleRect')])], None)), ('sDist() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.sDist')], [], None)), ('setAlignCanvasToScales() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setAlignCanvasToScales')], [], None)), ('setAlignment() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.setAlignment')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setAlignment')])], None)), ('setAttribute() (qwt.plot_directpainter.QwtPlotDirectPainter method)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.setAttribute')], [('(qwt.scale_engine.QwtScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.setAttribute')])], None)), ('setAttributes() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.setAttributes')], [], None)), ('setAutoReplot() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAutoReplot')], [], None)), ('setAxes() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setAxes')], [], None)), ('setAxis() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setAxis')], [], None)), ('setAxisAutoScale() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisAutoScale')], [], None)), ('setAxisFont() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisFont')], [], None)), ('setAxisLabelAlignment() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisLabelAlignment')], [], None)), ('setAxisLabelAutoSize() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisLabelAutoSize')], [], None)), ('setAxisLabelRotation() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisLabelRotation')], [], None)), ('setAxisMargin() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisMargin')], [], None)), ('setAxisMaxMajor() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisMaxMajor')], [], None)), ('setAxisMaxMinor() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisMaxMinor')], [], None)), ('setAxisScale() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisScale')], [], None)), ('setAxisScaleDiv() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisScaleDiv')], [], None)), ('setAxisScaleDraw() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisScaleDraw')], [], None)), ('setAxisScaleEngine() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisScaleEngine')], [], None)), ('setAxisTitle() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setAxisTitle')], [], None)), ('setBackgroundBrush() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.setBackgroundBrush')], [], None)), ('setBase() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.setBase')], [], None)), ('setBaseline() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setBaseline')], [], None)), ('setBorderDist() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setBorderDist')], [], None)), ('setBorderFlags() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.setBorderFlags')], [], None)), ('setBorderPen() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.setBorderPen')], [], None)), ('setBorderRadius() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.setBorderRadius')], [('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.setBorderRadius')])], None)), ('setBrush() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setBrush')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setBrush')])], None)), ('setCachePolicy() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setCachePolicy')], [], None)), ('setCanvas() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setCanvas')], [], None)), ('setCanvasBackground() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setCanvasBackground')], [], None)), ('setCanvasMargin() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setCanvasMargin')], [], None)), ('setCanvasRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setCanvasRect')], [], None)), ('setChecked() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setChecked')], [], None)), ('setClipping() (qwt.plot_directpainter.QwtPlotDirectPainter method)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.setClipping')], [], None)), ('setClipRegion() (qwt.plot_directpainter.QwtPlotDirectPainter method)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.setClipRegion')], [], None)), ('setColor() (qwt.color_map.QwtAlphaColorMap method)', ([('', 'reference/plot.html#qwt.color_map.QwtAlphaColorMap.setColor')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setColor')]), ('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.setColor')])], None)), ('setColorBarEnabled() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setColorBarEnabled')], [], None)), ('setColorBarWidth() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setColorBarWidth')], [], None)), ('setColorMap() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setColorMap')], [], None)), ('setCurveAttribute() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setCurveAttribute')], [], None)), ('setData() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setData')], [('(qwt.plot_curve.QwtPlotCurve method)', [('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setData')]), ('(qwt.plot_series.QwtSeriesStore method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.setData')])], None)), ('setDefaultItemMode() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.setDefaultItemMode')], [], None)), ('setDefaultSize() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.setDefaultSize')], [], None)), ('setDiscardFlag() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.setDiscardFlag')], [], None)), ('setDiscardFlags() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.setDiscardFlags')], [], None)), ('setDown() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setDown')], [], None)), ('setFlatStyle() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setFlatStyle')], [], None)), ('setFocusIndicator() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.setFocusIndicator')], [], None)), ('setFont() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.setFont')], [], None)), ('setFooter() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setFooter')], [], None)), ('setFooterRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setFooterRect')], [], None)), ('setGraphic() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setGraphic')], [], None)), ('setIcon() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setIcon')], [('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.setIcon')])], None)), ('setIndent() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.setIndent')], [], None)), ('setInterval() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.setInterval')], [('(qwt.scale_div.QwtScaleDiv method)', [('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.setInterval')])], None)), ('setItemAttribute() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setItemAttribute')], [], None)), ('setItemInterest() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setItemInterest')], [], None)), ('setItemMode() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setItemMode')], [], None)), ('setLabel() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setLabel')], [], None)), ('setLabelAlignment() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setLabelAlignment')], [('(qwt.scale_draw.QwtScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.setLabelAlignment')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setLabelAlignment')])], None)), ('setLabelAutoSize() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.setLabelAutoSize')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setLabelAutoSize')])], None)), ('setLabelOrientation() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setLabelOrientation')], [], None)), ('setLabelRotation() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.setLabelRotation')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setLabelRotation')])], None)), ('setLayoutAttribute() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.setLayoutAttribute')], [], None)), ('setLayoutFlag() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.setLayoutFlag')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setLayoutFlag')])], None)), ('setLayoutFlags() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.setLayoutFlags')], [], None)), ('setLegendAttribute() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setLegendAttribute')], [], None)), ('setLegendIconSize() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setLegendIconSize')], [], None)), ('setLegendPosition() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setLegendPosition')], [], None)), ('setLegendRatio() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setLegendRatio')], [], None)), ('setLegendRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setLegendRect')], [], None)), ('setLength() (qwt.scale_draw.QwtScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtScaleDraw.setLength')], [], None)), ('setLinePen() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setLinePen')], [], None)), ('setLineStyle() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setLineStyle')], [], None)), ('setLowerBound() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.setLowerBound')], [], None)), ('setMajorPen() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.setMajorPen')], [], None)), ('setMargin() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setMargin')], [('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.setMargin')])], None)), ('setMargins() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.setMargins')], [], None)), ('setMaxColumns() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.setMaxColumns')], [], None)), ('setMaxValue() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.setMaxValue')], [], None)), ('setMinBorderDist() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setMinBorderDist')], [], None)), ('setMinimumExtent() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setMinimumExtent')], [], None)), ('setMinorPen() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.setMinorPen')], [], None)), ('setMinValue() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.setMinValue')], [], None)), ('setMode() (qwt.color_map.QwtLinearColorMap method)', ([('', 'reference/plot.html#qwt.color_map.QwtLinearColorMap.setMode')], [], None)), ('setOrientation() (qwt.plot_series.QwtPlotSeriesItem method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPlotSeriesItem.setOrientation')], [], None)), ('setPaintAttribute() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.setPaintAttribute')], [('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.setPaintAttribute')])], None)), ('setPaintInterval() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.setPaintInterval')], [], None)), ('setPath() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setPath')], [], None)), ('setPen() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setPen')], [('(qwt.plot_grid.QwtPlotGrid method)', [('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.setPen')]), ('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setPen')])], None)), ('setPenWidth() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setPenWidth')], [], None)), ('setPinPoint() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setPinPoint')], [], None)), ('setPinPointEnabled() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setPinPointEnabled')], [], None)), ('setPixmap() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setPixmap')], [], None)), ('setPlainText() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.setPlainText')], [], None)), ('setPlotLayout() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setPlotLayout')], [], None)), ('setRectOfInterest() (qwt.plot_series.QwtSeriesData method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesData.setRectOfInterest')], [('(qwt.plot_series.QwtSeriesStore method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.setRectOfInterest')])], None)), ('setReference() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.setReference')], [], None)), ('setRenderFlags() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.setRenderFlags')], [], None)), ('setRenderHint() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.setRenderHint')], [('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.setRenderHint')])], None)), ('setSamples() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setSamples')], [], None)), ('setScaleDiv() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setScaleDiv')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setScaleDiv')])], None)), ('setScaleDraw() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setScaleDraw')], [], None)), ('setScaleInterval() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.setScaleInterval')], [], None)), ('setScaleRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setScaleRect')], [], None)), ('setSize() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setSize')], [], None)), ('setSpacing() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setSpacing')], [('(qwt.plot_layout.QwtPlotLayout method)', [('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setSpacing')]), ('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setSpacing')]), ('(qwt.scale_draw.QwtAbstractScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setSpacing')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setSpacing')])], None)), ('setStyle() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setStyle')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setStyle')])], None)), ('setSvgDocument() (qwt.symbol.QwtSymbol method)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.setSvgDocument')], [], None)), ('setSymbol() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.setSymbol')], [('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setSymbol')])], None)), ('setText() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.setText')], [('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.setText')]), ('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.setText')])], None)), ('setTextEngine() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.setTextEngine')], [], None)), ('setTickLength() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setTickLength')], [], None)), ('setTickLighterFactor() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setTickLighterFactor')], [], None)), ('setTicks() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.setTicks')], [], None)), ('setTitle() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.setTitle')], [('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.setTitle')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setTitle')])], None)), ('setTitleRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.setTitleRect')], [], None)), ('setTransformation() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.setTransformation')], [('(qwt.scale_engine.QwtScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.setTransformation')]), ('(qwt.scale_map.QwtScaleMap method)', [('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.setTransformation')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.setTransformation')])], None)), ('setUpperBound() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.setUpperBound')], [], None)), ('setValue() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.setValue')], [('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setValue')])], None)), ('setValues() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.setValues')], [], None)), ('setVisible() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setVisible')], [], None)), ('setXAxis() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setXAxis')], [], None)), ('setXDiv() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.setXDiv')], [], None)), ('setXValue() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setXValue')], [], None)), ('setYAxis() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setYAxis')], [], None)), ('setYDiv() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.setYDiv')], [], None)), ('setYValue() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.setYValue')], [], None)), ('setZ() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.setZ')], [], None)), ('show() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.show')], [], None)), ('size() (qwt.plot_series.QwtPointArrayData method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData.size')], [('(qwt.plot_series.QwtSeriesData method)', [('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesData.size')]), ('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.size')])], None)), ('sizeHint() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.sizeHint')], [('(qwt.legend.QwtLegendLabel method)', [('', 'reference/plot.html#qwt.legend.QwtLegendLabel.sizeHint')]), ('(qwt.plot.QwtPlot method)', [('', 'reference/plot.html#qwt.plot.QwtPlot.sizeHint')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.sizeHint')]), ('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.sizeHint')])], None)), ('sizeMetrics() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.sizeMetrics')], [], None)), ('spacing() (qwt.legend.QwtLegendLabel method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendLabel.spacing')], [('(qwt.plot_layout.QwtPlotLayout method)', [('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.spacing')]), ('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.spacing')]), ('(qwt.scale_draw.QwtAbstractScaleDraw method)', [('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.spacing')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.spacing')])], None)), ('startBorderDist() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.startBorderDist')], [], None)), ('strip() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.strip')], [], None)), ('Style (qwt.symbol.QwtSymbol attribute)', ([('', 'reference/symbol.html#qwt.symbol.QwtSymbol.Style')], [], None)), ('style() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.style')], [('(qwt.symbol.QwtSymbol method)', [('', 'reference/symbol.html#qwt.symbol.QwtSymbol.style')])], None)), ('swapData() (qwt.plot_series.QwtSeriesStore method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtSeriesStore.swapData')], [], None)), ('symbol() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.symbol')], [('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.symbol')])], None)), ('symmetrize() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.symmetrize')], [], None))]), ('T', [('testAttribute() (qwt.plot_directpainter.QwtPlotDirectPainter method)', ([('', 'reference/plot_directpainter.html#qwt.plot_directpainter.QwtPlotDirectPainter.testAttribute')], [('(qwt.scale_engine.QwtScaleEngine method)', [('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.testAttribute')])], None)), ('testCurveAttribute() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.testCurveAttribute')], [], None)), ('testDiscardFlag() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.testDiscardFlag')], [], None)), ('testItemAttribute() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.testItemAttribute')], [], None)), ('testItemInterest() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.testItemInterest')], [], None)), ('testLayoutAttribute() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.testLayoutAttribute')], [], None)), ('testLayoutFlag() (qwt.plot_renderer.QwtPlotRenderer method)', ([('', 'reference/plot.html#qwt.plot_renderer.QwtPlotRenderer.testLayoutFlag')], [('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.testLayoutFlag')])], None)), ('testLegendAttribute() (qwt.plot_curve.QwtPlotCurve method)', ([('', 'reference/plot.html#qwt.plot_curve.QwtPlotCurve.testLegendAttribute')], [], None)), ('testPaintAttribute() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.testPaintAttribute')], [('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.testPaintAttribute')])], None)), ('testRenderHint() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.testRenderHint')], [('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.testRenderHint')])], None)), ('text() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.text')], [('(qwt.text.QwtTextLabel method)', [('', 'reference/text.html#qwt.text.QwtTextLabel.text')])], None)), ('textEngine() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.textEngine')], [], None)), ('textMargins() (qwt.text.QwtPlainTextEngine method)', ([('', 'reference/text.html#qwt.text.QwtPlainTextEngine.textMargins')], [('(qwt.text.QwtRichTextEngine method)', [('', 'reference/text.html#qwt.text.QwtRichTextEngine.textMargins')]), ('(qwt.text.QwtTextEngine method)', [('', 'reference/text.html#qwt.text.QwtTextEngine.textMargins')])], None)), ('textRect() (qwt.text.QwtTextLabel method)', ([('', 'reference/text.html#qwt.text.QwtTextLabel.textRect')], [], None)), ('textSize() (qwt.text.QwtPlainTextEngine method)', ([('', 'reference/text.html#qwt.text.QwtPlainTextEngine.textSize')], [('(qwt.text.QwtRichTextEngine method)', [('', 'reference/text.html#qwt.text.QwtRichTextEngine.textSize')]), ('(qwt.text.QwtText method)', [('', 'reference/text.html#qwt.text.QwtText.textSize')]), ('(qwt.text.QwtTextEngine method)', [('', 'reference/text.html#qwt.text.QwtTextEngine.textSize')])], None)), ('tickLabel() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.tickLabel')], [], None)), ('tickLength() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.tickLength')], [], None)), ('tickLighterFactor() (qwt.scale_draw.QwtAbstractScaleDraw method)', ([('', 'reference/scale.html#qwt.scale_draw.QwtAbstractScaleDraw.tickLighterFactor')], [], None)), ('ticks() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.ticks')], [], None)), ('title() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.title')], [('(qwt.plot.QwtPlot method)', [('', 'reference/plot.html#qwt.plot.QwtPlot.title')]), ('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.title')]), ('(qwt.scale_widget.QwtScaleWidget method)', [('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.title')])], None)), ('titleHeightForWidth() (qwt.scale_widget.QwtScaleWidget method)', ([('', 'reference/scale.html#qwt.scale_widget.QwtScaleWidget.titleHeightForWidth')], [], None)), ('titleLabel() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.titleLabel')], [], None)), ('titleRect() (qwt.plot_layout.QwtPlotLayout method)', ([('', 'reference/plot_layout.html#qwt.plot_layout.QwtPlotLayout.titleRect')], [], None)), ('toImage() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.toImage')], [], None)), ('toPixmap() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.toPixmap')], [], None)), ('transform() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.transform')], [('(qwt.scale_map.QwtScaleMap method)', [('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.transform')]), ('(qwt.transform.QwtLogTransform method)', [('', 'reference/transform.html#qwt.transform.QwtLogTransform.transform')]), ('(qwt.transform.QwtNullTransform method)', [('', 'reference/transform.html#qwt.transform.QwtNullTransform.transform')]), ('(qwt.transform.QwtPowerTransform method)', [('', 'reference/transform.html#qwt.transform.QwtPowerTransform.transform')]), ('(qwt.transform.QwtTransform method)', [('', 'reference/transform.html#qwt.transform.QwtTransform.transform')])], None)), ('transform_scalar() (qwt.scale_map.QwtScaleMap method)', ([('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.transform_scalar')], [], None)), ('transformation() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.transformation')], [('(qwt.scale_map.QwtScaleMap method)', [('', 'reference/scale.html#qwt.scale_map.QwtScaleMap.transformation')])], None))]), ('U', [('unite() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.unite')], [], None)), ('updateAxes() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.updateAxes')], [], None)), ('updateCanvasMargins() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.updateCanvasMargins')], [], None)), ('updateLayout() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.updateLayout')], [], None)), ('updateLegend() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.updateLegend')], [('(qwt.plot.QwtPlot method)', [('', 'reference/plot.html#qwt.plot.QwtPlot.updateLegend')]), ('(qwt.plot.QwtPlotItem method)', [('', 'reference/plot.html#qwt.plot.QwtPlotItem.updateLegend')])], None)), ('updateLegendItems() (qwt.plot.QwtPlot method)', ([('', 'reference/plot.html#qwt.plot.QwtPlot.updateLegendItems')], [], None)), ('updateScaleDiv() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.updateScaleDiv')], [], None)), ('updateState() (qwt.graphic.QwtGraphic method)', ([('', 'reference/graphic.html#qwt.graphic.QwtGraphic.updateState')], [], None)), ('updateStyleSheetInfo() (qwt.plot_canvas.QwtPlotCanvas method)', ([('', 'reference/plot.html#qwt.plot_canvas.QwtPlotCanvas.updateStyleSheetInfo')], [], None)), ('updateWidget() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.updateWidget')], [], None)), ('upperBound() (qwt.scale_div.QwtScaleDiv method)', ([('', 'reference/scale.html#qwt.scale_div.QwtScaleDiv.upperBound')], [], None)), ('upperMargin() (qwt.scale_engine.QwtScaleEngine method)', ([('', 'reference/scale.html#qwt.scale_engine.QwtScaleEngine.upperMargin')], [], None)), ('usedColor() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.usedColor')], [], None)), ('usedFont() (qwt.text.QwtText method)', ([('', 'reference/text.html#qwt.text.QwtText.usedFont')], [], None))]), ('V', [('value() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.value')], [('(qwt.plot_marker.QwtPlotMarker method)', [('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.value')])], None)), ('values() (qwt.legend.QwtLegendData method)', ([('', 'reference/plot.html#qwt.legend.QwtLegendData.values')], [], None)), ('verticalScrollBar() (qwt.legend.QwtLegend method)', ([('', 'reference/plot.html#qwt.legend.QwtLegend.verticalScrollBar')], [], None))]), ('W', [('width() (qwt.interval.QwtInterval method)', ([('', 'reference/interval.html#qwt.interval.QwtInterval.width')], [], None))]), ('X', [('xAxis() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.xAxis')], [], None)), ('xData() (qwt.plot_series.QwtPointArrayData method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData.xData')], [], None)), ('xEnabled() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.xEnabled')], [], None)), ('xMinEnabled() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.xMinEnabled')], [], None)), ('xScaleDiv() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.xScaleDiv')], [], None)), ('xValue() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.xValue')], [], None))]), ('Y', [('yAxis() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.yAxis')], [], None)), ('yData() (qwt.plot_series.QwtPointArrayData method)', ([('', 'reference/plot_series.html#qwt.plot_series.QwtPointArrayData.yData')], [], None)), ('yEnabled() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.yEnabled')], [], None)), ('yMinEnabled() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.yMinEnabled')], [], None)), ('yScaleDiv() (qwt.plot_grid.QwtPlotGrid method)', ([('', 'reference/plot.html#qwt.plot_grid.QwtPlotGrid.yScaleDiv')], [], None)), ('yValue() (qwt.plot_marker.QwtPlotMarker method)', ([('', 'reference/plot.html#qwt.plot_marker.QwtPlotMarker.yValue')], [], None))]), ('Z', [('z() (qwt.plot.QwtPlotItem method)', ([('', 'reference/plot.html#qwt.plot.QwtPlotItem.z')], [], None))])], 'genindexcounts': [31, 30, 28, 54, 19, 7, 6, 11, 45, 2, 32, 54, 1, 2, 20, 108, 27, 203, 47, 16, 4, 1, 6, 6, 1], 'split_index': False, 'content_root': './', 'css_tag': .css_tag at 0x7f3d3a59f100>, 'js_tag': .js_tag at 0x7f3d3a59d080>}, None) +py-modindex [app] emitting event: 'html-page-context'('py-modindex', 'domainindex.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'py-modindex', 'current_page_name': 'py-modindex', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3bfe4a40>, 'hasdoc': .hasdoc at 0x7f3d3a947240>, 'toctree': . at 0x7f3d3a944180>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'indextitle': 'Python Module Index', 'content': [('c', [IndexEntry(name='qwt.color_map', subtype=0, docname='reference/plot', anchor='module-qwt.color_map', extra='', qualifier='', descr='')]), ('g', [IndexEntry(name='qwt.graphic', subtype=0, docname='reference/graphic', anchor='module-qwt.graphic', extra='', qualifier='', descr='')]), ('i', [IndexEntry(name='qwt.interval', subtype=0, docname='reference/interval', anchor='module-qwt.interval', extra='', qualifier='', descr='')]), ('l', [IndexEntry(name='qwt.legend', subtype=0, docname='reference/plot', anchor='module-qwt.legend', extra='', qualifier='', descr='')]), ('p', [IndexEntry(name='qwt.plot', subtype=0, docname='reference/plot', anchor='module-qwt.plot', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_canvas', subtype=0, docname='reference/plot', anchor='module-qwt.plot_canvas', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_curve', subtype=0, docname='reference/plot', anchor='module-qwt.plot_curve', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_directpainter', subtype=0, docname='reference/plot_directpainter', anchor='module-qwt.plot_directpainter', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_grid', subtype=0, docname='reference/plot', anchor='module-qwt.plot_grid', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_layout', subtype=0, docname='reference/plot_layout', anchor='module-qwt.plot_layout', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_marker', subtype=0, docname='reference/plot', anchor='module-qwt.plot_marker', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_renderer', subtype=0, docname='reference/plot', anchor='module-qwt.plot_renderer', extra='', qualifier='', descr=''), IndexEntry(name='qwt.plot_series', subtype=0, docname='reference/plot_series', anchor='module-qwt.plot_series', extra='', qualifier='', descr='')]), ('q', [IndexEntry(name='qwt', subtype=0, docname='index', anchor='module-qwt', extra='', qualifier='', descr='')]), ('s', [IndexEntry(name='qwt.scale_div', subtype=0, docname='reference/scale', anchor='module-qwt.scale_div', extra='', qualifier='', descr=''), IndexEntry(name='qwt.scale_draw', subtype=0, docname='reference/scale', anchor='module-qwt.scale_draw', extra='', qualifier='', descr=''), IndexEntry(name='qwt.scale_engine', subtype=0, docname='reference/scale', anchor='module-qwt.scale_engine', extra='', qualifier='', descr=''), IndexEntry(name='qwt.scale_map', subtype=0, docname='reference/scale', anchor='module-qwt.scale_map', extra='', qualifier='', descr=''), IndexEntry(name='qwt.scale_widget', subtype=0, docname='reference/scale', anchor='module-qwt.scale_widget', extra='', qualifier='', descr=''), IndexEntry(name='qwt.symbol', subtype=0, docname='reference/symbol', anchor='module-qwt.symbol', extra='', qualifier='', descr='')]), ('t', [IndexEntry(name='qwt.text', subtype=0, docname='reference/text', anchor='module-qwt.text', extra='', qualifier='', descr=''), IndexEntry(name='qwt.toqimage', subtype=0, docname='reference/toqimage', anchor='module-qwt.toqimage', extra='', qualifier='', descr=''), IndexEntry(name='qwt.transform', subtype=0, docname='reference/transform', anchor='module-qwt.transform', extra='', qualifier='', descr='')])], 'collapse_index': True, 'content_root': './', 'css_tag': .css_tag at 0x7f3d3a946980>, 'js_tag': .js_tag at 0x7f3d3a9468e0>}, None) done [app] emitting event: 'html-collect-pages'() highlighting module code... [ 4%] PyQt5.QtCore highlighting module code... [ 8%] builtins highlighting module code... [ 12%] qwt.color_map [app] emitting event: 'viewcode-find-source'('qwt.color_map',) -[app] emitting event: 'html-page-context'('_modules/qwt/color_map', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/color_map', 'current_page_name': '_modules/qwt/color_map', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d8e159e0>, 'hasdoc': .hasdoc at 0x7fc7d7075120>, 'toctree': . at 0x7fc7d718c860>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.color_map', 'body': '

Source code for qwt.color_map

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nColor maps\n----------\n\nQwtColorMap\n~~~~~~~~~~~\n\n.. autoclass:: QwtColorMap\n   :members:\n\nQwtLinearColorMap\n~~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtLinearColorMap\n   :members:\n\nQwtAlphaColorMap\n~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtAlphaColorMap\n   :members:\n"""\n\nfrom qtpy.QtCore import QObject, Qt, qIsNaN\nfrom qtpy.QtGui import QColor, qAlpha, qBlue, qGreen, qRed, qRgb, qRgba\n\n\nclass ColorStop(object):\n    def __init__(self, pos=0.0, color=None):\n        self.pos = pos\n        if color is None:\n            self.rgb = 0\n        else:\n            self.rgb = color.rgba()\n        self.r = qRed(self.rgb)\n        self.g = qGreen(self.rgb)\n        self.b = qBlue(self.rgb)\n        self.a = qAlpha(self.rgb)\n\n        #  when mapping a value to rgb we will have to calcualate:\n        #     - const int v = int( ( s1.v0 + ratio * s1.vStep ) + 0.5 );\n        #  Thus adding 0.5 ( for rounding ) can be done in advance\n        self.r0 = self.r + 0.5\n        self.g0 = self.g + 0.5\n        self.b0 = self.b + 0.5\n        self.a0 = self.a + 0.5\n\n        self.rStep = self.gStep = self.bStep = self.aStep = 0.0\n        self.posStep = 0.0\n\n    def updateSteps(self, nextStop):\n        self.rStep = nextStop.r - self.r\n        self.gStep = nextStop.g - self.g\n        self.bStep = nextStop.b - self.b\n        self.aStep = nextStop.a - self.a\n        self.posStep = nextStop.pos - self.pos\n\n\nclass ColorStops(object):\n    def __init__(self):\n        self.__doAlpha = False\n        self.__stops = []\n\n    def insert(self, pos, color):\n        if pos < 0.0 or pos > 1.0:\n            return\n        if len(self.__stops) == 0:\n            index = 0\n            self.__stops = [None]\n        else:\n            index = self.findUpper(pos)\n            if (\n                index == len(self.__stops)\n                or abs(self.__stops[index].pos - pos) >= 0.001\n            ):\n                self.__stops.append(None)\n                for i in range(len(self.__stops) - 1, index, -1):\n                    self.__stops[i] = self.__stops[i - 1]\n        self.__stops[index] = ColorStop(pos, color)\n        self.__doAlpha = color.alpha() != 255\n        if index > 0:\n            self.__stops[index - 1].updateSteps(self.__stops[index])\n        if index < len(self.__stops) - 1:\n            self.__stops[index].updateSteps(self.__stops[index + 1])\n\n    def stops(self):\n        return self.__stops\n\n    def findUpper(self, pos):\n        index = 0\n        n = len(self.__stops)\n\n        while n > 0:\n            half = n >> 1\n            middle = index + half\n            if self.__stops[middle].pos <= pos:\n                index = middle + 1\n                n -= half + 1\n            else:\n                n = half\n        return index\n\n    def rgb(self, mode, pos):\n        if pos <= 0.0:\n            return self.__stops[0].rgb\n        if pos >= 1.0:\n            return self.__stops[-1].rgb\n\n        index = self.findUpper(pos)\n        if mode == QwtLinearColorMap.FixedColors:\n            return self.__stops[index - 1].rgb\n        else:\n            s1 = self.__stops[index - 1]\n            ratio = (pos - s1.pos) / s1.posStep\n            r = int(s1.r0 + ratio * s1.rStep)\n            g = int(s1.g0 + ratio * s1.gStep)\n            b = int(s1.b0 + ratio * s1.bStep)\n            if self.__doAlpha:\n                if s1.aStep:\n                    a = int(s1.a0 + ratio * s1.aStep)\n                    return qRgba(r, g, b, a)\n                else:\n                    return qRgba(r, g, b, s1.a)\n            else:\n                return qRgb(r, g, b)\n\n\n
\n[docs]\nclass QwtColorMap(object):\n """\n QwtColorMap is used to map values into colors.\n\n For displaying 3D data on a 2D plane the 3rd dimension is often\n displayed using colors, like f.e in a spectrogram.\n\n Each color map is optimized to return colors for only one of the\n following image formats:\n\n * `QImage.Format_Indexed8`\n * `QImage.Format_ARGB32`\n\n .. py:class:: QwtColorMap(format_)\n\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n\n .. seealso ::\n\n :py:data:`qwt.QwtScaleWidget`\n """\n\n # enum Format\n RGB, Indexed = list(range(2))\n\n def __init__(self, format_=None):\n if format_ is None:\n format_ = self.RGB\n self.__format = format_\n\n
\n[docs]\n def color(self, interval, value):\n """\n Map a value into a color\n\n :param qwt.interval.QwtInterval interval: valid interval for value\n :param float value: value\n :return: the color corresponding to value\n\n .. warning ::\n\n This method is slow for Indexed color maps. If it is necessary to\n map many values, its better to get the color table once and find\n the color using `colorIndex()`.\n """\n if self.__format == self.RGB:\n return QColor.fromRgba(self.rgb(interval, value))\n else:\n index = self.colorIndex(interval, value)\n return self.colorTable(interval)[index]
\n\n\n def format(self):\n return self.__format\n\n
\n[docs]\n def colorTable(self, interval):\n """\n Build and return a color map of 256 colors\n\n :param qwt.interval.QwtInterval interval: range for the values\n :return: a color table, that can be used for a `QImage`\n\n The color table is needed for rendering indexed images in combination\n with using `colorIndex()`.\n """\n table = [0] * 256\n if interval.isValid():\n step = interval.width() / (len(table) - 1)\n for i in range(len(table)):\n table[i] = self.rgb(interval, interval.minValue() + step * i)\n return table
\n\n\n def rgb(self, interval, value):\n # To be reimplemented\n return QColor().rgb()\n\n def colorIndex(self, interval, value):\n # To be reimplemented\n return 0
\n\n\n\nclass QwtLinearColorMap_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.colorStops = ColorStops()\n self.mode = None\n\n\n
\n[docs]\nclass QwtLinearColorMap(QwtColorMap):\n """\n Build a linear color map with two stops.\n\n .. py:class:: QwtLinearColorMap(format_)\n\n Build a color map with two stops at 0.0 and 1.0.\n The color at 0.0 is `Qt.blue`, at 1.0 it is `Qt.yellow`.\n\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n\n .. py:class:: QwtLinearColorMap(color1, color2, [format_=QwtColorMap.RGB]):\n :noindex:\n\n Build a color map with two stops at 0.0 and 1.0.\n\n :param QColor color1: color at 0.\n :param QColor color2: color at 1.\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n """\n\n # enum Mode\n FixedColors, ScaledColors = list(range(2))\n\n def __init__(self, *args):\n color1, color2 = QColor(Qt.blue), QColor(Qt.yellow)\n format_ = QwtColorMap.RGB\n if len(args) == 1:\n (format_,) = args\n elif len(args) == 2:\n color1, color2 = args\n elif len(args) == 3:\n color1, color2, format_ = args\n elif len(args) != 0:\n raise TypeError(\n "%s() takes 0, 1, 2 or 3 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n super(QwtLinearColorMap, self).__init__(format_)\n self.__data = QwtLinearColorMap_PrivateData()\n self.__data.mode = self.ScaledColors\n self.setColorInterval(color1, color2)\n\n
\n[docs]\n def setMode(self, mode):\n """\n Set the mode of the color map\n\n :param int mode: :py:data:`QwtLinearColorMap.FixedColors` or :py:data:`QwtLinearColorMap.ScaledColors`\n\n `FixedColors` means the color is calculated from the next lower color\n stop. `ScaledColors` means the color is calculated by interpolating\n the colors of the adjacent stops.\n """\n self.__data.mode = mode
\n\n\n
\n[docs]\n def mode(self):\n """\n :return: the mode of the color map\n\n .. seealso ::\n\n :py:meth:`QwtLinearColorMap.setMode`\n """\n return self.__data.mode
\n\n\n def setColorInterval(self, color1, color2):\n self.__data.colorStops = ColorStops()\n self.__data.colorStops.insert(0.0, QColor(color1))\n self.__data.colorStops.insert(1.0, QColor(color2))\n\n def addColorStop(self, value, color):\n if value >= 0.0 and value <= 1.0:\n self.__data.colorStops.insert(value, QColor(color))\n\n def colorStops(self):\n return self.__data.colorStops.stops()\n\n def color1(self):\n return QColor(self.__data.colorStops.rgb(self.__data.mode, 0.0))\n\n def color2(self):\n return QColor(self.__data.colorStops.rgb(self.__data.mode, 1.0))\n\n def rgb(self, interval, value):\n if qIsNaN(value):\n return 0\n width = interval.width()\n if width <= 0.0:\n return 0\n ratio = (value - interval.minValue()) / width\n return self.__data.colorStops.rgb(self.__data.mode, ratio)\n\n def colorIndex(self, interval, value):\n width = interval.width()\n if qIsNaN(value) or width <= 0.0 or value <= interval.minValue():\n return 0\n if value >= interval.maxValue():\n return 255\n ratio = (value - interval.minValue()) / width\n if self.__data.mode == self.FixedColors:\n return int(ratio * 255)\n else:\n return int(ratio * 255 + 0.5)
\n\n\n\nclass QwtAlphaColorMap_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.color = QColor()\n self.rgb = QColor().rgb()\n self.rgbMax = QColor().rgb()\n\n\n
\n[docs]\nclass QwtAlphaColorMap(QwtColorMap):\n """\n QwtAlphaColorMap varies the alpha value of a color\n\n .. py:class:: QwtAlphaColorMap(color)\n\n Build a color map varying the alpha value of a color.\n\n :param QColor color: color of the map\n """\n\n def __init__(self, color):\n super(QwtAlphaColorMap, self).__init__(QwtColorMap.RGB)\n self.__data = QwtAlphaColorMap_PrivateData()\n self.setColor(color)\n\n
\n[docs]\n def setColor(self, color):\n """\n Set the color of the map\n\n :param QColor color: color of the map\n """\n self.__data.color = color\n self.__data.rgb = color.rgb() & qRgba(255, 255, 255, 0)\n self.__data.rgbMax = self.__data.rgb | (255 << 24)
\n\n\n
\n[docs]\n def color(self):\n """\n :return: the color of the map\n\n .. seealso ::\n\n :py:meth:`QwtAlphaColorMap.setColor`\n """\n return self.__data.color
\n\n\n def rgb(self, interval, value):\n if qIsNaN(value):\n return 0\n width = interval.width()\n if width <= 0.0:\n return 0\n if value <= interval.minValue():\n return self.__data.rgb\n if value >= interval.maxValue():\n return self.__data.rgbMax\n ratio = (value - interval.minValue()) / width\n return self.__data.rgb | (int(round(255 * ratio)) << 24)\n\n def colorIndex(self, interval, value):\n return 0
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d718c540>, 'js_tag': .js_tag at 0x7fc7d7da58a0>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/color_map', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/color_map', 'current_page_name': '_modules/qwt/color_map', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3c221a80>, 'hasdoc': .hasdoc at 0x7f3d3a295120>, 'toctree': . at 0x7f3d3a59c860>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.color_map', 'body': '

Source code for qwt.color_map

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nColor maps\n----------\n\nQwtColorMap\n~~~~~~~~~~~\n\n.. autoclass:: QwtColorMap\n   :members:\n\nQwtLinearColorMap\n~~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtLinearColorMap\n   :members:\n\nQwtAlphaColorMap\n~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtAlphaColorMap\n   :members:\n"""\n\nfrom qtpy.QtCore import QObject, Qt, qIsNaN\nfrom qtpy.QtGui import QColor, qAlpha, qBlue, qGreen, qRed, qRgb, qRgba\n\n\nclass ColorStop(object):\n    def __init__(self, pos=0.0, color=None):\n        self.pos = pos\n        if color is None:\n            self.rgb = 0\n        else:\n            self.rgb = color.rgba()\n        self.r = qRed(self.rgb)\n        self.g = qGreen(self.rgb)\n        self.b = qBlue(self.rgb)\n        self.a = qAlpha(self.rgb)\n\n        #  when mapping a value to rgb we will have to calcualate:\n        #     - const int v = int( ( s1.v0 + ratio * s1.vStep ) + 0.5 );\n        #  Thus adding 0.5 ( for rounding ) can be done in advance\n        self.r0 = self.r + 0.5\n        self.g0 = self.g + 0.5\n        self.b0 = self.b + 0.5\n        self.a0 = self.a + 0.5\n\n        self.rStep = self.gStep = self.bStep = self.aStep = 0.0\n        self.posStep = 0.0\n\n    def updateSteps(self, nextStop):\n        self.rStep = nextStop.r - self.r\n        self.gStep = nextStop.g - self.g\n        self.bStep = nextStop.b - self.b\n        self.aStep = nextStop.a - self.a\n        self.posStep = nextStop.pos - self.pos\n\n\nclass ColorStops(object):\n    def __init__(self):\n        self.__doAlpha = False\n        self.__stops = []\n\n    def insert(self, pos, color):\n        if pos < 0.0 or pos > 1.0:\n            return\n        if len(self.__stops) == 0:\n            index = 0\n            self.__stops = [None]\n        else:\n            index = self.findUpper(pos)\n            if (\n                index == len(self.__stops)\n                or abs(self.__stops[index].pos - pos) >= 0.001\n            ):\n                self.__stops.append(None)\n                for i in range(len(self.__stops) - 1, index, -1):\n                    self.__stops[i] = self.__stops[i - 1]\n        self.__stops[index] = ColorStop(pos, color)\n        self.__doAlpha = color.alpha() != 255\n        if index > 0:\n            self.__stops[index - 1].updateSteps(self.__stops[index])\n        if index < len(self.__stops) - 1:\n            self.__stops[index].updateSteps(self.__stops[index + 1])\n\n    def stops(self):\n        return self.__stops\n\n    def findUpper(self, pos):\n        index = 0\n        n = len(self.__stops)\n\n        while n > 0:\n            half = n >> 1\n            middle = index + half\n            if self.__stops[middle].pos <= pos:\n                index = middle + 1\n                n -= half + 1\n            else:\n                n = half\n        return index\n\n    def rgb(self, mode, pos):\n        if pos <= 0.0:\n            return self.__stops[0].rgb\n        if pos >= 1.0:\n            return self.__stops[-1].rgb\n\n        index = self.findUpper(pos)\n        if mode == QwtLinearColorMap.FixedColors:\n            return self.__stops[index - 1].rgb\n        else:\n            s1 = self.__stops[index - 1]\n            ratio = (pos - s1.pos) / s1.posStep\n            r = int(s1.r0 + ratio * s1.rStep)\n            g = int(s1.g0 + ratio * s1.gStep)\n            b = int(s1.b0 + ratio * s1.bStep)\n            if self.__doAlpha:\n                if s1.aStep:\n                    a = int(s1.a0 + ratio * s1.aStep)\n                    return qRgba(r, g, b, a)\n                else:\n                    return qRgba(r, g, b, s1.a)\n            else:\n                return qRgb(r, g, b)\n\n\n
\n[docs]\nclass QwtColorMap(object):\n """\n QwtColorMap is used to map values into colors.\n\n For displaying 3D data on a 2D plane the 3rd dimension is often\n displayed using colors, like f.e in a spectrogram.\n\n Each color map is optimized to return colors for only one of the\n following image formats:\n\n * `QImage.Format_Indexed8`\n * `QImage.Format_ARGB32`\n\n .. py:class:: QwtColorMap(format_)\n\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n\n .. seealso ::\n\n :py:data:`qwt.QwtScaleWidget`\n """\n\n # enum Format\n RGB, Indexed = list(range(2))\n\n def __init__(self, format_=None):\n if format_ is None:\n format_ = self.RGB\n self.__format = format_\n\n
\n[docs]\n def color(self, interval, value):\n """\n Map a value into a color\n\n :param qwt.interval.QwtInterval interval: valid interval for value\n :param float value: value\n :return: the color corresponding to value\n\n .. warning ::\n\n This method is slow for Indexed color maps. If it is necessary to\n map many values, its better to get the color table once and find\n the color using `colorIndex()`.\n """\n if self.__format == self.RGB:\n return QColor.fromRgba(self.rgb(interval, value))\n else:\n index = self.colorIndex(interval, value)\n return self.colorTable(interval)[index]
\n\n\n def format(self):\n return self.__format\n\n
\n[docs]\n def colorTable(self, interval):\n """\n Build and return a color map of 256 colors\n\n :param qwt.interval.QwtInterval interval: range for the values\n :return: a color table, that can be used for a `QImage`\n\n The color table is needed for rendering indexed images in combination\n with using `colorIndex()`.\n """\n table = [0] * 256\n if interval.isValid():\n step = interval.width() / (len(table) - 1)\n for i in range(len(table)):\n table[i] = self.rgb(interval, interval.minValue() + step * i)\n return table
\n\n\n def rgb(self, interval, value):\n # To be reimplemented\n return QColor().rgb()\n\n def colorIndex(self, interval, value):\n # To be reimplemented\n return 0
\n\n\n\nclass QwtLinearColorMap_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.colorStops = ColorStops()\n self.mode = None\n\n\n
\n[docs]\nclass QwtLinearColorMap(QwtColorMap):\n """\n Build a linear color map with two stops.\n\n .. py:class:: QwtLinearColorMap(format_)\n\n Build a color map with two stops at 0.0 and 1.0.\n The color at 0.0 is `Qt.blue`, at 1.0 it is `Qt.yellow`.\n\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n\n .. py:class:: QwtLinearColorMap(color1, color2, [format_=QwtColorMap.RGB]):\n :noindex:\n\n Build a color map with two stops at 0.0 and 1.0.\n\n :param QColor color1: color at 0.\n :param QColor color2: color at 1.\n :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`)\n """\n\n # enum Mode\n FixedColors, ScaledColors = list(range(2))\n\n def __init__(self, *args):\n color1, color2 = QColor(Qt.blue), QColor(Qt.yellow)\n format_ = QwtColorMap.RGB\n if len(args) == 1:\n (format_,) = args\n elif len(args) == 2:\n color1, color2 = args\n elif len(args) == 3:\n color1, color2, format_ = args\n elif len(args) != 0:\n raise TypeError(\n "%s() takes 0, 1, 2 or 3 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n super(QwtLinearColorMap, self).__init__(format_)\n self.__data = QwtLinearColorMap_PrivateData()\n self.__data.mode = self.ScaledColors\n self.setColorInterval(color1, color2)\n\n
\n[docs]\n def setMode(self, mode):\n """\n Set the mode of the color map\n\n :param int mode: :py:data:`QwtLinearColorMap.FixedColors` or :py:data:`QwtLinearColorMap.ScaledColors`\n\n `FixedColors` means the color is calculated from the next lower color\n stop. `ScaledColors` means the color is calculated by interpolating\n the colors of the adjacent stops.\n """\n self.__data.mode = mode
\n\n\n
\n[docs]\n def mode(self):\n """\n :return: the mode of the color map\n\n .. seealso ::\n\n :py:meth:`QwtLinearColorMap.setMode`\n """\n return self.__data.mode
\n\n\n def setColorInterval(self, color1, color2):\n self.__data.colorStops = ColorStops()\n self.__data.colorStops.insert(0.0, QColor(color1))\n self.__data.colorStops.insert(1.0, QColor(color2))\n\n def addColorStop(self, value, color):\n if value >= 0.0 and value <= 1.0:\n self.__data.colorStops.insert(value, QColor(color))\n\n def colorStops(self):\n return self.__data.colorStops.stops()\n\n def color1(self):\n return QColor(self.__data.colorStops.rgb(self.__data.mode, 0.0))\n\n def color2(self):\n return QColor(self.__data.colorStops.rgb(self.__data.mode, 1.0))\n\n def rgb(self, interval, value):\n if qIsNaN(value):\n return 0\n width = interval.width()\n if width <= 0.0:\n return 0\n ratio = (value - interval.minValue()) / width\n return self.__data.colorStops.rgb(self.__data.mode, ratio)\n\n def colorIndex(self, interval, value):\n width = interval.width()\n if qIsNaN(value) or width <= 0.0 or value <= interval.minValue():\n return 0\n if value >= interval.maxValue():\n return 255\n ratio = (value - interval.minValue()) / width\n if self.__data.mode == self.FixedColors:\n return int(ratio * 255)\n else:\n return int(ratio * 255 + 0.5)
\n\n\n\nclass QwtAlphaColorMap_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.color = QColor()\n self.rgb = QColor().rgb()\n self.rgbMax = QColor().rgb()\n\n\n
\n[docs]\nclass QwtAlphaColorMap(QwtColorMap):\n """\n QwtAlphaColorMap varies the alpha value of a color\n\n .. py:class:: QwtAlphaColorMap(color)\n\n Build a color map varying the alpha value of a color.\n\n :param QColor color: color of the map\n """\n\n def __init__(self, color):\n super(QwtAlphaColorMap, self).__init__(QwtColorMap.RGB)\n self.__data = QwtAlphaColorMap_PrivateData()\n self.setColor(color)\n\n
\n[docs]\n def setColor(self, color):\n """\n Set the color of the map\n\n :param QColor color: color of the map\n """\n self.__data.color = color\n self.__data.rgb = color.rgb() & qRgba(255, 255, 255, 0)\n self.__data.rgbMax = self.__data.rgb | (255 << 24)
\n\n\n
\n[docs]\n def color(self):\n """\n :return: the color of the map\n\n .. seealso ::\n\n :py:meth:`QwtAlphaColorMap.setColor`\n """\n return self.__data.color
\n\n\n def rgb(self, interval, value):\n if qIsNaN(value):\n return 0\n width = interval.width()\n if width <= 0.0:\n return 0\n if value <= interval.minValue():\n return self.__data.rgb\n if value >= interval.maxValue():\n return self.__data.rgbMax\n ratio = (value - interval.minValue()) / width\n return self.__data.rgb | (int(round(255 * ratio)) << 24)\n\n def colorIndex(self, interval, value):\n return 0
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d3a59c540>, 'js_tag': .js_tag at 0x7f3d3b1b18a0>}, None) highlighting module code... [ 17%] qwt.graphic [app] emitting event: 'viewcode-find-source'('qwt.graphic',) -[app] emitting event: 'html-page-context'('_modules/qwt/graphic', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/graphic', 'current_page_name': '_modules/qwt/graphic', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6c57920>, 'hasdoc': .hasdoc at 0x7fc7d6c545e0>, 'toctree': . at 0x7fc7d6b216c0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.graphic', 'body': '

Source code for qwt.graphic

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtGraphic\n----------\n\n.. autoclass:: QwtGraphic\n   :members:\n"""\n\nimport math\n\nfrom qtpy.QtCore import QObject, QPointF, QRect, QRectF, QSize, QSizeF, Qt\nfrom qtpy.QtGui import (\n    QImage,\n    QPaintEngine,\n    QPainter,\n    QPainterPathStroker,\n    QPixmap,\n    QTransform,\n)\n\nfrom qwt.null_paintdevice import QwtNullPaintDevice\nfrom qwt.painter_command import QwtPainterCommand\n\n\ndef qwtHasScalablePen(painter):\n    pen = painter.pen()\n    scalablePen = False\n    if pen.style() != Qt.NoPen and pen.brush().style() != Qt.NoBrush:\n        scalablePen = not pen.isCosmetic()\n    return scalablePen\n\n\ndef qwtStrokedPathRect(painter, path):\n    stroker = QPainterPathStroker()\n    stroker.setWidth(painter.pen().widthF())\n    stroker.setCapStyle(painter.pen().capStyle())\n    stroker.setJoinStyle(painter.pen().joinStyle())\n    stroker.setMiterLimit(painter.pen().miterLimit())\n    rect = QRectF()\n    if qwtHasScalablePen(painter):\n        stroke = stroker.createStroke(path)\n        rect = painter.transform().map(stroke).boundingRect()\n    else:\n        mappedPath = painter.transform().map(path)\n        mappedPath = stroker.createStroke(mappedPath)\n        rect = mappedPath.boundingRect()\n    return rect\n\n\ndef qwtExecCommand(painter, cmd, renderHints, transform, initialTransform):\n    if cmd.type() == QwtPainterCommand.Path:\n        doMap = False\n        if (\n            bool(renderHints & QwtGraphic.RenderPensUnscaled)\n            and painter.transform().isScaling()\n        ):\n            isCosmetic = painter.pen().isCosmetic()\n            doMap = not isCosmetic\n        if doMap:\n            tr = painter.transform()\n            painter.resetTransform()\n            path = tr.map(cmd.path())\n            if initialTransform:\n                painter.setTransform(initialTransform)\n                invt, _ok = initialTransform.inverted()\n                path = invt.map(path)\n            painter.drawPath(path)\n            painter.setTransform(tr)\n        else:\n            painter.drawPath(cmd.path())\n    elif cmd.type() == QwtPainterCommand.Pixmap:\n        data = cmd.pixmapData()\n        painter.drawPixmap(data.rect, data.pixmap, data.subRect)\n    elif cmd.type() == QwtPainterCommand.Image:\n        data = cmd.imageData()\n        painter.drawImage(data.rect, data.image, data.subRect, data.flags)\n    elif cmd.type() == QwtPainterCommand.State:\n        data = cmd.stateData()\n        if data.flags & QPaintEngine.DirtyPen:\n            painter.setPen(data.pen)\n        if data.flags & QPaintEngine.DirtyBrush:\n            painter.setBrush(data.brush)\n        if data.flags & QPaintEngine.DirtyBrushOrigin:\n            painter.setBrushOrigin(data.brushOrigin)\n        if data.flags & QPaintEngine.DirtyFont:\n            painter.setFont(data.font)\n        if data.flags & QPaintEngine.DirtyBackground:\n            painter.setBackgroundMode(data.backgroundMode)\n            painter.setBackground(data.backgroundBrush)\n        if data.flags & QPaintEngine.DirtyTransform:\n            painter.setTransform(data.transform)\n        if data.flags & QPaintEngine.DirtyClipEnabled:\n            painter.setClipping(data.isClipEnabled)\n        if data.flags & QPaintEngine.DirtyClipRegion:\n            painter.setClipRegion(data.clipRegion, data.clipOperation)\n        if data.flags & QPaintEngine.DirtyClipPath:\n            painter.setClipPath(data.clipPath, data.clipOperation)\n        if data.flags & QPaintEngine.DirtyHints:\n            for hint in (\n                QPainter.Antialiasing,\n                QPainter.TextAntialiasing,\n                QPainter.SmoothPixmapTransform,\n            ):\n                painter.setRenderHint(hint, bool(data.renderHints & hint))\n        if data.flags & QPaintEngine.DirtyCompositionMode:\n            painter.setCompositionMode(data.compositionMode)\n        if data.flags & QPaintEngine.DirtyOpacity:\n            painter.setOpacity(data.opacity)\n\n\nclass PathInfo(object):\n    def __init__(self, *args):\n        if len(args) == 0:\n            self.__scalablePen = False\n        elif len(args) == 3:\n            pointRect, boundingRect, scalablePen = args\n            self.__pointRect = pointRect\n            self.__boundingRect = boundingRect\n            self.__scalablePen = scalablePen\n        else:\n            raise TypeError(\n                "%s() takes 0 or 3 argument(s) (%s given)"\n                % (self.__class__.__name__, len(args))\n            )\n\n    def scaledBoundingRect(self, sx, sy, scalePens):\n        if sx == 1.0 and sy == 1.0:\n            return self.__boundingRect\n        transform = QTransform()\n        transform.scale(sx, sy)\n        if scalePens and self.__scalablePen:\n            rect = transform.mapRect(self.__boundingRect)\n        else:\n            rect = transform.mapRect(self.__pointRect)\n            l = abs(self.__pointRect.left() - self.__boundingRect.left())\n            r = abs(self.__pointRect.right() - self.__boundingRect.right())\n            t = abs(self.__pointRect.top() - self.__boundingRect.top())\n            b = abs(self.__pointRect.bottom() - self.__boundingRect.bottom())\n            rect.adjust(-l, -t, r, b)\n        return rect\n\n    def scaleFactorX(self, pathRect, targetRect, scalePens):\n        if pathRect.width() <= 0.0:\n            return 0.0\n        p0 = self.__pointRect.center()\n        l = abs(pathRect.left() - p0.x())\n        r = abs(pathRect.right() - p0.x())\n        w = 2.0 * min([l, r]) * targetRect.width() / pathRect.width()\n        if scalePens and self.__scalablePen:\n            sx = w / self.__boundingRect.width()\n        else:\n            pw = max(\n                [\n                    abs(self.__boundingRect.left() - self.__pointRect.left()),\n                    abs(self.__boundingRect.right() - self.__pointRect.right()),\n                ]\n            )\n            sx = (w - 2 * pw) / self.__pointRect.width()\n        return sx\n\n    def scaleFactorY(self, pathRect, targetRect, scalePens):\n        if pathRect.height() <= 0.0:\n            return 0.0\n        p0 = self.__pointRect.center()\n        t = abs(pathRect.top() - p0.y())\n        b = abs(pathRect.bottom() - p0.y())\n        h = 2.0 * min([t, b]) * targetRect.height() / pathRect.height()\n        if scalePens and self.__scalablePen:\n            sy = h / self.__boundingRect.height()\n        else:\n            pw = max(\n                [\n                    abs(self.__boundingRect.top() - self.__pointRect.top()),\n                    abs(self.__boundingRect.bottom() - self.__pointRect.bottom()),\n                ]\n            )\n            sy = (h - 2 * pw) / self.__pointRect.height()\n        return sy\n\n\nclass QwtGraphic_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n        self.boundingRect = QRectF(0.0, 0.0, -1.0, -1.0)\n        self.pointRect = QRectF(0.0, 0.0, -1.0, -1.0)\n        self.initialTransform = None\n        self.defaultSize = QSizeF()\n        self.commands = []\n        self.pathInfos = []\n        self.renderHints = 0\n\n\n
\n[docs]\nclass QwtGraphic(QwtNullPaintDevice):\n """\n A paint device for scalable graphics\n\n `QwtGraphic` is the representation of a graphic that is tailored for\n scalability. Like `QPicture` it will be initialized by `QPainter`\n operations and can be replayed later to any target paint device.\n\n While the usual image representations `QImage` and `QPixmap` are not\n scalable `Qt` offers two paint devices, that might be candidates\n for representing a vector graphic:\n\n - `QPicture`:\n\n Unfortunately `QPicture` had been forgotten, when Qt4\n introduced floating point based render engines. Its API\n is still on integers, what make it unusable for proper scaling.\n\n - `QSvgRenderer`, `QSvgGenerator`:\n\n Unfortunately `QSvgRenderer` hides to much information about\n its nodes in internal APIs, that are necessary for proper\n layout calculations. Also it is derived from `QObject` and\n can't be copied like `QImage`/`QPixmap`.\n\n `QwtGraphic` maps all scalable drawing primitives to a `QPainterPath`\n and stores them together with the painter state changes\n ( pen, brush, transformation ... ) in a list of `QwtPaintCommands`.\n For being a complete `QPaintDevice` it also stores pixmaps or images,\n what is somehow against the idea of the class, because these objects\n can't be scaled without a loss in quality.\n\n The main issue about scaling a `QwtGraphic` object are the pens used for\n drawing the outlines of the painter paths. While non cosmetic pens\n ( `QPen.isCosmetic()` ) are scaled with the same ratio as the path,\n cosmetic pens have a fixed width. A graphic might have paths with\n different pens - cosmetic and non-cosmetic.\n\n `QwtGraphic` caches 2 different rectangles:\n\n - control point rectangle:\n\n The control point rectangle is the bounding rectangle of all\n control point rectangles of the painter paths, or the target\n rectangle of the pixmaps/images.\n\n - bounding rectangle:\n\n The bounding rectangle extends the control point rectangle by\n what is needed for rendering the outline with an unscaled pen.\n\n Because the offset for drawing the outline depends on the shape\n of the painter path ( the peak of a triangle is different than the flat side )\n scaling with a fixed aspect ratio always needs to be calculated from the\n control point rectangle.\n\n .. py:class:: QwtGraphic()\n\n Initializes a null graphic\n\n .. py:class:: QwtGraphic(other)\n :noindex:\n\n Copy constructor\n\n :param qwt.graphic.QwtGraphic other: Source\n """\n\n # enum RenderHint\n RenderPensUnscaled = 0x1\n\n def __init__(self, *args):\n QwtNullPaintDevice.__init__(self)\n if len(args) == 0:\n self.setMode(QwtNullPaintDevice.PathMode)\n self.__data = QwtGraphic_PrivateData()\n elif len(args) == 1:\n (other,) = args\n self.setMode(other.mode())\n self.__data = other.__data\n else:\n raise TypeError(\n "%s() takes 0 or 1 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n\n
\n[docs]\n def reset(self):\n """Clear all stored commands"""\n self.__data.commands = []\n self.__data.pathInfos = []\n self.__data.boundingRect = QRectF(0.0, 0.0, -1.0, -1.0)\n self.__data.pointRect = QRectF(0.0, 0.0, -1.0, -1.0)\n self.__data.defaultSize = QSizeF()
\n\n\n
\n[docs]\n def isNull(self):\n """Return True, when no painter commands have been stored"""\n return len(self.__data.commands) == 0
\n\n\n
\n[docs]\n def isEmpty(self):\n """Return True, when the bounding rectangle is empty"""\n return self.__data.boundingRect.isEmpty()
\n\n\n
\n[docs]\n def setRenderHint(self, hint, on=True):\n """Toggle an render hint"""\n if on:\n self.__data.renderHints |= hint\n else:\n self.__data.renderHints &= ~hint
\n\n\n
\n[docs]\n def testRenderHint(self, hint):\n """Test a render hint"""\n return bool(self.__data.renderHints & hint)
\n\n\n
\n[docs]\n def boundingRect(self):\n """\n The bounding rectangle is the :py:meth:`controlPointRect`\n extended by the areas needed for rendering the outlines\n with unscaled pens.\n\n :return: Bounding rectangle of the graphic\n\n .. seealso::\n\n :py:meth:`controlPointRect`, :py:meth:`scaledBoundingRect`\n """\n if self.__data.boundingRect.width() < 0:\n return QRectF()\n return self.__data.boundingRect
\n\n\n
\n[docs]\n def controlPointRect(self):\n """\n The control point rectangle is the bounding rectangle\n of all control points of the paths and the target\n rectangles of the images/pixmaps.\n\n :return: Control point rectangle\n\n .. seealso::\n\n :py:meth:`boundingRect()`, :py:meth:`scaledBoundingRect()`\n """\n if self.__data.pointRect.width() < 0:\n return QRectF()\n return self.__data.pointRect
\n\n\n
\n[docs]\n def scaledBoundingRect(self, sx, sy):\n """\n Calculate the target rectangle for scaling the graphic\n\n :param float sx: Horizontal scaling factor\n :param float sy: Vertical scaling factor\n :return: Scaled bounding rectangle\n\n .. note::\n\n In case of paths that are painted with a cosmetic pen\n (see :py:meth:`QPen.isCosmetic()`) the target rectangle is\n different to multiplying the bounding rectangle.\n\n .. seealso::\n\n :py:meth:`boundingRect()`, :py:meth:`controlPointRect()`\n """\n if sx == 1.0 and sy == 1.0:\n return self.__data.boundingRect\n transform = QTransform()\n transform.scale(sx, sy)\n rect = transform.mapRect(self.__data.pointRect)\n for pathInfo in self.__data.pathInfos:\n rect |= pathInfo.scaledBoundingRect(\n sx, sy, not bool(self.__data.renderHints & self.RenderPensUnscaled)\n )\n return rect
\n\n\n
\n[docs]\n def sizeMetrics(self):\n """Return Ceiled :py:meth:`defaultSize()`"""\n sz = self.defaultSize()\n return QSize(math.ceil(sz.width()), math.ceil(sz.height()))
\n\n\n
\n[docs]\n def setDefaultSize(self, size):\n """\n The default size is used in all methods rendering the graphic,\n where no size is explicitly specified. Assigning an empty size\n means, that the default size will be calculated from the bounding\n rectangle.\n\n :param QSizeF size: Default size\n\n .. seealso::\n\n :py:meth:`defaultSize()`, :py:meth:`boundingRect()`\n """\n w = max([0.0, size.width()])\n h = max([0.0, size.height()])\n self.__data.defaultSize = QSizeF(w, h)
\n\n\n
\n[docs]\n def defaultSize(self):\n """\n When a non empty size has been assigned by setDefaultSize() this\n size will be returned. Otherwise the default size is the size\n of the bounding rectangle.\n\n The default size is used in all methods rendering the graphic,\n where no size is explicitly specified.\n\n :return: Default size\n\n .. seealso::\n\n :py:meth:`setDefaultSize()`, :py:meth:`boundingRect()`\n """\n if not self.__data.defaultSize.isEmpty():\n return self.__data.defaultSize\n return self.boundingRect().size()
\n\n\n
\n[docs]\n def render(self, *args):\n """\n .. py:method:: render(painter)\n :noindex:\n\n Replay all recorded painter commands\n\n :param QPainter painter: Qt painter\n\n .. py:method:: render(painter, size, aspectRatioMode)\n :noindex:\n\n Replay all recorded painter commands\n\n The graphic is scaled to fit into the rectangle\n of the given size starting at ( 0, 0 ).\n\n :param QPainter painter: Qt painter\n :param QSizeF size: Size for the scaled graphic\n :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale\n\n .. py:method:: render(painter, rect, aspectRatioMode)\n :noindex:\n\n Replay all recorded painter commands\n\n The graphic is scaled to fit into the given rectangle\n\n :param QPainter painter: Qt painter\n :param QRectF rect: Rectangle for the scaled graphic\n :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale\n\n .. py:method:: render(painter, pos, aspectRatioMode)\n :noindex:\n\n Replay all recorded painter commands\n\n The graphic is scaled to the :py:meth:`defaultSize()` and aligned\n to a position.\n\n :param QPainter painter: Qt painter\n :param QPointF pos: Reference point, where to render\n :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale\n """\n if len(args) == 1:\n (painter,) = args\n if self.isNull():\n return\n transform = painter.transform()\n painter.save()\n for command in self.__data.commands:\n qwtExecCommand(\n painter,\n command,\n self.__data.renderHints,\n transform,\n self.__data.initialTransform,\n )\n painter.restore()\n elif len(args) in (2, 3) and isinstance(args[1], QSizeF):\n painter, size = args[:2]\n aspectRatioMode = Qt.IgnoreAspectRatio\n if len(args) == 3:\n aspectRatioMode = args[-1]\n r = QRectF(0.0, 0.0, size.width(), size.height())\n self.render(painter, r, aspectRatioMode)\n elif len(args) in (2, 3) and isinstance(args[1], QRectF):\n painter, rect = args[:2]\n aspectRatioMode = Qt.IgnoreAspectRatio\n if len(args) == 3:\n aspectRatioMode = args[-1]\n if self.isEmpty() or rect.isEmpty():\n return\n sx = 1.0\n sy = 1.0\n if self.__data.pointRect.width() > 0.0:\n sx = rect.width() / self.__data.pointRect.width()\n if self.__data.pointRect.height() > 0.0:\n sy = rect.height() / self.__data.pointRect.height()\n scalePens = not bool(self.__data.renderHints & self.RenderPensUnscaled)\n for info in self.__data.pathInfos:\n ssx = info.scaleFactorX(self.__data.pointRect, rect, scalePens)\n if ssx > 0.0:\n sx = min([sx, ssx])\n ssy = info.scaleFactorY(self.__data.pointRect, rect, scalePens)\n if ssy > 0.0:\n sy = min([sy, ssy])\n if aspectRatioMode == Qt.KeepAspectRatio:\n s = min([sx, sy])\n sx = s\n sy = s\n elif aspectRatioMode == Qt.KeepAspectRatioByExpanding:\n s = max([sx, sy])\n sx = s\n sy = s\n tr = QTransform()\n tr.translate(\n rect.center().x() - 0.5 * sx * self.__data.pointRect.width(),\n rect.center().y() - 0.5 * sy * self.__data.pointRect.height(),\n )\n tr.scale(sx, sy)\n tr.translate(-self.__data.pointRect.x(), -self.__data.pointRect.y())\n transform = painter.transform()\n if not scalePens and transform.isScaling():\n # we don't want to scale pens according to sx/sy,\n # but we want to apply the scaling from the\n # painter transformation later\n self.__data.initialTransform = QTransform()\n self.__data.initialTransform.scale(transform.m11(), transform.m22())\n painter.setTransform(tr, True)\n self.render(painter)\n painter.setTransform(transform)\n self.__data.initialTransform = None\n elif len(args) in (2, 3) and isinstance(args[1], QPointF):\n painter, pos = args[:2]\n alignment = Qt.AlignTop | Qt.AlignLeft\n if len(args) == 3:\n alignment = args[-1]\n r = QRectF(pos, self.defaultSize())\n if alignment & Qt.AlignLeft:\n r.moveLeft(pos.x())\n elif alignment & Qt.AlignHCenter:\n r.moveCenter(QPointF(pos.x(), r.center().y()))\n elif alignment & Qt.AlignRight:\n r.moveRight(pos.x())\n if alignment & Qt.AlignTop:\n r.moveTop(pos.y())\n elif alignment & Qt.AlignVCenter:\n r.moveCenter(QPointF(r.center().x(), pos.y()))\n elif alignment & Qt.AlignBottom:\n r.moveBottom(pos.y())\n self.render(painter, r)\n else:\n raise TypeError(\n "%s().render() takes 1, 2 or 3 argument(s) (%s "\n "given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def toPixmap(self, *args):\n """\n Convert the graphic to a `QPixmap`\n\n All pixels of the pixmap get initialized by `Qt.transparent`\n before the graphic is scaled and rendered on it.\n\n The size of the pixmap is the default size ( ceiled to integers )\n of the graphic.\n\n :return: The graphic as pixmap in default size\n\n .. seealso::\n\n :py:meth:`defaultSize()`, :py:meth:`toImage()`, :py:meth:`render()`\n """\n if len(args) == 0:\n if self.isNull():\n return QPixmap()\n sz = self.defaultSize()\n w = math.ceil(sz.width())\n h = math.ceil(sz.height())\n pixmap = QPixmap(w, h)\n pixmap.fill(Qt.transparent)\n r = QRectF(0.0, 0.0, sz.width(), sz.height())\n painter = QPainter(pixmap)\n self.render(painter, r, Qt.KeepAspectRatio)\n painter.end()\n return pixmap\n elif len(args) in (1, 2):\n size = args[0]\n aspectRatioMode = Qt.IgnoreAspectRatio\n if len(args) == 2:\n aspectRatioMode = args[-1]\n pixmap = QPixmap(size)\n pixmap.fill(Qt.transparent)\n r = QRect(0, 0, size.width(), size.height())\n painter = QPainter(pixmap)\n self.render(painter, r, aspectRatioMode)\n painter.end()\n return pixmap
\n\n\n
\n[docs]\n def toImage(self, *args):\n """\n .. py:method:: toImage()\n :noindex:\n\n Convert the graphic to a `QImage`\n\n All pixels of the image get initialized by 0 ( transparent )\n before the graphic is scaled and rendered on it.\n\n The format of the image is `QImage.Format_ARGB32_Premultiplied`.\n\n The size of the image is the default size ( ceiled to integers )\n of the graphic.\n\n :return: The graphic as image in default size\n\n .. py:method:: toImage(size, [aspectRatioMode=Qt.IgnoreAspectRatio])\n :noindex:\n\n Convert the graphic to a `QImage`\n\n All pixels of the image get initialized by 0 ( transparent )\n before the graphic is scaled and rendered on it.\n\n The format of the image is `QImage.Format_ARGB32_Premultiplied`.\n\n :param QSize size: Size of the image\n :param `Qt.AspectRatioMode` aspectRatioMode: Aspect ratio how to scale the graphic\n :return: The graphic as image\n\n .. seealso::\n\n :py:meth:`toPixmap()`, :py:meth:`render()`\n """\n if len(args) == 0:\n if self.isNull():\n return QImage()\n sz = self.defaultSize()\n w = math.ceil(sz.width())\n h = math.ceil(sz.height())\n image = QImage(w, h, QImage.Format_ARGB32)\n image.fill(0)\n r = QRect(0, 0, sz.width(), sz.height())\n painter = QPainter(image)\n self.render(painter, r, Qt.KeepAspectRatio)\n painter.end()\n return image\n elif len(args) in (1, 2):\n size = args[0]\n aspectRatioMode = Qt.IgnoreAspectRatio\n if len(args) == 2:\n aspectRatioMode = args[-1]\n image = QImage(size, QImage.Format_ARGB32_Premultiplied)\n image.fill(0)\n r = QRect(0, 0, size.width(), size.height())\n painter = QPainter(image)\n self.render(painter, r, aspectRatioMode)\n return image
\n\n\n
\n[docs]\n def drawPath(self, path):\n """\n Store a path command in the command list\n\n :param QPainterPath path: Painter path\n\n .. seealso::\n\n :py:meth:`QPaintEngine.drawPath()`\n """\n painter = self.paintEngine().painter()\n if painter is None:\n return\n self.__data.commands += [QwtPainterCommand(path)]\n if not path.isEmpty():\n scaledPath = painter.transform().map(path)\n pointRect = scaledPath.boundingRect()\n boundingRect = QRectF(pointRect)\n if (\n painter.pen().style() != Qt.NoPen\n and painter.pen().brush().style() != Qt.NoBrush\n ):\n boundingRect = qwtStrokedPathRect(painter, path)\n self.updateControlPointRect(pointRect)\n self.updateBoundingRect(boundingRect)\n self.__data.pathInfos += [\n PathInfo(pointRect, boundingRect, qwtHasScalablePen(painter))\n ]
\n\n\n
\n[docs]\n def drawPixmap(self, rect, pixmap, subRect):\n """\n Store a pixmap command in the command list\n\n :param QRectF rect: target rectangle\n :param QPixmap pixmap: Pixmap to be painted\n :param QRectF subRect: Reactangle of the pixmap to be painted\n\n .. seealso::\n\n :py:meth:`QPaintEngine.drawPixmap()`\n """\n painter = self.paintEngine().painter()\n if painter is None:\n return\n self.__data.commands += [QwtPainterCommand(rect, pixmap, subRect)]\n r = painter.transform().mapRect(rect)\n self.updateControlPointRect(r)\n self.updateBoundingRect(r)
\n\n\n
\n[docs]\n def drawImage(self, rect, image, subRect, flags):\n """\n Store a image command in the command list\n\n :param QRectF rect: target rectangle\n :param QImage image: Pixmap to be painted\n :param QRectF subRect: Reactangle of the pixmap to be painted\n :param Qt.ImageConversionFlags flags: Pixmap to be painted\n\n .. seealso::\n\n :py:meth:`QPaintEngine.drawImage()`\n """\n painter = self.paintEngine().painter()\n if painter is None:\n return\n self.__data.commands += [QwtPainterCommand(rect, image, subRect, flags)]\n r = painter.transform().mapRect(rect)\n self.updateControlPointRect(r)\n self.updateBoundingRect(r)
\n\n\n
\n[docs]\n def updateState(self, state):\n """\n Store a state command in the command list\n\n :param QPaintEngineState state: State to be stored\n\n .. seealso::\n\n :py:meth:`QPaintEngine.updateState()`\n """\n # XXX: shall we call the parent's implementation of updateState?\n self.__data.commands += [QwtPainterCommand(state)]
\n\n\n def updateBoundingRect(self, rect):\n br = QRectF(rect)\n painter = self.paintEngine().painter()\n if painter and painter.hasClipping():\n cr = painter.clipRegion().boundingRect()\n cr = painter.transform().mapRect(cr)\n br &= cr\n if self.__data.boundingRect.width() < 0:\n self.__data.boundingRect = br\n else:\n self.__data.boundingRect |= br\n\n def updateControlPointRect(self, rect):\n if self.__data.pointRect.width() < 0.0:\n self.__data.pointRect = rect\n else:\n self.__data.pointRect |= rect\n\n def commands(self):\n return self.__data.commands\n\n def setCommands(self, commands):\n self.reset()\n painter = QPainter(self)\n for cmd in commands:\n qwtExecCommand(painter, cmd, 0, QTransform(), None)\n painter.end()
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6b23740>, 'js_tag': .js_tag at 0x7fc7d6b22e80>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/graphic', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/graphic', 'current_page_name': '_modules/qwt/graphic', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ebf920>, 'hasdoc': .hasdoc at 0x7f3d39ebc5e0>, 'toctree': . at 0x7f3d39f696c0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.graphic', 'body': '

Source code for qwt.graphic

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtGraphic\n----------\n\n.. autoclass:: QwtGraphic\n   :members:\n"""\n\nimport math\n\nfrom qtpy.QtCore import QObject, QPointF, QRect, QRectF, QSize, QSizeF, Qt\nfrom qtpy.QtGui import (\n    QImage,\n    QPaintEngine,\n    QPainter,\n    QPainterPathStroker,\n    QPixmap,\n    QTransform,\n)\n\nfrom qwt.null_paintdevice import QwtNullPaintDevice\nfrom qwt.painter_command import QwtPainterCommand\n\n\ndef qwtHasScalablePen(painter):\n    pen = painter.pen()\n    scalablePen = False\n    if pen.style() != Qt.NoPen and pen.brush().style() != Qt.NoBrush:\n        scalablePen = not pen.isCosmetic()\n    return scalablePen\n\n\ndef qwtStrokedPathRect(painter, path):\n    stroker = QPainterPathStroker()\n    stroker.setWidth(painter.pen().widthF())\n    stroker.setCapStyle(painter.pen().capStyle())\n    stroker.setJoinStyle(painter.pen().joinStyle())\n    stroker.setMiterLimit(painter.pen().miterLimit())\n    rect = QRectF()\n    if qwtHasScalablePen(painter):\n        stroke = stroker.createStroke(path)\n        rect = painter.transform().map(stroke).boundingRect()\n    else:\n        mappedPath = painter.transform().map(path)\n        mappedPath = stroker.createStroke(mappedPath)\n        rect = mappedPath.boundingRect()\n    return rect\n\n\ndef qwtExecCommand(painter, cmd, renderHints, transform, initialTransform):\n    if cmd.type() == QwtPainterCommand.Path:\n        doMap = False\n        if (\n            bool(renderHints & QwtGraphic.RenderPensUnscaled)\n            and painter.transform().isScaling()\n        ):\n            isCosmetic = painter.pen().isCosmetic()\n            doMap = not isCosmetic\n        if doMap:\n            tr = painter.transform()\n            painter.resetTransform()\n            path = tr.map(cmd.path())\n            if initialTransform:\n                painter.setTransform(initialTransform)\n                invt, _ok = initialTransform.inverted()\n                path = invt.map(path)\n            painter.drawPath(path)\n            painter.setTransform(tr)\n        else:\n            painter.drawPath(cmd.path())\n    elif cmd.type() == QwtPainterCommand.Pixmap:\n        data = cmd.pixmapData()\n        painter.drawPixmap(data.rect, data.pixmap, data.subRect)\n    elif cmd.type() == QwtPainterCommand.Image:\n        data = cmd.imageData()\n        painter.drawImage(data.rect, data.image, data.subRect, data.flags)\n    elif cmd.type() == QwtPainterCommand.State:\n        data = cmd.stateData()\n        if data.flags & QPaintEngine.DirtyPen:\n            painter.setPen(data.pen)\n        if data.flags & QPaintEngine.DirtyBrush:\n            painter.setBrush(data.brush)\n        if data.flags & QPaintEngine.DirtyBrushOrigin:\n            painter.setBrushOrigin(data.brushOrigin)\n        if data.flags & QPaintEngine.DirtyFont:\n            painter.setFont(data.font)\n        if data.flags & QPaintEngine.DirtyBackground:\n            painter.setBackgroundMode(data.backgroundMode)\n            painter.setBackground(data.backgroundBrush)\n        if data.flags & QPaintEngine.DirtyTransform:\n            painter.setTransform(data.transform)\n        if data.flags & QPaintEngine.DirtyClipEnabled:\n            painter.setClipping(data.isClipEnabled)\n        if data.flags & QPaintEngine.DirtyClipRegion:\n            painter.setClipRegion(data.clipRegion, data.clipOperation)\n        if data.flags & QPaintEngine.DirtyClipPath:\n            painter.setClipPath(data.clipPath, data.clipOperation)\n        if data.flags & QPaintEngine.DirtyHints:\n            for hint in (\n                QPainter.Antialiasing,\n                QPainter.TextAntialiasing,\n                QPainter.SmoothPixmapTransform,\n            ):\n                painter.setRenderHint(hint, bool(data.renderHints & hint))\n        if data.flags & QPaintEngine.DirtyCompositionMode:\n            painter.setCompositionMode(data.compositionMode)\n        if data.flags & QPaintEngine.DirtyOpacity:\n            painter.setOpacity(data.opacity)\n\n\nclass PathInfo(object):\n    def __init__(self, *args):\n        if len(args) == 0:\n            self.__scalablePen = False\n        elif len(args) == 3:\n            pointRect, boundingRect, scalablePen = args\n            self.__pointRect = pointRect\n            self.__boundingRect = boundingRect\n            self.__scalablePen = scalablePen\n        else:\n            raise TypeError(\n                "%s() takes 0 or 3 argument(s) (%s given)"\n                % (self.__class__.__name__, len(args))\n            )\n\n    def scaledBoundingRect(self, sx, sy, scalePens):\n        if sx == 1.0 and sy == 1.0:\n            return self.__boundingRect\n        transform = QTransform()\n        transform.scale(sx, sy)\n        if scalePens and self.__scalablePen:\n            rect = transform.mapRect(self.__boundingRect)\n        else:\n            rect = transform.mapRect(self.__pointRect)\n            l = abs(self.__pointRect.left() - self.__boundingRect.left())\n            r = abs(self.__pointRect.right() - self.__boundingRect.right())\n            t = abs(self.__pointRect.top() - self.__boundingRect.top())\n            b = abs(self.__pointRect.bottom() - self.__boundingRect.bottom())\n            rect.adjust(-l, -t, r, b)\n        return rect\n\n    def scaleFactorX(self, pathRect, targetRect, scalePens):\n        if pathRect.width() <= 0.0:\n            return 0.0\n        p0 = self.__pointRect.center()\n        l = abs(pathRect.left() - p0.x())\n        r = abs(pathRect.right() - p0.x())\n        w = 2.0 * min([l, r]) * targetRect.width() / pathRect.width()\n        if scalePens and self.__scalablePen:\n            sx = w / self.__boundingRect.width()\n        else:\n            pw = max(\n                [\n                    abs(self.__boundingRect.left() - self.__pointRect.left()),\n                    abs(self.__boundingRect.right() - self.__pointRect.right()),\n                ]\n            )\n            sx = (w - 2 * pw) / self.__pointRect.width()\n        return sx\n\n    def scaleFactorY(self, pathRect, targetRect, scalePens):\n        if pathRect.height() <= 0.0:\n            return 0.0\n        p0 = self.__pointRect.center()\n        t = abs(pathRect.top() - p0.y())\n        b = abs(pathRect.bottom() - p0.y())\n        h = 2.0 * min([t, b]) * targetRect.height() / pathRect.height()\n        if scalePens and self.__scalablePen:\n            sy = h / self.__boundingRect.height()\n        else:\n            pw = max(\n                [\n                    abs(self.__boundingRect.top() - self.__pointRect.top()),\n                    abs(self.__boundingRect.bottom() - self.__pointRect.bottom()),\n                ]\n            )\n            sy = (h - 2 * pw) / self.__pointRect.height()\n        return sy\n\n\nclass QwtGraphic_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n        self.boundingRect = QRectF(0.0, 0.0, -1.0, -1.0)\n        self.pointRect = QRectF(0.0, 0.0, -1.0, -1.0)\n        self.initialTransform = None\n        self.defaultSize = QSizeF()\n        self.commands = []\n        self.pathInfos = []\n        self.renderHints = 0\n\n\n
\n[docs]\nclass QwtGraphic(QwtNullPaintDevice):\n """\n A paint device for scalable graphics\n\n `QwtGraphic` is the representation of a graphic that is tailored for\n scalability. Like `QPicture` it will be initialized by `QPainter`\n operations and can be replayed later to any target paint device.\n\n While the usual image representations `QImage` and `QPixmap` are not\n scalable `Qt` offers two paint devices, that might be candidates\n for representing a vector graphic:\n\n - `QPicture`:\n\n Unfortunately `QPicture` had been forgotten, when Qt4\n introduced floating point based render engines. Its API\n is still on integers, what make it unusable for proper scaling.\n\n - `QSvgRenderer`, `QSvgGenerator`:\n\n Unfortunately `QSvgRenderer` hides to much information about\n its nodes in internal APIs, that are necessary for proper\n layout calculations. Also it is derived from `QObject` and\n can't be copied like `QImage`/`QPixmap`.\n\n `QwtGraphic` maps all scalable drawing primitives to a `QPainterPath`\n and stores them together with the painter state changes\n ( pen, brush, transformation ... ) in a list of `QwtPaintCommands`.\n For being a complete `QPaintDevice` it also stores pixmaps or images,\n what is somehow against the idea of the class, because these objects\n can't be scaled without a loss in quality.\n\n The main issue about scaling a `QwtGraphic` object are the pens used for\n drawing the outlines of the painter paths. While non cosmetic pens\n ( `QPen.isCosmetic()` ) are scaled with the same ratio as the path,\n cosmetic pens have a fixed width. A graphic might have paths with\n different pens - cosmetic and non-cosmetic.\n\n `QwtGraphic` caches 2 different rectangles:\n\n - control point rectangle:\n\n The control point rectangle is the bounding rectangle of all\n control point rectangles of the painter paths, or the target\n rectangle of the pixmaps/images.\n\n - bounding rectangle:\n\n The bounding rectangle extends the control point rectangle by\n what is needed for rendering the outline with an unscaled pen.\n\n Because the offset for drawing the outline depends on the shape\n of the painter path ( the peak of a triangle is different than the flat side )\n scaling with a fixed aspect ratio always needs to be calculated from the\n control point rectangle.\n\n .. py:class:: QwtGraphic()\n\n Initializes a null graphic\n\n .. py:class:: QwtGraphic(other)\n :noindex:\n\n Copy constructor\n\n :param qwt.graphic.QwtGraphic other: Source\n """\n\n # enum RenderHint\n RenderPensUnscaled = 0x1\n\n def __init__(self, *args):\n QwtNullPaintDevice.__init__(self)\n if len(args) == 0:\n self.setMode(QwtNullPaintDevice.PathMode)\n self.__data = QwtGraphic_PrivateData()\n elif len(args) == 1:\n (other,) = args\n self.setMode(other.mode())\n self.__data = other.__data\n else:\n raise TypeError(\n "%s() takes 0 or 1 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n\n
\n[docs]\n def reset(self):\n """Clear all stored commands"""\n self.__data.commands = []\n self.__data.pathInfos = []\n self.__data.boundingRect = QRectF(0.0, 0.0, -1.0, -1.0)\n self.__data.pointRect = QRectF(0.0, 0.0, -1.0, -1.0)\n self.__data.defaultSize = QSizeF()
\n\n\n
\n[docs]\n def isNull(self):\n """Return True, when no painter commands have been stored"""\n return len(self.__data.commands) == 0
\n\n\n
\n[docs]\n def isEmpty(self):\n """Return True, when the bounding rectangle is empty"""\n return self.__data.boundingRect.isEmpty()
\n\n\n
\n[docs]\n def setRenderHint(self, hint, on=True):\n """Toggle an render hint"""\n if on:\n self.__data.renderHints |= hint\n else:\n self.__data.renderHints &= ~hint
\n\n\n
\n[docs]\n def testRenderHint(self, hint):\n """Test a render hint"""\n return bool(self.__data.renderHints & hint)
\n\n\n
\n[docs]\n def boundingRect(self):\n """\n The bounding rectangle is the :py:meth:`controlPointRect`\n extended by the areas needed for rendering the outlines\n with unscaled pens.\n\n :return: Bounding rectangle of the graphic\n\n .. seealso::\n\n :py:meth:`controlPointRect`, :py:meth:`scaledBoundingRect`\n """\n if self.__data.boundingRect.width() < 0:\n return QRectF()\n return self.__data.boundingRect
\n\n\n
\n[docs]\n def controlPointRect(self):\n """\n The control point rectangle is the bounding rectangle\n of all control points of the paths and the target\n rectangles of the images/pixmaps.\n\n :return: Control point rectangle\n\n .. seealso::\n\n :py:meth:`boundingRect()`, :py:meth:`scaledBoundingRect()`\n """\n if self.__data.pointRect.width() < 0:\n return QRectF()\n return self.__data.pointRect
\n\n\n
\n[docs]\n def scaledBoundingRect(self, sx, sy):\n """\n Calculate the target rectangle for scaling the graphic\n\n :param float sx: Horizontal scaling factor\n :param float sy: Vertical scaling factor\n :return: Scaled bounding rectangle\n\n .. note::\n\n In case of paths that are painted with a cosmetic pen\n (see :py:meth:`QPen.isCosmetic()`) the target rectangle is\n different to multiplying the bounding rectangle.\n\n .. seealso::\n\n :py:meth:`boundingRect()`, :py:meth:`controlPointRect()`\n """\n if sx == 1.0 and sy == 1.0:\n return self.__data.boundingRect\n transform = QTransform()\n transform.scale(sx, sy)\n rect = transform.mapRect(self.__data.pointRect)\n for pathInfo in self.__data.pathInfos:\n rect |= pathInfo.scaledBoundingRect(\n sx, sy, not bool(self.__data.renderHints & self.RenderPensUnscaled)\n )\n return rect
\n\n\n
\n[docs]\n def sizeMetrics(self):\n """Return Ceiled :py:meth:`defaultSize()`"""\n sz = self.defaultSize()\n return QSize(math.ceil(sz.width()), math.ceil(sz.height()))
\n\n\n
\n[docs]\n def setDefaultSize(self, size):\n """\n The default size is used in all methods rendering the graphic,\n where no size is explicitly specified. Assigning an empty size\n means, that the default size will be calculated from the bounding\n rectangle.\n\n :param QSizeF size: Default size\n\n .. seealso::\n\n :py:meth:`defaultSize()`, :py:meth:`boundingRect()`\n """\n w = max([0.0, size.width()])\n h = max([0.0, size.height()])\n self.__data.defaultSize = QSizeF(w, h)
\n\n\n
\n[docs]\n def defaultSize(self):\n """\n When a non empty size has been assigned by setDefaultSize() this\n size will be returned. Otherwise the default size is the size\n of the bounding rectangle.\n\n The default size is used in all methods rendering the graphic,\n where no size is explicitly specified.\n\n :return: Default size\n\n .. seealso::\n\n :py:meth:`setDefaultSize()`, :py:meth:`boundingRect()`\n """\n if not self.__data.defaultSize.isEmpty():\n return self.__data.defaultSize\n return self.boundingRect().size()
\n\n\n
\n[docs]\n def render(self, *args):\n """\n .. py:method:: render(painter)\n :noindex:\n\n Replay all recorded painter commands\n\n :param QPainter painter: Qt painter\n\n .. py:method:: render(painter, size, aspectRatioMode)\n :noindex:\n\n Replay all recorded painter commands\n\n The graphic is scaled to fit into the rectangle\n of the given size starting at ( 0, 0 ).\n\n :param QPainter painter: Qt painter\n :param QSizeF size: Size for the scaled graphic\n :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale\n\n .. py:method:: render(painter, rect, aspectRatioMode)\n :noindex:\n\n Replay all recorded painter commands\n\n The graphic is scaled to fit into the given rectangle\n\n :param QPainter painter: Qt painter\n :param QRectF rect: Rectangle for the scaled graphic\n :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale\n\n .. py:method:: render(painter, pos, aspectRatioMode)\n :noindex:\n\n Replay all recorded painter commands\n\n The graphic is scaled to the :py:meth:`defaultSize()` and aligned\n to a position.\n\n :param QPainter painter: Qt painter\n :param QPointF pos: Reference point, where to render\n :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale\n """\n if len(args) == 1:\n (painter,) = args\n if self.isNull():\n return\n transform = painter.transform()\n painter.save()\n for command in self.__data.commands:\n qwtExecCommand(\n painter,\n command,\n self.__data.renderHints,\n transform,\n self.__data.initialTransform,\n )\n painter.restore()\n elif len(args) in (2, 3) and isinstance(args[1], QSizeF):\n painter, size = args[:2]\n aspectRatioMode = Qt.IgnoreAspectRatio\n if len(args) == 3:\n aspectRatioMode = args[-1]\n r = QRectF(0.0, 0.0, size.width(), size.height())\n self.render(painter, r, aspectRatioMode)\n elif len(args) in (2, 3) and isinstance(args[1], QRectF):\n painter, rect = args[:2]\n aspectRatioMode = Qt.IgnoreAspectRatio\n if len(args) == 3:\n aspectRatioMode = args[-1]\n if self.isEmpty() or rect.isEmpty():\n return\n sx = 1.0\n sy = 1.0\n if self.__data.pointRect.width() > 0.0:\n sx = rect.width() / self.__data.pointRect.width()\n if self.__data.pointRect.height() > 0.0:\n sy = rect.height() / self.__data.pointRect.height()\n scalePens = not bool(self.__data.renderHints & self.RenderPensUnscaled)\n for info in self.__data.pathInfos:\n ssx = info.scaleFactorX(self.__data.pointRect, rect, scalePens)\n if ssx > 0.0:\n sx = min([sx, ssx])\n ssy = info.scaleFactorY(self.__data.pointRect, rect, scalePens)\n if ssy > 0.0:\n sy = min([sy, ssy])\n if aspectRatioMode == Qt.KeepAspectRatio:\n s = min([sx, sy])\n sx = s\n sy = s\n elif aspectRatioMode == Qt.KeepAspectRatioByExpanding:\n s = max([sx, sy])\n sx = s\n sy = s\n tr = QTransform()\n tr.translate(\n rect.center().x() - 0.5 * sx * self.__data.pointRect.width(),\n rect.center().y() - 0.5 * sy * self.__data.pointRect.height(),\n )\n tr.scale(sx, sy)\n tr.translate(-self.__data.pointRect.x(), -self.__data.pointRect.y())\n transform = painter.transform()\n if not scalePens and transform.isScaling():\n # we don't want to scale pens according to sx/sy,\n # but we want to apply the scaling from the\n # painter transformation later\n self.__data.initialTransform = QTransform()\n self.__data.initialTransform.scale(transform.m11(), transform.m22())\n painter.setTransform(tr, True)\n self.render(painter)\n painter.setTransform(transform)\n self.__data.initialTransform = None\n elif len(args) in (2, 3) and isinstance(args[1], QPointF):\n painter, pos = args[:2]\n alignment = Qt.AlignTop | Qt.AlignLeft\n if len(args) == 3:\n alignment = args[-1]\n r = QRectF(pos, self.defaultSize())\n if alignment & Qt.AlignLeft:\n r.moveLeft(pos.x())\n elif alignment & Qt.AlignHCenter:\n r.moveCenter(QPointF(pos.x(), r.center().y()))\n elif alignment & Qt.AlignRight:\n r.moveRight(pos.x())\n if alignment & Qt.AlignTop:\n r.moveTop(pos.y())\n elif alignment & Qt.AlignVCenter:\n r.moveCenter(QPointF(r.center().x(), pos.y()))\n elif alignment & Qt.AlignBottom:\n r.moveBottom(pos.y())\n self.render(painter, r)\n else:\n raise TypeError(\n "%s().render() takes 1, 2 or 3 argument(s) (%s "\n "given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def toPixmap(self, *args):\n """\n Convert the graphic to a `QPixmap`\n\n All pixels of the pixmap get initialized by `Qt.transparent`\n before the graphic is scaled and rendered on it.\n\n The size of the pixmap is the default size ( ceiled to integers )\n of the graphic.\n\n :return: The graphic as pixmap in default size\n\n .. seealso::\n\n :py:meth:`defaultSize()`, :py:meth:`toImage()`, :py:meth:`render()`\n """\n if len(args) == 0:\n if self.isNull():\n return QPixmap()\n sz = self.defaultSize()\n w = math.ceil(sz.width())\n h = math.ceil(sz.height())\n pixmap = QPixmap(w, h)\n pixmap.fill(Qt.transparent)\n r = QRectF(0.0, 0.0, sz.width(), sz.height())\n painter = QPainter(pixmap)\n self.render(painter, r, Qt.KeepAspectRatio)\n painter.end()\n return pixmap\n elif len(args) in (1, 2):\n size = args[0]\n aspectRatioMode = Qt.IgnoreAspectRatio\n if len(args) == 2:\n aspectRatioMode = args[-1]\n pixmap = QPixmap(size)\n pixmap.fill(Qt.transparent)\n r = QRect(0, 0, size.width(), size.height())\n painter = QPainter(pixmap)\n self.render(painter, r, aspectRatioMode)\n painter.end()\n return pixmap
\n\n\n
\n[docs]\n def toImage(self, *args):\n """\n .. py:method:: toImage()\n :noindex:\n\n Convert the graphic to a `QImage`\n\n All pixels of the image get initialized by 0 ( transparent )\n before the graphic is scaled and rendered on it.\n\n The format of the image is `QImage.Format_ARGB32_Premultiplied`.\n\n The size of the image is the default size ( ceiled to integers )\n of the graphic.\n\n :return: The graphic as image in default size\n\n .. py:method:: toImage(size, [aspectRatioMode=Qt.IgnoreAspectRatio])\n :noindex:\n\n Convert the graphic to a `QImage`\n\n All pixels of the image get initialized by 0 ( transparent )\n before the graphic is scaled and rendered on it.\n\n The format of the image is `QImage.Format_ARGB32_Premultiplied`.\n\n :param QSize size: Size of the image\n :param `Qt.AspectRatioMode` aspectRatioMode: Aspect ratio how to scale the graphic\n :return: The graphic as image\n\n .. seealso::\n\n :py:meth:`toPixmap()`, :py:meth:`render()`\n """\n if len(args) == 0:\n if self.isNull():\n return QImage()\n sz = self.defaultSize()\n w = math.ceil(sz.width())\n h = math.ceil(sz.height())\n image = QImage(w, h, QImage.Format_ARGB32)\n image.fill(0)\n r = QRect(0, 0, sz.width(), sz.height())\n painter = QPainter(image)\n self.render(painter, r, Qt.KeepAspectRatio)\n painter.end()\n return image\n elif len(args) in (1, 2):\n size = args[0]\n aspectRatioMode = Qt.IgnoreAspectRatio\n if len(args) == 2:\n aspectRatioMode = args[-1]\n image = QImage(size, QImage.Format_ARGB32_Premultiplied)\n image.fill(0)\n r = QRect(0, 0, size.width(), size.height())\n painter = QPainter(image)\n self.render(painter, r, aspectRatioMode)\n return image
\n\n\n
\n[docs]\n def drawPath(self, path):\n """\n Store a path command in the command list\n\n :param QPainterPath path: Painter path\n\n .. seealso::\n\n :py:meth:`QPaintEngine.drawPath()`\n """\n painter = self.paintEngine().painter()\n if painter is None:\n return\n self.__data.commands += [QwtPainterCommand(path)]\n if not path.isEmpty():\n scaledPath = painter.transform().map(path)\n pointRect = scaledPath.boundingRect()\n boundingRect = QRectF(pointRect)\n if (\n painter.pen().style() != Qt.NoPen\n and painter.pen().brush().style() != Qt.NoBrush\n ):\n boundingRect = qwtStrokedPathRect(painter, path)\n self.updateControlPointRect(pointRect)\n self.updateBoundingRect(boundingRect)\n self.__data.pathInfos += [\n PathInfo(pointRect, boundingRect, qwtHasScalablePen(painter))\n ]
\n\n\n
\n[docs]\n def drawPixmap(self, rect, pixmap, subRect):\n """\n Store a pixmap command in the command list\n\n :param QRectF rect: target rectangle\n :param QPixmap pixmap: Pixmap to be painted\n :param QRectF subRect: Reactangle of the pixmap to be painted\n\n .. seealso::\n\n :py:meth:`QPaintEngine.drawPixmap()`\n """\n painter = self.paintEngine().painter()\n if painter is None:\n return\n self.__data.commands += [QwtPainterCommand(rect, pixmap, subRect)]\n r = painter.transform().mapRect(rect)\n self.updateControlPointRect(r)\n self.updateBoundingRect(r)
\n\n\n
\n[docs]\n def drawImage(self, rect, image, subRect, flags):\n """\n Store a image command in the command list\n\n :param QRectF rect: target rectangle\n :param QImage image: Pixmap to be painted\n :param QRectF subRect: Reactangle of the pixmap to be painted\n :param Qt.ImageConversionFlags flags: Pixmap to be painted\n\n .. seealso::\n\n :py:meth:`QPaintEngine.drawImage()`\n """\n painter = self.paintEngine().painter()\n if painter is None:\n return\n self.__data.commands += [QwtPainterCommand(rect, image, subRect, flags)]\n r = painter.transform().mapRect(rect)\n self.updateControlPointRect(r)\n self.updateBoundingRect(r)
\n\n\n
\n[docs]\n def updateState(self, state):\n """\n Store a state command in the command list\n\n :param QPaintEngineState state: State to be stored\n\n .. seealso::\n\n :py:meth:`QPaintEngine.updateState()`\n """\n # XXX: shall we call the parent's implementation of updateState?\n self.__data.commands += [QwtPainterCommand(state)]
\n\n\n def updateBoundingRect(self, rect):\n br = QRectF(rect)\n painter = self.paintEngine().painter()\n if painter and painter.hasClipping():\n cr = painter.clipRegion().boundingRect()\n cr = painter.transform().mapRect(cr)\n br &= cr\n if self.__data.boundingRect.width() < 0:\n self.__data.boundingRect = br\n else:\n self.__data.boundingRect |= br\n\n def updateControlPointRect(self, rect):\n if self.__data.pointRect.width() < 0.0:\n self.__data.pointRect = rect\n else:\n self.__data.pointRect |= rect\n\n def commands(self):\n return self.__data.commands\n\n def setCommands(self, commands):\n self.reset()\n painter = QPainter(self)\n for cmd in commands:\n qwtExecCommand(painter, cmd, 0, QTransform(), None)\n painter.end()
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39f6b740>, 'js_tag': .js_tag at 0x7f3d39f6ae80>}, None) highlighting module code... [ 21%] qwt.interval [app] emitting event: 'viewcode-find-source'('qwt.interval',) -[app] emitting event: 'html-page-context'('_modules/qwt/interval', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/interval', 'current_page_name': '_modules/qwt/interval', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d7da4cc0>, 'hasdoc': .hasdoc at 0x7fc7d6c57560>, 'toctree': . at 0x7fc7d6c56980>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.interval', 'body': '

Source code for qwt.interval

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtInterval\n-----------\n\n.. autoclass:: QwtInterval\n   :members:\n"""\n\n\n
\n[docs]\nclass QwtInterval(object):\n """\n A class representing an interval\n\n The interval is represented by 2 doubles, the lower and the upper limit.\n\n .. py:class:: QwtInterval(minValue=0., maxValue=-1., borderFlags=None)\n\n Build an interval with from min/max values\n\n :param float minValue: Minimum value\n :param float maxValue: Maximum value\n :param int borderFlags: Include/Exclude borders\n """\n\n # enum BorderFlag\n IncludeBorders = 0x00\n ExcludeMinimum = 0x01\n ExcludeMaximum = 0x02\n ExcludeBorders = ExcludeMinimum | ExcludeMaximum\n\n def __init__(self, minValue=0.0, maxValue=-1.0, borderFlags=None):\n assert not isinstance(minValue, QwtInterval)\n assert not isinstance(maxValue, QwtInterval)\n self.__minValue = None\n self.__maxValue = None\n self.__borderFlags = None\n self.setInterval(minValue, maxValue, borderFlags)\n\n
\n[docs]\n def setInterval(self, minValue, maxValue, borderFlags=None):\n """\n Assign the limits of the interval\n\n :param float minValue: Minimum value\n :param float maxValue: Maximum value\n :param int borderFlags: Include/Exclude borders\n """\n self.__minValue = float(minValue) # avoid overflows with NumPy scalars\n self.__maxValue = float(maxValue) # avoid overflows with NumPy scalars\n if borderFlags is None:\n self.__borderFlags = self.IncludeBorders\n else:\n self.__borderFlags = borderFlags
\n\n\n
\n[docs]\n def setBorderFlags(self, borderFlags):\n """\n Change the border flags\n\n :param int borderFlags: Include/Exclude borders\n\n .. seealso::\n\n :py:meth:`borderFlags()`\n """\n self.__borderFlags = borderFlags
\n\n\n
\n[docs]\n def borderFlags(self):\n """\n :return: Border flags\n\n .. seealso::\n\n :py:meth:`setBorderFlags()`\n """\n return self.__borderFlags
\n\n\n
\n[docs]\n def setMinValue(self, minValue):\n """\n Assign the lower limit of the interval\n\n :param float minValue: Minimum value\n """\n self.__minValue = float(minValue) # avoid overflows with NumPy scalars
\n\n\n
\n[docs]\n def setMaxValue(self, maxValue):\n """\n Assign the upper limit of the interval\n\n :param float maxValue: Maximum value\n """\n self.__maxValue = float(maxValue) # avoid overflows with NumPy scalars
\n\n\n
\n[docs]\n def minValue(self):\n """\n :return: Lower limit of the interval\n """\n return self.__minValue
\n\n\n
\n[docs]\n def maxValue(self):\n """\n :return: Upper limit of the interval\n """\n return self.__maxValue
\n\n\n
\n[docs]\n def isValid(self):\n """\n A interval is valid when minValue() <= maxValue().\n In case of `QwtInterval.ExcludeBorders` it is true\n when minValue() < maxValue()\n\n :return: True, when the interval is valid\n """\n if (self.__borderFlags & self.ExcludeBorders) == 0:\n return self.__minValue <= self.__maxValue\n else:\n return self.__minValue < self.__maxValue
\n\n\n
\n[docs]\n def width(self):\n """\n The width of invalid intervals is 0.0, otherwise the result is\n maxValue() - minValue().\n\n :return: the width of an interval\n """\n if self.isValid():\n return self.__maxValue - self.__minValue\n else:\n return 0.0
\n\n\n def __and__(self, other):\n return self.intersect(other)\n\n def __iand__(self, other):\n self = self & other\n return self\n\n def __or__(self, other):\n if isinstance(other, QwtInterval):\n return self.unite(other)\n else:\n return self.extend(other)\n\n def __ior__(self, other):\n self = self | other\n return self\n\n def __eq__(self, other):\n return (\n self.__minValue == other.__minValue\n and self.__maxValue == other.__maxValue\n and self.__borderFlags == other.__borderFlags\n )\n\n def __ne__(self, other):\n return not self.__eq__(other)\n\n
\n[docs]\n def isNull(self):\n """\n :return: true, if isValid() && (minValue() >= maxValue())\n """\n return self.isValid() and self.__minValue >= self.__maxValue
\n\n\n
\n[docs]\n def invalidate(self):\n """\n The limits are set to interval [0.0, -1.0]\n\n .. seealso::\n\n :py:meth:`isValid()`\n """\n self.__minValue = 0.0\n self.__maxValue = -1.0
\n\n\n
\n[docs]\n def normalized(self):\n """\n Normalize the limits of the interval\n\n If maxValue() < minValue() the limits will be inverted.\n\n :return: Normalized interval\n\n .. seealso::\n\n :py:meth:`isValid()`, :py:meth:`inverted()`\n """\n if self.__minValue > self.__maxValue:\n return self.inverted()\n elif (\n self.__minValue == self.__maxValue\n and self.__borderFlags == self.ExcludeMinimum\n ):\n return self.inverted()\n else:\n return self
\n\n\n
\n[docs]\n def inverted(self):\n """\n Invert the limits of the interval\n\n :return: Inverted interval\n\n .. seealso::\n\n :py:meth:`normalized()`\n """\n borderFlags = self.IncludeBorders\n if self.__borderFlags & self.ExcludeMinimum:\n borderFlags |= self.ExcludeMaximum\n if self.__borderFlags & self.ExcludeMaximum:\n borderFlags |= self.ExcludeMinimum\n return QwtInterval(self.__maxValue, self.__minValue, borderFlags)
\n\n\n
\n[docs]\n def contains(self, value):\n """\n Test if a value is inside an interval\n\n :param float value: Value\n :return: true, if value >= minValue() && value <= maxValue()\n """\n if not self.isValid():\n return False\n elif value < self.__minValue or value > self.__maxValue:\n return False\n elif value == self.__minValue and self.__borderFlags & self.ExcludeMinimum:\n return False\n elif value == self.__maxValue and self.__borderFlags & self.ExcludeMaximum:\n return False\n else:\n return True
\n\n\n
\n[docs]\n def unite(self, other):\n """\n Unite two intervals\n\n :param qwt.interval.QwtInterval other: other interval to united with\n :return: united interval\n """\n if not self.isValid():\n if not other.isValid():\n return QwtInterval()\n else:\n return other\n elif not other.isValid():\n return self\n\n united = QwtInterval()\n flags = self.IncludeBorders\n\n # minimum\n if self.__minValue < other.minValue():\n united.setMinValue(self.__minValue)\n flags &= self.__borderFlags & self.ExcludeMinimum\n elif other.minValue() < self.__minValue:\n united.setMinValue(other.minValue())\n flags &= other.borderFlags() & self.ExcludeMinimum\n else:\n united.setMinValue(self.__minValue)\n flags &= (self.__borderFlags & other.borderFlags()) & self.ExcludeMinimum\n\n # maximum\n if self.__maxValue > other.maxValue():\n united.setMaxValue(self.__maxValue)\n flags &= self.__borderFlags & self.ExcludeMaximum\n elif other.maxValue() > self.__maxValue:\n united.setMaxValue(other.maxValue())\n flags &= other.borderFlags() & self.ExcludeMaximum\n else:\n united.setMaxValue(self.__maxValue)\n flags &= self.__borderFlags & other.borderFlags() & self.ExcludeMaximum\n\n united.setBorderFlags(flags)\n return united
\n\n\n
\n[docs]\n def intersect(self, other):\n """\n Intersect two intervals\n\n :param qwt.interval.QwtInterval other: other interval to intersect with\n :return: intersected interval\n """\n if not other.isValid() or not self.isValid():\n return QwtInterval()\n\n i1 = self\n i2 = other\n\n if i1.minValue() > i2.minValue():\n i1, i2 = i2, i1\n elif i1.minValue() == i2.minValue():\n if i1.borderFlags() & self.ExcludeMinimum:\n i1, i2 = i2, i1\n\n if i1.maxValue() < i2.maxValue():\n return QwtInterval()\n\n if i1.maxValue() == i2.minValue():\n if (\n i1.borderFlags() & self.ExcludeMaximum\n or i2.borderFlags() & self.ExcludeMinimum\n ):\n return QwtInterval()\n\n intersected = QwtInterval()\n flags = self.IncludeBorders\n\n intersected.setMinValue(i2.minValue())\n flags |= i2.borderFlags() & self.ExcludeMinimum\n\n if i1.maxValue() < i2.maxValue():\n intersected.setMaxValue(i1.maxValue())\n flags |= i1.borderFlags() & self.ExcludeMaximum\n elif i2.maxValue() < i1.maxValue():\n intersected.setMaxValue(i2.maxValue())\n flags |= i2.borderFlags() & self.ExcludeMaximum\n else: # i1.maxValue() == i2.maxValue()\n intersected.setMaxValue(i1.maxValue())\n flags |= i1.borderFlags() & i2.borderFlags() & self.ExcludeMaximum\n\n intersected.setBorderFlags(flags)\n return intersected
\n\n\n
\n[docs]\n def intersects(self, other):\n """\n Test if two intervals overlap\n\n :param qwt.interval.QwtInterval other: other interval\n :return: True, when the intervals are intersecting\n """\n if not other.isValid() or not self.isValid():\n return False\n\n i1 = self\n i2 = other\n\n if i1.minValue() > i2.minValue():\n i1, i2 = i2, i1\n elif i1.minValue() == i2.minValue() and i1.borderFlags() & self.ExcludeMinimum:\n i1, i2 = i2, i1\n\n if i1.maxValue() > i2.minValue():\n return True\n elif i1.maxValue() == i2.minValue():\n return (\n i1.borderFlags() & self.ExcludeMaximum\n and i2.borderFlags() & self.ExcludeMinimum\n )\n return False
\n\n\n
\n[docs]\n def symmetrize(self, value):\n """\n Adjust the limit that is closer to value, so that value becomes\n the center of the interval.\n\n :param float value: Center\n :return: Interval with value as center\n """\n if not self.isValid():\n return self\n delta = max([abs(value - self.__maxValue), abs(value - self.__minValue)])\n return QwtInterval(value - delta, value + delta)
\n\n\n
\n[docs]\n def limited(self, lowerBound, upperBound):\n """\n Limit the interval, keeping the border modes\n\n :param float lowerBound: Lower limit\n :param float upperBound: Upper limit\n :return: Limited interval\n """\n if not self.isValid() or lowerBound > upperBound:\n return QwtInterval()\n minValue = max([self.__minValue, lowerBound])\n minValue = min([minValue, upperBound])\n maxValue = max([self.__maxValue, lowerBound])\n maxValue = min([maxValue, upperBound])\n return QwtInterval(minValue, maxValue, self.__borderFlags)
\n\n\n
\n[docs]\n def extend(self, value):\n """\n Extend the interval\n\n If value is below minValue(), value becomes the lower limit.\n If value is above maxValue(), value becomes the upper limit.\n\n extend() has no effect for invalid intervals\n\n :param float value: Value\n :return: extended interval\n """\n if not self.isValid():\n return self\n return QwtInterval(min([value, self.__minValue]), max([value, self.__maxValue]))
\n\n\n
\n[docs]\n def extend_fraction(self, value):\n """\n Extend the interval by a fraction of its width\n\n :param float value: Fraction\n :return: extended interval\n """\n if not self.isValid():\n return self\n return QwtInterval(\n self.__minValue - value * self.width(),\n self.__maxValue + value * self.width(),\n self.__borderFlags,\n )
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6c540e0>, 'js_tag': .js_tag at 0x7fc7d6c55da0>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/interval', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/interval', 'current_page_name': '_modules/qwt/interval', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d3b1b0cc0>, 'hasdoc': .hasdoc at 0x7f3d39ebf4c0>, 'toctree': . at 0x7f3d39ebe980>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.interval', 'body': '

Source code for qwt.interval

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtInterval\n-----------\n\n.. autoclass:: QwtInterval\n   :members:\n"""\n\n\n
\n[docs]\nclass QwtInterval(object):\n """\n A class representing an interval\n\n The interval is represented by 2 doubles, the lower and the upper limit.\n\n .. py:class:: QwtInterval(minValue=0., maxValue=-1., borderFlags=None)\n\n Build an interval with from min/max values\n\n :param float minValue: Minimum value\n :param float maxValue: Maximum value\n :param int borderFlags: Include/Exclude borders\n """\n\n # enum BorderFlag\n IncludeBorders = 0x00\n ExcludeMinimum = 0x01\n ExcludeMaximum = 0x02\n ExcludeBorders = ExcludeMinimum | ExcludeMaximum\n\n def __init__(self, minValue=0.0, maxValue=-1.0, borderFlags=None):\n assert not isinstance(minValue, QwtInterval)\n assert not isinstance(maxValue, QwtInterval)\n self.__minValue = None\n self.__maxValue = None\n self.__borderFlags = None\n self.setInterval(minValue, maxValue, borderFlags)\n\n
\n[docs]\n def setInterval(self, minValue, maxValue, borderFlags=None):\n """\n Assign the limits of the interval\n\n :param float minValue: Minimum value\n :param float maxValue: Maximum value\n :param int borderFlags: Include/Exclude borders\n """\n self.__minValue = float(minValue) # avoid overflows with NumPy scalars\n self.__maxValue = float(maxValue) # avoid overflows with NumPy scalars\n if borderFlags is None:\n self.__borderFlags = self.IncludeBorders\n else:\n self.__borderFlags = borderFlags
\n\n\n
\n[docs]\n def setBorderFlags(self, borderFlags):\n """\n Change the border flags\n\n :param int borderFlags: Include/Exclude borders\n\n .. seealso::\n\n :py:meth:`borderFlags()`\n """\n self.__borderFlags = borderFlags
\n\n\n
\n[docs]\n def borderFlags(self):\n """\n :return: Border flags\n\n .. seealso::\n\n :py:meth:`setBorderFlags()`\n """\n return self.__borderFlags
\n\n\n
\n[docs]\n def setMinValue(self, minValue):\n """\n Assign the lower limit of the interval\n\n :param float minValue: Minimum value\n """\n self.__minValue = float(minValue) # avoid overflows with NumPy scalars
\n\n\n
\n[docs]\n def setMaxValue(self, maxValue):\n """\n Assign the upper limit of the interval\n\n :param float maxValue: Maximum value\n """\n self.__maxValue = float(maxValue) # avoid overflows with NumPy scalars
\n\n\n
\n[docs]\n def minValue(self):\n """\n :return: Lower limit of the interval\n """\n return self.__minValue
\n\n\n
\n[docs]\n def maxValue(self):\n """\n :return: Upper limit of the interval\n """\n return self.__maxValue
\n\n\n
\n[docs]\n def isValid(self):\n """\n A interval is valid when minValue() <= maxValue().\n In case of `QwtInterval.ExcludeBorders` it is true\n when minValue() < maxValue()\n\n :return: True, when the interval is valid\n """\n if (self.__borderFlags & self.ExcludeBorders) == 0:\n return self.__minValue <= self.__maxValue\n else:\n return self.__minValue < self.__maxValue
\n\n\n
\n[docs]\n def width(self):\n """\n The width of invalid intervals is 0.0, otherwise the result is\n maxValue() - minValue().\n\n :return: the width of an interval\n """\n if self.isValid():\n return self.__maxValue - self.__minValue\n else:\n return 0.0
\n\n\n def __and__(self, other):\n return self.intersect(other)\n\n def __iand__(self, other):\n self = self & other\n return self\n\n def __or__(self, other):\n if isinstance(other, QwtInterval):\n return self.unite(other)\n else:\n return self.extend(other)\n\n def __ior__(self, other):\n self = self | other\n return self\n\n def __eq__(self, other):\n return (\n self.__minValue == other.__minValue\n and self.__maxValue == other.__maxValue\n and self.__borderFlags == other.__borderFlags\n )\n\n def __ne__(self, other):\n return not self.__eq__(other)\n\n
\n[docs]\n def isNull(self):\n """\n :return: true, if isValid() && (minValue() >= maxValue())\n """\n return self.isValid() and self.__minValue >= self.__maxValue
\n\n\n
\n[docs]\n def invalidate(self):\n """\n The limits are set to interval [0.0, -1.0]\n\n .. seealso::\n\n :py:meth:`isValid()`\n """\n self.__minValue = 0.0\n self.__maxValue = -1.0
\n\n\n
\n[docs]\n def normalized(self):\n """\n Normalize the limits of the interval\n\n If maxValue() < minValue() the limits will be inverted.\n\n :return: Normalized interval\n\n .. seealso::\n\n :py:meth:`isValid()`, :py:meth:`inverted()`\n """\n if self.__minValue > self.__maxValue:\n return self.inverted()\n elif (\n self.__minValue == self.__maxValue\n and self.__borderFlags == self.ExcludeMinimum\n ):\n return self.inverted()\n else:\n return self
\n\n\n
\n[docs]\n def inverted(self):\n """\n Invert the limits of the interval\n\n :return: Inverted interval\n\n .. seealso::\n\n :py:meth:`normalized()`\n """\n borderFlags = self.IncludeBorders\n if self.__borderFlags & self.ExcludeMinimum:\n borderFlags |= self.ExcludeMaximum\n if self.__borderFlags & self.ExcludeMaximum:\n borderFlags |= self.ExcludeMinimum\n return QwtInterval(self.__maxValue, self.__minValue, borderFlags)
\n\n\n
\n[docs]\n def contains(self, value):\n """\n Test if a value is inside an interval\n\n :param float value: Value\n :return: true, if value >= minValue() && value <= maxValue()\n """\n if not self.isValid():\n return False\n elif value < self.__minValue or value > self.__maxValue:\n return False\n elif value == self.__minValue and self.__borderFlags & self.ExcludeMinimum:\n return False\n elif value == self.__maxValue and self.__borderFlags & self.ExcludeMaximum:\n return False\n else:\n return True
\n\n\n
\n[docs]\n def unite(self, other):\n """\n Unite two intervals\n\n :param qwt.interval.QwtInterval other: other interval to united with\n :return: united interval\n """\n if not self.isValid():\n if not other.isValid():\n return QwtInterval()\n else:\n return other\n elif not other.isValid():\n return self\n\n united = QwtInterval()\n flags = self.IncludeBorders\n\n # minimum\n if self.__minValue < other.minValue():\n united.setMinValue(self.__minValue)\n flags &= self.__borderFlags & self.ExcludeMinimum\n elif other.minValue() < self.__minValue:\n united.setMinValue(other.minValue())\n flags &= other.borderFlags() & self.ExcludeMinimum\n else:\n united.setMinValue(self.__minValue)\n flags &= (self.__borderFlags & other.borderFlags()) & self.ExcludeMinimum\n\n # maximum\n if self.__maxValue > other.maxValue():\n united.setMaxValue(self.__maxValue)\n flags &= self.__borderFlags & self.ExcludeMaximum\n elif other.maxValue() > self.__maxValue:\n united.setMaxValue(other.maxValue())\n flags &= other.borderFlags() & self.ExcludeMaximum\n else:\n united.setMaxValue(self.__maxValue)\n flags &= self.__borderFlags & other.borderFlags() & self.ExcludeMaximum\n\n united.setBorderFlags(flags)\n return united
\n\n\n
\n[docs]\n def intersect(self, other):\n """\n Intersect two intervals\n\n :param qwt.interval.QwtInterval other: other interval to intersect with\n :return: intersected interval\n """\n if not other.isValid() or not self.isValid():\n return QwtInterval()\n\n i1 = self\n i2 = other\n\n if i1.minValue() > i2.minValue():\n i1, i2 = i2, i1\n elif i1.minValue() == i2.minValue():\n if i1.borderFlags() & self.ExcludeMinimum:\n i1, i2 = i2, i1\n\n if i1.maxValue() < i2.maxValue():\n return QwtInterval()\n\n if i1.maxValue() == i2.minValue():\n if (\n i1.borderFlags() & self.ExcludeMaximum\n or i2.borderFlags() & self.ExcludeMinimum\n ):\n return QwtInterval()\n\n intersected = QwtInterval()\n flags = self.IncludeBorders\n\n intersected.setMinValue(i2.minValue())\n flags |= i2.borderFlags() & self.ExcludeMinimum\n\n if i1.maxValue() < i2.maxValue():\n intersected.setMaxValue(i1.maxValue())\n flags |= i1.borderFlags() & self.ExcludeMaximum\n elif i2.maxValue() < i1.maxValue():\n intersected.setMaxValue(i2.maxValue())\n flags |= i2.borderFlags() & self.ExcludeMaximum\n else: # i1.maxValue() == i2.maxValue()\n intersected.setMaxValue(i1.maxValue())\n flags |= i1.borderFlags() & i2.borderFlags() & self.ExcludeMaximum\n\n intersected.setBorderFlags(flags)\n return intersected
\n\n\n
\n[docs]\n def intersects(self, other):\n """\n Test if two intervals overlap\n\n :param qwt.interval.QwtInterval other: other interval\n :return: True, when the intervals are intersecting\n """\n if not other.isValid() or not self.isValid():\n return False\n\n i1 = self\n i2 = other\n\n if i1.minValue() > i2.minValue():\n i1, i2 = i2, i1\n elif i1.minValue() == i2.minValue() and i1.borderFlags() & self.ExcludeMinimum:\n i1, i2 = i2, i1\n\n if i1.maxValue() > i2.minValue():\n return True\n elif i1.maxValue() == i2.minValue():\n return (\n i1.borderFlags() & self.ExcludeMaximum\n and i2.borderFlags() & self.ExcludeMinimum\n )\n return False
\n\n\n
\n[docs]\n def symmetrize(self, value):\n """\n Adjust the limit that is closer to value, so that value becomes\n the center of the interval.\n\n :param float value: Center\n :return: Interval with value as center\n """\n if not self.isValid():\n return self\n delta = max([abs(value - self.__maxValue), abs(value - self.__minValue)])\n return QwtInterval(value - delta, value + delta)
\n\n\n
\n[docs]\n def limited(self, lowerBound, upperBound):\n """\n Limit the interval, keeping the border modes\n\n :param float lowerBound: Lower limit\n :param float upperBound: Upper limit\n :return: Limited interval\n """\n if not self.isValid() or lowerBound > upperBound:\n return QwtInterval()\n minValue = max([self.__minValue, lowerBound])\n minValue = min([minValue, upperBound])\n maxValue = max([self.__maxValue, lowerBound])\n maxValue = min([maxValue, upperBound])\n return QwtInterval(minValue, maxValue, self.__borderFlags)
\n\n\n
\n[docs]\n def extend(self, value):\n """\n Extend the interval\n\n If value is below minValue(), value becomes the lower limit.\n If value is above maxValue(), value becomes the upper limit.\n\n extend() has no effect for invalid intervals\n\n :param float value: Value\n :return: extended interval\n """\n if not self.isValid():\n return self\n return QwtInterval(min([value, self.__minValue]), max([value, self.__maxValue]))
\n\n\n
\n[docs]\n def extend_fraction(self, value):\n """\n Extend the interval by a fraction of its width\n\n :param float value: Fraction\n :return: extended interval\n """\n if not self.isValid():\n return self\n return QwtInterval(\n self.__minValue - value * self.width(),\n self.__maxValue + value * self.width(),\n self.__borderFlags,\n )
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39ebc0e0>, 'js_tag': .js_tag at 0x7f3d39ebe5c0>}, None) highlighting module code... [ 25%] qwt.legend [app] emitting event: 'viewcode-find-source'('qwt.legend',) -[app] emitting event: 'html-page-context'('_modules/qwt/legend', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/legend', 'current_page_name': '_modules/qwt/legend', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b21d00>, 'hasdoc': .hasdoc at 0x7fc7d6b21120>, 'toctree': . at 0x7fc7d6b22f20>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.legend', 'body': '

Source code for qwt.legend

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtLegend\n---------\n\n.. autoclass:: QwtLegendData\n   :members:\n\n.. autoclass:: QwtLegendLabel\n   :members:\n\n.. autoclass:: QwtLegend\n   :members:\n"""\n\nimport math\n\nfrom qtpy.QtCore import QEvent, QObject, QPoint, QRect, QRectF, QSize, Qt, Signal\n\n# qDrawWinButton,\nfrom qtpy.QtGui import QPainter, QPalette, QPixmap\nfrom qtpy.QtWidgets import (\n    QApplication,\n    QFrame,\n    QScrollArea,\n    QStyle,\n    QStyleOption,\n    QVBoxLayout,\n    QWidget,\n)\n\nfrom qwt.dyngrid_layout import QwtDynGridLayout\nfrom qwt.painter import QwtPainter\nfrom qwt.text import QwtText, QwtTextLabel\n\n\n
\n[docs]\nclass QwtLegendData(object):\n """\n Attributes of an entry on a legend\n\n `QwtLegendData` is an abstract container ( like `QAbstractModel` )\n to exchange attributes, that are only known between to\n the plot item and the legend.\n\n By overloading `QwtPlotItem.legendData()` any other set of attributes\n could be used, that can be handled by a modified ( or completely\n different ) implementation of a legend.\n\n .. seealso::\n\n :py:class:`qwt.legend.QwtLegend`\n\n .. note::\n\n The stockchart example implements a legend as a tree\n with checkable items\n """\n\n # enum Mode\n ReadOnly, Clickable, Checkable = list(range(3))\n\n # enum Role\n ModeRole, TitleRole, IconRole = list(range(3))\n UserRole = 32\n\n def __init__(self):\n self.__map = {}\n\n
\n[docs]\n def setValues(self, map_):\n """\n Set the legend attributes\n\n :param dict map_: Values\n\n .. seealso::\n\n :py:meth:`values()`\n """\n self.__map = map_
\n\n\n
\n[docs]\n def values(self):\n """\n :return: Legend attributes\n\n .. seealso::\n\n :py:meth:`setValues()`\n """\n return self.__map
\n\n\n
\n[docs]\n def hasRole(self, role):\n """\n :param int role: Attribute role\n :return: True, when the internal map has an entry for role\n """\n return role in self.__map
\n\n\n
\n[docs]\n def setValue(self, role, data):\n """\n Set an attribute value\n\n :param int role: Attribute role\n :param QVariant data: Attribute value\n\n .. seealso::\n\n :py:meth:`value()`\n """\n self.__map[role] = data
\n\n\n
\n[docs]\n def value(self, role):\n """\n :param int role: Attribute role\n :return: Attribute value for a specific role\n\n .. seealso::\n\n :py:meth:`setValue()`\n """\n return self.__map.get(role)
\n\n\n
\n[docs]\n def isValid(self):\n """\n :return: True, when the internal map is empty\n """\n return len(self.__map) != 0
\n\n\n
\n[docs]\n def title(self):\n """\n :return: Value of the TitleRole attribute\n """\n titleValue = self.value(QwtLegendData.TitleRole)\n if isinstance(titleValue, QwtText):\n text = titleValue\n else:\n text = QwtText(titleValue)\n return text
\n\n\n
\n[docs]\n def icon(self):\n """\n :return: Value of the IconRole attribute\n """\n return self.value(QwtLegendData.IconRole)
\n\n\n
\n[docs]\n def mode(self):\n """\n :return: Value of the ModeRole attribute\n """\n modeValue = self.value(QwtLegendData.ModeRole)\n if isinstance(modeValue, int):\n return modeValue\n return QwtLegendData.ReadOnly
\n
\n\n\n\nBUTTONFRAME = 2\nMARGIN = 2\n\n\ndef buttonShift(w):\n option = QStyleOption()\n option.initFrom(w)\n ph = w.style().pixelMetric(QStyle.PM_ButtonShiftHorizontal, option, w)\n pv = w.style().pixelMetric(QStyle.PM_ButtonShiftVertical, option, w)\n return QSize(ph, pv)\n\n\nclass QwtLegendLabel_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.itemMode = QwtLegendData.ReadOnly\n self.isDown = False\n self.spacing = MARGIN\n self.legendData = QwtLegendData()\n self.icon = QPixmap()\n\n\n
\n[docs]\nclass QwtLegendLabel(QwtTextLabel):\n """A widget representing something on a QwtLegend."""\n\n clicked = Signal()\n pressed = Signal()\n released = Signal()\n checked = Signal(bool)\n\n def __init__(self, parent=None):\n QwtTextLabel.__init__(self, parent)\n self.__data = QwtLegendLabel_PrivateData()\n self.setMargin(MARGIN)\n self.setIndent(MARGIN)\n\n
\n[docs]\n def setData(self, legendData):\n """\n Set the attributes of the legend label\n\n :param QwtLegendData legendData: Attributes of the label\n\n .. seealso::\n\n :py:meth:`data()`\n """\n self.__data.legendData = legendData\n doUpdate = self.updatesEnabled()\n self.setUpdatesEnabled(False)\n self.setText(legendData.title())\n icon = legendData.icon()\n if icon is not None:\n self.setIcon(icon.toPixmap())\n if legendData.hasRole(QwtLegendData.ModeRole):\n self.setItemMode(legendData.mode())\n if doUpdate:\n self.setUpdatesEnabled(True)\n self.update()
\n\n\n
\n[docs]\n def data(self):\n """\n :return: Attributes of the label\n\n .. seealso::\n\n :py:meth:`setData()`, :py:meth:`qwt.plot.QwtPlotItem.legendData()`\n """\n return self.__data.legendData
\n\n\n
\n[docs]\n def setText(self, text):\n """\n Set the text to the legend item\n\n :param qwt.text.QwtText text: Text label\n\n .. seealso::\n\n :py:meth:`text()`\n """\n flags = Qt.AlignLeft | Qt.AlignVCenter | Qt.TextExpandTabs | Qt.TextWordWrap\n text.setRenderFlags(flags)\n QwtTextLabel.setText(self, text)
\n\n\n
\n[docs]\n def setItemMode(self, mode):\n """\n Set the item mode.\n The default is `QwtLegendData.ReadOnly`.\n\n :param int mode: Item mode\n\n .. seealso::\n\n :py:meth:`itemMode()`\n """\n if mode != self.__data.itemMode:\n self.__data.itemMode = mode\n self.__data.isDown = False\n self.setFocusPolicy(\n Qt.TabFocus if mode != QwtLegendData.ReadOnly else Qt.NoFocus\n )\n self.setMargin(BUTTONFRAME + MARGIN)\n self.updateGeometry()
\n\n\n
\n[docs]\n def itemMode(self):\n """\n :return: Item mode\n\n .. seealso::\n\n :py:meth:`setItemMode()`\n """\n return self.__data.itemMode
\n\n\n
\n[docs]\n def setIcon(self, icon):\n """\n Assign the icon\n\n :param QPixmap icon: Pixmap representing a plot item\n\n .. seealso::\n\n :py:meth:`icon()`, :py:meth:`qwt.plot.QwtPlotItem.legendIcon()`\n """\n self.__data.icon = icon\n indent = self.margin() + self.__data.spacing\n if icon.width() > 0:\n indent += icon.width() + self.__data.spacing\n self.setIndent(indent)
\n\n\n
\n[docs]\n def icon(self):\n """\n :return: Pixmap representing a plot item\n\n .. seealso::\n\n :py:meth:`setIcon()`\n """\n return self.__data.icon
\n\n\n
\n[docs]\n def setSpacing(self, spacing):\n """\n Change the spacing between icon and text\n\n :param int spacing: Spacing\n\n .. seealso::\n\n :py:meth:`spacing()`, :py:meth:`qwt.text.QwtTextLabel.margin()`\n """\n spacing = max([spacing, 0])\n if spacing != self.__data.spacing:\n self.__data.spacing = spacing\n mgn = self.contentsMargins()\n margin = max([mgn.left(), mgn.top(), mgn.right(), mgn.bottom()])\n indent = margin + self.__data.spacing\n if self.__data.icon.width() > 0:\n indent += self.__data.icon.width() + self.__data.spacing\n self.setIndent(indent)
\n\n\n
\n[docs]\n def spacing(self):\n """\n :return: Spacing between icon and text\n\n .. seealso::\n\n :py:meth:`setSpacing()`\n """\n return self.__data.spacing
\n\n\n
\n[docs]\n def setChecked(self, on):\n """\n Check/Uncheck a the item\n\n :param bool on: check/uncheck\n\n .. seealso::\n\n :py:meth:`isChecked()`, :py:meth:`setItemMode()`\n """\n if self.__data.itemMode == QwtLegendData.Checkable:\n isBlocked = self.signalsBlocked()\n self.blockSignals(True)\n self.setDown(on)\n self.blockSignals(isBlocked)
\n\n\n
\n[docs]\n def isChecked(self):\n """\n :return: true, if the item is checked\n\n .. seealso::\n\n :py:meth:`setChecked()`\n """\n return self.__data.itemMode == QwtLegendData.Checkable and self.isDown()
\n\n\n
\n[docs]\n def setDown(self, down):\n """\n Set the item being down\n\n :param bool on: true, if the item is down\n\n .. seealso::\n\n :py:meth:`isDown()`\n """\n if down == self.__data.isDown:\n return\n self.__data.isDown = down\n self.update()\n if self.__data.itemMode == QwtLegendData.Clickable:\n if self.__data.isDown:\n self.pressed.emit()\n else:\n self.released.emit()\n self.clicked.emit()\n if self.__data.itemMode == QwtLegendData.Checkable:\n self.checked.emit(self.__data.isDown)
\n\n\n
\n[docs]\n def isDown(self):\n """\n :return: true, if the item is down\n\n .. seealso::\n\n :py:meth:`setDown()`\n """\n return self.__data.isDown
\n\n\n
\n[docs]\n def sizeHint(self):\n """\n :return: a size hint\n """\n sz = QwtTextLabel.sizeHint(self)\n sz.setHeight(max([sz.height(), self.__data.icon.height() + 4]))\n if self.__data.itemMode != QwtLegendData.ReadOnly:\n sz += buttonShift(self)\n return sz
\n\n\n
\n[docs]\n def paintEvent(self, e):\n cr = self.contentsRect()\n painter = QPainter(self)\n painter.setClipRegion(e.region())\n # if self.__data.isDown:\n # qDrawWinButton(\n # painter, 0, 0, self.width(), self.height(), self.palette(), True\n # )\n painter.save()\n if self.__data.isDown:\n shiftSize = buttonShift(self)\n painter.translate(shiftSize.width(), shiftSize.height())\n painter.setClipRect(cr)\n self.drawContents(painter)\n if not self.__data.icon.isNull():\n iconRect = QRect(cr)\n iconRect.setX(iconRect.x() + self.margin())\n if self.__data.itemMode != QwtLegendData.ReadOnly:\n iconRect.setX(iconRect.x() + BUTTONFRAME)\n iconRect.setSize(self.__data.icon.size())\n iconRect.moveCenter(QPoint(iconRect.center().x(), cr.center().y()))\n painter.drawPixmap(iconRect, self.__data.icon)\n painter.restore()
\n\n\n
\n[docs]\n def mousePressEvent(self, e):\n if e.button() == Qt.LeftButton:\n if self.__data.itemMode == QwtLegendData.Clickable:\n self.setDown(True)\n return\n elif self.__data.itemMode == QwtLegendData.Checkable:\n self.setDown(not self.isDown())\n return\n QwtTextLabel.mousePressEvent(self, e)
\n\n\n
\n[docs]\n def mouseReleaseEvent(self, e):\n if e.button() == Qt.LeftButton:\n if self.__data.itemMode == QwtLegendData.Clickable:\n self.setDown(False)\n return\n elif self.__data.itemMode == QwtLegendData.Checkable:\n return\n QwtTextLabel.mouseReleaseEvent(self, e)
\n\n\n
\n[docs]\n def keyPressEvent(self, e):\n if e.key() == Qt.Key_Space:\n if self.__data.itemMode == QwtLegendData.Clickable:\n if not e.isAutoRepeat():\n self.setDown(True)\n return\n elif self.__data.itemMode == QwtLegendData.Checkable:\n if not e.isAutoRepeat():\n self.setDown(not self.isDown())\n return\n QwtTextLabel.keyPressEvent(self, e)
\n\n\n
\n[docs]\n def keyReleaseEvent(self, e):\n if e.key() == Qt.Key_Space:\n if self.__data.itemMode == QwtLegendData.Clickable:\n if not e.isAutoRepeat():\n self.setDown(False)\n return\n elif self.__data.itemMode == QwtLegendData.Checkable:\n return\n QwtTextLabel.keyReleaseEvent(self, e)
\n
\n\n\n\nclass QwtAbstractLegend(QFrame):\n def __init__(self, parent):\n QFrame.__init__(self, parent)\n\n def renderLegend(self, painter, rect, fillBackground):\n raise NotImplementedError\n\n def isEmpty(self):\n return 0\n\n def scrollExtent(self, orientation):\n return 0\n\n def updateLegend(self, itemInfo, data):\n raise NotImplementedError\n\n\nclass Entry(object):\n def __init__(self):\n self.itemInfo = None\n self.widgets = []\n\n\nclass QwtLegendMap(object):\n def __init__(self):\n self.__entries = []\n\n def isEmpty(self):\n return len(self.__entries) == 0\n\n def insert(self, itemInfo, widgets):\n for entry in self.__entries:\n if entry.itemInfo == itemInfo:\n entry.widgets = widgets\n return\n newEntry = Entry()\n newEntry.itemInfo = itemInfo\n newEntry.widgets = widgets\n self.__entries += [newEntry]\n\n def remove(self, itemInfo):\n for entry in self.__entries[:]:\n if entry.itemInfo == itemInfo:\n self.__entries.remove(entry)\n return\n\n def removeWidget(self, widget):\n for entry in self.__entries:\n while widget in entry.widgets:\n entry.widgets.remove(widget)\n\n def itemInfo(self, widget):\n if widget is not None:\n for entry in self.__entries:\n if widget in entry.widgets:\n return entry.itemInfo\n\n def legendWidgets(self, itemInfo):\n if itemInfo is not None:\n for entry in self.__entries:\n if entry.itemInfo == itemInfo:\n return entry.widgets\n return []\n\n\nclass LegendView(QScrollArea):\n def __init__(self, parent):\n QScrollArea.__init__(self, parent)\n self.contentsWidget = QWidget(self)\n self.contentsWidget.setObjectName("QwtLegendViewContents")\n self.setWidget(self.contentsWidget)\n self.setWidgetResizable(False)\n self.viewport().setObjectName("QwtLegendViewport")\n self.contentsWidget.setAutoFillBackground(False)\n self.viewport().setAutoFillBackground(False)\n\n def event(self, event):\n if event.type() == QEvent.PolishRequest:\n self.setFocusPolicy(Qt.NoFocus)\n if event.type() == QEvent.Resize:\n cr = self.contentsRect()\n w = cr.width()\n h = self.contentsWidget.heightForWidth(cr.width())\n if h > w:\n w -= self.verticalScrollBar().sizeHint().width()\n h = self.contentsWidget.heightForWidth(w)\n self.contentsWidget.resize(w, h)\n return QScrollArea.event(self, event)\n\n def viewportEvent(self, event):\n ok = QScrollArea.viewportEvent(self, event)\n if event.type() == QEvent.Resize:\n self.layoutContents()\n return ok\n\n def viewportSize(self, w, h):\n sbHeight = self.horizontalScrollBar().sizeHint().height()\n sbWidth = self.verticalScrollBar().sizeHint().width()\n cw = self.contentsRect().width()\n ch = self.contentsRect().height()\n vw = cw\n vh = ch\n if w > vw:\n vh -= sbHeight\n if h > vh:\n vw -= sbWidth\n if w > vw and vh == ch:\n vh -= sbHeight\n return QSize(vw, vh)\n\n def layoutContents(self):\n layout = self.contentsWidget.layout()\n if layout is None:\n return\n visibleSize = self.viewport().contentsRect().size()\n margins = layout.contentsMargins()\n margin_w = margins.left() + margins.right()\n minW = int(layout.maxItemWidth() + margin_w)\n w = max([visibleSize.width(), minW])\n h = max([layout.heightForWidth(w), visibleSize.height()])\n vpWidth = self.viewportSize(w, h).width()\n if w > vpWidth:\n w = max([vpWidth, minW])\n h = max([layout.heightForWidth(w), visibleSize.height()])\n self.contentsWidget.resize(w, h)\n\n\nclass QwtLegend_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.itemMode = QwtLegendData.ReadOnly\n self.view = QwtDynGridLayout()\n self.itemMap = QwtLegendMap()\n\n\n
\n[docs]\nclass QwtLegend(QwtAbstractLegend):\n """\n The legend widget\n\n The QwtLegend widget is a tabular arrangement of legend items. Legend\n items might be any type of widget, but in general they will be\n a QwtLegendLabel.\n\n .. seealso ::\n\n :py:class`qwt.legend.QwtLegendLabel`,\n :py:class`qwt.plot.QwtPlotItem`,\n :py:class`qwt.plot.QwtPlot`\n\n .. py:class:: QwtLegend([parent=None])\n\n Constructor\n\n :param QWidget parent: Parent widget\n\n .. py:data:: clicked\n\n A signal which is emitted when the user has clicked on\n a legend label, which is in `QwtLegendData.Clickable` mode.\n\n :param itemInfo: Info for the item item of the selected legend item\n :param index: Index of the legend label in the list of widgets that are associated with the plot item\n\n .. note::\n\n Clicks are disabled as default\n\n .. py:data:: checked\n\n A signal which is emitted when the user has clicked on\n a legend label, which is in `QwtLegendData.Checkable` mode\n\n :param itemInfo: Info for the item of the selected legend label\n :param index: Index of the legend label in the list of widgets that are associated with the plot item\n :param on: True when the legend label is checked\n\n .. note::\n\n Clicks are disabled as default\n """\n\n clicked = Signal(object, int)\n checked = Signal(object, bool, int)\n\n def __init__(self, parent=None):\n QwtAbstractLegend.__init__(self, parent)\n self.setFrameStyle(QFrame.NoFrame)\n self.__data = QwtLegend_PrivateData()\n self.__data.view = LegendView(self)\n self.__data.view.setObjectName("QwtLegendView")\n self.__data.view.setFrameStyle(QFrame.NoFrame)\n gridLayout = QwtDynGridLayout(self.__data.view.contentsWidget)\n gridLayout.setAlignment(Qt.AlignHCenter | Qt.AlignTop)\n self.__data.view.gridLayout = gridLayout\n self.__data.view.contentsWidget.installEventFilter(self)\n layout = QVBoxLayout(self)\n layout.setContentsMargins(0, 0, 0, 0)\n layout.addWidget(self.__data.view)\n\n
\n[docs]\n def setMaxColumns(self, numColumns):\n """\n Set the maximum number of entries in a row\n\n F.e when the maximum is set to 1 all items are aligned\n vertically. 0 means unlimited\n\n :param int numColumns: Maximum number of entries in a row\n\n .. seealso::\n\n :py:meth:`maxColumns()`,\n :py:meth:`QwtDynGridLayout.setMaxColumns()`\n """\n tl = self.__data.view.gridLayout\n if tl is not None:\n tl.setMaxColumns(numColumns)\n self.updateGeometry()
\n\n\n
\n[docs]\n def maxColumns(self):\n """\n :return: Maximum number of entries in a row\n\n .. seealso::\n\n :py:meth:`setMaxColumns()`,\n :py:meth:`QwtDynGridLayout.maxColumns()`\n """\n tl = self.__data.view.gridLayout\n if tl is not None:\n return tl.maxColumns()\n return 0
\n\n\n
\n[docs]\n def setDefaultItemMode(self, mode):\n """\n Set the default mode for legend labels\n\n Legend labels will be constructed according to the\n attributes in a `QwtLegendData` object. When it doesn't\n contain a value for the `QwtLegendData.ModeRole` the\n label will be initialized with the default mode of the legend.\n\n :param int mode: Default item mode\n\n .. seealso::\n\n :py:meth:`itemMode()`,\n :py:meth:`QwtLegendData.value()`,\n :py:meth:`QwtPlotItem::legendData()`\n\n ... note::\n\n Changing the mode doesn't have any effect on existing labels.\n """\n self.__data.itemMode = mode
\n\n\n
\n[docs]\n def defaultItemMode(self):\n """\n :return: Default item mode\n\n .. seealso::\n\n :py:meth:`setDefaultItemMode()`\n """\n return self.__data.itemMode
\n\n\n
\n[docs]\n def contentsWidget(self):\n """\n The contents widget is the only child of the viewport of\n the internal `QScrollArea` and the parent widget of all legend\n items.\n\n :return: Container widget of the legend items\n """\n return self.__data.view.contentsWidget
\n\n\n
\n[docs]\n def horizontalScrollBar(self):\n """\n :return: Horizontal scrollbar\n\n .. seealso::\n\n :py:meth:`verticalScrollBar()`\n """\n return self.__data.view.horizontalScrollBar()
\n\n\n
\n[docs]\n def verticalScrollBar(self):\n """\n :return: Vertical scrollbar\n\n .. seealso::\n\n :py:meth:`horizontalScrollBar()`\n """\n return self.__data.view.verticalScrollBar()
\n\n\n
\n[docs]\n def updateLegend(self, itemInfo, data):\n """\n Update the entries for an item\n\n :param QVariant itemInfo: Info for an item\n :param list data: Default item mode\n """\n widgetList = self.legendWidgets(itemInfo)\n if len(widgetList) != len(data):\n contentsLayout = self.__data.view.gridLayout\n while len(widgetList) > len(data):\n w = widgetList.pop(-1)\n contentsLayout.removeWidget(w)\n w.hide()\n w.deleteLater()\n for i in range(len(widgetList), len(data)):\n widget = self.createWidget(data[i])\n if contentsLayout is not None:\n contentsLayout.addWidget(widget)\n if self.isVisible():\n widget.setVisible(True)\n widgetList.append(widget)\n if not widgetList:\n self.__data.itemMap.remove(itemInfo)\n else:\n self.__data.itemMap.insert(itemInfo, widgetList)\n self.updateTabOrder()\n for i in range(len(data)):\n self.updateWidget(widgetList[i], data[i])
\n\n\n
\n[docs]\n def createWidget(self, data):\n """\n Create a widget to be inserted into the legend\n\n The default implementation returns a `QwtLegendLabel`.\n\n :param QwtLegendData data: Attributes of the legend entry\n :return: Widget representing data on the legend\n\n ... note::\n\n updateWidget() will called soon after createWidget()\n with the same attributes.\n """\n label = QwtLegendLabel()\n label.setItemMode(self.defaultItemMode())\n label.clicked.connect(lambda: self.itemClicked(label))\n label.checked.connect(lambda state: self.itemChecked(state, label))\n return label
\n\n\n
\n[docs]\n def updateWidget(self, widget, data):\n """\n Update the widget\n\n :param QWidget widget: Usually a QwtLegendLabel\n :param QwtLegendData data: Attributes to be displayed\n\n .. seealso::\n\n :py:meth:`createWidget()`\n\n ... note::\n\n When widget is no QwtLegendLabel updateWidget() does nothing.\n """\n label = widget # TODO: cast to QwtLegendLabel!\n if label is not None:\n label.setData(data)\n if data.value(QwtLegendData.ModeRole) is None:\n label.setItemMode(self.defaultItemMode())
\n\n\n def updateTabOrder(self):\n contentsLayout = self.__data.view.gridLayout\n if contentsLayout is not None:\n w = None\n for i in range(contentsLayout.count()):\n item = contentsLayout.itemAt(i)\n if w is not None and item.widget():\n QWidget.setTabOrder(w, item.widget())\n w = item.widget()\n\n
\n[docs]\n def sizeHint(self):\n """Return a size hint"""\n hint = self.__data.view.contentsWidget.sizeHint()\n hint += QSize(2 * self.frameWidth(), 2 * self.frameWidth())\n return hint
\n\n\n
\n[docs]\n def heightForWidth(self, width):\n """\n :param int width: Width\n :return: The preferred height, for a width.\n """\n width -= 2 * self.frameWidth()\n h = self.__data.view.contentsWidget.heightForWidth(width)\n if h >= 0:\n h += 2 * self.frameWidth()\n return h
\n\n\n
\n[docs]\n def eventFilter(self, object_, event):\n """\n Handle QEvent.ChildRemoved andQEvent.LayoutRequest events\n for the contentsWidget().\n\n :param QObject object: Object to be filtered\n :param QEvent event: Event\n :return: Forwarded to QwtAbstractLegend.eventFilter()\n """\n if object_ is self.__data.view.contentsWidget:\n if event.type() == QEvent.ChildRemoved:\n ce = event # TODO: cast to QChildEvent\n if ce.child().isWidgetType():\n w = ce.child() # TODO: cast to QWidget\n self.__data.itemMap.removeWidget(w)\n elif event.type() == QEvent.LayoutRequest:\n self.__data.view.layoutContents()\n if self.parentWidget() and self.parentWidget().layout() is None:\n QApplication.postEvent(\n self.parentWidget(), QEvent(QEvent.LayoutRequest)\n )\n return QwtAbstractLegend.eventFilter(self, object_, event)
\n\n\n def itemClicked(self, widget):\n # w = self.sender() #TODO: cast to QWidget\n w = widget\n if w is not None:\n itemInfo = self.__data.itemMap.itemInfo(w)\n if itemInfo is not None:\n widgetList = self.__data.itemMap.legendWidgets(itemInfo)\n if w in widgetList:\n index = widgetList.index(w)\n self.clicked.emit(itemInfo, index)\n\n def itemChecked(self, on, widget):\n # w = self.sender() #TODO: cast to QWidget\n w = widget\n if w is not None:\n itemInfo = self.__data.itemMap.itemInfo(w)\n if itemInfo is not None:\n widgetList = self.__data.itemMap.legendWidgets(itemInfo)\n if w in widgetList:\n index = widgetList.index(w)\n self.checked.emit(itemInfo, on, index)\n\n
\n[docs]\n def renderLegend(self, painter, rect, fillBackground):\n """\n Render the legend into a given rectangle.\n\n :param QPainter painter: Painter\n :param QRectF rect: Bounding rectangle\n :param bool fillBackground: When true, fill rect with the widget background\n """\n if self.__data.itemMap.isEmpty():\n return\n if fillBackground:\n if self.autoFillBackground() or self.testAttribute(Qt.WA_StyledBackground):\n QwtPainter.drawBackground(painter, rect, self)\n legendLayout = self.__data.view.contentsWidget.layout()\n if legendLayout is None:\n return\n margins = self.layout().contentsMargins()\n layoutRect = QRect()\n layoutRect.setLeft(math.ceil(rect.left()) + margins.left())\n layoutRect.setTop(math.ceil(rect.top()) + margins.top())\n layoutRect.setRight(math.ceil(rect.right()) - margins.right())\n layoutRect.setBottom(math.ceil(rect.bottom()) - margins.bottom())\n numCols = legendLayout.columnsForWidth(layoutRect.width())\n itemRects = legendLayout.layoutItems(layoutRect, numCols)\n index = 0\n for i in range(legendLayout.count()):\n item = legendLayout.itemAt(i)\n w = item.widget()\n if w is not None:\n painter.save()\n painter.setClipRect(itemRects[index], Qt.IntersectClip)\n self.renderItem(painter, w, itemRects[index], fillBackground)\n index += 1\n painter.restore()
\n\n\n
\n[docs]\n def renderItem(self, painter, widget, rect, fillBackground):\n """\n Render a legend entry into a given rectangle.\n\n :param QPainter painter: Painter\n :param QWidget widget: Widget representing a legend entry\n :param QRectF rect: Bounding rectangle\n :param bool fillBackground: When true, fill rect with the widget background\n """\n if fillBackground:\n if widget.autoFillBackground() or widget.testAttribute(\n Qt.WA_StyledBackground\n ):\n QwtPainter.drawBackground(painter, rect, widget)\n label = widget # TODO: cast to QwtLegendLabel\n if label is not None:\n icon = label.data().icon()\n sz = icon.defaultSize()\n mgn = label.contentsMargins()\n margin = max([mgn.left(), mgn.top(), mgn.right(), mgn.bottom()])\n iconRect = QRectF(\n rect.x() + margin,\n rect.center().y() - 0.5 * sz.height(),\n sz.width(),\n sz.height(),\n )\n icon.render(painter, iconRect, Qt.KeepAspectRatio)\n titleRect = QRectF(rect)\n titleRect.setX(iconRect.right() + 2 * label.spacing())\n painter.setFont(label.font())\n painter.setPen(label.palette().color(QPalette.Text))\n label.drawText(painter, titleRect) # TODO: cast label to QwtLegendLabel
\n\n\n
\n[docs]\n def legendWidgets(self, itemInfo):\n """\n List of widgets associated to a item\n\n :param QVariant itemInfo: Info about an item\n """\n return self.__data.itemMap.legendWidgets(itemInfo)
\n\n\n
\n[docs]\n def legendWidget(self, itemInfo):\n """\n First widget in the list of widgets associated to an item\n\n :param QVariant itemInfo: Info about an item\n """\n list_ = self.__data.itemMap.legendWidgets(itemInfo)\n if list_:\n return list_[0]
\n\n\n
\n[docs]\n def itemInfo(self, widget):\n """\n Find the item that is associated to a widget\n\n :param QWidget widget: Widget on the legend\n :return: Associated item info\n """\n return self.__data.itemMap.itemInfo(widget)
\n\n\n def isEmpty(self):\n return self.__data.itemMap.isEmpty()
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6b211c0>, 'js_tag': .js_tag at 0x7fc7d6b23100>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/legend', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/legend', 'current_page_name': '_modules/qwt/legend', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f69d00>, 'hasdoc': .hasdoc at 0x7f3d39f69120>, 'toctree': . at 0x7f3d39f6af20>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.legend', 'body': '

Source code for qwt.legend

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtLegend\n---------\n\n.. autoclass:: QwtLegendData\n   :members:\n\n.. autoclass:: QwtLegendLabel\n   :members:\n\n.. autoclass:: QwtLegend\n   :members:\n"""\n\nimport math\n\nfrom qtpy.QtCore import QEvent, QObject, QPoint, QRect, QRectF, QSize, Qt, Signal\n\n# qDrawWinButton,\nfrom qtpy.QtGui import QPainter, QPalette, QPixmap\nfrom qtpy.QtWidgets import (\n    QApplication,\n    QFrame,\n    QScrollArea,\n    QStyle,\n    QStyleOption,\n    QVBoxLayout,\n    QWidget,\n)\n\nfrom qwt.dyngrid_layout import QwtDynGridLayout\nfrom qwt.painter import QwtPainter\nfrom qwt.text import QwtText, QwtTextLabel\n\n\n
\n[docs]\nclass QwtLegendData(object):\n """\n Attributes of an entry on a legend\n\n `QwtLegendData` is an abstract container ( like `QAbstractModel` )\n to exchange attributes, that are only known between to\n the plot item and the legend.\n\n By overloading `QwtPlotItem.legendData()` any other set of attributes\n could be used, that can be handled by a modified ( or completely\n different ) implementation of a legend.\n\n .. seealso::\n\n :py:class:`qwt.legend.QwtLegend`\n\n .. note::\n\n The stockchart example implements a legend as a tree\n with checkable items\n """\n\n # enum Mode\n ReadOnly, Clickable, Checkable = list(range(3))\n\n # enum Role\n ModeRole, TitleRole, IconRole = list(range(3))\n UserRole = 32\n\n def __init__(self):\n self.__map = {}\n\n
\n[docs]\n def setValues(self, map_):\n """\n Set the legend attributes\n\n :param dict map_: Values\n\n .. seealso::\n\n :py:meth:`values()`\n """\n self.__map = map_
\n\n\n
\n[docs]\n def values(self):\n """\n :return: Legend attributes\n\n .. seealso::\n\n :py:meth:`setValues()`\n """\n return self.__map
\n\n\n
\n[docs]\n def hasRole(self, role):\n """\n :param int role: Attribute role\n :return: True, when the internal map has an entry for role\n """\n return role in self.__map
\n\n\n
\n[docs]\n def setValue(self, role, data):\n """\n Set an attribute value\n\n :param int role: Attribute role\n :param QVariant data: Attribute value\n\n .. seealso::\n\n :py:meth:`value()`\n """\n self.__map[role] = data
\n\n\n
\n[docs]\n def value(self, role):\n """\n :param int role: Attribute role\n :return: Attribute value for a specific role\n\n .. seealso::\n\n :py:meth:`setValue()`\n """\n return self.__map.get(role)
\n\n\n
\n[docs]\n def isValid(self):\n """\n :return: True, when the internal map is empty\n """\n return len(self.__map) != 0
\n\n\n
\n[docs]\n def title(self):\n """\n :return: Value of the TitleRole attribute\n """\n titleValue = self.value(QwtLegendData.TitleRole)\n if isinstance(titleValue, QwtText):\n text = titleValue\n else:\n text = QwtText(titleValue)\n return text
\n\n\n
\n[docs]\n def icon(self):\n """\n :return: Value of the IconRole attribute\n """\n return self.value(QwtLegendData.IconRole)
\n\n\n
\n[docs]\n def mode(self):\n """\n :return: Value of the ModeRole attribute\n """\n modeValue = self.value(QwtLegendData.ModeRole)\n if isinstance(modeValue, int):\n return modeValue\n return QwtLegendData.ReadOnly
\n
\n\n\n\nBUTTONFRAME = 2\nMARGIN = 2\n\n\ndef buttonShift(w):\n option = QStyleOption()\n option.initFrom(w)\n ph = w.style().pixelMetric(QStyle.PM_ButtonShiftHorizontal, option, w)\n pv = w.style().pixelMetric(QStyle.PM_ButtonShiftVertical, option, w)\n return QSize(ph, pv)\n\n\nclass QwtLegendLabel_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.itemMode = QwtLegendData.ReadOnly\n self.isDown = False\n self.spacing = MARGIN\n self.legendData = QwtLegendData()\n self.icon = QPixmap()\n\n\n
\n[docs]\nclass QwtLegendLabel(QwtTextLabel):\n """A widget representing something on a QwtLegend."""\n\n clicked = Signal()\n pressed = Signal()\n released = Signal()\n checked = Signal(bool)\n\n def __init__(self, parent=None):\n QwtTextLabel.__init__(self, parent)\n self.__data = QwtLegendLabel_PrivateData()\n self.setMargin(MARGIN)\n self.setIndent(MARGIN)\n\n
\n[docs]\n def setData(self, legendData):\n """\n Set the attributes of the legend label\n\n :param QwtLegendData legendData: Attributes of the label\n\n .. seealso::\n\n :py:meth:`data()`\n """\n self.__data.legendData = legendData\n doUpdate = self.updatesEnabled()\n self.setUpdatesEnabled(False)\n self.setText(legendData.title())\n icon = legendData.icon()\n if icon is not None:\n self.setIcon(icon.toPixmap())\n if legendData.hasRole(QwtLegendData.ModeRole):\n self.setItemMode(legendData.mode())\n if doUpdate:\n self.setUpdatesEnabled(True)\n self.update()
\n\n\n
\n[docs]\n def data(self):\n """\n :return: Attributes of the label\n\n .. seealso::\n\n :py:meth:`setData()`, :py:meth:`qwt.plot.QwtPlotItem.legendData()`\n """\n return self.__data.legendData
\n\n\n
\n[docs]\n def setText(self, text):\n """\n Set the text to the legend item\n\n :param qwt.text.QwtText text: Text label\n\n .. seealso::\n\n :py:meth:`text()`\n """\n flags = Qt.AlignLeft | Qt.AlignVCenter | Qt.TextExpandTabs | Qt.TextWordWrap\n text.setRenderFlags(flags)\n QwtTextLabel.setText(self, text)
\n\n\n
\n[docs]\n def setItemMode(self, mode):\n """\n Set the item mode.\n The default is `QwtLegendData.ReadOnly`.\n\n :param int mode: Item mode\n\n .. seealso::\n\n :py:meth:`itemMode()`\n """\n if mode != self.__data.itemMode:\n self.__data.itemMode = mode\n self.__data.isDown = False\n self.setFocusPolicy(\n Qt.TabFocus if mode != QwtLegendData.ReadOnly else Qt.NoFocus\n )\n self.setMargin(BUTTONFRAME + MARGIN)\n self.updateGeometry()
\n\n\n
\n[docs]\n def itemMode(self):\n """\n :return: Item mode\n\n .. seealso::\n\n :py:meth:`setItemMode()`\n """\n return self.__data.itemMode
\n\n\n
\n[docs]\n def setIcon(self, icon):\n """\n Assign the icon\n\n :param QPixmap icon: Pixmap representing a plot item\n\n .. seealso::\n\n :py:meth:`icon()`, :py:meth:`qwt.plot.QwtPlotItem.legendIcon()`\n """\n self.__data.icon = icon\n indent = self.margin() + self.__data.spacing\n if icon.width() > 0:\n indent += icon.width() + self.__data.spacing\n self.setIndent(indent)
\n\n\n
\n[docs]\n def icon(self):\n """\n :return: Pixmap representing a plot item\n\n .. seealso::\n\n :py:meth:`setIcon()`\n """\n return self.__data.icon
\n\n\n
\n[docs]\n def setSpacing(self, spacing):\n """\n Change the spacing between icon and text\n\n :param int spacing: Spacing\n\n .. seealso::\n\n :py:meth:`spacing()`, :py:meth:`qwt.text.QwtTextLabel.margin()`\n """\n spacing = max([spacing, 0])\n if spacing != self.__data.spacing:\n self.__data.spacing = spacing\n mgn = self.contentsMargins()\n margin = max([mgn.left(), mgn.top(), mgn.right(), mgn.bottom()])\n indent = margin + self.__data.spacing\n if self.__data.icon.width() > 0:\n indent += self.__data.icon.width() + self.__data.spacing\n self.setIndent(indent)
\n\n\n
\n[docs]\n def spacing(self):\n """\n :return: Spacing between icon and text\n\n .. seealso::\n\n :py:meth:`setSpacing()`\n """\n return self.__data.spacing
\n\n\n
\n[docs]\n def setChecked(self, on):\n """\n Check/Uncheck a the item\n\n :param bool on: check/uncheck\n\n .. seealso::\n\n :py:meth:`isChecked()`, :py:meth:`setItemMode()`\n """\n if self.__data.itemMode == QwtLegendData.Checkable:\n isBlocked = self.signalsBlocked()\n self.blockSignals(True)\n self.setDown(on)\n self.blockSignals(isBlocked)
\n\n\n
\n[docs]\n def isChecked(self):\n """\n :return: true, if the item is checked\n\n .. seealso::\n\n :py:meth:`setChecked()`\n """\n return self.__data.itemMode == QwtLegendData.Checkable and self.isDown()
\n\n\n
\n[docs]\n def setDown(self, down):\n """\n Set the item being down\n\n :param bool on: true, if the item is down\n\n .. seealso::\n\n :py:meth:`isDown()`\n """\n if down == self.__data.isDown:\n return\n self.__data.isDown = down\n self.update()\n if self.__data.itemMode == QwtLegendData.Clickable:\n if self.__data.isDown:\n self.pressed.emit()\n else:\n self.released.emit()\n self.clicked.emit()\n if self.__data.itemMode == QwtLegendData.Checkable:\n self.checked.emit(self.__data.isDown)
\n\n\n
\n[docs]\n def isDown(self):\n """\n :return: true, if the item is down\n\n .. seealso::\n\n :py:meth:`setDown()`\n """\n return self.__data.isDown
\n\n\n
\n[docs]\n def sizeHint(self):\n """\n :return: a size hint\n """\n sz = QwtTextLabel.sizeHint(self)\n sz.setHeight(max([sz.height(), self.__data.icon.height() + 4]))\n if self.__data.itemMode != QwtLegendData.ReadOnly:\n sz += buttonShift(self)\n return sz
\n\n\n
\n[docs]\n def paintEvent(self, e):\n cr = self.contentsRect()\n painter = QPainter(self)\n painter.setClipRegion(e.region())\n # if self.__data.isDown:\n # qDrawWinButton(\n # painter, 0, 0, self.width(), self.height(), self.palette(), True\n # )\n painter.save()\n if self.__data.isDown:\n shiftSize = buttonShift(self)\n painter.translate(shiftSize.width(), shiftSize.height())\n painter.setClipRect(cr)\n self.drawContents(painter)\n if not self.__data.icon.isNull():\n iconRect = QRect(cr)\n iconRect.setX(iconRect.x() + self.margin())\n if self.__data.itemMode != QwtLegendData.ReadOnly:\n iconRect.setX(iconRect.x() + BUTTONFRAME)\n iconRect.setSize(self.__data.icon.size())\n iconRect.moveCenter(QPoint(iconRect.center().x(), cr.center().y()))\n painter.drawPixmap(iconRect, self.__data.icon)\n painter.restore()
\n\n\n
\n[docs]\n def mousePressEvent(self, e):\n if e.button() == Qt.LeftButton:\n if self.__data.itemMode == QwtLegendData.Clickable:\n self.setDown(True)\n return\n elif self.__data.itemMode == QwtLegendData.Checkable:\n self.setDown(not self.isDown())\n return\n QwtTextLabel.mousePressEvent(self, e)
\n\n\n
\n[docs]\n def mouseReleaseEvent(self, e):\n if e.button() == Qt.LeftButton:\n if self.__data.itemMode == QwtLegendData.Clickable:\n self.setDown(False)\n return\n elif self.__data.itemMode == QwtLegendData.Checkable:\n return\n QwtTextLabel.mouseReleaseEvent(self, e)
\n\n\n
\n[docs]\n def keyPressEvent(self, e):\n if e.key() == Qt.Key_Space:\n if self.__data.itemMode == QwtLegendData.Clickable:\n if not e.isAutoRepeat():\n self.setDown(True)\n return\n elif self.__data.itemMode == QwtLegendData.Checkable:\n if not e.isAutoRepeat():\n self.setDown(not self.isDown())\n return\n QwtTextLabel.keyPressEvent(self, e)
\n\n\n
\n[docs]\n def keyReleaseEvent(self, e):\n if e.key() == Qt.Key_Space:\n if self.__data.itemMode == QwtLegendData.Clickable:\n if not e.isAutoRepeat():\n self.setDown(False)\n return\n elif self.__data.itemMode == QwtLegendData.Checkable:\n return\n QwtTextLabel.keyReleaseEvent(self, e)
\n
\n\n\n\nclass QwtAbstractLegend(QFrame):\n def __init__(self, parent):\n QFrame.__init__(self, parent)\n\n def renderLegend(self, painter, rect, fillBackground):\n raise NotImplementedError\n\n def isEmpty(self):\n return 0\n\n def scrollExtent(self, orientation):\n return 0\n\n def updateLegend(self, itemInfo, data):\n raise NotImplementedError\n\n\nclass Entry(object):\n def __init__(self):\n self.itemInfo = None\n self.widgets = []\n\n\nclass QwtLegendMap(object):\n def __init__(self):\n self.__entries = []\n\n def isEmpty(self):\n return len(self.__entries) == 0\n\n def insert(self, itemInfo, widgets):\n for entry in self.__entries:\n if entry.itemInfo == itemInfo:\n entry.widgets = widgets\n return\n newEntry = Entry()\n newEntry.itemInfo = itemInfo\n newEntry.widgets = widgets\n self.__entries += [newEntry]\n\n def remove(self, itemInfo):\n for entry in self.__entries[:]:\n if entry.itemInfo == itemInfo:\n self.__entries.remove(entry)\n return\n\n def removeWidget(self, widget):\n for entry in self.__entries:\n while widget in entry.widgets:\n entry.widgets.remove(widget)\n\n def itemInfo(self, widget):\n if widget is not None:\n for entry in self.__entries:\n if widget in entry.widgets:\n return entry.itemInfo\n\n def legendWidgets(self, itemInfo):\n if itemInfo is not None:\n for entry in self.__entries:\n if entry.itemInfo == itemInfo:\n return entry.widgets\n return []\n\n\nclass LegendView(QScrollArea):\n def __init__(self, parent):\n QScrollArea.__init__(self, parent)\n self.contentsWidget = QWidget(self)\n self.contentsWidget.setObjectName("QwtLegendViewContents")\n self.setWidget(self.contentsWidget)\n self.setWidgetResizable(False)\n self.viewport().setObjectName("QwtLegendViewport")\n self.contentsWidget.setAutoFillBackground(False)\n self.viewport().setAutoFillBackground(False)\n\n def event(self, event):\n if event.type() == QEvent.PolishRequest:\n self.setFocusPolicy(Qt.NoFocus)\n if event.type() == QEvent.Resize:\n cr = self.contentsRect()\n w = cr.width()\n h = self.contentsWidget.heightForWidth(cr.width())\n if h > w:\n w -= self.verticalScrollBar().sizeHint().width()\n h = self.contentsWidget.heightForWidth(w)\n self.contentsWidget.resize(w, h)\n return QScrollArea.event(self, event)\n\n def viewportEvent(self, event):\n ok = QScrollArea.viewportEvent(self, event)\n if event.type() == QEvent.Resize:\n self.layoutContents()\n return ok\n\n def viewportSize(self, w, h):\n sbHeight = self.horizontalScrollBar().sizeHint().height()\n sbWidth = self.verticalScrollBar().sizeHint().width()\n cw = self.contentsRect().width()\n ch = self.contentsRect().height()\n vw = cw\n vh = ch\n if w > vw:\n vh -= sbHeight\n if h > vh:\n vw -= sbWidth\n if w > vw and vh == ch:\n vh -= sbHeight\n return QSize(vw, vh)\n\n def layoutContents(self):\n layout = self.contentsWidget.layout()\n if layout is None:\n return\n visibleSize = self.viewport().contentsRect().size()\n margins = layout.contentsMargins()\n margin_w = margins.left() + margins.right()\n minW = int(layout.maxItemWidth() + margin_w)\n w = max([visibleSize.width(), minW])\n h = max([layout.heightForWidth(w), visibleSize.height()])\n vpWidth = self.viewportSize(w, h).width()\n if w > vpWidth:\n w = max([vpWidth, minW])\n h = max([layout.heightForWidth(w), visibleSize.height()])\n self.contentsWidget.resize(w, h)\n\n\nclass QwtLegend_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.itemMode = QwtLegendData.ReadOnly\n self.view = QwtDynGridLayout()\n self.itemMap = QwtLegendMap()\n\n\n
\n[docs]\nclass QwtLegend(QwtAbstractLegend):\n """\n The legend widget\n\n The QwtLegend widget is a tabular arrangement of legend items. Legend\n items might be any type of widget, but in general they will be\n a QwtLegendLabel.\n\n .. seealso ::\n\n :py:class`qwt.legend.QwtLegendLabel`,\n :py:class`qwt.plot.QwtPlotItem`,\n :py:class`qwt.plot.QwtPlot`\n\n .. py:class:: QwtLegend([parent=None])\n\n Constructor\n\n :param QWidget parent: Parent widget\n\n .. py:data:: clicked\n\n A signal which is emitted when the user has clicked on\n a legend label, which is in `QwtLegendData.Clickable` mode.\n\n :param itemInfo: Info for the item item of the selected legend item\n :param index: Index of the legend label in the list of widgets that are associated with the plot item\n\n .. note::\n\n Clicks are disabled as default\n\n .. py:data:: checked\n\n A signal which is emitted when the user has clicked on\n a legend label, which is in `QwtLegendData.Checkable` mode\n\n :param itemInfo: Info for the item of the selected legend label\n :param index: Index of the legend label in the list of widgets that are associated with the plot item\n :param on: True when the legend label is checked\n\n .. note::\n\n Clicks are disabled as default\n """\n\n clicked = Signal(object, int)\n checked = Signal(object, bool, int)\n\n def __init__(self, parent=None):\n QwtAbstractLegend.__init__(self, parent)\n self.setFrameStyle(QFrame.NoFrame)\n self.__data = QwtLegend_PrivateData()\n self.__data.view = LegendView(self)\n self.__data.view.setObjectName("QwtLegendView")\n self.__data.view.setFrameStyle(QFrame.NoFrame)\n gridLayout = QwtDynGridLayout(self.__data.view.contentsWidget)\n gridLayout.setAlignment(Qt.AlignHCenter | Qt.AlignTop)\n self.__data.view.gridLayout = gridLayout\n self.__data.view.contentsWidget.installEventFilter(self)\n layout = QVBoxLayout(self)\n layout.setContentsMargins(0, 0, 0, 0)\n layout.addWidget(self.__data.view)\n\n
\n[docs]\n def setMaxColumns(self, numColumns):\n """\n Set the maximum number of entries in a row\n\n F.e when the maximum is set to 1 all items are aligned\n vertically. 0 means unlimited\n\n :param int numColumns: Maximum number of entries in a row\n\n .. seealso::\n\n :py:meth:`maxColumns()`,\n :py:meth:`QwtDynGridLayout.setMaxColumns()`\n """\n tl = self.__data.view.gridLayout\n if tl is not None:\n tl.setMaxColumns(numColumns)\n self.updateGeometry()
\n\n\n
\n[docs]\n def maxColumns(self):\n """\n :return: Maximum number of entries in a row\n\n .. seealso::\n\n :py:meth:`setMaxColumns()`,\n :py:meth:`QwtDynGridLayout.maxColumns()`\n """\n tl = self.__data.view.gridLayout\n if tl is not None:\n return tl.maxColumns()\n return 0
\n\n\n
\n[docs]\n def setDefaultItemMode(self, mode):\n """\n Set the default mode for legend labels\n\n Legend labels will be constructed according to the\n attributes in a `QwtLegendData` object. When it doesn't\n contain a value for the `QwtLegendData.ModeRole` the\n label will be initialized with the default mode of the legend.\n\n :param int mode: Default item mode\n\n .. seealso::\n\n :py:meth:`itemMode()`,\n :py:meth:`QwtLegendData.value()`,\n :py:meth:`QwtPlotItem::legendData()`\n\n ... note::\n\n Changing the mode doesn't have any effect on existing labels.\n """\n self.__data.itemMode = mode
\n\n\n
\n[docs]\n def defaultItemMode(self):\n """\n :return: Default item mode\n\n .. seealso::\n\n :py:meth:`setDefaultItemMode()`\n """\n return self.__data.itemMode
\n\n\n
\n[docs]\n def contentsWidget(self):\n """\n The contents widget is the only child of the viewport of\n the internal `QScrollArea` and the parent widget of all legend\n items.\n\n :return: Container widget of the legend items\n """\n return self.__data.view.contentsWidget
\n\n\n
\n[docs]\n def horizontalScrollBar(self):\n """\n :return: Horizontal scrollbar\n\n .. seealso::\n\n :py:meth:`verticalScrollBar()`\n """\n return self.__data.view.horizontalScrollBar()
\n\n\n
\n[docs]\n def verticalScrollBar(self):\n """\n :return: Vertical scrollbar\n\n .. seealso::\n\n :py:meth:`horizontalScrollBar()`\n """\n return self.__data.view.verticalScrollBar()
\n\n\n
\n[docs]\n def updateLegend(self, itemInfo, data):\n """\n Update the entries for an item\n\n :param QVariant itemInfo: Info for an item\n :param list data: Default item mode\n """\n widgetList = self.legendWidgets(itemInfo)\n if len(widgetList) != len(data):\n contentsLayout = self.__data.view.gridLayout\n while len(widgetList) > len(data):\n w = widgetList.pop(-1)\n contentsLayout.removeWidget(w)\n w.hide()\n w.deleteLater()\n for i in range(len(widgetList), len(data)):\n widget = self.createWidget(data[i])\n if contentsLayout is not None:\n contentsLayout.addWidget(widget)\n if self.isVisible():\n widget.setVisible(True)\n widgetList.append(widget)\n if not widgetList:\n self.__data.itemMap.remove(itemInfo)\n else:\n self.__data.itemMap.insert(itemInfo, widgetList)\n self.updateTabOrder()\n for i in range(len(data)):\n self.updateWidget(widgetList[i], data[i])
\n\n\n
\n[docs]\n def createWidget(self, data):\n """\n Create a widget to be inserted into the legend\n\n The default implementation returns a `QwtLegendLabel`.\n\n :param QwtLegendData data: Attributes of the legend entry\n :return: Widget representing data on the legend\n\n ... note::\n\n updateWidget() will called soon after createWidget()\n with the same attributes.\n """\n label = QwtLegendLabel()\n label.setItemMode(self.defaultItemMode())\n label.clicked.connect(lambda: self.itemClicked(label))\n label.checked.connect(lambda state: self.itemChecked(state, label))\n return label
\n\n\n
\n[docs]\n def updateWidget(self, widget, data):\n """\n Update the widget\n\n :param QWidget widget: Usually a QwtLegendLabel\n :param QwtLegendData data: Attributes to be displayed\n\n .. seealso::\n\n :py:meth:`createWidget()`\n\n ... note::\n\n When widget is no QwtLegendLabel updateWidget() does nothing.\n """\n label = widget # TODO: cast to QwtLegendLabel!\n if label is not None:\n label.setData(data)\n if data.value(QwtLegendData.ModeRole) is None:\n label.setItemMode(self.defaultItemMode())
\n\n\n def updateTabOrder(self):\n contentsLayout = self.__data.view.gridLayout\n if contentsLayout is not None:\n w = None\n for i in range(contentsLayout.count()):\n item = contentsLayout.itemAt(i)\n if w is not None and item.widget():\n QWidget.setTabOrder(w, item.widget())\n w = item.widget()\n\n
\n[docs]\n def sizeHint(self):\n """Return a size hint"""\n hint = self.__data.view.contentsWidget.sizeHint()\n hint += QSize(2 * self.frameWidth(), 2 * self.frameWidth())\n return hint
\n\n\n
\n[docs]\n def heightForWidth(self, width):\n """\n :param int width: Width\n :return: The preferred height, for a width.\n """\n width -= 2 * self.frameWidth()\n h = self.__data.view.contentsWidget.heightForWidth(width)\n if h >= 0:\n h += 2 * self.frameWidth()\n return h
\n\n\n
\n[docs]\n def eventFilter(self, object_, event):\n """\n Handle QEvent.ChildRemoved andQEvent.LayoutRequest events\n for the contentsWidget().\n\n :param QObject object: Object to be filtered\n :param QEvent event: Event\n :return: Forwarded to QwtAbstractLegend.eventFilter()\n """\n if object_ is self.__data.view.contentsWidget:\n if event.type() == QEvent.ChildRemoved:\n ce = event # TODO: cast to QChildEvent\n if ce.child().isWidgetType():\n w = ce.child() # TODO: cast to QWidget\n self.__data.itemMap.removeWidget(w)\n elif event.type() == QEvent.LayoutRequest:\n self.__data.view.layoutContents()\n if self.parentWidget() and self.parentWidget().layout() is None:\n QApplication.postEvent(\n self.parentWidget(), QEvent(QEvent.LayoutRequest)\n )\n return QwtAbstractLegend.eventFilter(self, object_, event)
\n\n\n def itemClicked(self, widget):\n # w = self.sender() #TODO: cast to QWidget\n w = widget\n if w is not None:\n itemInfo = self.__data.itemMap.itemInfo(w)\n if itemInfo is not None:\n widgetList = self.__data.itemMap.legendWidgets(itemInfo)\n if w in widgetList:\n index = widgetList.index(w)\n self.clicked.emit(itemInfo, index)\n\n def itemChecked(self, on, widget):\n # w = self.sender() #TODO: cast to QWidget\n w = widget\n if w is not None:\n itemInfo = self.__data.itemMap.itemInfo(w)\n if itemInfo is not None:\n widgetList = self.__data.itemMap.legendWidgets(itemInfo)\n if w in widgetList:\n index = widgetList.index(w)\n self.checked.emit(itemInfo, on, index)\n\n
\n[docs]\n def renderLegend(self, painter, rect, fillBackground):\n """\n Render the legend into a given rectangle.\n\n :param QPainter painter: Painter\n :param QRectF rect: Bounding rectangle\n :param bool fillBackground: When true, fill rect with the widget background\n """\n if self.__data.itemMap.isEmpty():\n return\n if fillBackground:\n if self.autoFillBackground() or self.testAttribute(Qt.WA_StyledBackground):\n QwtPainter.drawBackground(painter, rect, self)\n legendLayout = self.__data.view.contentsWidget.layout()\n if legendLayout is None:\n return\n margins = self.layout().contentsMargins()\n layoutRect = QRect()\n layoutRect.setLeft(math.ceil(rect.left()) + margins.left())\n layoutRect.setTop(math.ceil(rect.top()) + margins.top())\n layoutRect.setRight(math.ceil(rect.right()) - margins.right())\n layoutRect.setBottom(math.ceil(rect.bottom()) - margins.bottom())\n numCols = legendLayout.columnsForWidth(layoutRect.width())\n itemRects = legendLayout.layoutItems(layoutRect, numCols)\n index = 0\n for i in range(legendLayout.count()):\n item = legendLayout.itemAt(i)\n w = item.widget()\n if w is not None:\n painter.save()\n painter.setClipRect(itemRects[index], Qt.IntersectClip)\n self.renderItem(painter, w, itemRects[index], fillBackground)\n index += 1\n painter.restore()
\n\n\n
\n[docs]\n def renderItem(self, painter, widget, rect, fillBackground):\n """\n Render a legend entry into a given rectangle.\n\n :param QPainter painter: Painter\n :param QWidget widget: Widget representing a legend entry\n :param QRectF rect: Bounding rectangle\n :param bool fillBackground: When true, fill rect with the widget background\n """\n if fillBackground:\n if widget.autoFillBackground() or widget.testAttribute(\n Qt.WA_StyledBackground\n ):\n QwtPainter.drawBackground(painter, rect, widget)\n label = widget # TODO: cast to QwtLegendLabel\n if label is not None:\n icon = label.data().icon()\n sz = icon.defaultSize()\n mgn = label.contentsMargins()\n margin = max([mgn.left(), mgn.top(), mgn.right(), mgn.bottom()])\n iconRect = QRectF(\n rect.x() + margin,\n rect.center().y() - 0.5 * sz.height(),\n sz.width(),\n sz.height(),\n )\n icon.render(painter, iconRect, Qt.KeepAspectRatio)\n titleRect = QRectF(rect)\n titleRect.setX(iconRect.right() + 2 * label.spacing())\n painter.setFont(label.font())\n painter.setPen(label.palette().color(QPalette.Text))\n label.drawText(painter, titleRect) # TODO: cast label to QwtLegendLabel
\n\n\n
\n[docs]\n def legendWidgets(self, itemInfo):\n """\n List of widgets associated to a item\n\n :param QVariant itemInfo: Info about an item\n """\n return self.__data.itemMap.legendWidgets(itemInfo)
\n\n\n
\n[docs]\n def legendWidget(self, itemInfo):\n """\n First widget in the list of widgets associated to an item\n\n :param QVariant itemInfo: Info about an item\n """\n list_ = self.__data.itemMap.legendWidgets(itemInfo)\n if list_:\n return list_[0]
\n\n\n
\n[docs]\n def itemInfo(self, widget):\n """\n Find the item that is associated to a widget\n\n :param QWidget widget: Widget on the legend\n :return: Associated item info\n """\n return self.__data.itemMap.itemInfo(widget)
\n\n\n def isEmpty(self):\n return self.__data.itemMap.isEmpty()
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39f691c0>, 'js_tag': .js_tag at 0x7f3d39f6b100>}, None) highlighting module code... [ 29%] qwt.plot [app] emitting event: 'viewcode-find-source'('qwt.plot',) -[app] emitting event: 'html-page-context'('_modules/qwt/plot', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot', 'current_page_name': '_modules/qwt/plot', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b23ba0>, 'hasdoc': .hasdoc at 0x7fc7d6b20d60>, 'toctree': . at 0x7fc7d6b22200>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot', 'body': '

Source code for qwt.plot

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlot\n-------\n\n.. autoclass:: QwtPlot\n   :members:\n\nQwtPlotItem\n-----------\n\n.. autoclass:: QwtPlotItem\n   :members:\n"""\n\nimport math\n\nimport numpy as np\nfrom qtpy.QtCore import QEvent, QObject, QRectF, QSize, Qt, Signal\nfrom qtpy.QtGui import QBrush, QColor, QFont, QPainter, QPalette\nfrom qtpy.QtWidgets import QApplication, QFrame, QSizePolicy, QWidget\n\nfrom qwt.graphic import QwtGraphic\nfrom qwt.interval import QwtInterval\nfrom qwt.legend import QwtLegendData\nfrom qwt.plot_canvas import QwtPlotCanvas\nfrom qwt.scale_div import QwtScaleDiv\nfrom qwt.scale_draw import QwtScaleDraw\nfrom qwt.scale_engine import QwtLinearScaleEngine\nfrom qwt.scale_map import QwtScaleMap\nfrom qwt.scale_widget import QwtScaleWidget\nfrom qwt.text import QwtText, QwtTextLabel\n\n\ndef qwtSetTabOrder(first, second, with_children):\n    tab_chain = [first, second]\n    if with_children:\n        children = second.findChildren(QWidget)\n        w = second.nextInFocusChain()\n        while w in children:\n            while w in children:\n                children.remove(w)\n            tab_chain += [w]\n            w = w.nextInFocusChain()\n    for idx in range(len(tab_chain) - 1):\n        w_from = tab_chain[idx]\n        w_to = tab_chain[idx + 1]\n        policy1, policy2 = w_from.focusPolicy(), w_to.focusPolicy()\n        proxy1, proxy2 = w_from.focusProxy(), w_to.focusProxy()\n        for w in (w_from, w_to):\n            w.setFocusPolicy(Qt.TabFocus)\n            w.setFocusProxy(None)\n        QWidget.setTabOrder(w_from, w_to)\n        for w, pl, px in ((w_from, policy1, proxy1), (w_to, policy2, proxy2)):\n            w.setFocusPolicy(pl)\n            w.setFocusProxy(px)\n\n\nclass ItemList(list):\n    def sortItems(self):\n        self.sort(key=lambda item: item.z())\n\n    def insertItem(self, obj):\n        self.append(obj)\n        self.sortItems()\n\n    def removeItem(self, obj):\n        self.remove(obj)\n        self.sortItems()\n\n\nclass QwtPlot_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.itemList = ItemList()\n        self.titleLabel = None\n        self.footerLabel = None\n        self.canvas = None\n        self.legend = None\n        self.layout = None\n        self.autoReplot = None\n        self.flatStyle = None\n\n\nclass AxisData(object):\n    def __init__(self):\n        self.isEnabled = None\n        self.doAutoScale = None\n        self.minValue = None\n        self.maxValue = None\n        self.stepSize = None\n        self.maxMajor = None\n        self.maxMinor = None\n        self.isValid = None\n        self.scaleDiv = None  # QwtScaleDiv\n        self.scaleEngine = None  # QwtScaleEngine\n        self.scaleWidget = None  # QwtScaleWidget\n        self.margin = None  # Margin (float) in %\n\n\n
\n[docs]\nclass QwtPlot(QFrame):\n """\n A 2-D plotting widget\n\n QwtPlot is a widget for plotting two-dimensional graphs.\n An unlimited number of plot items can be displayed on its canvas.\n Plot items might be curves (:py:class:`qwt.plot_curve.QwtPlotCurve`),\n markers (:py:class:`qwt.plot_marker.QwtPlotMarker`),\n the grid (:py:class:`qwt.plot_grid.QwtPlotGrid`), or anything else\n derived from :py:class:`QwtPlotItem`.\n\n A plot can have up to four axes, with each plot item attached to an x- and\n a y axis. The scales at the axes can be explicitly set (`QwtScaleDiv`), or\n are calculated from the plot items, using algorithms (`QwtScaleEngine`)\n which can be configured separately for each axis.\n\n The following example is a good starting point to see how to set up a\n plot widget::\n\n from qtpy import QtWidgets as QW\n import qwt\n import numpy as np\n\n app = QW.QApplication([])\n x = np.linspace(-10, 10, 500)\n plot = qwt.QwtPlot("Trigonometric functions")\n plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend)\n qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True)\n qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True)\n plot.resize(600, 300)\n plot.show()\n\n .. image:: /_static/QwtPlot_example.png\n\n .. py:class:: QwtPlot([title=""], [parent=None])\n\n :param str title: Title text\n :param QWidget parent: Parent widget\n\n .. py:data:: itemAttached\n\n A signal indicating, that an item has been attached/detached\n\n :param plotItem: Plot item\n :param on: Attached/Detached\n\n .. py:data:: legendDataChanged\n\n A signal with the attributes how to update\n the legend entries for a plot item.\n\n :param itemInfo: Info about a plot item, build from itemToInfo()\n :param data: Attributes of the entries (usually <= 1) for the plot item.\n\n """\n\n itemAttached = Signal(object, bool)\n legendDataChanged = Signal(object, object)\n\n # enum Axis\n AXES = yLeft, yRight, xBottom, xTop = list(range(4))\n axisCnt = len(AXES) # Not necessary but ensure compatibility with PyQwt\n\n # enum LegendPosition\n LeftLegend, RightLegend, BottomLegend, TopLegend = list(range(4))\n\n def __init__(self, *args):\n if len(args) == 0:\n title, parent = "", None\n elif len(args) == 1:\n if isinstance(args[0], QWidget) or args[0] is None:\n title = ""\n (parent,) = args\n else:\n (title,) = args\n parent = None\n elif len(args) == 2:\n title, parent = args\n else:\n raise TypeError(\n "%s() takes 0, 1 or 2 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n QFrame.__init__(self, parent)\n\n self.__layout_state = None\n\n self.__data = QwtPlot_PrivateData()\n from qwt.plot_layout import QwtPlotLayout\n\n self.__data.layout = QwtPlotLayout()\n self.__data.autoReplot = False\n\n self.setAutoReplot(False)\n self.setPlotLayout(self.__data.layout)\n\n # title\n self.__data.titleLabel = QwtTextLabel(self)\n self.__data.titleLabel.setObjectName("QwtPlotTitle")\n text = QwtText(title)\n text.setRenderFlags(Qt.AlignCenter | Qt.TextWordWrap)\n self.__data.titleLabel.setText(text)\n\n # footer\n self.__data.footerLabel = QwtTextLabel(self)\n self.__data.footerLabel.setObjectName("QwtPlotFooter")\n footer = QwtText()\n footer.setRenderFlags(Qt.AlignCenter | Qt.TextWordWrap)\n self.__data.footerLabel.setText(footer)\n\n # legend\n self.__data.legend = None\n\n # axis\n self.__axisData = []\n self.initAxesData()\n\n # canvas\n self.__data.canvas = QwtPlotCanvas(self)\n self.__data.canvas.setObjectName("QwtPlotCanvas")\n self.__data.canvas.installEventFilter(self)\n\n # plot style\n self.setFlatStyle(True)\n\n self.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)\n\n focusChain = [\n self,\n self.__data.titleLabel,\n self.axisWidget(self.xTop),\n self.axisWidget(self.yLeft),\n self.__data.canvas,\n self.axisWidget(self.yRight),\n self.axisWidget(self.xBottom),\n self.__data.footerLabel,\n ]\n\n for idx in range(len(focusChain) - 1):\n qwtSetTabOrder(focusChain[idx], focusChain[idx + 1], False)\n\n self.legendDataChanged.connect(self.updateLegendItems)\n\n
\n[docs]\n def insertItem(self, item):\n """\n Insert a plot item\n\n :param qwt.plot.QwtPlotItem item: PlotItem\n\n .. seealso::\n\n :py:meth:`removeItem()`\n\n .. note::\n\n This was a member of QwtPlotDict in older versions.\n """\n self.__data.itemList.insertItem(item)
\n\n\n
\n[docs]\n def removeItem(self, item):\n """\n Remove a plot item\n\n :param qwt.plot.QwtPlotItem item: PlotItem\n\n .. seealso::\n\n :py:meth:`insertItem()`\n\n .. note::\n\n This was a member of QwtPlotDict in older versions.\n """\n self.__data.itemList.removeItem(item)
\n\n\n
\n[docs]\n def detachItems(self, rtti=None):\n """\n Detach items from the dictionary\n\n :param rtti: In case of `QwtPlotItem.Rtti_PlotItem` or None (default) detach all items otherwise only those items of the type rtti.\n :type rtti: int or None\n\n .. note::\n\n This was a member of QwtPlotDict in older versions.\n """\n for item in self.__data.itemList[:]:\n if rtti in (None, QwtPlotItem.Rtti_PlotItem) or item.rtti() == rtti:\n item.attach(None)
\n\n\n
\n[docs]\n def itemList(self, rtti=None):\n """\n A list of attached plot items.\n\n Use caution when iterating these lists, as removing/detaching an\n item will invalidate the iterator. Instead you can place pointers\n to objects to be removed in a removal list, and traverse that list\n later.\n\n :param int rtti: In case of `QwtPlotItem.Rtti_PlotItem` detach all items otherwise only those items of the type rtti.\n :return: List of all attached plot items of a specific type. If rtti is None, return a list of all attached plot items.\n\n .. note::\n\n This was a member of QwtPlotDict in older versions.\n """\n if rtti is None or rtti == QwtPlotItem.Rtti_PlotItem:\n return self.__data.itemList\n return [item for item in self.__data.itemList if item.rtti() == rtti]
\n\n\n
\n[docs]\n def setFlatStyle(self, state):\n """\n Set or reset the flatStyle option\n\n If the flatStyle option is set, the plot will be\n rendered without any margin (scales, canvas, layout).\n\n Enabling this option makes the plot look flat and compact.\n\n The flatStyle option is set to True by default.\n\n :param bool state: True or False.\n\n .. seealso::\n\n :py:meth:`flatStyle()`\n """\n\n def make_font(family=None, size=None, delta_size=None, weight=None):\n finfo = self.fontInfo()\n family = finfo.family() if family is None else family\n weight = -1 if weight is None else weight\n size = size if delta_size is None else finfo.pointSize() + delta_size\n return QFont(family, size, weight)\n\n if state:\n # New PythonQwt-exclusive flat style\n plot_title_font = make_font(size=12)\n axis_title_font = make_font(size=11)\n axis_label_font = make_font(size=10)\n tick_lighter_factors = (150, 125, 100)\n scale_margin = scale_spacing = 0\n canvas_frame_style = QFrame.NoFrame\n plot_layout_canvas_margin = plot_layout_spacing = 0\n ticks_color = Qt.darkGray\n labels_color = "#444444"\n else:\n # Old PyQwt / Qwt style\n plot_title_font = make_font(size=14, weight=QFont.Bold)\n axis_title_font = make_font(size=12, weight=QFont.Bold)\n axis_label_font = make_font(size=10)\n tick_lighter_factors = (100, 100, 100)\n scale_margin = scale_spacing = 2\n canvas_frame_style = QFrame.Panel | QFrame.Sunken\n plot_layout_canvas_margin = 4\n plot_layout_spacing = 5\n ticks_color = labels_color = Qt.black\n self.canvas().setFrameStyle(canvas_frame_style)\n self.plotLayout().setCanvasMargin(plot_layout_canvas_margin)\n self.plotLayout().setSpacing(plot_layout_spacing)\n palette = self.palette()\n palette.setColor(QPalette.WindowText, QColor(ticks_color))\n palette.setColor(QPalette.Text, QColor(labels_color))\n self.setPalette(palette)\n for axis_id in self.AXES:\n scale_widget = self.axisWidget(axis_id)\n scale_draw = self.axisScaleDraw(axis_id)\n scale_widget.setFont(axis_label_font)\n scale_widget.setMargin(scale_margin)\n scale_widget.setSpacing(scale_spacing)\n scale_title = scale_widget.title()\n scale_title.setFont(axis_title_font)\n scale_widget.setTitle(scale_title)\n for tick_type, factor in enumerate(tick_lighter_factors):\n scale_draw.setTickLighterFactor(tick_type, factor)\n plot_title = self.title()\n plot_title.setFont(plot_title_font)\n self.setTitle(plot_title)\n self.__data.flatStyle = state
\n\n\n
\n[docs]\n def flatStyle(self):\n """\n :return: True if the flatStyle option is set.\n\n .. seealso::\n\n :py:meth:`setFlatStyle()`\n """\n return self.__data.flatStyle
\n\n\n
\n[docs]\n def initAxesData(self):\n """Initialize axes"""\n self.__axisData = [AxisData() for axisId in self.AXES]\n\n self.__axisData[self.yLeft].scaleWidget = QwtScaleWidget(\n QwtScaleDraw.LeftScale, self\n )\n self.__axisData[self.yRight].scaleWidget = QwtScaleWidget(\n QwtScaleDraw.RightScale, self\n )\n self.__axisData[self.xTop].scaleWidget = QwtScaleWidget(\n QwtScaleDraw.TopScale, self\n )\n self.__axisData[self.xBottom].scaleWidget = QwtScaleWidget(\n QwtScaleDraw.BottomScale, self\n )\n\n self.__axisData[self.yLeft].scaleWidget.setObjectName("QwtPlotAxisYLeft")\n self.__axisData[self.yRight].scaleWidget.setObjectName("QwtPlotAxisYRight")\n self.__axisData[self.xTop].scaleWidget.setObjectName("QwtPlotAxisXTop")\n self.__axisData[self.xBottom].scaleWidget.setObjectName("QwtPlotAxisXBottom")\n\n for axisId in self.AXES:\n d = self.__axisData[axisId]\n\n d.scaleEngine = QwtLinearScaleEngine()\n\n d.scaleWidget.setTransformation(d.scaleEngine.transformation())\n d.scaleWidget.setMargin(2)\n\n text = d.scaleWidget.title()\n d.scaleWidget.setTitle(text)\n\n d.doAutoScale = True\n d.margin = 0.05\n d.minValue = 0.0\n d.maxValue = 1000.0\n d.stepSize = 0.0\n d.maxMinor = 5\n d.maxMajor = 8\n d.isValid = False\n\n self.__axisData[self.yLeft].isEnabled = True\n self.__axisData[self.yRight].isEnabled = False\n self.__axisData[self.xBottom].isEnabled = True\n self.__axisData[self.xTop].isEnabled = False
\n\n\n def deleteAxesData(self):\n # XXX Is is really necessary in Python? (pure transcription of C++)\n for axisId in self.AXES:\n self.__axisData[axisId].scaleEngine = None\n self.__axisData[axisId] = None\n\n
\n[docs]\n def axisWidget(self, axisId):\n """\n :param int axisId: Axis index\n :return: Scale widget of the specified axis, or None if axisId is invalid.\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].scaleWidget
\n\n\n
\n[docs]\n def setAxisScaleEngine(self, axisId, scaleEngine):\n """\n Change the scale engine for an axis\n\n :param int axisId: Axis index\n :param qwt.scale_engine.QwtScaleEngine scaleEngine: Scale engine\n\n .. seealso::\n\n :py:meth:`axisScaleEngine()`\n """\n if self.axisValid(axisId) and scaleEngine is not None:\n d = self.__axisData[axisId]\n d.scaleEngine = scaleEngine\n self.__axisData[axisId].scaleWidget.setTransformation(\n scaleEngine.transformation()\n )\n d.isValid = False\n self.autoRefresh()
\n\n\n
\n[docs]\n def axisScaleEngine(self, axisId):\n """\n :param int axisId: Axis index\n :return: Scale engine for a specific axis\n\n .. seealso::\n\n :py:meth:`setAxisScaleEngine()`\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].scaleEngine
\n\n\n
\n[docs]\n def axisAutoScale(self, axisId):\n """\n :param int axisId: Axis index\n :return: True, if autoscaling is enabled\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].doAutoScale
\n\n\n
\n[docs]\n def axisEnabled(self, axisId):\n """\n :param int axisId: Axis index\n :return: True, if a specified axis is enabled\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].isEnabled
\n\n\n
\n[docs]\n def axisFont(self, axisId):\n """\n :param int axisId: Axis index\n :return: The font of the scale labels for a specified axis\n """\n if self.axisValid(axisId):\n return self.axisWidget(axisId).font()\n else:\n return QFont()
\n\n\n
\n[docs]\n def axisMaxMajor(self, axisId):\n """\n :param int axisId: Axis index\n :return: The maximum number of major ticks for a specified axis\n\n .. seealso::\n\n :py:meth:`setAxisMaxMajor()`,\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].maxMajor\n else:\n return 0
\n\n\n
\n[docs]\n def axisMaxMinor(self, axisId):\n """\n :param int axisId: Axis index\n :return: The maximum number of minor ticks for a specified axis\n\n .. seealso::\n\n :py:meth:`setAxisMaxMinor()`,\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].maxMinor\n else:\n return 0
\n\n\n
\n[docs]\n def axisScaleDiv(self, axisId):\n """\n :param int axisId: Axis index\n :return: The scale division of a specified axis\n\n axisScaleDiv(axisId).lowerBound(), axisScaleDiv(axisId).upperBound()\n are the current limits of the axis scale.\n\n .. seealso::\n\n :py:class:`qwt.scale_div.QwtScaleDiv`,\n :py:meth:`setAxisScaleDiv()`,\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`\n """\n return self.__axisData[axisId].scaleDiv
\n\n\n
\n[docs]\n def axisScaleDraw(self, axisId):\n """\n :param int axisId: Axis index\n :return: Specified scaleDraw for axis, or NULL if axis is invalid.\n """\n if self.axisValid(axisId):\n return self.axisWidget(axisId).scaleDraw()
\n\n\n
\n[docs]\n def axisStepSize(self, axisId):\n """\n :param int axisId: Axis index\n :return: step size parameter value\n\n This doesn't need to be the step size of the current scale.\n\n .. seealso::\n\n :py:meth:`setAxisScale()`,\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].stepSize\n else:\n return 0
\n\n\n
\n[docs]\n def axisMargin(self, axisId):\n """\n :param int axisId: Axis index\n :return: Margin in % of the canvas size\n\n .. seealso::\n\n :py:meth:`setAxisMargin()`\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].margin\n return 0.0
\n\n\n
\n[docs]\n def axisInterval(self, axisId):\n """\n :param int axisId: Axis index\n :return: The current interval of the specified axis\n\n This is only a convenience function for axisScaleDiv(axisId).interval()\n\n .. seealso::\n\n :py:class:`qwt.scale_div.QwtScaleDiv`,\n :py:meth:`axisScaleDiv()`\n """\n if self.axisValid(axisId):\n return self.axisScaleDiv(axisId).interval()\n else:\n return QwtInterval()
\n\n\n
\n[docs]\n def axisTitle(self, axisId):\n """\n :param int axisId: Axis index\n :return: Title of a specified axis\n """\n if self.axisValid(axisId):\n return self.axisWidget(axisId).title()\n else:\n return QwtText()
\n\n\n
\n[docs]\n def enableAxis(self, axisId, tf=True):\n """\n Enable or disable a specified axis\n\n When an axis is disabled, this only means that it is not\n visible on the screen. Curves, markers and can be attached\n to disabled axes, and transformation of screen coordinates\n into values works as normal.\n\n Only xBottom and yLeft are enabled by default.\n\n :param int axisId: Axis index\n :param bool tf: True (enabled) or False (disabled)\n """\n if self.axisValid(axisId) and tf != self.__axisData[axisId].isEnabled:\n self.__axisData[axisId].isEnabled = tf\n self.updateLayout()
\n\n\n
\n[docs]\n def invTransform(self, axisId, pos):\n """\n Transform the x or y coordinate of a position in the\n drawing region into a value.\n\n :param int axisId: Axis index\n :param int pos: position\n\n .. warning::\n\n The position can be an x or a y coordinate,\n depending on the specified axis.\n """\n if self.axisValid(axisId):\n return self.canvasMap(axisId).invTransform(pos)\n else:\n return 0.0
\n\n\n
\n[docs]\n def transform(self, axisId, value):\n """\n Transform a value into a coordinate in the plotting region\n\n :param int axisId: Axis index\n :param fload value: Value\n :return: X or Y coordinate in the plotting region corresponding to the value.\n """\n if self.axisValid(axisId):\n return self.canvasMap(axisId).transform(value)\n else:\n return 0.0
\n\n\n
\n[docs]\n def setAxisFont(self, axisId, font):\n """\n Change the font of an axis\n\n :param int axisId: Axis index\n :param QFont font: Font\n\n .. warning::\n\n This function changes the font of the tick labels,\n not of the axis title.\n """\n if self.axisValid(axisId):\n return self.axisWidget(axisId).setFont(font)
\n\n\n
\n[docs]\n def setAxisAutoScale(self, axisId, on=True):\n """\n Enable autoscaling for a specified axis\n\n This member function is used to switch back to autoscaling mode\n after a fixed scale has been set. Autoscaling is enabled by default.\n\n :param int axisId: Axis index\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`setAxisScale()`, :py:meth:`setAxisScaleDiv()`,\n :py:meth:`updateAxes()`\n\n .. note::\n\n The autoscaling flag has no effect until updateAxes() is executed\n ( called by replot() ).\n """\n if self.axisValid(axisId) and self.__axisData[axisId].doAutoScale != on:\n self.__axisData[axisId].doAutoScale = on\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisScale(self, axisId, min_, max_, stepSize=0):\n """\n Disable autoscaling and specify a fixed scale for a selected axis.\n\n In updateAxes() the scale engine calculates a scale division from the\n specified parameters, that will be assigned to the scale widget. So\n updates of the scale widget usually happen delayed with the next replot.\n\n :param int axisId: Axis index\n :param float min_: Minimum of the scale\n :param float max_: Maximum of the scale\n :param float stepSize: Major step size. If <code>step == 0</code>, the step size is calculated automatically using the maxMajor setting.\n\n .. seealso::\n\n :py:meth:`setAxisMaxMajor()`, :py:meth:`setAxisAutoScale()`,\n :py:meth:`axisStepSize()`,\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`\n """\n if self.axisValid(axisId):\n d = self.__axisData[axisId]\n d.doAutoScale = False\n d.isValid = False\n d.minValue = min_\n d.maxValue = max_\n d.stepSize = stepSize\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisScaleDiv(self, axisId, scaleDiv):\n """\n Disable autoscaling and specify a fixed scale for a selected axis.\n\n The scale division will be stored locally only until the next call\n of updateAxes(). So updates of the scale widget usually happen delayed with\n the next replot.\n\n :param int axisId: Axis index\n :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division\n\n .. seealso::\n\n :py:meth:`setAxisScale()`, :py:meth:`setAxisAutoScale()`\n """\n if self.axisValid(axisId):\n d = self.__axisData[axisId]\n d.doAutoScale = False\n d.scaleDiv = scaleDiv\n d.isValid = True\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisScaleDraw(self, axisId, scaleDraw):\n """\n Set a scale draw\n\n :param int axisId: Axis index\n :param qwt.scale_draw.QwtScaleDraw scaleDraw: Object responsible for drawing scales.\n\n By passing scaleDraw it is possible to extend QwtScaleDraw\n functionality and let it take place in QwtPlot. Please note\n that scaleDraw has to be created with new and will be deleted\n by the corresponding QwtScale member ( like a child object ).\n\n .. seealso::\n\n :py:class:`qwt.scale_draw.QwtScaleDraw`,\n :py:class:`qwt.scale_widget.QwtScaleWigdet`\n\n .. warning::\n\n The attributes of scaleDraw will be overwritten by those of the\n previous QwtScaleDraw.\n """\n if self.axisValid(axisId):\n self.axisWidget(axisId).setScaleDraw(scaleDraw)\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisLabelAlignment(self, axisId, alignment):\n """\n Change the alignment of the tick labels\n\n :param int axisId: Axis index\n :param Qt.Alignment alignment: Or'd Qt.AlignmentFlags\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()`\n """\n if self.axisValid(axisId):\n self.axisWidget(axisId).setLabelAlignment(alignment)
\n\n\n
\n[docs]\n def setAxisLabelRotation(self, axisId, rotation):\n """\n Rotate all tick labels\n\n :param int axisId: Axis index\n :param float rotation: Angle in degrees. When changing the label rotation, the label alignment might be adjusted too.\n\n .. seealso::\n\n :py:meth:`setLabelRotation()`, :py:meth:`setAxisLabelAlignment()`\n """\n if self.axisValid(axisId):\n self.axisWidget(axisId).setLabelRotation(rotation)
\n\n\n
\n[docs]\n def setAxisLabelAutoSize(self, axisId, state):\n """\n Set tick labels automatic size option (default: on)\n\n :param int axisId: Axis index\n :param bool state: On/off\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()`\n """\n if self.axisValid(axisId):\n self.axisWidget(axisId).setLabelAutoSize(state)
\n\n\n
\n[docs]\n def setAxisMaxMinor(self, axisId, maxMinor):\n """\n Set the maximum number of minor scale intervals for a specified axis\n\n :param int axisId: Axis index\n :param int maxMinor: Maximum number of minor steps\n\n .. seealso::\n\n :py:meth:`axisMaxMinor()`\n """\n if self.axisValid(axisId):\n maxMinor = max([0, min([maxMinor, 100])])\n d = self.__axisData[axisId]\n if maxMinor != d.maxMinor:\n d.maxMinor = maxMinor\n d.isValid = False\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisMaxMajor(self, axisId, maxMajor):\n """\n Set the maximum number of major scale intervals for a specified axis\n\n :param int axisId: Axis index\n :param int maxMajor: Maximum number of major steps\n\n .. seealso::\n\n :py:meth:`axisMaxMajor()`\n """\n if self.axisValid(axisId):\n maxMajor = max([1, min([maxMajor, 10000])])\n d = self.__axisData[axisId]\n if maxMajor != d.maxMajor:\n d.maxMajor = maxMajor\n d.isValid = False\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisMargin(self, axisId, margin):\n """\n Set the margin of the scale widget\n\n :param int axisId: Axis index\n :param float margin: Margin in % of the canvas size\n\n .. seealso::\n\n :py:meth:`axisMargin()`\n """\n if self.axisValid(axisId):\n d = self.__axisData[axisId]\n if margin != d.margin:\n d.margin = margin\n d.isValid = False\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisTitle(self, axisId, title):\n """\n Change the title of a specified axis\n\n :param int axisId: Axis index\n :param title: axis title\n :type title: qwt.text.QwtText or str\n """\n if self.axisValid(axisId):\n self.axisWidget(axisId).setTitle(title)\n self.updateLayout()
\n\n\n
\n[docs]\n def updateAxes(self):\n """\n Rebuild the axes scales\n\n In case of autoscaling the boundaries of a scale are calculated\n from the bounding rectangles of all plot items, having the\n `QwtPlotItem.AutoScale` flag enabled (`QwtScaleEngine.autoScale()`).\n Then a scale division is calculated (`QwtScaleEngine.didvideScale()`)\n and assigned to scale widget.\n\n When the scale boundaries have been assigned with `setAxisScale()` a\n scale division is calculated (`QwtScaleEngine.didvideScale()`)\n for this interval and assigned to the scale widget.\n\n When the scale has been set explicitly by `setAxisScaleDiv()` the\n locally stored scale division gets assigned to the scale widget.\n\n The scale widget indicates modifications by emitting a\n `QwtScaleWidget.scaleDivChanged()` signal.\n\n `updateAxes()` is usually called by `replot()`.\n\n .. seealso::\n\n :py:meth:`setAxisAutoScale()`, :py:meth:`setAxisScale()`,\n :py:meth:`setAxisScaleDiv()`, :py:meth:`replot()`,\n :py:meth:`QwtPlotItem.boundingRect()`\n """\n intv = [QwtInterval() for _i in self.AXES]\n itmList = self.itemList()\n for item in itmList:\n if not item.testItemAttribute(QwtPlotItem.AutoScale):\n continue\n if not item.isVisible():\n continue\n if self.axisAutoScale(item.xAxis()) or self.axisAutoScale(item.yAxis()):\n rect = item.boundingRect()\n if rect.width() >= 0.0:\n intv[item.xAxis()] |= QwtInterval(rect.left(), rect.right())\n if rect.height() >= 0.0:\n intv[item.yAxis()] |= QwtInterval(rect.top(), rect.bottom())\n\n for axisId in self.AXES:\n d = self.__axisData[axisId]\n minValue = d.minValue\n maxValue = d.maxValue\n stepSize = d.stepSize\n if d.margin is not None:\n intv_i = intv[axisId].extend_fraction(d.margin)\n else:\n intv_i = intv[axisId]\n if d.doAutoScale and intv_i.isValid():\n d.isValid = False\n minValue = intv_i.minValue()\n maxValue = intv_i.maxValue()\n d.scaleEngine.autoScale(d.maxMajor, minValue, maxValue, stepSize)\n if not d.isValid:\n d.scaleDiv = d.scaleEngine.divideScale(\n minValue, maxValue, d.maxMajor, d.maxMinor, stepSize\n )\n d.isValid = True\n scaleWidget = self.axisWidget(axisId)\n scaleWidget.setScaleDiv(d.scaleDiv)\n\n # It is *really* necessary to update border dist!\n # Otherwise, when tick labels are large enough, the ticks\n # may not be aligned with canvas grid.\n # See the following issues for more details:\n # https://github.com/PlotPyStack/guiqwt/issues/57\n # https://github.com/PlotPyStack/PythonQwt/issues/30\n startDist, endDist = scaleWidget.getBorderDistHint()\n scaleWidget.setBorderDist(startDist, endDist)\n\n for item in itmList:\n if item.testItemInterest(QwtPlotItem.ScaleInterest):\n item.updateScaleDiv(\n self.axisScaleDiv(item.xAxis()), self.axisScaleDiv(item.yAxis())\n )
\n\n\n
\n[docs]\n def setCanvas(self, canvas):\n """\n Set the drawing canvas of the plot widget.\n\n The default canvas is a `QwtPlotCanvas`.\n\n :param QWidget canvas: Canvas Widget\n\n .. seealso::\n\n :py:meth:`canvas()`\n """\n if canvas == self.__data.canvas:\n return\n self.__data.canvas = canvas\n if canvas is not None:\n canvas.setParent(self)\n canvas.installEventFilter(self)\n if self.isVisible():\n canvas.show()
\n\n\n
\n[docs]\n def event(self, event):\n if event.type() == QEvent.LayoutRequest:\n self.updateLayout()\n elif event.type() == QEvent.PolishRequest:\n self.replot()\n return QFrame.event(self, event)
\n\n\n
\n[docs]\n def eventFilter(self, obj, event):\n if obj is self.__data.canvas:\n if event.type() == QEvent.Resize:\n self.updateCanvasMargins()\n elif event.type() == 178: # QEvent.ContentsRectChange:\n self.updateLayout()\n return QFrame.eventFilter(self, obj, event)
\n\n\n
\n[docs]\n def autoRefresh(self):\n """Replots the plot if :py:meth:`autoReplot()` is True."""\n if self.__data.autoReplot:\n self.replot()
\n\n\n
\n[docs]\n def setAutoReplot(self, tf=True):\n """\n Set or reset the autoReplot option\n\n If the autoReplot option is set, the plot will be\n updated implicitly by manipulating member functions.\n Since this may be time-consuming, it is recommended\n to leave this option switched off and call :py:meth:`replot()`\n explicitly if necessary.\n\n The autoReplot option is set to false by default, which\n means that the user has to call :py:meth:`replot()` in order\n to make changes visible.\n\n :param bool tf: True or False. Defaults to True.\n\n .. seealso::\n\n :py:meth:`autoReplot()`\n """\n self.__data.autoReplot = tf
\n\n\n
\n[docs]\n def autoReplot(self):\n """\n :return: True if the autoReplot option is set.\n\n .. seealso::\n\n :py:meth:`setAutoReplot()`\n """\n return self.__data.autoReplot
\n\n\n
\n[docs]\n def setTitle(self, title):\n """\n Change the plot's title\n\n :param title: New title\n :type title: str or qwt.text.QwtText\n\n .. seealso::\n\n :py:meth:`title()`\n """\n current_title = self.__data.titleLabel.text()\n if isinstance(title, QwtText) and current_title == title:\n return\n elif not isinstance(title, QwtText) and current_title.text() == title:\n return\n self.__data.titleLabel.setText(title)\n self.updateLayout()
\n\n\n
\n[docs]\n def title(self):\n """\n :return: Title of the plot\n\n .. seealso::\n\n :py:meth:`setTitle()`\n """\n return self.__data.titleLabel.text()
\n\n\n
\n[docs]\n def titleLabel(self):\n """\n :return: Title label widget.\n """\n return self.__data.titleLabel
\n\n\n
\n[docs]\n def setFooter(self, text):\n """\n Change the text the footer\n\n :param text: New text of the footer\n :type text: str or qwt.text.QwtText\n\n .. seealso::\n\n :py:meth:`footer()`\n """\n current_footer = self.__data.footerLabel.text()\n if isinstance(text, QwtText) and current_footer == text:\n return\n elif not isinstance(text, QwtText) and current_footer.text() == text:\n return\n self.__data.footerLabel.setText(text)\n self.updateLayout()
\n\n\n
\n[docs]\n def footer(self):\n """\n :return: Text of the footer\n\n .. seealso::\n\n :py:meth:`setFooter()`\n """\n return self.__data.footerLabel.text()
\n\n\n
\n[docs]\n def footerLabel(self):\n """\n :return: Footer label widget.\n """\n return self.__data.footerLabel
\n\n\n
\n[docs]\n def setPlotLayout(self, layout):\n """\n Assign a new plot layout\n\n :param layout: Layout\n :type layout: qwt.plot_layout.QwtPlotLayout\n\n .. seealso::\n\n :py:meth:`plotLayout()`\n """\n if layout != self.__data.layout:\n self.__data.layout = layout\n self.updateLayout()
\n\n\n
\n[docs]\n def plotLayout(self):\n """\n :return: the plot's layout\n\n .. seealso::\n\n :py:meth:`setPlotLayout()`\n """\n return self.__data.layout
\n\n\n
\n[docs]\n def legend(self):\n """\n :return: the plot's legend\n\n .. seealso::\n\n :py:meth:`insertLegend()`\n """\n return self.__data.legend
\n\n\n
\n[docs]\n def canvas(self):\n """\n :return: the plot's canvas\n """\n return self.__data.canvas
\n\n\n
\n[docs]\n def sizeHint(self):\n """\n :return: Size hint for the plot widget\n\n .. seealso::\n\n :py:meth:`minimumSizeHint()`\n """\n dw = dh = 0\n for axisId in self.AXES:\n if self.axisEnabled(axisId):\n niceDist = 40\n scaleWidget = self.axisWidget(axisId)\n scaleDiv = scaleWidget.scaleDraw().scaleDiv()\n majCnt = len(scaleDiv.ticks(QwtScaleDiv.MajorTick))\n if axisId in (self.yLeft, self.yRight):\n hDiff = (\n majCnt - 1\n ) * niceDist - scaleWidget.minimumSizeHint().height()\n if hDiff > dh:\n dh = hDiff\n else:\n wDiff = (\n majCnt - 1\n ) * niceDist - scaleWidget.minimumSizeHint().width()\n if wDiff > dw:\n dw = wDiff\n return self.minimumSizeHint() + QSize(dw, dh)
\n\n\n
\n[docs]\n def minimumSizeHint(self):\n """\n :return: Return a minimum size hint\n """\n hint = self.__data.layout.minimumSizeHint(self)\n hint += QSize(2 * self.frameWidth(), 2 * self.frameWidth())\n return hint
\n\n\n
\n[docs]\n def resizeEvent(self, e):\n QFrame.resizeEvent(self, e)\n self.updateLayout()
\n\n\n
\n[docs]\n def replot(self):\n """\n Redraw the plot\n\n If the `autoReplot` option is not set (which is the default)\n or if any curves are attached to raw data, the plot has to\n be refreshed explicitly in order to make changes visible.\n\n .. seealso::\n\n :py:meth:`updateAxes()`, :py:meth:`setAutoReplot()`\n """\n doAutoReplot = self.autoReplot()\n self.setAutoReplot(False)\n self.updateAxes()\n\n # Maybe the layout needs to be updated, because of changed\n # axes labels. We need to process them here before painting\n # to avoid that scales and canvas get out of sync.\n QApplication.sendPostedEvents(self, QEvent.LayoutRequest)\n\n if self.__data.canvas:\n try:\n self.__data.canvas.replot()\n except (AttributeError, TypeError):\n self.__data.canvas.update(self.__data.canvas.contentsRect())\n\n self.setAutoReplot(doAutoReplot)
\n\n\n def get_layout_state(self):\n return (\n self.contentsRect(),\n self.__data.titleLabel.text(),\n self.__data.footerLabel.text(),\n [\n (self.axisEnabled(axisId), self.axisTitle(axisId).text())\n for axisId in self.AXES\n ],\n self.__data.legend,\n )\n\n
\n[docs]\n def updateLayout(self):\n """\n Adjust plot content to its current size.\n\n .. seealso::\n\n :py:meth:`resizeEvent()`\n """\n # state = self.get_layout_state()\n # if self.__layout_state is not None and\\\n # state == self.__layout_state:\n # return\n # self.__layout_state = state\n\n self.__data.layout.activate(self, self.contentsRect())\n\n titleRect = self.__data.layout.titleRect().toRect()\n footerRect = self.__data.layout.footerRect().toRect()\n scaleRect = [\n self.__data.layout.scaleRect(axisId).toRect() for axisId in self.AXES\n ]\n legendRect = self.__data.layout.legendRect().toRect()\n canvasRect = self.__data.layout.canvasRect().toRect()\n\n if self.__data.titleLabel.text():\n self.__data.titleLabel.setGeometry(titleRect)\n if not self.__data.titleLabel.isVisibleTo(self):\n self.__data.titleLabel.show()\n else:\n self.__data.titleLabel.hide()\n\n if self.__data.footerLabel.text():\n self.__data.footerLabel.setGeometry(footerRect)\n if not self.__data.footerLabel.isVisibleTo(self):\n self.__data.footerLabel.show()\n else:\n self.__data.footerLabel.hide()\n\n for axisId in self.AXES:\n scaleWidget = self.axisWidget(axisId)\n if self.axisEnabled(axisId):\n if scaleRect[axisId] != scaleWidget.geometry():\n scaleWidget.setGeometry(scaleRect[axisId])\n startDist, endDist = scaleWidget.getBorderDistHint()\n scaleWidget.setBorderDist(startDist, endDist)\n\n # -------------------------------------------------------------\n # XXX: The following was commented to fix issue #35\n # Note: the same code part in Qwt's original source code is\n # annotated with the mention "do we need this code any\n # longer ???"... I guess not :)\n # if axisId in (self.xBottom, self.xTop):\n # r = QRegion(scaleRect[axisId])\n # if self.axisEnabled(self.yLeft):\n # r = r.subtracted(QRegion(scaleRect[self.yLeft]))\n # if self.axisEnabled(self.yRight):\n # r = r.subtracted(QRegion(scaleRect[self.yRight]))\n # r.translate(-scaleRect[axisId].x(), -scaleRect[axisId].y())\n # scaleWidget.setMask(r)\n # -------------------------------------------------------------\n\n if not scaleWidget.isVisibleTo(self):\n scaleWidget.show()\n else:\n scaleWidget.hide()\n\n if self.__data.legend:\n if self.__data.legend.isEmpty():\n self.__data.legend.hide()\n else:\n self.__data.legend.setGeometry(legendRect)\n self.__data.legend.show()\n\n self.__data.canvas.setGeometry(canvasRect)
\n\n\n
\n[docs]\n def getCanvasMarginsHint(self, maps, canvasRect):\n """\n Calculate the canvas margins\n\n :param list maps: `QwtPlot.axisCnt` maps, mapping between plot and paint device coordinates\n :param QRectF canvasRect: Bounding rectangle where to paint\n\n Plot items might indicate, that they need some extra space\n at the borders of the canvas by the `QwtPlotItem.Margins` flag.\n\n .. seealso::\n\n :py:meth:`updateCanvasMargins()`, :py:meth:`getCanvasMarginHint()`\n """\n left = top = right = bottom = -1.0\n\n for item in self.itemList():\n if item.testItemAttribute(QwtPlotItem.Margins):\n m = item.getCanvasMarginHint(\n maps[item.xAxis()], maps[item.yAxis()], canvasRect\n )\n left = max([left, m[self.yLeft]])\n top = max([top, m[self.xTop]])\n right = max([right, m[self.yRight]])\n bottom = max([bottom, m[self.xBottom]])\n\n return left, top, right, bottom
\n\n\n
\n[docs]\n def updateCanvasMargins(self):\n """\n Update the canvas margins\n\n Plot items might indicate, that they need some extra space\n at the borders of the canvas by the `QwtPlotItem.Margins` flag.\n\n .. seealso::\n\n :py:meth:`getCanvasMarginsHint()`,\n :py:meth:`QwtPlotItem.getCanvasMarginHint()`\n """\n maps = [self.canvasMap(axisId) for axisId in self.AXES]\n margins = self.getCanvasMarginsHint(maps, self.canvas().contentsRect())\n\n doUpdate = False\n\n for axisId in self.AXES:\n if margins[axisId] >= 0.0:\n m = math.ceil(margins[axisId])\n self.plotLayout().setCanvasMargin(m, axisId)\n doUpdate = True\n\n if doUpdate:\n self.updateLayout()
\n\n\n
\n[docs]\n def drawCanvas(self, painter):\n """\n Redraw the canvas.\n\n :param QPainter painter: Painter used for drawing\n\n .. warning::\n\n drawCanvas calls drawItems what is also used\n for printing. Applications that like to add individual\n plot items better overload drawItems()\n\n .. seealso::\n\n :py:meth:`getCanvasMarginsHint()`,\n :py:meth:`QwtPlotItem.getCanvasMarginHint()`\n """\n maps = [self.canvasMap(axisId) for axisId in self.AXES]\n self.drawItems(painter, self.__data.canvas.contentsRect(), maps)
\n\n\n
\n[docs]\n def drawItems(self, painter, canvasRect, maps):\n """\n Redraw the canvas.\n\n :param QPainter painter: Painter used for drawing\n :param QRectF canvasRect: Bounding rectangle where to paint\n :param list maps: `QwtPlot.axisCnt` maps, mapping between plot and paint device coordinates\n\n .. note::\n\n Usually canvasRect is `contentsRect()` of the plot canvas.\n Due to a bug in Qt this rectangle might be wrong for certain\n frame styles ( f.e `QFrame.Box` ) and it might be necessary to\n fix the margins manually using `QWidget.setContentsMargins()`\n """\n for item in self.itemList():\n if item and item.isVisible():\n painter.save()\n painter.setRenderHint(\n QPainter.Antialiasing,\n item.testRenderHint(QwtPlotItem.RenderAntialiased),\n )\n item.draw(painter, maps[item.xAxis()], maps[item.yAxis()], canvasRect)\n painter.restore()
\n\n\n
\n[docs]\n def canvasMap(self, axisId):\n """\n :param int axisId: Axis\n :return: Map for the axis on the canvas. With this map pixel coordinates can translated to plot coordinates and vice versa.\n\n .. seealso::\n\n :py:class:`qwt.scale_map.QwtScaleMap`,\n :py:meth:`transform()`, :py:meth:`invTransform()`\n """\n map_ = QwtScaleMap()\n if not self.__data.canvas:\n return map_\n\n map_.setTransformation(self.axisScaleEngine(axisId).transformation())\n sd = self.axisScaleDiv(axisId)\n if sd is None:\n return map_\n map_.setScaleInterval(sd.lowerBound(), sd.upperBound())\n\n if self.axisEnabled(axisId):\n s = self.axisWidget(axisId)\n if axisId in (self.yLeft, self.yRight):\n y = s.y() + s.startBorderDist() - self.__data.canvas.y()\n h = s.height() - s.startBorderDist() - s.endBorderDist()\n map_.setPaintInterval(y + h, y)\n else:\n x = s.x() + s.startBorderDist() - self.__data.canvas.x()\n w = s.width() - s.startBorderDist() - s.endBorderDist()\n map_.setPaintInterval(x, x + w)\n else:\n canvasRect = self.__data.canvas.contentsRect()\n if axisId in (self.yLeft, self.yRight):\n top = 0\n if not self.plotLayout().alignCanvasToScale(self.xTop):\n top = self.plotLayout().canvasMargin(self.xTop)\n bottom = 0\n if not self.plotLayout().alignCanvasToScale(self.xBottom):\n bottom = self.plotLayout().canvasMargin(self.xBottom)\n map_.setPaintInterval(\n canvasRect.bottom() - bottom, canvasRect.top() + top\n )\n else:\n left = 0\n if not self.plotLayout().alignCanvasToScale(self.yLeft):\n left = self.plotLayout().canvasMargin(self.yLeft)\n right = 0\n if not self.plotLayout().alignCanvasToScale(self.yRight):\n right = self.plotLayout().canvasMargin(self.yRight)\n map_.setPaintInterval(\n canvasRect.left() + left, canvasRect.right() - right\n )\n return map_
\n\n\n
\n[docs]\n def setCanvasBackground(self, brush):\n """\n Change the background of the plotting area\n\n Sets brush to `QPalette.Window` of all color groups of\n the palette of the canvas. Using `canvas().setPalette()`\n is a more powerful way to set these colors.\n\n :param QBrush brush: New background brush\n\n .. seealso::\n\n :py:meth:`canvasBackground()`\n """\n pal = self.__data.canvas.palette()\n pal.setBrush(QPalette.Window, QBrush(brush))\n self.canvas().setPalette(pal)
\n\n\n
\n[docs]\n def canvasBackground(self):\n """\n :return: Background brush of the plotting area.\n\n .. seealso::\n\n :py:meth:`setCanvasBackground()`\n """\n return self.canvas().palette().brush(QPalette.Active, QPalette.Window)
\n\n\n
\n[docs]\n def axisValid(self, axis_id):\n """\n :param int axis_id: Axis\n :return: True if the specified axis exists, otherwise False\n """\n return axis_id in QwtPlot.AXES
\n\n\n
\n[docs]\n def insertLegend(self, legend, pos=None, ratio=-1):\n """\n Insert a legend\n\n If the position legend is `QwtPlot.LeftLegend` or `QwtPlot.RightLegend`\n the legend will be organized in one column from top to down.\n Otherwise the legend items will be placed in a table\n with a best fit number of columns from left to right.\n\n insertLegend() will set the plot widget as parent for the legend.\n The legend will be deleted in the destructor of the plot or when\n another legend is inserted.\n\n Legends, that are not inserted into the layout of the plot widget\n need to connect to the legendDataChanged() signal. Calling updateLegend()\n initiates this signal for an initial update. When the application code\n wants to implement its own layout this also needs to be done for\n rendering plots to a document ( see QwtPlotRenderer ).\n\n :param qwt.legend.QwtAbstractLegend legend: Legend\n :param QwtPlot.LegendPosition pos: The legend's position.\n :param float ratio: Ratio between legend and the bounding rectangle of title, canvas and axes\n\n .. note::\n\n For top/left position the number of columns will be limited to 1,\n otherwise it will be set to unlimited.\n\n .. note::\n\n The legend will be shrunk if it would need more space than the\n given ratio. The ratio is limited to ]0.0 .. 1.0].\n In case of <= 0.0 it will be reset to the default ratio.\n The default vertical/horizontal ratio is 0.33/0.5.\n\n .. seealso::\n\n :py:meth:`legend()`,\n :py:meth:`qwt.plot_layout.QwtPlotLayout.legendPosition()`,\n :py:meth:`qwt.plot_layout.QwtPlotLayout.setLegendPosition()`\n """\n if pos is None:\n pos = self.RightLegend\n self.__data.layout.setLegendPosition(pos, ratio)\n if legend != self.__data.legend:\n if self.__data.legend and self.__data.legend.parent() is self:\n del self.__data.legend\n self.__data.legend = legend\n if self.__data.legend:\n self.legendDataChanged.connect(self.__data.legend.updateLegend)\n if self.__data.legend.parent() is not self:\n self.__data.legend.setParent(self)\n\n self.blockSignals(True)\n self.updateLegend()\n self.blockSignals(False)\n\n lpos = self.__data.layout.legendPosition()\n\n if legend is not None:\n if lpos in (self.LeftLegend, self.RightLegend):\n if legend.maxColumns() == 0:\n legend.setMaxColumns(1)\n elif lpos in (self.TopLegend, self.BottomLegend):\n legend.setMaxColumns(0)\n\n previousInChain = None\n if lpos == self.LeftLegend:\n previousInChain = self.axisWidget(QwtPlot.xTop)\n elif lpos == self.TopLegend:\n previousInChain = self\n elif lpos == self.RightLegend:\n previousInChain = self.axisWidget(QwtPlot.yRight)\n elif lpos == self.BottomLegend:\n previousInChain = self.footerLabel()\n\n if previousInChain is not None:\n qwtSetTabOrder(previousInChain, legend, True)\n\n self.updateLayout()
\n\n\n
\n[docs]\n def updateLegend(self, plotItem=None):\n """\n If plotItem is None, emit QwtPlot.legendDataChanged for all\n plot item. Otherwise, emit the signal for passed plot item.\n\n :param qwt.plot.QwtPlotItem plotItem: Plot item\n\n .. seealso::\n\n :py:meth:`QwtPlotItem.legendData()`, :py:data:`QwtPlot.legendDataChanged`\n """\n if plotItem is None:\n items = list(self.itemList())\n else:\n items = [plotItem]\n for plotItem in items:\n if plotItem is None:\n continue\n legendData = []\n if plotItem.testItemAttribute(QwtPlotItem.Legend):\n legendData = plotItem.legendData()\n self.legendDataChanged.emit(plotItem, legendData)
\n\n\n
\n[docs]\n def updateLegendItems(self, plotItem, legendData):\n """\n Update all plot items interested in legend attributes\n\n Call `QwtPlotItem.updateLegend()`, when the\n `QwtPlotItem.LegendInterest` flag is set.\n\n :param qwt.plot.QwtPlotItem plotItem: Plot item\n :param list legendData: Entries to be displayed for the plot item ( usually 1 )\n\n .. seealso::\n\n :py:meth:`QwtPlotItem.LegendInterest()`,\n :py:meth:`QwtPlotItem.updateLegend`\n """\n if plotItem is not None:\n for item in self.itemList():\n if item.testItemInterest(QwtPlotItem.LegendInterest):\n item.updateLegend(plotItem, legendData)
\n\n\n
\n[docs]\n def attachItem(self, plotItem, on):\n """\n Attach/Detach a plot item\n\n :param qwt.plot.QwtPlotItem plotItem: Plot item\n :param bool on: When true attach the item, otherwise detach it\n """\n if plotItem.testItemInterest(QwtPlotItem.LegendInterest):\n for item in self.itemList():\n legendData = []\n if on and item.testItemAttribute(QwtPlotItem.Legend):\n legendData = item.legendData()\n plotItem.updateLegend(item, legendData)\n\n if on:\n self.insertItem(plotItem)\n else:\n self.removeItem(plotItem)\n\n self.itemAttached.emit(plotItem, on)\n\n if plotItem.testItemAttribute(QwtPlotItem.Legend):\n if on:\n self.updateLegend(plotItem)\n else:\n self.legendDataChanged.emit(plotItem, [])\n\n self.autoRefresh()
\n\n\n
\n[docs]\n def print_(self, printer):\n """\n Print plot to printer\n\n :param printer: Printer\n :type printer: QPaintDevice or QPrinter or QSvgGenerator\n """\n from qwt.plot_renderer import QwtPlotRenderer\n\n renderer = QwtPlotRenderer(self)\n renderer.renderTo(self, printer)
\n\n\n
\n[docs]\n def exportTo(\n self, filename, size=(800, 600), size_mm=None, resolution=85, format_=None\n ):\n """\n Export plot to PDF or image file (SVG, PNG, ...)\n\n :param str filename: Filename\n :param tuple size: (width, height) size in pixels\n :param tuple size_mm: (width, height) size in millimeters\n :param int resolution: Resolution in dots per Inch (dpi)\n :param str format_: File format (PDF, SVG, PNG, ...)\n """\n if size_mm is None:\n size_mm = tuple(25.4 * np.array(size) / resolution)\n from qwt.plot_renderer import QwtPlotRenderer\n\n renderer = QwtPlotRenderer(self)\n renderer.renderDocument(self, filename, size_mm, resolution, format_)
\n
\n\n\n\nclass QwtPlotItem_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.plot = None\n self.isVisible = True\n self.attributes = 0\n self.interests = 0\n self.renderHints = 0\n self.z = 0.0\n self.xAxis = QwtPlot.xBottom\n self.yAxis = QwtPlot.yLeft\n self.legendIconSize = QSize(8, 8)\n self.title = None # QwtText\n self.icon = None\n\n\n
\n[docs]\nclass QwtPlotItem(object):\n """\n Base class for items on the plot canvas\n\n A plot item is "something", that can be painted on the plot canvas,\n or only affects the scales of the plot widget. They can be categorized as:\n\n - Representator\n\n A "Representator" is an item that represents some sort of data\n on the plot canvas. The different representator classes are organized\n according to the characteristics of the data:\n\n - :py:class:`qwt.plot_marker.QwtPlotMarker`: Represents a point or a\n horizontal/vertical coordinate\n - :py:class:`qwt.plot_curve.QwtPlotCurve`: Represents a series of\n points\n\n - Decorators\n\n A "Decorator" is an item, that displays additional information, that\n is not related to any data:\n\n - :py:class:`qwt.plot_grid.QwtPlotGrid`\n\n Depending on the `QwtPlotItem.ItemAttribute` flags, an item is included\n into autoscaling or has an entry on the legend.\n\n Before misusing the existing item classes it might be better to\n implement a new type of plot item\n ( don't implement a watermark as spectrogram ).\n Deriving a new type of `QwtPlotItem` primarily means to implement\n the `YourPlotItem.draw()` method.\n\n .. seealso::\n\n The cpuplot example shows the implementation of additional plot items.\n\n .. py:class:: QwtPlotItem([title=None])\n\n Constructor\n\n :param title: Title of the item\n :type title: qwt.text.QwtText or str\n """\n\n # enum RttiValues\n (\n Rtti_PlotItem,\n Rtti_PlotGrid,\n Rtti_PlotScale,\n Rtti_PlotLegend,\n Rtti_PlotMarker,\n Rtti_PlotCurve,\n Rtti_PlotSpectroCurve,\n Rtti_PlotIntervalCurve,\n Rtti_PlotHistogram,\n Rtti_PlotSpectrogram,\n Rtti_PlotSVG,\n Rtti_PlotTradingCurve,\n Rtti_PlotBarChart,\n Rtti_PlotMultiBarChart,\n Rtti_PlotShape,\n Rtti_PlotTextLabel,\n Rtti_PlotZone,\n ) = list(range(17))\n Rtti_PlotUserItem = 1000\n\n # enum ItemAttribute\n Legend = 0x01\n AutoScale = 0x02\n Margins = 0x04\n\n # enum ItemInterest\n ScaleInterest = 0x01\n LegendInterest = 0x02\n\n # enum RenderHint\n RenderAntialiased = 0x1\n\n def __init__(self, title=None, icon=None):\n """title: QwtText"""\n if title is None:\n title = QwtText("")\n if hasattr(title, "capitalize"): # avoids dealing with Py3K compat.\n title = QwtText(title)\n assert isinstance(title, QwtText)\n self.__data = QwtPlotItem_PrivateData()\n self.__data.title = title\n self.__data.icon = icon\n\n
\n[docs]\n def attach(self, plot):\n """\n Attach the item to a plot.\n\n This method will attach a `QwtPlotItem` to the `QwtPlot` argument.\n It will first detach the `QwtPlotItem` from any plot from a previous\n call to attach (if necessary). If a None argument is passed, it will\n detach from any `QwtPlot` it was attached to.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n\n .. seealso::\n\n :py:meth:`detach()`\n """\n if plot is self.__data.plot:\n return\n\n if self.__data.plot:\n self.__data.plot.attachItem(self, False)\n\n self.__data.plot = plot\n\n if self.__data.plot:\n self.__data.plot.attachItem(self, True)
\n\n\n
\n[docs]\n def detach(self):\n """\n Detach the item from a plot.\n\n This method detaches a `QwtPlotItem` from any `QwtPlot` it has been\n associated with.\n\n .. seealso::\n\n :py:meth:`attach()`\n """\n self.attach(None)
\n\n\n
\n[docs]\n def rtti(self):\n """\n Return rtti for the specific class represented. `QwtPlotItem` is\n simply a virtual interface class, and base classes will implement\n this method with specific rtti values so a user can differentiate\n them.\n\n :return: rtti value\n """\n return self.Rtti_PlotItem
\n\n\n
\n[docs]\n def plot(self):\n """\n :return: attached plot\n """\n return self.__data.plot
\n\n\n
\n[docs]\n def z(self):\n """\n Plot items are painted in increasing z-order.\n\n :return: item z order\n\n .. seealso::\n\n :py:meth:`setZ()`, :py:meth:`QwtPlotDict.itemList()`\n """\n return self.__data.z
\n\n\n
\n[docs]\n def setZ(self, z):\n """\n Set the z value\n\n Plot items are painted in increasing z-order.\n\n :param float z: Z-value\n\n .. seealso::\n\n :py:meth:`z()`, :py:meth:`QwtPlotDict.itemList()`\n """\n if self.__data.z != z:\n if self.__data.plot:\n self.__data.plot.attachItem(self, False)\n self.__data.z = z\n if self.__data.plot:\n self.__data.plot.attachItem(self, True)\n self.itemChanged()
\n\n\n
\n[docs]\n def setTitle(self, title):\n """\n Set a new title\n\n :param title: Title\n :type title: qwt.text.QwtText or str\n\n .. seealso::\n\n :py:meth:`title()`\n """\n if not isinstance(title, QwtText):\n title = QwtText(title)\n if self.__data.title != title:\n self.__data.title = title\n self.legendChanged()
\n\n\n
\n[docs]\n def title(self):\n """\n :return: Title of the item\n\n .. seealso::\n\n :py:meth:`setTitle()`\n """\n return self.__data.title
\n\n\n
\n[docs]\n def setIcon(self, icon):\n """\n Set item icon\n\n :param icon: Icon\n :type icon: QIcon\n\n .. seealso::\n\n :py:meth:`icon()`\n """\n self.__data.icon = icon
\n\n\n
\n[docs]\n def icon(self):\n """\n :return: Icon of the item\n\n .. seealso::\n\n :py:meth:`setIcon()`\n """\n return self.__data.icon
\n\n\n
\n[docs]\n def setItemAttribute(self, attribute, on=True):\n """\n Toggle an item attribute\n\n :param int attribute: Attribute type\n :param bool on: True/False\n\n .. seealso::\n\n :py:meth:`testItemAttribute()`\n """\n if bool(self.__data.attributes & attribute) != on:\n if on:\n self.__data.attributes |= attribute\n else:\n self.__data.attributes &= ~attribute\n if attribute == QwtPlotItem.Legend:\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def testItemAttribute(self, attribute):\n """\n Test an item attribute\n\n :param int attribute: Attribute type\n :return: True/False\n\n .. seealso::\n\n :py:meth:`setItemAttribute()`\n """\n return bool(self.__data.attributes & attribute)
\n\n\n
\n[docs]\n def setItemInterest(self, interest, on=True):\n """\n Toggle an item interest\n\n :param int attribute: Interest type\n :param bool on: True/False\n\n .. seealso::\n\n :py:meth:`testItemInterest()`\n """\n if bool(self.__data.interests & interest) != on:\n if on:\n self.__data.interests |= interest\n else:\n self.__data.interests &= ~interest\n self.itemChanged()
\n\n\n
\n[docs]\n def testItemInterest(self, interest):\n """\n Test an item interest\n\n :param int attribute: Interest type\n :return: True/False\n\n .. seealso::\n\n :py:meth:`setItemInterest()`\n """\n return bool(self.__data.interests & interest)
\n\n\n
\n[docs]\n def setRenderHint(self, hint, on=True):\n """\n Toggle a render hint\n\n :param int hint: Render hint\n :param bool on: True/False\n\n .. seealso::\n\n :py:meth:`testRenderHint()`\n """\n if bool(self.__data.renderHints & hint) != on:\n if on:\n self.__data.renderHints |= hint\n else:\n self.__data.renderHints &= ~hint\n self.itemChanged()
\n\n\n
\n[docs]\n def testRenderHint(self, hint):\n """\n Test a render hint\n\n :param int attribute: Render hint\n :return: True/False\n\n .. seealso::\n\n :py:meth:`setRenderHint()`\n """\n return bool(self.__data.renderHints & hint)
\n\n\n
\n[docs]\n def setLegendIconSize(self, size):\n """\n Set the size of the legend icon\n\n The default setting is 8x8 pixels\n\n :param QSize size: Size\n\n .. seealso::\n\n :py:meth:`legendIconSize()`, :py:meth:`legendIcon()`\n """\n if self.__data.legendIconSize != size:\n self.__data.legendIconSize = size\n self.legendChanged()
\n\n\n
\n[docs]\n def legendIconSize(self):\n """\n :return: Legend icon size\n\n .. seealso::\n\n :py:meth:`setLegendIconSize()`, :py:meth:`legendIcon()`\n """\n return self.__data.legendIconSize
\n\n\n
\n[docs]\n def legendIcon(self, index, size):\n """\n :param int index: Index of the legend entry (usually there is only one)\n :param QSizeF size: Icon size\n :return: Icon representing the item on the legend\n\n The default implementation returns an invalid icon\n\n .. seealso::\n\n :py:meth:`setLegendIconSize()`, :py:meth:`legendData()`\n """\n return QwtGraphic()
\n\n\n
\n[docs]\n def show(self):\n """Show the item"""\n self.setVisible(True)
\n\n\n
\n[docs]\n def hide(self):\n """Hide the item"""\n self.setVisible(False)
\n\n\n
\n[docs]\n def setVisible(self, on):\n """\n Show/Hide the item\n\n :param bool on: Show if True, otherwise hide\n\n .. seealso::\n\n :py:meth:`isVisible()`, :py:meth:`show()`, :py:meth:`hide()`\n """\n if on != self.__data.isVisible:\n self.__data.isVisible = on\n self.itemChanged()
\n\n\n
\n[docs]\n def isVisible(self):\n """\n :return: True if visible\n\n .. seealso::\n\n :py:meth:`setVisible()`, :py:meth:`show()`, :py:meth:`hide()`\n """\n return self.__data.isVisible
\n\n\n
\n[docs]\n def itemChanged(self):\n """\n Update the legend and call `QwtPlot.autoRefresh()` for the\n parent plot.\n\n .. seealso::\n\n :py:meth:`QwtPlot.legendChanged()`, :py:meth:`QwtPlot.autoRefresh()`\n """\n if self.__data.plot:\n self.__data.plot.autoRefresh()
\n\n\n
\n[docs]\n def legendChanged(self):\n """\n Update the legend of the parent plot.\n\n .. seealso::\n\n :py:meth:`QwtPlot.updateLegend()`, :py:meth:`itemChanged()`\n """\n if self.testItemAttribute(QwtPlotItem.Legend) and self.__data.plot:\n self.__data.plot.updateLegend(self)
\n\n\n
\n[docs]\n def setAxes(self, xAxis, yAxis):\n """\n Set X and Y axis\n\n The item will painted according to the coordinates of its Axes.\n\n :param int xAxis: X Axis (`QwtPlot.xBottom` or `QwtPlot.xTop`)\n :param int yAxis: Y Axis (`QwtPlot.yLeft` or `QwtPlot.yRight`)\n\n .. seealso::\n\n :py:meth:`setXAxis()`, :py:meth:`setYAxis()`,\n :py:meth:`xAxis()`, :py:meth:`yAxis()`\n """\n if xAxis == QwtPlot.xBottom or xAxis == QwtPlot.xTop:\n self.__data.xAxis = xAxis\n if yAxis == QwtPlot.yLeft or yAxis == QwtPlot.yRight:\n self.__data.yAxis = yAxis\n self.itemChanged()
\n\n\n
\n[docs]\n def setAxis(self, xAxis, yAxis):\n """\n Set X and Y axis\n\n .. warning::\n\n `setAxis` has been removed in Qwt6: please use\n :py:meth:`setAxes()` instead\n """\n import warnings\n\n warnings.warn(\n "`setAxis` has been removed in Qwt6: " "please use `setAxes` instead",\n RuntimeWarning,\n )\n self.setAxes(xAxis, yAxis)
\n\n\n
\n[docs]\n def setXAxis(self, axis):\n """\n Set the X axis\n\n The item will painted according to the coordinates its Axes.\n\n :param int axis: X Axis (`QwtPlot.xBottom` or `QwtPlot.xTop`)\n\n .. seealso::\n\n :py:meth:`setAxes()`, :py:meth:`setYAxis()`,\n :py:meth:`xAxis()`, :py:meth:`yAxis()`\n """\n if axis in (QwtPlot.xBottom, QwtPlot.xTop):\n self.__data.xAxis = axis\n self.itemChanged()
\n\n\n
\n[docs]\n def setYAxis(self, axis):\n """\n Set the Y axis\n\n The item will painted according to the coordinates its Axes.\n\n :param int axis: Y Axis (`QwtPlot.yLeft` or `QwtPlot.yRight`)\n\n .. seealso::\n\n :py:meth:`setAxes()`, :py:meth:`setXAxis()`,\n :py:meth:`xAxis()`, :py:meth:`yAxis()`\n """\n if axis in (QwtPlot.yLeft, QwtPlot.yRight):\n self.__data.yAxis = axis\n self.itemChanged()
\n\n\n
\n[docs]\n def xAxis(self):\n """\n :return: xAxis\n """\n return self.__data.xAxis
\n\n\n
\n[docs]\n def yAxis(self):\n """\n :return: yAxis\n """\n return self.__data.yAxis
\n\n\n
\n[docs]\n def boundingRect(self):\n """\n :return: An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)\n\n .. note::\n\n A width or height < 0.0 is ignored by the autoscaler\n """\n return QRectF(1.0, 1.0, -2.0, -2.0)
\n\n\n
\n[docs]\n def getCanvasMarginHint(self, xMap, yMap, canvasRect):\n """\n Calculate a hint for the canvas margin\n\n When the QwtPlotItem::Margins flag is enabled the plot item\n indicates, that it needs some margins at the borders of the canvas.\n This is f.e. used by bar charts to reserve space for displaying\n the bars.\n\n The margins are in target device coordinates ( pixels on screen )\n\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates\n\n .. seealso::\n\n :py:meth:`QwtPlot.getCanvasMarginsHint()`,\n :py:meth:`QwtPlot.updateCanvasMargins()`,\n """\n left = top = right = bottom = 0.0\n return left, top, right, bottom
\n\n\n
\n[docs]\n def legendData(self):\n """\n Return all information, that is needed to represent\n the item on the legend\n\n `QwtLegendData` is basically a list of QVariants that makes it\n possible to overload and reimplement legendData() to\n return almost any type of information, that is understood\n by the receiver that acts as the legend.\n\n The default implementation returns one entry with\n the title() of the item and the legendIcon().\n\n :return: Data, that is needed to represent the item on the legend\n\n .. seealso::\n\n :py:meth:`title()`, :py:meth:`legendIcon()`,\n :py:class:`qwt.legend.QwtLegend`\n """\n data = QwtLegendData()\n label = self.title()\n label.setRenderFlags(label.renderFlags() & Qt.AlignLeft)\n data.setValue(QwtLegendData.TitleRole, label)\n graphic = self.legendIcon(0, self.legendIconSize())\n if not graphic.isNull():\n data.setValue(QwtLegendData.IconRole, graphic)\n return [data]
\n\n\n
\n[docs]\n def updateLegend(self, item, data):\n """\n Update the item to changes of the legend info\n\n Plot items that want to display a legend ( not those, that want to\n be displayed on a legend ! ) will have to implement updateLegend().\n\n updateLegend() is only called when the LegendInterest interest\n is enabled. The default implementation does nothing.\n\n :param qwt.plot.QwtPlotItem item: Plot item to be displayed on a legend\n :param list data: Attributes how to display item on the legend\n\n .. note::\n\n Plot items, that want to be displayed on a legend\n need to enable the `QwtPlotItem.Legend` flag and to implement\n legendData() and legendIcon()\n """\n pass
\n\n\n
\n[docs]\n def scaleRect(self, xMap, yMap):\n """\n Calculate the bounding scale rectangle of 2 maps\n\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :return: Bounding scale rect of the scale maps, not normalized\n """\n return QRectF(xMap.s1(), yMap.s1(), xMap.sDist(), yMap.sDist())
\n\n\n
\n[docs]\n def paintRect(self, xMap, yMap):\n """\n Calculate the bounding paint rectangle of 2 maps\n\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :return: Bounding paint rectangle of the scale maps, not normalized\n """\n return QRectF(xMap.p1(), yMap.p1(), xMap.pDist(), yMap.pDist())
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6b20180>, 'js_tag': .js_tag at 0x7fc7d6b21ee0>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/plot', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot', 'current_page_name': '_modules/qwt/plot', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f6bba0>, 'hasdoc': .hasdoc at 0x7f3d39f68d60>, 'toctree': . at 0x7f3d39f6a200>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot', 'body': '

Source code for qwt.plot

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlot\n-------\n\n.. autoclass:: QwtPlot\n   :members:\n\nQwtPlotItem\n-----------\n\n.. autoclass:: QwtPlotItem\n   :members:\n"""\n\nimport math\n\nimport numpy as np\nfrom qtpy.QtCore import QEvent, QObject, QRectF, QSize, Qt, Signal\nfrom qtpy.QtGui import QBrush, QColor, QFont, QPainter, QPalette\nfrom qtpy.QtWidgets import QApplication, QFrame, QSizePolicy, QWidget\n\nfrom qwt.graphic import QwtGraphic\nfrom qwt.interval import QwtInterval\nfrom qwt.legend import QwtLegendData\nfrom qwt.plot_canvas import QwtPlotCanvas\nfrom qwt.scale_div import QwtScaleDiv\nfrom qwt.scale_draw import QwtScaleDraw\nfrom qwt.scale_engine import QwtLinearScaleEngine\nfrom qwt.scale_map import QwtScaleMap\nfrom qwt.scale_widget import QwtScaleWidget\nfrom qwt.text import QwtText, QwtTextLabel\n\n\ndef qwtSetTabOrder(first, second, with_children):\n    tab_chain = [first, second]\n    if with_children:\n        children = second.findChildren(QWidget)\n        w = second.nextInFocusChain()\n        while w in children:\n            while w in children:\n                children.remove(w)\n            tab_chain += [w]\n            w = w.nextInFocusChain()\n    for idx in range(len(tab_chain) - 1):\n        w_from = tab_chain[idx]\n        w_to = tab_chain[idx + 1]\n        policy1, policy2 = w_from.focusPolicy(), w_to.focusPolicy()\n        proxy1, proxy2 = w_from.focusProxy(), w_to.focusProxy()\n        for w in (w_from, w_to):\n            w.setFocusPolicy(Qt.TabFocus)\n            w.setFocusProxy(None)\n        QWidget.setTabOrder(w_from, w_to)\n        for w, pl, px in ((w_from, policy1, proxy1), (w_to, policy2, proxy2)):\n            w.setFocusPolicy(pl)\n            w.setFocusProxy(px)\n\n\nclass ItemList(list):\n    def sortItems(self):\n        self.sort(key=lambda item: item.z())\n\n    def insertItem(self, obj):\n        self.append(obj)\n        self.sortItems()\n\n    def removeItem(self, obj):\n        self.remove(obj)\n        self.sortItems()\n\n\nclass QwtPlot_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.itemList = ItemList()\n        self.titleLabel = None\n        self.footerLabel = None\n        self.canvas = None\n        self.legend = None\n        self.layout = None\n        self.autoReplot = None\n        self.flatStyle = None\n\n\nclass AxisData(object):\n    def __init__(self):\n        self.isEnabled = None\n        self.doAutoScale = None\n        self.minValue = None\n        self.maxValue = None\n        self.stepSize = None\n        self.maxMajor = None\n        self.maxMinor = None\n        self.isValid = None\n        self.scaleDiv = None  # QwtScaleDiv\n        self.scaleEngine = None  # QwtScaleEngine\n        self.scaleWidget = None  # QwtScaleWidget\n        self.margin = None  # Margin (float) in %\n\n\n
\n[docs]\nclass QwtPlot(QFrame):\n """\n A 2-D plotting widget\n\n QwtPlot is a widget for plotting two-dimensional graphs.\n An unlimited number of plot items can be displayed on its canvas.\n Plot items might be curves (:py:class:`qwt.plot_curve.QwtPlotCurve`),\n markers (:py:class:`qwt.plot_marker.QwtPlotMarker`),\n the grid (:py:class:`qwt.plot_grid.QwtPlotGrid`), or anything else\n derived from :py:class:`QwtPlotItem`.\n\n A plot can have up to four axes, with each plot item attached to an x- and\n a y axis. The scales at the axes can be explicitly set (`QwtScaleDiv`), or\n are calculated from the plot items, using algorithms (`QwtScaleEngine`)\n which can be configured separately for each axis.\n\n The following example is a good starting point to see how to set up a\n plot widget::\n\n from qtpy import QtWidgets as QW\n import qwt\n import numpy as np\n\n app = QW.QApplication([])\n x = np.linspace(-10, 10, 500)\n plot = qwt.QwtPlot("Trigonometric functions")\n plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend)\n qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True)\n qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True)\n plot.resize(600, 300)\n plot.show()\n\n .. image:: /_static/QwtPlot_example.png\n\n .. py:class:: QwtPlot([title=""], [parent=None])\n\n :param str title: Title text\n :param QWidget parent: Parent widget\n\n .. py:data:: itemAttached\n\n A signal indicating, that an item has been attached/detached\n\n :param plotItem: Plot item\n :param on: Attached/Detached\n\n .. py:data:: legendDataChanged\n\n A signal with the attributes how to update\n the legend entries for a plot item.\n\n :param itemInfo: Info about a plot item, build from itemToInfo()\n :param data: Attributes of the entries (usually <= 1) for the plot item.\n\n """\n\n itemAttached = Signal(object, bool)\n legendDataChanged = Signal(object, object)\n\n # enum Axis\n AXES = yLeft, yRight, xBottom, xTop = list(range(4))\n axisCnt = len(AXES) # Not necessary but ensure compatibility with PyQwt\n\n # enum LegendPosition\n LeftLegend, RightLegend, BottomLegend, TopLegend = list(range(4))\n\n def __init__(self, *args):\n if len(args) == 0:\n title, parent = "", None\n elif len(args) == 1:\n if isinstance(args[0], QWidget) or args[0] is None:\n title = ""\n (parent,) = args\n else:\n (title,) = args\n parent = None\n elif len(args) == 2:\n title, parent = args\n else:\n raise TypeError(\n "%s() takes 0, 1 or 2 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n QFrame.__init__(self, parent)\n\n self.__layout_state = None\n\n self.__data = QwtPlot_PrivateData()\n from qwt.plot_layout import QwtPlotLayout\n\n self.__data.layout = QwtPlotLayout()\n self.__data.autoReplot = False\n\n self.setAutoReplot(False)\n self.setPlotLayout(self.__data.layout)\n\n # title\n self.__data.titleLabel = QwtTextLabel(self)\n self.__data.titleLabel.setObjectName("QwtPlotTitle")\n text = QwtText(title)\n text.setRenderFlags(Qt.AlignCenter | Qt.TextWordWrap)\n self.__data.titleLabel.setText(text)\n\n # footer\n self.__data.footerLabel = QwtTextLabel(self)\n self.__data.footerLabel.setObjectName("QwtPlotFooter")\n footer = QwtText()\n footer.setRenderFlags(Qt.AlignCenter | Qt.TextWordWrap)\n self.__data.footerLabel.setText(footer)\n\n # legend\n self.__data.legend = None\n\n # axis\n self.__axisData = []\n self.initAxesData()\n\n # canvas\n self.__data.canvas = QwtPlotCanvas(self)\n self.__data.canvas.setObjectName("QwtPlotCanvas")\n self.__data.canvas.installEventFilter(self)\n\n # plot style\n self.setFlatStyle(True)\n\n self.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)\n\n focusChain = [\n self,\n self.__data.titleLabel,\n self.axisWidget(self.xTop),\n self.axisWidget(self.yLeft),\n self.__data.canvas,\n self.axisWidget(self.yRight),\n self.axisWidget(self.xBottom),\n self.__data.footerLabel,\n ]\n\n for idx in range(len(focusChain) - 1):\n qwtSetTabOrder(focusChain[idx], focusChain[idx + 1], False)\n\n self.legendDataChanged.connect(self.updateLegendItems)\n\n
\n[docs]\n def insertItem(self, item):\n """\n Insert a plot item\n\n :param qwt.plot.QwtPlotItem item: PlotItem\n\n .. seealso::\n\n :py:meth:`removeItem()`\n\n .. note::\n\n This was a member of QwtPlotDict in older versions.\n """\n self.__data.itemList.insertItem(item)
\n\n\n
\n[docs]\n def removeItem(self, item):\n """\n Remove a plot item\n\n :param qwt.plot.QwtPlotItem item: PlotItem\n\n .. seealso::\n\n :py:meth:`insertItem()`\n\n .. note::\n\n This was a member of QwtPlotDict in older versions.\n """\n self.__data.itemList.removeItem(item)
\n\n\n
\n[docs]\n def detachItems(self, rtti=None):\n """\n Detach items from the dictionary\n\n :param rtti: In case of `QwtPlotItem.Rtti_PlotItem` or None (default) detach all items otherwise only those items of the type rtti.\n :type rtti: int or None\n\n .. note::\n\n This was a member of QwtPlotDict in older versions.\n """\n for item in self.__data.itemList[:]:\n if rtti in (None, QwtPlotItem.Rtti_PlotItem) or item.rtti() == rtti:\n item.attach(None)
\n\n\n
\n[docs]\n def itemList(self, rtti=None):\n """\n A list of attached plot items.\n\n Use caution when iterating these lists, as removing/detaching an\n item will invalidate the iterator. Instead you can place pointers\n to objects to be removed in a removal list, and traverse that list\n later.\n\n :param int rtti: In case of `QwtPlotItem.Rtti_PlotItem` detach all items otherwise only those items of the type rtti.\n :return: List of all attached plot items of a specific type. If rtti is None, return a list of all attached plot items.\n\n .. note::\n\n This was a member of QwtPlotDict in older versions.\n """\n if rtti is None or rtti == QwtPlotItem.Rtti_PlotItem:\n return self.__data.itemList\n return [item for item in self.__data.itemList if item.rtti() == rtti]
\n\n\n
\n[docs]\n def setFlatStyle(self, state):\n """\n Set or reset the flatStyle option\n\n If the flatStyle option is set, the plot will be\n rendered without any margin (scales, canvas, layout).\n\n Enabling this option makes the plot look flat and compact.\n\n The flatStyle option is set to True by default.\n\n :param bool state: True or False.\n\n .. seealso::\n\n :py:meth:`flatStyle()`\n """\n\n def make_font(family=None, size=None, delta_size=None, weight=None):\n finfo = self.fontInfo()\n family = finfo.family() if family is None else family\n weight = -1 if weight is None else weight\n size = size if delta_size is None else finfo.pointSize() + delta_size\n return QFont(family, size, weight)\n\n if state:\n # New PythonQwt-exclusive flat style\n plot_title_font = make_font(size=12)\n axis_title_font = make_font(size=11)\n axis_label_font = make_font(size=10)\n tick_lighter_factors = (150, 125, 100)\n scale_margin = scale_spacing = 0\n canvas_frame_style = QFrame.NoFrame\n plot_layout_canvas_margin = plot_layout_spacing = 0\n ticks_color = Qt.darkGray\n labels_color = "#444444"\n else:\n # Old PyQwt / Qwt style\n plot_title_font = make_font(size=14, weight=QFont.Bold)\n axis_title_font = make_font(size=12, weight=QFont.Bold)\n axis_label_font = make_font(size=10)\n tick_lighter_factors = (100, 100, 100)\n scale_margin = scale_spacing = 2\n canvas_frame_style = QFrame.Panel | QFrame.Sunken\n plot_layout_canvas_margin = 4\n plot_layout_spacing = 5\n ticks_color = labels_color = Qt.black\n self.canvas().setFrameStyle(canvas_frame_style)\n self.plotLayout().setCanvasMargin(plot_layout_canvas_margin)\n self.plotLayout().setSpacing(plot_layout_spacing)\n palette = self.palette()\n palette.setColor(QPalette.WindowText, QColor(ticks_color))\n palette.setColor(QPalette.Text, QColor(labels_color))\n self.setPalette(palette)\n for axis_id in self.AXES:\n scale_widget = self.axisWidget(axis_id)\n scale_draw = self.axisScaleDraw(axis_id)\n scale_widget.setFont(axis_label_font)\n scale_widget.setMargin(scale_margin)\n scale_widget.setSpacing(scale_spacing)\n scale_title = scale_widget.title()\n scale_title.setFont(axis_title_font)\n scale_widget.setTitle(scale_title)\n for tick_type, factor in enumerate(tick_lighter_factors):\n scale_draw.setTickLighterFactor(tick_type, factor)\n plot_title = self.title()\n plot_title.setFont(plot_title_font)\n self.setTitle(plot_title)\n self.__data.flatStyle = state
\n\n\n
\n[docs]\n def flatStyle(self):\n """\n :return: True if the flatStyle option is set.\n\n .. seealso::\n\n :py:meth:`setFlatStyle()`\n """\n return self.__data.flatStyle
\n\n\n
\n[docs]\n def initAxesData(self):\n """Initialize axes"""\n self.__axisData = [AxisData() for axisId in self.AXES]\n\n self.__axisData[self.yLeft].scaleWidget = QwtScaleWidget(\n QwtScaleDraw.LeftScale, self\n )\n self.__axisData[self.yRight].scaleWidget = QwtScaleWidget(\n QwtScaleDraw.RightScale, self\n )\n self.__axisData[self.xTop].scaleWidget = QwtScaleWidget(\n QwtScaleDraw.TopScale, self\n )\n self.__axisData[self.xBottom].scaleWidget = QwtScaleWidget(\n QwtScaleDraw.BottomScale, self\n )\n\n self.__axisData[self.yLeft].scaleWidget.setObjectName("QwtPlotAxisYLeft")\n self.__axisData[self.yRight].scaleWidget.setObjectName("QwtPlotAxisYRight")\n self.__axisData[self.xTop].scaleWidget.setObjectName("QwtPlotAxisXTop")\n self.__axisData[self.xBottom].scaleWidget.setObjectName("QwtPlotAxisXBottom")\n\n for axisId in self.AXES:\n d = self.__axisData[axisId]\n\n d.scaleEngine = QwtLinearScaleEngine()\n\n d.scaleWidget.setTransformation(d.scaleEngine.transformation())\n d.scaleWidget.setMargin(2)\n\n text = d.scaleWidget.title()\n d.scaleWidget.setTitle(text)\n\n d.doAutoScale = True\n d.margin = 0.05\n d.minValue = 0.0\n d.maxValue = 1000.0\n d.stepSize = 0.0\n d.maxMinor = 5\n d.maxMajor = 8\n d.isValid = False\n\n self.__axisData[self.yLeft].isEnabled = True\n self.__axisData[self.yRight].isEnabled = False\n self.__axisData[self.xBottom].isEnabled = True\n self.__axisData[self.xTop].isEnabled = False
\n\n\n def deleteAxesData(self):\n # XXX Is is really necessary in Python? (pure transcription of C++)\n for axisId in self.AXES:\n self.__axisData[axisId].scaleEngine = None\n self.__axisData[axisId] = None\n\n
\n[docs]\n def axisWidget(self, axisId):\n """\n :param int axisId: Axis index\n :return: Scale widget of the specified axis, or None if axisId is invalid.\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].scaleWidget
\n\n\n
\n[docs]\n def setAxisScaleEngine(self, axisId, scaleEngine):\n """\n Change the scale engine for an axis\n\n :param int axisId: Axis index\n :param qwt.scale_engine.QwtScaleEngine scaleEngine: Scale engine\n\n .. seealso::\n\n :py:meth:`axisScaleEngine()`\n """\n if self.axisValid(axisId) and scaleEngine is not None:\n d = self.__axisData[axisId]\n d.scaleEngine = scaleEngine\n self.__axisData[axisId].scaleWidget.setTransformation(\n scaleEngine.transformation()\n )\n d.isValid = False\n self.autoRefresh()
\n\n\n
\n[docs]\n def axisScaleEngine(self, axisId):\n """\n :param int axisId: Axis index\n :return: Scale engine for a specific axis\n\n .. seealso::\n\n :py:meth:`setAxisScaleEngine()`\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].scaleEngine
\n\n\n
\n[docs]\n def axisAutoScale(self, axisId):\n """\n :param int axisId: Axis index\n :return: True, if autoscaling is enabled\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].doAutoScale
\n\n\n
\n[docs]\n def axisEnabled(self, axisId):\n """\n :param int axisId: Axis index\n :return: True, if a specified axis is enabled\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].isEnabled
\n\n\n
\n[docs]\n def axisFont(self, axisId):\n """\n :param int axisId: Axis index\n :return: The font of the scale labels for a specified axis\n """\n if self.axisValid(axisId):\n return self.axisWidget(axisId).font()\n else:\n return QFont()
\n\n\n
\n[docs]\n def axisMaxMajor(self, axisId):\n """\n :param int axisId: Axis index\n :return: The maximum number of major ticks for a specified axis\n\n .. seealso::\n\n :py:meth:`setAxisMaxMajor()`,\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].maxMajor\n else:\n return 0
\n\n\n
\n[docs]\n def axisMaxMinor(self, axisId):\n """\n :param int axisId: Axis index\n :return: The maximum number of minor ticks for a specified axis\n\n .. seealso::\n\n :py:meth:`setAxisMaxMinor()`,\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].maxMinor\n else:\n return 0
\n\n\n
\n[docs]\n def axisScaleDiv(self, axisId):\n """\n :param int axisId: Axis index\n :return: The scale division of a specified axis\n\n axisScaleDiv(axisId).lowerBound(), axisScaleDiv(axisId).upperBound()\n are the current limits of the axis scale.\n\n .. seealso::\n\n :py:class:`qwt.scale_div.QwtScaleDiv`,\n :py:meth:`setAxisScaleDiv()`,\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`\n """\n return self.__axisData[axisId].scaleDiv
\n\n\n
\n[docs]\n def axisScaleDraw(self, axisId):\n """\n :param int axisId: Axis index\n :return: Specified scaleDraw for axis, or NULL if axis is invalid.\n """\n if self.axisValid(axisId):\n return self.axisWidget(axisId).scaleDraw()
\n\n\n
\n[docs]\n def axisStepSize(self, axisId):\n """\n :param int axisId: Axis index\n :return: step size parameter value\n\n This doesn't need to be the step size of the current scale.\n\n .. seealso::\n\n :py:meth:`setAxisScale()`,\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].stepSize\n else:\n return 0
\n\n\n
\n[docs]\n def axisMargin(self, axisId):\n """\n :param int axisId: Axis index\n :return: Margin in % of the canvas size\n\n .. seealso::\n\n :py:meth:`setAxisMargin()`\n """\n if self.axisValid(axisId):\n return self.__axisData[axisId].margin\n return 0.0
\n\n\n
\n[docs]\n def axisInterval(self, axisId):\n """\n :param int axisId: Axis index\n :return: The current interval of the specified axis\n\n This is only a convenience function for axisScaleDiv(axisId).interval()\n\n .. seealso::\n\n :py:class:`qwt.scale_div.QwtScaleDiv`,\n :py:meth:`axisScaleDiv()`\n """\n if self.axisValid(axisId):\n return self.axisScaleDiv(axisId).interval()\n else:\n return QwtInterval()
\n\n\n
\n[docs]\n def axisTitle(self, axisId):\n """\n :param int axisId: Axis index\n :return: Title of a specified axis\n """\n if self.axisValid(axisId):\n return self.axisWidget(axisId).title()\n else:\n return QwtText()
\n\n\n
\n[docs]\n def enableAxis(self, axisId, tf=True):\n """\n Enable or disable a specified axis\n\n When an axis is disabled, this only means that it is not\n visible on the screen. Curves, markers and can be attached\n to disabled axes, and transformation of screen coordinates\n into values works as normal.\n\n Only xBottom and yLeft are enabled by default.\n\n :param int axisId: Axis index\n :param bool tf: True (enabled) or False (disabled)\n """\n if self.axisValid(axisId) and tf != self.__axisData[axisId].isEnabled:\n self.__axisData[axisId].isEnabled = tf\n self.updateLayout()
\n\n\n
\n[docs]\n def invTransform(self, axisId, pos):\n """\n Transform the x or y coordinate of a position in the\n drawing region into a value.\n\n :param int axisId: Axis index\n :param int pos: position\n\n .. warning::\n\n The position can be an x or a y coordinate,\n depending on the specified axis.\n """\n if self.axisValid(axisId):\n return self.canvasMap(axisId).invTransform(pos)\n else:\n return 0.0
\n\n\n
\n[docs]\n def transform(self, axisId, value):\n """\n Transform a value into a coordinate in the plotting region\n\n :param int axisId: Axis index\n :param fload value: Value\n :return: X or Y coordinate in the plotting region corresponding to the value.\n """\n if self.axisValid(axisId):\n return self.canvasMap(axisId).transform(value)\n else:\n return 0.0
\n\n\n
\n[docs]\n def setAxisFont(self, axisId, font):\n """\n Change the font of an axis\n\n :param int axisId: Axis index\n :param QFont font: Font\n\n .. warning::\n\n This function changes the font of the tick labels,\n not of the axis title.\n """\n if self.axisValid(axisId):\n return self.axisWidget(axisId).setFont(font)
\n\n\n
\n[docs]\n def setAxisAutoScale(self, axisId, on=True):\n """\n Enable autoscaling for a specified axis\n\n This member function is used to switch back to autoscaling mode\n after a fixed scale has been set. Autoscaling is enabled by default.\n\n :param int axisId: Axis index\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`setAxisScale()`, :py:meth:`setAxisScaleDiv()`,\n :py:meth:`updateAxes()`\n\n .. note::\n\n The autoscaling flag has no effect until updateAxes() is executed\n ( called by replot() ).\n """\n if self.axisValid(axisId) and self.__axisData[axisId].doAutoScale != on:\n self.__axisData[axisId].doAutoScale = on\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisScale(self, axisId, min_, max_, stepSize=0):\n """\n Disable autoscaling and specify a fixed scale for a selected axis.\n\n In updateAxes() the scale engine calculates a scale division from the\n specified parameters, that will be assigned to the scale widget. So\n updates of the scale widget usually happen delayed with the next replot.\n\n :param int axisId: Axis index\n :param float min_: Minimum of the scale\n :param float max_: Maximum of the scale\n :param float stepSize: Major step size. If <code>step == 0</code>, the step size is calculated automatically using the maxMajor setting.\n\n .. seealso::\n\n :py:meth:`setAxisMaxMajor()`, :py:meth:`setAxisAutoScale()`,\n :py:meth:`axisStepSize()`,\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`\n """\n if self.axisValid(axisId):\n d = self.__axisData[axisId]\n d.doAutoScale = False\n d.isValid = False\n d.minValue = min_\n d.maxValue = max_\n d.stepSize = stepSize\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisScaleDiv(self, axisId, scaleDiv):\n """\n Disable autoscaling and specify a fixed scale for a selected axis.\n\n The scale division will be stored locally only until the next call\n of updateAxes(). So updates of the scale widget usually happen delayed with\n the next replot.\n\n :param int axisId: Axis index\n :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division\n\n .. seealso::\n\n :py:meth:`setAxisScale()`, :py:meth:`setAxisAutoScale()`\n """\n if self.axisValid(axisId):\n d = self.__axisData[axisId]\n d.doAutoScale = False\n d.scaleDiv = scaleDiv\n d.isValid = True\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisScaleDraw(self, axisId, scaleDraw):\n """\n Set a scale draw\n\n :param int axisId: Axis index\n :param qwt.scale_draw.QwtScaleDraw scaleDraw: Object responsible for drawing scales.\n\n By passing scaleDraw it is possible to extend QwtScaleDraw\n functionality and let it take place in QwtPlot. Please note\n that scaleDraw has to be created with new and will be deleted\n by the corresponding QwtScale member ( like a child object ).\n\n .. seealso::\n\n :py:class:`qwt.scale_draw.QwtScaleDraw`,\n :py:class:`qwt.scale_widget.QwtScaleWigdet`\n\n .. warning::\n\n The attributes of scaleDraw will be overwritten by those of the\n previous QwtScaleDraw.\n """\n if self.axisValid(axisId):\n self.axisWidget(axisId).setScaleDraw(scaleDraw)\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisLabelAlignment(self, axisId, alignment):\n """\n Change the alignment of the tick labels\n\n :param int axisId: Axis index\n :param Qt.Alignment alignment: Or'd Qt.AlignmentFlags\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()`\n """\n if self.axisValid(axisId):\n self.axisWidget(axisId).setLabelAlignment(alignment)
\n\n\n
\n[docs]\n def setAxisLabelRotation(self, axisId, rotation):\n """\n Rotate all tick labels\n\n :param int axisId: Axis index\n :param float rotation: Angle in degrees. When changing the label rotation, the label alignment might be adjusted too.\n\n .. seealso::\n\n :py:meth:`setLabelRotation()`, :py:meth:`setAxisLabelAlignment()`\n """\n if self.axisValid(axisId):\n self.axisWidget(axisId).setLabelRotation(rotation)
\n\n\n
\n[docs]\n def setAxisLabelAutoSize(self, axisId, state):\n """\n Set tick labels automatic size option (default: on)\n\n :param int axisId: Axis index\n :param bool state: On/off\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()`\n """\n if self.axisValid(axisId):\n self.axisWidget(axisId).setLabelAutoSize(state)
\n\n\n
\n[docs]\n def setAxisMaxMinor(self, axisId, maxMinor):\n """\n Set the maximum number of minor scale intervals for a specified axis\n\n :param int axisId: Axis index\n :param int maxMinor: Maximum number of minor steps\n\n .. seealso::\n\n :py:meth:`axisMaxMinor()`\n """\n if self.axisValid(axisId):\n maxMinor = max([0, min([maxMinor, 100])])\n d = self.__axisData[axisId]\n if maxMinor != d.maxMinor:\n d.maxMinor = maxMinor\n d.isValid = False\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisMaxMajor(self, axisId, maxMajor):\n """\n Set the maximum number of major scale intervals for a specified axis\n\n :param int axisId: Axis index\n :param int maxMajor: Maximum number of major steps\n\n .. seealso::\n\n :py:meth:`axisMaxMajor()`\n """\n if self.axisValid(axisId):\n maxMajor = max([1, min([maxMajor, 10000])])\n d = self.__axisData[axisId]\n if maxMajor != d.maxMajor:\n d.maxMajor = maxMajor\n d.isValid = False\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisMargin(self, axisId, margin):\n """\n Set the margin of the scale widget\n\n :param int axisId: Axis index\n :param float margin: Margin in % of the canvas size\n\n .. seealso::\n\n :py:meth:`axisMargin()`\n """\n if self.axisValid(axisId):\n d = self.__axisData[axisId]\n if margin != d.margin:\n d.margin = margin\n d.isValid = False\n self.autoRefresh()
\n\n\n
\n[docs]\n def setAxisTitle(self, axisId, title):\n """\n Change the title of a specified axis\n\n :param int axisId: Axis index\n :param title: axis title\n :type title: qwt.text.QwtText or str\n """\n if self.axisValid(axisId):\n self.axisWidget(axisId).setTitle(title)\n self.updateLayout()
\n\n\n
\n[docs]\n def updateAxes(self):\n """\n Rebuild the axes scales\n\n In case of autoscaling the boundaries of a scale are calculated\n from the bounding rectangles of all plot items, having the\n `QwtPlotItem.AutoScale` flag enabled (`QwtScaleEngine.autoScale()`).\n Then a scale division is calculated (`QwtScaleEngine.didvideScale()`)\n and assigned to scale widget.\n\n When the scale boundaries have been assigned with `setAxisScale()` a\n scale division is calculated (`QwtScaleEngine.didvideScale()`)\n for this interval and assigned to the scale widget.\n\n When the scale has been set explicitly by `setAxisScaleDiv()` the\n locally stored scale division gets assigned to the scale widget.\n\n The scale widget indicates modifications by emitting a\n `QwtScaleWidget.scaleDivChanged()` signal.\n\n `updateAxes()` is usually called by `replot()`.\n\n .. seealso::\n\n :py:meth:`setAxisAutoScale()`, :py:meth:`setAxisScale()`,\n :py:meth:`setAxisScaleDiv()`, :py:meth:`replot()`,\n :py:meth:`QwtPlotItem.boundingRect()`\n """\n intv = [QwtInterval() for _i in self.AXES]\n itmList = self.itemList()\n for item in itmList:\n if not item.testItemAttribute(QwtPlotItem.AutoScale):\n continue\n if not item.isVisible():\n continue\n if self.axisAutoScale(item.xAxis()) or self.axisAutoScale(item.yAxis()):\n rect = item.boundingRect()\n if rect.width() >= 0.0:\n intv[item.xAxis()] |= QwtInterval(rect.left(), rect.right())\n if rect.height() >= 0.0:\n intv[item.yAxis()] |= QwtInterval(rect.top(), rect.bottom())\n\n for axisId in self.AXES:\n d = self.__axisData[axisId]\n minValue = d.minValue\n maxValue = d.maxValue\n stepSize = d.stepSize\n if d.margin is not None:\n intv_i = intv[axisId].extend_fraction(d.margin)\n else:\n intv_i = intv[axisId]\n if d.doAutoScale and intv_i.isValid():\n d.isValid = False\n minValue = intv_i.minValue()\n maxValue = intv_i.maxValue()\n d.scaleEngine.autoScale(d.maxMajor, minValue, maxValue, stepSize)\n if not d.isValid:\n d.scaleDiv = d.scaleEngine.divideScale(\n minValue, maxValue, d.maxMajor, d.maxMinor, stepSize\n )\n d.isValid = True\n scaleWidget = self.axisWidget(axisId)\n scaleWidget.setScaleDiv(d.scaleDiv)\n\n # It is *really* necessary to update border dist!\n # Otherwise, when tick labels are large enough, the ticks\n # may not be aligned with canvas grid.\n # See the following issues for more details:\n # https://github.com/PlotPyStack/guiqwt/issues/57\n # https://github.com/PlotPyStack/PythonQwt/issues/30\n startDist, endDist = scaleWidget.getBorderDistHint()\n scaleWidget.setBorderDist(startDist, endDist)\n\n for item in itmList:\n if item.testItemInterest(QwtPlotItem.ScaleInterest):\n item.updateScaleDiv(\n self.axisScaleDiv(item.xAxis()), self.axisScaleDiv(item.yAxis())\n )
\n\n\n
\n[docs]\n def setCanvas(self, canvas):\n """\n Set the drawing canvas of the plot widget.\n\n The default canvas is a `QwtPlotCanvas`.\n\n :param QWidget canvas: Canvas Widget\n\n .. seealso::\n\n :py:meth:`canvas()`\n """\n if canvas == self.__data.canvas:\n return\n self.__data.canvas = canvas\n if canvas is not None:\n canvas.setParent(self)\n canvas.installEventFilter(self)\n if self.isVisible():\n canvas.show()
\n\n\n
\n[docs]\n def event(self, event):\n if event.type() == QEvent.LayoutRequest:\n self.updateLayout()\n elif event.type() == QEvent.PolishRequest:\n self.replot()\n return QFrame.event(self, event)
\n\n\n
\n[docs]\n def eventFilter(self, obj, event):\n if obj is self.__data.canvas:\n if event.type() == QEvent.Resize:\n self.updateCanvasMargins()\n elif event.type() == 178: # QEvent.ContentsRectChange:\n self.updateLayout()\n return QFrame.eventFilter(self, obj, event)
\n\n\n
\n[docs]\n def autoRefresh(self):\n """Replots the plot if :py:meth:`autoReplot()` is True."""\n if self.__data.autoReplot:\n self.replot()
\n\n\n
\n[docs]\n def setAutoReplot(self, tf=True):\n """\n Set or reset the autoReplot option\n\n If the autoReplot option is set, the plot will be\n updated implicitly by manipulating member functions.\n Since this may be time-consuming, it is recommended\n to leave this option switched off and call :py:meth:`replot()`\n explicitly if necessary.\n\n The autoReplot option is set to false by default, which\n means that the user has to call :py:meth:`replot()` in order\n to make changes visible.\n\n :param bool tf: True or False. Defaults to True.\n\n .. seealso::\n\n :py:meth:`autoReplot()`\n """\n self.__data.autoReplot = tf
\n\n\n
\n[docs]\n def autoReplot(self):\n """\n :return: True if the autoReplot option is set.\n\n .. seealso::\n\n :py:meth:`setAutoReplot()`\n """\n return self.__data.autoReplot
\n\n\n
\n[docs]\n def setTitle(self, title):\n """\n Change the plot's title\n\n :param title: New title\n :type title: str or qwt.text.QwtText\n\n .. seealso::\n\n :py:meth:`title()`\n """\n current_title = self.__data.titleLabel.text()\n if isinstance(title, QwtText) and current_title == title:\n return\n elif not isinstance(title, QwtText) and current_title.text() == title:\n return\n self.__data.titleLabel.setText(title)\n self.updateLayout()
\n\n\n
\n[docs]\n def title(self):\n """\n :return: Title of the plot\n\n .. seealso::\n\n :py:meth:`setTitle()`\n """\n return self.__data.titleLabel.text()
\n\n\n
\n[docs]\n def titleLabel(self):\n """\n :return: Title label widget.\n """\n return self.__data.titleLabel
\n\n\n
\n[docs]\n def setFooter(self, text):\n """\n Change the text the footer\n\n :param text: New text of the footer\n :type text: str or qwt.text.QwtText\n\n .. seealso::\n\n :py:meth:`footer()`\n """\n current_footer = self.__data.footerLabel.text()\n if isinstance(text, QwtText) and current_footer == text:\n return\n elif not isinstance(text, QwtText) and current_footer.text() == text:\n return\n self.__data.footerLabel.setText(text)\n self.updateLayout()
\n\n\n
\n[docs]\n def footer(self):\n """\n :return: Text of the footer\n\n .. seealso::\n\n :py:meth:`setFooter()`\n """\n return self.__data.footerLabel.text()
\n\n\n
\n[docs]\n def footerLabel(self):\n """\n :return: Footer label widget.\n """\n return self.__data.footerLabel
\n\n\n
\n[docs]\n def setPlotLayout(self, layout):\n """\n Assign a new plot layout\n\n :param layout: Layout\n :type layout: qwt.plot_layout.QwtPlotLayout\n\n .. seealso::\n\n :py:meth:`plotLayout()`\n """\n if layout != self.__data.layout:\n self.__data.layout = layout\n self.updateLayout()
\n\n\n
\n[docs]\n def plotLayout(self):\n """\n :return: the plot's layout\n\n .. seealso::\n\n :py:meth:`setPlotLayout()`\n """\n return self.__data.layout
\n\n\n
\n[docs]\n def legend(self):\n """\n :return: the plot's legend\n\n .. seealso::\n\n :py:meth:`insertLegend()`\n """\n return self.__data.legend
\n\n\n
\n[docs]\n def canvas(self):\n """\n :return: the plot's canvas\n """\n return self.__data.canvas
\n\n\n
\n[docs]\n def sizeHint(self):\n """\n :return: Size hint for the plot widget\n\n .. seealso::\n\n :py:meth:`minimumSizeHint()`\n """\n dw = dh = 0\n for axisId in self.AXES:\n if self.axisEnabled(axisId):\n niceDist = 40\n scaleWidget = self.axisWidget(axisId)\n scaleDiv = scaleWidget.scaleDraw().scaleDiv()\n majCnt = len(scaleDiv.ticks(QwtScaleDiv.MajorTick))\n if axisId in (self.yLeft, self.yRight):\n hDiff = (\n majCnt - 1\n ) * niceDist - scaleWidget.minimumSizeHint().height()\n if hDiff > dh:\n dh = hDiff\n else:\n wDiff = (\n majCnt - 1\n ) * niceDist - scaleWidget.minimumSizeHint().width()\n if wDiff > dw:\n dw = wDiff\n return self.minimumSizeHint() + QSize(dw, dh)
\n\n\n
\n[docs]\n def minimumSizeHint(self):\n """\n :return: Return a minimum size hint\n """\n hint = self.__data.layout.minimumSizeHint(self)\n hint += QSize(2 * self.frameWidth(), 2 * self.frameWidth())\n return hint
\n\n\n
\n[docs]\n def resizeEvent(self, e):\n QFrame.resizeEvent(self, e)\n self.updateLayout()
\n\n\n
\n[docs]\n def replot(self):\n """\n Redraw the plot\n\n If the `autoReplot` option is not set (which is the default)\n or if any curves are attached to raw data, the plot has to\n be refreshed explicitly in order to make changes visible.\n\n .. seealso::\n\n :py:meth:`updateAxes()`, :py:meth:`setAutoReplot()`\n """\n doAutoReplot = self.autoReplot()\n self.setAutoReplot(False)\n self.updateAxes()\n\n # Maybe the layout needs to be updated, because of changed\n # axes labels. We need to process them here before painting\n # to avoid that scales and canvas get out of sync.\n QApplication.sendPostedEvents(self, QEvent.LayoutRequest)\n\n if self.__data.canvas:\n try:\n self.__data.canvas.replot()\n except (AttributeError, TypeError):\n self.__data.canvas.update(self.__data.canvas.contentsRect())\n\n self.setAutoReplot(doAutoReplot)
\n\n\n def get_layout_state(self):\n return (\n self.contentsRect(),\n self.__data.titleLabel.text(),\n self.__data.footerLabel.text(),\n [\n (self.axisEnabled(axisId), self.axisTitle(axisId).text())\n for axisId in self.AXES\n ],\n self.__data.legend,\n )\n\n
\n[docs]\n def updateLayout(self):\n """\n Adjust plot content to its current size.\n\n .. seealso::\n\n :py:meth:`resizeEvent()`\n """\n # state = self.get_layout_state()\n # if self.__layout_state is not None and\\\n # state == self.__layout_state:\n # return\n # self.__layout_state = state\n\n self.__data.layout.activate(self, self.contentsRect())\n\n titleRect = self.__data.layout.titleRect().toRect()\n footerRect = self.__data.layout.footerRect().toRect()\n scaleRect = [\n self.__data.layout.scaleRect(axisId).toRect() for axisId in self.AXES\n ]\n legendRect = self.__data.layout.legendRect().toRect()\n canvasRect = self.__data.layout.canvasRect().toRect()\n\n if self.__data.titleLabel.text():\n self.__data.titleLabel.setGeometry(titleRect)\n if not self.__data.titleLabel.isVisibleTo(self):\n self.__data.titleLabel.show()\n else:\n self.__data.titleLabel.hide()\n\n if self.__data.footerLabel.text():\n self.__data.footerLabel.setGeometry(footerRect)\n if not self.__data.footerLabel.isVisibleTo(self):\n self.__data.footerLabel.show()\n else:\n self.__data.footerLabel.hide()\n\n for axisId in self.AXES:\n scaleWidget = self.axisWidget(axisId)\n if self.axisEnabled(axisId):\n if scaleRect[axisId] != scaleWidget.geometry():\n scaleWidget.setGeometry(scaleRect[axisId])\n startDist, endDist = scaleWidget.getBorderDistHint()\n scaleWidget.setBorderDist(startDist, endDist)\n\n # -------------------------------------------------------------\n # XXX: The following was commented to fix issue #35\n # Note: the same code part in Qwt's original source code is\n # annotated with the mention "do we need this code any\n # longer ???"... I guess not :)\n # if axisId in (self.xBottom, self.xTop):\n # r = QRegion(scaleRect[axisId])\n # if self.axisEnabled(self.yLeft):\n # r = r.subtracted(QRegion(scaleRect[self.yLeft]))\n # if self.axisEnabled(self.yRight):\n # r = r.subtracted(QRegion(scaleRect[self.yRight]))\n # r.translate(-scaleRect[axisId].x(), -scaleRect[axisId].y())\n # scaleWidget.setMask(r)\n # -------------------------------------------------------------\n\n if not scaleWidget.isVisibleTo(self):\n scaleWidget.show()\n else:\n scaleWidget.hide()\n\n if self.__data.legend:\n if self.__data.legend.isEmpty():\n self.__data.legend.hide()\n else:\n self.__data.legend.setGeometry(legendRect)\n self.__data.legend.show()\n\n self.__data.canvas.setGeometry(canvasRect)
\n\n\n
\n[docs]\n def getCanvasMarginsHint(self, maps, canvasRect):\n """\n Calculate the canvas margins\n\n :param list maps: `QwtPlot.axisCnt` maps, mapping between plot and paint device coordinates\n :param QRectF canvasRect: Bounding rectangle where to paint\n\n Plot items might indicate, that they need some extra space\n at the borders of the canvas by the `QwtPlotItem.Margins` flag.\n\n .. seealso::\n\n :py:meth:`updateCanvasMargins()`, :py:meth:`getCanvasMarginHint()`\n """\n left = top = right = bottom = -1.0\n\n for item in self.itemList():\n if item.testItemAttribute(QwtPlotItem.Margins):\n m = item.getCanvasMarginHint(\n maps[item.xAxis()], maps[item.yAxis()], canvasRect\n )\n left = max([left, m[self.yLeft]])\n top = max([top, m[self.xTop]])\n right = max([right, m[self.yRight]])\n bottom = max([bottom, m[self.xBottom]])\n\n return left, top, right, bottom
\n\n\n
\n[docs]\n def updateCanvasMargins(self):\n """\n Update the canvas margins\n\n Plot items might indicate, that they need some extra space\n at the borders of the canvas by the `QwtPlotItem.Margins` flag.\n\n .. seealso::\n\n :py:meth:`getCanvasMarginsHint()`,\n :py:meth:`QwtPlotItem.getCanvasMarginHint()`\n """\n maps = [self.canvasMap(axisId) for axisId in self.AXES]\n margins = self.getCanvasMarginsHint(maps, self.canvas().contentsRect())\n\n doUpdate = False\n\n for axisId in self.AXES:\n if margins[axisId] >= 0.0:\n m = math.ceil(margins[axisId])\n self.plotLayout().setCanvasMargin(m, axisId)\n doUpdate = True\n\n if doUpdate:\n self.updateLayout()
\n\n\n
\n[docs]\n def drawCanvas(self, painter):\n """\n Redraw the canvas.\n\n :param QPainter painter: Painter used for drawing\n\n .. warning::\n\n drawCanvas calls drawItems what is also used\n for printing. Applications that like to add individual\n plot items better overload drawItems()\n\n .. seealso::\n\n :py:meth:`getCanvasMarginsHint()`,\n :py:meth:`QwtPlotItem.getCanvasMarginHint()`\n """\n maps = [self.canvasMap(axisId) for axisId in self.AXES]\n self.drawItems(painter, self.__data.canvas.contentsRect(), maps)
\n\n\n
\n[docs]\n def drawItems(self, painter, canvasRect, maps):\n """\n Redraw the canvas.\n\n :param QPainter painter: Painter used for drawing\n :param QRectF canvasRect: Bounding rectangle where to paint\n :param list maps: `QwtPlot.axisCnt` maps, mapping between plot and paint device coordinates\n\n .. note::\n\n Usually canvasRect is `contentsRect()` of the plot canvas.\n Due to a bug in Qt this rectangle might be wrong for certain\n frame styles ( f.e `QFrame.Box` ) and it might be necessary to\n fix the margins manually using `QWidget.setContentsMargins()`\n """\n for item in self.itemList():\n if item and item.isVisible():\n painter.save()\n painter.setRenderHint(\n QPainter.Antialiasing,\n item.testRenderHint(QwtPlotItem.RenderAntialiased),\n )\n item.draw(painter, maps[item.xAxis()], maps[item.yAxis()], canvasRect)\n painter.restore()
\n\n\n
\n[docs]\n def canvasMap(self, axisId):\n """\n :param int axisId: Axis\n :return: Map for the axis on the canvas. With this map pixel coordinates can translated to plot coordinates and vice versa.\n\n .. seealso::\n\n :py:class:`qwt.scale_map.QwtScaleMap`,\n :py:meth:`transform()`, :py:meth:`invTransform()`\n """\n map_ = QwtScaleMap()\n if not self.__data.canvas:\n return map_\n\n map_.setTransformation(self.axisScaleEngine(axisId).transformation())\n sd = self.axisScaleDiv(axisId)\n if sd is None:\n return map_\n map_.setScaleInterval(sd.lowerBound(), sd.upperBound())\n\n if self.axisEnabled(axisId):\n s = self.axisWidget(axisId)\n if axisId in (self.yLeft, self.yRight):\n y = s.y() + s.startBorderDist() - self.__data.canvas.y()\n h = s.height() - s.startBorderDist() - s.endBorderDist()\n map_.setPaintInterval(y + h, y)\n else:\n x = s.x() + s.startBorderDist() - self.__data.canvas.x()\n w = s.width() - s.startBorderDist() - s.endBorderDist()\n map_.setPaintInterval(x, x + w)\n else:\n canvasRect = self.__data.canvas.contentsRect()\n if axisId in (self.yLeft, self.yRight):\n top = 0\n if not self.plotLayout().alignCanvasToScale(self.xTop):\n top = self.plotLayout().canvasMargin(self.xTop)\n bottom = 0\n if not self.plotLayout().alignCanvasToScale(self.xBottom):\n bottom = self.plotLayout().canvasMargin(self.xBottom)\n map_.setPaintInterval(\n canvasRect.bottom() - bottom, canvasRect.top() + top\n )\n else:\n left = 0\n if not self.plotLayout().alignCanvasToScale(self.yLeft):\n left = self.plotLayout().canvasMargin(self.yLeft)\n right = 0\n if not self.plotLayout().alignCanvasToScale(self.yRight):\n right = self.plotLayout().canvasMargin(self.yRight)\n map_.setPaintInterval(\n canvasRect.left() + left, canvasRect.right() - right\n )\n return map_
\n\n\n
\n[docs]\n def setCanvasBackground(self, brush):\n """\n Change the background of the plotting area\n\n Sets brush to `QPalette.Window` of all color groups of\n the palette of the canvas. Using `canvas().setPalette()`\n is a more powerful way to set these colors.\n\n :param QBrush brush: New background brush\n\n .. seealso::\n\n :py:meth:`canvasBackground()`\n """\n pal = self.__data.canvas.palette()\n pal.setBrush(QPalette.Window, QBrush(brush))\n self.canvas().setPalette(pal)
\n\n\n
\n[docs]\n def canvasBackground(self):\n """\n :return: Background brush of the plotting area.\n\n .. seealso::\n\n :py:meth:`setCanvasBackground()`\n """\n return self.canvas().palette().brush(QPalette.Active, QPalette.Window)
\n\n\n
\n[docs]\n def axisValid(self, axis_id):\n """\n :param int axis_id: Axis\n :return: True if the specified axis exists, otherwise False\n """\n return axis_id in QwtPlot.AXES
\n\n\n
\n[docs]\n def insertLegend(self, legend, pos=None, ratio=-1):\n """\n Insert a legend\n\n If the position legend is `QwtPlot.LeftLegend` or `QwtPlot.RightLegend`\n the legend will be organized in one column from top to down.\n Otherwise the legend items will be placed in a table\n with a best fit number of columns from left to right.\n\n insertLegend() will set the plot widget as parent for the legend.\n The legend will be deleted in the destructor of the plot or when\n another legend is inserted.\n\n Legends, that are not inserted into the layout of the plot widget\n need to connect to the legendDataChanged() signal. Calling updateLegend()\n initiates this signal for an initial update. When the application code\n wants to implement its own layout this also needs to be done for\n rendering plots to a document ( see QwtPlotRenderer ).\n\n :param qwt.legend.QwtAbstractLegend legend: Legend\n :param QwtPlot.LegendPosition pos: The legend's position.\n :param float ratio: Ratio between legend and the bounding rectangle of title, canvas and axes\n\n .. note::\n\n For top/left position the number of columns will be limited to 1,\n otherwise it will be set to unlimited.\n\n .. note::\n\n The legend will be shrunk if it would need more space than the\n given ratio. The ratio is limited to ]0.0 .. 1.0].\n In case of <= 0.0 it will be reset to the default ratio.\n The default vertical/horizontal ratio is 0.33/0.5.\n\n .. seealso::\n\n :py:meth:`legend()`,\n :py:meth:`qwt.plot_layout.QwtPlotLayout.legendPosition()`,\n :py:meth:`qwt.plot_layout.QwtPlotLayout.setLegendPosition()`\n """\n if pos is None:\n pos = self.RightLegend\n self.__data.layout.setLegendPosition(pos, ratio)\n if legend != self.__data.legend:\n if self.__data.legend and self.__data.legend.parent() is self:\n del self.__data.legend\n self.__data.legend = legend\n if self.__data.legend:\n self.legendDataChanged.connect(self.__data.legend.updateLegend)\n if self.__data.legend.parent() is not self:\n self.__data.legend.setParent(self)\n\n self.blockSignals(True)\n self.updateLegend()\n self.blockSignals(False)\n\n lpos = self.__data.layout.legendPosition()\n\n if legend is not None:\n if lpos in (self.LeftLegend, self.RightLegend):\n if legend.maxColumns() == 0:\n legend.setMaxColumns(1)\n elif lpos in (self.TopLegend, self.BottomLegend):\n legend.setMaxColumns(0)\n\n previousInChain = None\n if lpos == self.LeftLegend:\n previousInChain = self.axisWidget(QwtPlot.xTop)\n elif lpos == self.TopLegend:\n previousInChain = self\n elif lpos == self.RightLegend:\n previousInChain = self.axisWidget(QwtPlot.yRight)\n elif lpos == self.BottomLegend:\n previousInChain = self.footerLabel()\n\n if previousInChain is not None:\n qwtSetTabOrder(previousInChain, legend, True)\n\n self.updateLayout()
\n\n\n
\n[docs]\n def updateLegend(self, plotItem=None):\n """\n If plotItem is None, emit QwtPlot.legendDataChanged for all\n plot item. Otherwise, emit the signal for passed plot item.\n\n :param qwt.plot.QwtPlotItem plotItem: Plot item\n\n .. seealso::\n\n :py:meth:`QwtPlotItem.legendData()`, :py:data:`QwtPlot.legendDataChanged`\n """\n if plotItem is None:\n items = list(self.itemList())\n else:\n items = [plotItem]\n for plotItem in items:\n if plotItem is None:\n continue\n legendData = []\n if plotItem.testItemAttribute(QwtPlotItem.Legend):\n legendData = plotItem.legendData()\n self.legendDataChanged.emit(plotItem, legendData)
\n\n\n
\n[docs]\n def updateLegendItems(self, plotItem, legendData):\n """\n Update all plot items interested in legend attributes\n\n Call `QwtPlotItem.updateLegend()`, when the\n `QwtPlotItem.LegendInterest` flag is set.\n\n :param qwt.plot.QwtPlotItem plotItem: Plot item\n :param list legendData: Entries to be displayed for the plot item ( usually 1 )\n\n .. seealso::\n\n :py:meth:`QwtPlotItem.LegendInterest()`,\n :py:meth:`QwtPlotItem.updateLegend`\n """\n if plotItem is not None:\n for item in self.itemList():\n if item.testItemInterest(QwtPlotItem.LegendInterest):\n item.updateLegend(plotItem, legendData)
\n\n\n
\n[docs]\n def attachItem(self, plotItem, on):\n """\n Attach/Detach a plot item\n\n :param qwt.plot.QwtPlotItem plotItem: Plot item\n :param bool on: When true attach the item, otherwise detach it\n """\n if plotItem.testItemInterest(QwtPlotItem.LegendInterest):\n for item in self.itemList():\n legendData = []\n if on and item.testItemAttribute(QwtPlotItem.Legend):\n legendData = item.legendData()\n plotItem.updateLegend(item, legendData)\n\n if on:\n self.insertItem(plotItem)\n else:\n self.removeItem(plotItem)\n\n self.itemAttached.emit(plotItem, on)\n\n if plotItem.testItemAttribute(QwtPlotItem.Legend):\n if on:\n self.updateLegend(plotItem)\n else:\n self.legendDataChanged.emit(plotItem, [])\n\n self.autoRefresh()
\n\n\n
\n[docs]\n def print_(self, printer):\n """\n Print plot to printer\n\n :param printer: Printer\n :type printer: QPaintDevice or QPrinter or QSvgGenerator\n """\n from qwt.plot_renderer import QwtPlotRenderer\n\n renderer = QwtPlotRenderer(self)\n renderer.renderTo(self, printer)
\n\n\n
\n[docs]\n def exportTo(\n self, filename, size=(800, 600), size_mm=None, resolution=85, format_=None\n ):\n """\n Export plot to PDF or image file (SVG, PNG, ...)\n\n :param str filename: Filename\n :param tuple size: (width, height) size in pixels\n :param tuple size_mm: (width, height) size in millimeters\n :param int resolution: Resolution in dots per Inch (dpi)\n :param str format_: File format (PDF, SVG, PNG, ...)\n """\n if size_mm is None:\n size_mm = tuple(25.4 * np.array(size) / resolution)\n from qwt.plot_renderer import QwtPlotRenderer\n\n renderer = QwtPlotRenderer(self)\n renderer.renderDocument(self, filename, size_mm, resolution, format_)
\n
\n\n\n\nclass QwtPlotItem_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.plot = None\n self.isVisible = True\n self.attributes = 0\n self.interests = 0\n self.renderHints = 0\n self.z = 0.0\n self.xAxis = QwtPlot.xBottom\n self.yAxis = QwtPlot.yLeft\n self.legendIconSize = QSize(8, 8)\n self.title = None # QwtText\n self.icon = None\n\n\n
\n[docs]\nclass QwtPlotItem(object):\n """\n Base class for items on the plot canvas\n\n A plot item is "something", that can be painted on the plot canvas,\n or only affects the scales of the plot widget. They can be categorized as:\n\n - Representator\n\n A "Representator" is an item that represents some sort of data\n on the plot canvas. The different representator classes are organized\n according to the characteristics of the data:\n\n - :py:class:`qwt.plot_marker.QwtPlotMarker`: Represents a point or a\n horizontal/vertical coordinate\n - :py:class:`qwt.plot_curve.QwtPlotCurve`: Represents a series of\n points\n\n - Decorators\n\n A "Decorator" is an item, that displays additional information, that\n is not related to any data:\n\n - :py:class:`qwt.plot_grid.QwtPlotGrid`\n\n Depending on the `QwtPlotItem.ItemAttribute` flags, an item is included\n into autoscaling or has an entry on the legend.\n\n Before misusing the existing item classes it might be better to\n implement a new type of plot item\n ( don't implement a watermark as spectrogram ).\n Deriving a new type of `QwtPlotItem` primarily means to implement\n the `YourPlotItem.draw()` method.\n\n .. seealso::\n\n The cpuplot example shows the implementation of additional plot items.\n\n .. py:class:: QwtPlotItem([title=None])\n\n Constructor\n\n :param title: Title of the item\n :type title: qwt.text.QwtText or str\n """\n\n # enum RttiValues\n (\n Rtti_PlotItem,\n Rtti_PlotGrid,\n Rtti_PlotScale,\n Rtti_PlotLegend,\n Rtti_PlotMarker,\n Rtti_PlotCurve,\n Rtti_PlotSpectroCurve,\n Rtti_PlotIntervalCurve,\n Rtti_PlotHistogram,\n Rtti_PlotSpectrogram,\n Rtti_PlotSVG,\n Rtti_PlotTradingCurve,\n Rtti_PlotBarChart,\n Rtti_PlotMultiBarChart,\n Rtti_PlotShape,\n Rtti_PlotTextLabel,\n Rtti_PlotZone,\n ) = list(range(17))\n Rtti_PlotUserItem = 1000\n\n # enum ItemAttribute\n Legend = 0x01\n AutoScale = 0x02\n Margins = 0x04\n\n # enum ItemInterest\n ScaleInterest = 0x01\n LegendInterest = 0x02\n\n # enum RenderHint\n RenderAntialiased = 0x1\n\n def __init__(self, title=None, icon=None):\n """title: QwtText"""\n if title is None:\n title = QwtText("")\n if hasattr(title, "capitalize"): # avoids dealing with Py3K compat.\n title = QwtText(title)\n assert isinstance(title, QwtText)\n self.__data = QwtPlotItem_PrivateData()\n self.__data.title = title\n self.__data.icon = icon\n\n
\n[docs]\n def attach(self, plot):\n """\n Attach the item to a plot.\n\n This method will attach a `QwtPlotItem` to the `QwtPlot` argument.\n It will first detach the `QwtPlotItem` from any plot from a previous\n call to attach (if necessary). If a None argument is passed, it will\n detach from any `QwtPlot` it was attached to.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n\n .. seealso::\n\n :py:meth:`detach()`\n """\n if plot is self.__data.plot:\n return\n\n if self.__data.plot:\n self.__data.plot.attachItem(self, False)\n\n self.__data.plot = plot\n\n if self.__data.plot:\n self.__data.plot.attachItem(self, True)
\n\n\n
\n[docs]\n def detach(self):\n """\n Detach the item from a plot.\n\n This method detaches a `QwtPlotItem` from any `QwtPlot` it has been\n associated with.\n\n .. seealso::\n\n :py:meth:`attach()`\n """\n self.attach(None)
\n\n\n
\n[docs]\n def rtti(self):\n """\n Return rtti for the specific class represented. `QwtPlotItem` is\n simply a virtual interface class, and base classes will implement\n this method with specific rtti values so a user can differentiate\n them.\n\n :return: rtti value\n """\n return self.Rtti_PlotItem
\n\n\n
\n[docs]\n def plot(self):\n """\n :return: attached plot\n """\n return self.__data.plot
\n\n\n
\n[docs]\n def z(self):\n """\n Plot items are painted in increasing z-order.\n\n :return: item z order\n\n .. seealso::\n\n :py:meth:`setZ()`, :py:meth:`QwtPlotDict.itemList()`\n """\n return self.__data.z
\n\n\n
\n[docs]\n def setZ(self, z):\n """\n Set the z value\n\n Plot items are painted in increasing z-order.\n\n :param float z: Z-value\n\n .. seealso::\n\n :py:meth:`z()`, :py:meth:`QwtPlotDict.itemList()`\n """\n if self.__data.z != z:\n if self.__data.plot:\n self.__data.plot.attachItem(self, False)\n self.__data.z = z\n if self.__data.plot:\n self.__data.plot.attachItem(self, True)\n self.itemChanged()
\n\n\n
\n[docs]\n def setTitle(self, title):\n """\n Set a new title\n\n :param title: Title\n :type title: qwt.text.QwtText or str\n\n .. seealso::\n\n :py:meth:`title()`\n """\n if not isinstance(title, QwtText):\n title = QwtText(title)\n if self.__data.title != title:\n self.__data.title = title\n self.legendChanged()
\n\n\n
\n[docs]\n def title(self):\n """\n :return: Title of the item\n\n .. seealso::\n\n :py:meth:`setTitle()`\n """\n return self.__data.title
\n\n\n
\n[docs]\n def setIcon(self, icon):\n """\n Set item icon\n\n :param icon: Icon\n :type icon: QIcon\n\n .. seealso::\n\n :py:meth:`icon()`\n """\n self.__data.icon = icon
\n\n\n
\n[docs]\n def icon(self):\n """\n :return: Icon of the item\n\n .. seealso::\n\n :py:meth:`setIcon()`\n """\n return self.__data.icon
\n\n\n
\n[docs]\n def setItemAttribute(self, attribute, on=True):\n """\n Toggle an item attribute\n\n :param int attribute: Attribute type\n :param bool on: True/False\n\n .. seealso::\n\n :py:meth:`testItemAttribute()`\n """\n if bool(self.__data.attributes & attribute) != on:\n if on:\n self.__data.attributes |= attribute\n else:\n self.__data.attributes &= ~attribute\n if attribute == QwtPlotItem.Legend:\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def testItemAttribute(self, attribute):\n """\n Test an item attribute\n\n :param int attribute: Attribute type\n :return: True/False\n\n .. seealso::\n\n :py:meth:`setItemAttribute()`\n """\n return bool(self.__data.attributes & attribute)
\n\n\n
\n[docs]\n def setItemInterest(self, interest, on=True):\n """\n Toggle an item interest\n\n :param int attribute: Interest type\n :param bool on: True/False\n\n .. seealso::\n\n :py:meth:`testItemInterest()`\n """\n if bool(self.__data.interests & interest) != on:\n if on:\n self.__data.interests |= interest\n else:\n self.__data.interests &= ~interest\n self.itemChanged()
\n\n\n
\n[docs]\n def testItemInterest(self, interest):\n """\n Test an item interest\n\n :param int attribute: Interest type\n :return: True/False\n\n .. seealso::\n\n :py:meth:`setItemInterest()`\n """\n return bool(self.__data.interests & interest)
\n\n\n
\n[docs]\n def setRenderHint(self, hint, on=True):\n """\n Toggle a render hint\n\n :param int hint: Render hint\n :param bool on: True/False\n\n .. seealso::\n\n :py:meth:`testRenderHint()`\n """\n if bool(self.__data.renderHints & hint) != on:\n if on:\n self.__data.renderHints |= hint\n else:\n self.__data.renderHints &= ~hint\n self.itemChanged()
\n\n\n
\n[docs]\n def testRenderHint(self, hint):\n """\n Test a render hint\n\n :param int attribute: Render hint\n :return: True/False\n\n .. seealso::\n\n :py:meth:`setRenderHint()`\n """\n return bool(self.__data.renderHints & hint)
\n\n\n
\n[docs]\n def setLegendIconSize(self, size):\n """\n Set the size of the legend icon\n\n The default setting is 8x8 pixels\n\n :param QSize size: Size\n\n .. seealso::\n\n :py:meth:`legendIconSize()`, :py:meth:`legendIcon()`\n """\n if self.__data.legendIconSize != size:\n self.__data.legendIconSize = size\n self.legendChanged()
\n\n\n
\n[docs]\n def legendIconSize(self):\n """\n :return: Legend icon size\n\n .. seealso::\n\n :py:meth:`setLegendIconSize()`, :py:meth:`legendIcon()`\n """\n return self.__data.legendIconSize
\n\n\n
\n[docs]\n def legendIcon(self, index, size):\n """\n :param int index: Index of the legend entry (usually there is only one)\n :param QSizeF size: Icon size\n :return: Icon representing the item on the legend\n\n The default implementation returns an invalid icon\n\n .. seealso::\n\n :py:meth:`setLegendIconSize()`, :py:meth:`legendData()`\n """\n return QwtGraphic()
\n\n\n
\n[docs]\n def show(self):\n """Show the item"""\n self.setVisible(True)
\n\n\n
\n[docs]\n def hide(self):\n """Hide the item"""\n self.setVisible(False)
\n\n\n
\n[docs]\n def setVisible(self, on):\n """\n Show/Hide the item\n\n :param bool on: Show if True, otherwise hide\n\n .. seealso::\n\n :py:meth:`isVisible()`, :py:meth:`show()`, :py:meth:`hide()`\n """\n if on != self.__data.isVisible:\n self.__data.isVisible = on\n self.itemChanged()
\n\n\n
\n[docs]\n def isVisible(self):\n """\n :return: True if visible\n\n .. seealso::\n\n :py:meth:`setVisible()`, :py:meth:`show()`, :py:meth:`hide()`\n """\n return self.__data.isVisible
\n\n\n
\n[docs]\n def itemChanged(self):\n """\n Update the legend and call `QwtPlot.autoRefresh()` for the\n parent plot.\n\n .. seealso::\n\n :py:meth:`QwtPlot.legendChanged()`, :py:meth:`QwtPlot.autoRefresh()`\n """\n if self.__data.plot:\n self.__data.plot.autoRefresh()
\n\n\n
\n[docs]\n def legendChanged(self):\n """\n Update the legend of the parent plot.\n\n .. seealso::\n\n :py:meth:`QwtPlot.updateLegend()`, :py:meth:`itemChanged()`\n """\n if self.testItemAttribute(QwtPlotItem.Legend) and self.__data.plot:\n self.__data.plot.updateLegend(self)
\n\n\n
\n[docs]\n def setAxes(self, xAxis, yAxis):\n """\n Set X and Y axis\n\n The item will painted according to the coordinates of its Axes.\n\n :param int xAxis: X Axis (`QwtPlot.xBottom` or `QwtPlot.xTop`)\n :param int yAxis: Y Axis (`QwtPlot.yLeft` or `QwtPlot.yRight`)\n\n .. seealso::\n\n :py:meth:`setXAxis()`, :py:meth:`setYAxis()`,\n :py:meth:`xAxis()`, :py:meth:`yAxis()`\n """\n if xAxis == QwtPlot.xBottom or xAxis == QwtPlot.xTop:\n self.__data.xAxis = xAxis\n if yAxis == QwtPlot.yLeft or yAxis == QwtPlot.yRight:\n self.__data.yAxis = yAxis\n self.itemChanged()
\n\n\n
\n[docs]\n def setAxis(self, xAxis, yAxis):\n """\n Set X and Y axis\n\n .. warning::\n\n `setAxis` has been removed in Qwt6: please use\n :py:meth:`setAxes()` instead\n """\n import warnings\n\n warnings.warn(\n "`setAxis` has been removed in Qwt6: " "please use `setAxes` instead",\n RuntimeWarning,\n )\n self.setAxes(xAxis, yAxis)
\n\n\n
\n[docs]\n def setXAxis(self, axis):\n """\n Set the X axis\n\n The item will painted according to the coordinates its Axes.\n\n :param int axis: X Axis (`QwtPlot.xBottom` or `QwtPlot.xTop`)\n\n .. seealso::\n\n :py:meth:`setAxes()`, :py:meth:`setYAxis()`,\n :py:meth:`xAxis()`, :py:meth:`yAxis()`\n """\n if axis in (QwtPlot.xBottom, QwtPlot.xTop):\n self.__data.xAxis = axis\n self.itemChanged()
\n\n\n
\n[docs]\n def setYAxis(self, axis):\n """\n Set the Y axis\n\n The item will painted according to the coordinates its Axes.\n\n :param int axis: Y Axis (`QwtPlot.yLeft` or `QwtPlot.yRight`)\n\n .. seealso::\n\n :py:meth:`setAxes()`, :py:meth:`setXAxis()`,\n :py:meth:`xAxis()`, :py:meth:`yAxis()`\n """\n if axis in (QwtPlot.yLeft, QwtPlot.yRight):\n self.__data.yAxis = axis\n self.itemChanged()
\n\n\n
\n[docs]\n def xAxis(self):\n """\n :return: xAxis\n """\n return self.__data.xAxis
\n\n\n
\n[docs]\n def yAxis(self):\n """\n :return: yAxis\n """\n return self.__data.yAxis
\n\n\n
\n[docs]\n def boundingRect(self):\n """\n :return: An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0)\n\n .. note::\n\n A width or height < 0.0 is ignored by the autoscaler\n """\n return QRectF(1.0, 1.0, -2.0, -2.0)
\n\n\n
\n[docs]\n def getCanvasMarginHint(self, xMap, yMap, canvasRect):\n """\n Calculate a hint for the canvas margin\n\n When the QwtPlotItem::Margins flag is enabled the plot item\n indicates, that it needs some margins at the borders of the canvas.\n This is f.e. used by bar charts to reserve space for displaying\n the bars.\n\n The margins are in target device coordinates ( pixels on screen )\n\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates\n\n .. seealso::\n\n :py:meth:`QwtPlot.getCanvasMarginsHint()`,\n :py:meth:`QwtPlot.updateCanvasMargins()`,\n """\n left = top = right = bottom = 0.0\n return left, top, right, bottom
\n\n\n
\n[docs]\n def legendData(self):\n """\n Return all information, that is needed to represent\n the item on the legend\n\n `QwtLegendData` is basically a list of QVariants that makes it\n possible to overload and reimplement legendData() to\n return almost any type of information, that is understood\n by the receiver that acts as the legend.\n\n The default implementation returns one entry with\n the title() of the item and the legendIcon().\n\n :return: Data, that is needed to represent the item on the legend\n\n .. seealso::\n\n :py:meth:`title()`, :py:meth:`legendIcon()`,\n :py:class:`qwt.legend.QwtLegend`\n """\n data = QwtLegendData()\n label = self.title()\n label.setRenderFlags(label.renderFlags() & Qt.AlignLeft)\n data.setValue(QwtLegendData.TitleRole, label)\n graphic = self.legendIcon(0, self.legendIconSize())\n if not graphic.isNull():\n data.setValue(QwtLegendData.IconRole, graphic)\n return [data]
\n\n\n
\n[docs]\n def updateLegend(self, item, data):\n """\n Update the item to changes of the legend info\n\n Plot items that want to display a legend ( not those, that want to\n be displayed on a legend ! ) will have to implement updateLegend().\n\n updateLegend() is only called when the LegendInterest interest\n is enabled. The default implementation does nothing.\n\n :param qwt.plot.QwtPlotItem item: Plot item to be displayed on a legend\n :param list data: Attributes how to display item on the legend\n\n .. note::\n\n Plot items, that want to be displayed on a legend\n need to enable the `QwtPlotItem.Legend` flag and to implement\n legendData() and legendIcon()\n """\n pass
\n\n\n
\n[docs]\n def scaleRect(self, xMap, yMap):\n """\n Calculate the bounding scale rectangle of 2 maps\n\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :return: Bounding scale rect of the scale maps, not normalized\n """\n return QRectF(xMap.s1(), yMap.s1(), xMap.sDist(), yMap.sDist())
\n\n\n
\n[docs]\n def paintRect(self, xMap, yMap):\n """\n Calculate the bounding paint rectangle of 2 maps\n\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :return: Bounding paint rectangle of the scale maps, not normalized\n """\n return QRectF(xMap.p1(), yMap.p1(), xMap.pDist(), yMap.pDist())
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39f68180>, 'js_tag': .js_tag at 0x7f3d39f69ee0>}, None) highlighting module code... [ 33%] qwt.plot_canvas [app] emitting event: 'viewcode-find-source'('qwt.plot_canvas',) -[app] emitting event: 'html-page-context'('_modules/qwt/plot_canvas', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_canvas', 'current_page_name': '_modules/qwt/plot_canvas', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b23880>, 'hasdoc': .hasdoc at 0x7fc7d6b21a80>, 'toctree': . at 0x7fc7d6b21760>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_canvas', 'body': '

Source code for qwt.plot_canvas

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotCanvas\n-------------\n\n.. autoclass:: QwtPlotCanvas\n   :members:\n"""\n\nimport os\n\nfrom qtpy.QtCore import QEvent, QObject, QPoint, QPointF, QRect, QRectF, QSize, Qt\nfrom qtpy.QtGui import (\n    QBrush,\n    QGradient,\n    QImage,\n    QPaintEngine,\n    QPainter,\n    QPainterPath,\n    QPen,\n    QPixmap,\n    QPolygonF,\n    QRegion,\n    qAlpha,\n)\nfrom qtpy.QtWidgets import QFrame, QStyle, QStyleOption, QStyleOptionFrame\n\nfrom qwt.null_paintdevice import QwtNullPaintDevice\nfrom qwt.painter import QwtPainter\n\nQT_API = os.environ["QT_API"]\n\n\nclass Border(object):\n    def __init__(self):\n        self.pathlist = []\n        self.rectList = []\n        self.clipRegion = QRegion()\n\n\nclass Background(object):\n    def __init__(self):\n        self.path = QPainterPath()\n        self.brush = QBrush()\n        self.origin = QPointF()\n\n\nclass QwtStyleSheetRecorder(QwtNullPaintDevice):\n    def __init__(self, size):\n        super(QwtStyleSheetRecorder, self).__init__()\n        self.__size = size\n        self.__pen = QPen()\n        self.__brush = QBrush()\n        self.__origin = QPointF()\n        self.clipRects = []\n        self.border = Border()\n        self.background = Background()\n\n    def updateState(self, state):\n        if state.state() & QPaintEngine.DirtyPen:\n            self.__pen = state.pen()\n        if state.state() & QPaintEngine.DirtyBrush:\n            self.__brush = state.brush()\n        if state.state() & QPaintEngine.DirtyBrushOrigin:\n            self.__origin = state.brushOrigin()\n\n    def drawRects(self, rects, count):\n        if QT_API.startswith("pyside"):\n            # Pyside\n            if isinstance(rects, (QRect, QRectF)):\n                self.border.list = [rects]\n            else:\n                for i in range(count):\n                    self.border.rectList += [rects.getRect().index(i)]\n        else:\n            # PyQt\n            for i in range(count):\n                self.border.rectList += [rects[i]]\n\n    def drawPath(self, path):\n        rect = QRectF(QPointF(0.0, 0.0), self.__size)\n        if path.controlPointRect().contains(rect.center()):\n            self.setCornerRects(path)\n            self.alignCornerRects(rect)\n            self.background.path = path\n            self.background.brush = self.__brush\n            self.background.origin = self.__origin\n        else:\n            self.border.pathlist += [path]\n\n    def setCornerRects(self, path):\n        pos = QPointF(0.0, 0.0)\n        for i in range(path.elementCount()):\n            el = path.elementAt(i)\n            if el.type in (QPainterPath.MoveToElement, QPainterPath.LineToElement):\n                pos.setX(el.x)\n                pos.setY(el.y)\n            elif el.type == QPainterPath.CurveToElement:\n                r = QRectF(pos, QPointF(el.x, el.y))\n                self.clipRects += [r.normalized()]\n                pos.setX(el.x)\n                pos.setY(el.y)\n            elif el.type == QPainterPath.CurveToDataElement:\n                if self.clipRects:\n                    r = self.clipRects[-1]\n                    r.setCoords(\n                        min([r.left(), el.x]),\n                        min([r.top(), el.y]),\n                        max([r.right(), el.x]),\n                        max([r.bottom(), el.y]),\n                    )\n                    self.clipRects[-1] = r.normalized()\n\n    def sizeMetrics(self):\n        return self.__size\n\n    def alignCornerRects(self, rect):\n        for r in self.clipRects:\n            if r.center().x() < rect.center().x():\n                r.setLeft(rect.left())\n            else:\n                r.setRight(rect.right())\n            if r.center().y() < rect.center().y():\n                r.setTop(rect.top())\n            else:\n                r.setBottom(rect.bottom())\n\n\ndef qwtDrawBackground(painter, canvas):\n    painter.save()\n    borderClip = canvas.borderPath(canvas.rect())\n    if not borderClip.isEmpty():\n        painter.setClipPath(borderClip, Qt.IntersectClip)\n    brush = canvas.palette().brush(canvas.backgroundRole())\n    if brush.style() == Qt.TexturePattern:\n        pm = QPixmap(canvas.size())\n        QwtPainter.fillPixmap(canvas, pm)\n        painter.drawPixmap(0, 0, pm)\n    elif brush.gradient():\n        rects = []\n        if brush.gradient().coordinateMode() == QGradient.ObjectBoundingMode:\n            rects += [canvas.rect()]\n        else:\n            rects += [painter.clipRegion().boundingRect()]\n        useRaster = False\n        if painter.paintEngine().type() == QPaintEngine.X11:\n            useRaster = True\n        if useRaster:\n            format_ = QImage.Format_RGB32\n            stops = brush.gradient().stops()\n            for stop in stops:\n                if stop.second.alpha() != 255:\n                    format_ = QImage.Format_ARGB32\n                    break\n            image = QImage(canvas.size(), format_)\n            pntr = QPainter(image)\n            pntr.setPen(Qt.NoPen)\n            pntr.setBrush(brush)\n            for rect in rects:\n                pntr.drawRect(rect)\n            pntr.end()\n            painter.drawImage(0, 0, image)\n        else:\n            painter.setPen(Qt.NoPen)\n            painter.setBrush(brush)\n            for rect in rects:\n                painter.drawRect(rect)\n    else:\n        painter.setPen(Qt.NoPen)\n        painter.setBrush(brush)\n        painter.drawRect(painter.clipRegion().boundingRect())\n\n    painter.restore()\n\n\ndef qwtRevertPath(path):\n    if path.elementCount() == 4:\n        el0 = path.elementAt(0)\n        el3 = path.elementAt(3)\n        path.setElementPositionAt(0, el3.x, el3.y)\n        path.setElementPositionAt(3, el0.x, el0.y)\n\n\ndef qwtCombinePathList(rect, pathList):\n    if not pathList:\n        return QPainterPath()\n\n    ordered = [None] * 8\n    for subPath in pathList:\n        index = -1\n        br = subPath.controlPointRect()\n        if br.center().x() < rect.center().x():\n            if br.center().y() < rect.center().y():\n                if abs(br.top() - rect.top()) < abs(br.left() - rect.left()):\n                    index = 1\n                else:\n                    index = 0\n            else:\n                if abs(br.bottom() - rect.bottom) < abs(br.left() - rect.left()):\n                    index = 6\n                else:\n                    index = 7\n            if subPath.currentPosition().y() > br.center().y():\n                qwtRevertPath(subPath)\n        else:\n            if br.center().y() < rect.center().y():\n                if abs(br.top() - rect.top()) < abs(br.right() - rect.right()):\n                    index = 2\n                else:\n                    index = 3\n            else:\n                if abs(br.bottom() - rect.bottom()) < abs(br.right() - rect.right()):\n                    index = 5\n                else:\n                    index = 4\n            if subPath.currentPosition().y() < br.center().y():\n                qwtRevertPath(subPath)\n        ordered[index] = subPath\n    for i in range(4):\n        if ordered[2 * i].isEmpty() != ordered[2 * i + 1].isEmpty():\n            return QPainterPath()\n    corners = QPolygonF(rect)\n    path = QPainterPath()\n    for i in range(4):\n        if ordered[2 * i].isEmpty():\n            path.lineTo(corners[i])\n        else:\n            path.connectPath(ordered[2 * i])\n            path.connectPath(ordered[2 * i + 1])\n    path.closeSubpath()\n    return path\n\n\ndef qwtDrawStyledBackground(w, painter):\n    opt = QStyleOption()\n    opt.initFrom(w)\n    w.style().drawPrimitive(QStyle.PE_Widget, opt, painter, w)\n\n\ndef qwtBackgroundWidget(w):\n    if w.parentWidget() is None:\n        return w\n    if w.autoFillBackground():\n        brush = w.palette().brush(w.backgroundRole())\n        if brush.color().alpha() > 0:\n            return w\n    if w.testAttribute(Qt.WA_StyledBackground):\n        image = QImage(1, 1, QImage.Format_ARGB32)\n        image.fill(Qt.transparent)\n        painter = QPainter(image)\n        painter.translate(-w.rect().center())\n        qwtDrawStyledBackground(w, painter)\n        painter.end()\n        if qAlpha(image.pixel(0, 0)) != 0:\n            return w\n    return qwtBackgroundWidget(w.parentWidget())\n\n\ndef qwtFillBackground(*args):\n    if len(args) == 2:\n        painter, canvas = args\n\n        rects = []\n        if canvas.testAttribute(Qt.WA_StyledBackground):\n            recorder = QwtStyleSheetRecorder(canvas.size())\n            p = QPainter(recorder)\n            qwtDrawStyledBackground(canvas, p)\n            p.end()\n            if recorder.background.brush.isOpaque():\n                rects = recorder.clipRects\n            else:\n                rects += [canvas.rect()]\n        else:\n            r = canvas.rect()\n            radius = canvas.borderRadius()\n            if radius > 0.0:\n                sz = QSize(radius, radius)\n                rects += [\n                    QRect(r.topLeft(), sz),\n                    QRect(r.topRight() - QPoint(radius, 0), sz),\n                    QRect(r.bottomRight() - QPoint(radius, radius), sz),\n                    QRect(r.bottomLeft() - QPoint(0, radius), sz),\n                ]\n\n        qwtFillBackground(painter, canvas, rects)\n\n    elif len(args) == 3:\n        painter, widget, fillRects = args\n\n        if not fillRects:\n            return\n        if painter.hasClipping():\n            clipRegion = painter.transform().map(painter.clipRegion())\n        else:\n            clipRegion = widget.contentsRect()\n        bgWidget = qwtBackgroundWidget(widget.parentWidget())\n        for rect in fillRects:\n            if clipRegion.intersects(rect):\n                pm = QPixmap(rect.size())\n                QwtPainter.fillPixmap(\n                    bgWidget, pm, widget.mapTo(bgWidget, rect.topLeft())\n                )\n                painter.drawPixmap(rect, pm)\n\n    else:\n        raise TypeError(\n            "%s() takes 2 or 3 argument(s) (%s given)"\n            % ("qwtFillBackground", len(args))\n        )\n\n\nclass StyleSheetBackground(object):\n    def __init__(self):\n        self.brush = QBrush()\n        self.origin = QPointF()\n\n\nclass StyleSheet(object):\n    def __init__(self):\n        self.hasBorder = False\n        self.borderPath = QPainterPath()\n        self.cornerRects = []\n        self.background = StyleSheetBackground()\n\n\nclass QwtPlotCanvas_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.focusIndicator = QwtPlotCanvas.NoFocusIndicator\n        self.borderRadius = 0\n        self.paintAttributes = 0\n        self.backingStore = None\n        self.styleSheet = StyleSheet()\n        self.styleSheet.hasBorder = False\n\n\n
\n[docs]\nclass QwtPlotCanvas(QFrame):\n """\n Canvas of a QwtPlot.\n\n Canvas is the widget where all plot items are displayed\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setCanvas()`\n\n Paint attributes:\n\n * `QwtPlotCanvas.BackingStore`:\n\n Paint double buffered reusing the content of the pixmap buffer\n when possible.\n\n Using a backing store might improve the performance significantly,\n when working with widget overlays (like rubber bands).\n Disabling the cache might improve the performance for\n incremental paints\n (using :py:class:`qwt.plot_directpainter.QwtPlotDirectPainter`).\n\n * `QwtPlotCanvas.Opaque`:\n\n Try to fill the complete contents rectangle of the plot canvas\n\n When using styled backgrounds Qt assumes, that the canvas doesn't\n fill its area completely (f.e because of rounded borders) and\n fills the area below the canvas. When this is done with gradients\n it might result in a serious performance bottleneck - depending on\n the size.\n\n When the Opaque attribute is enabled the canvas tries to\n identify the gaps with some heuristics and to fill those only.\n\n .. warning::\n\n Will not work for semitransparent backgrounds\n\n * `QwtPlotCanvas.HackStyledBackground`:\n\n Try to improve painting of styled backgrounds\n\n `QwtPlotCanvas` supports the box model attributes for\n customizing the layout with style sheets. Unfortunately\n the design of Qt style sheets has no concept how to\n handle backgrounds with rounded corners - beside of padding.\n\n When HackStyledBackground is enabled the plot canvas tries\n to separate the background from the background border\n by reverse engineering to paint the background before and\n the border after the plot items. In this order the border\n gets perfectly antialiased and you can avoid some pixel\n artifacts in the corners.\n\n * `QwtPlotCanvas.ImmediatePaint`:\n\n When ImmediatePaint is set replot() calls repaint()\n instead of update().\n\n .. seealso::\n\n :py:meth:`replot()`, :py:meth:`QWidget.repaint()`,\n :py:meth:`QWidget.update()`\n\n Focus indicators:\n\n * `QwtPlotCanvas.NoFocusIndicator`:\n\n Don't paint a focus indicator\n\n * `QwtPlotCanvas.CanvasFocusIndicator`:\n\n The focus is related to the complete canvas.\n Paint the focus indicator using paintFocus()\n\n * `QwtPlotCanvas.ItemFocusIndicator`:\n\n The focus is related to an item (curve, point, ...) on\n the canvas. It is up to the application to display a\n focus indication using f.e. highlighting.\n\n .. py:class:: QwtPlotCanvas([plot=None])\n\n Constructor\n\n :param qwt.plot.QwtPlot plot: Parent plot widget\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setCanvas()`\n """\n\n # enum PaintAttribute\n BackingStore = 1\n Opaque = 2\n HackStyledBackground = 4\n ImmediatePaint = 8\n\n # enum FocusIndicator\n NoFocusIndicator, CanvasFocusIndicator, ItemFocusIndicator = list(range(3))\n\n def __init__(self, plot=None):\n super(QwtPlotCanvas, self).__init__(plot)\n self.__plot = plot\n self.setFrameStyle(QFrame.Panel | QFrame.Sunken)\n self.setLineWidth(2)\n self.__data = QwtPlotCanvas_PrivateData()\n self.setCursor(Qt.CrossCursor)\n self.setAutoFillBackground(True)\n self.setPaintAttribute(QwtPlotCanvas.BackingStore, False)\n self.setPaintAttribute(QwtPlotCanvas.Opaque, True)\n self.setPaintAttribute(QwtPlotCanvas.HackStyledBackground, True)\n\n
\n[docs]\n def plot(self):\n """\n :return: Parent plot widget\n """\n return self.__plot
\n\n\n
\n[docs]\n def setPaintAttribute(self, attribute, on=True):\n """\n Changing the paint attributes\n\n Paint attributes:\n\n * `QwtPlotCanvas.BackingStore`\n * `QwtPlotCanvas.Opaque`\n * `QwtPlotCanvas.HackStyledBackground`\n * `QwtPlotCanvas.ImmediatePaint`\n\n :param int attribute: Paint attribute\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`testPaintAttribute()`, :py:meth:`backingStore()`\n """\n if bool(self.__data.paintAttributes & attribute) == on:\n return\n if on:\n self.__data.paintAttributes |= attribute\n else:\n self.__data.paintAttributes &= ~attribute\n if attribute == self.BackingStore:\n if on:\n if self.__data.backingStore is None:\n self.__data.backingStore = QPixmap()\n if self.isVisible():\n self.__data.backingStore = self.grab(self.rect())\n else:\n self.__data.backingStore = None\n elif attribute == self.Opaque:\n if on:\n self.setAttribute(Qt.WA_OpaquePaintEvent, True)\n elif attribute in (self.HackStyledBackground, self.ImmediatePaint):\n pass
\n\n\n
\n[docs]\n def testPaintAttribute(self, attribute):\n """\n Test whether a paint attribute is enabled\n\n :param int attribute: Paint attribute\n :return: True, when attribute is enabled\n\n .. seealso::\n\n :py:meth:`setPaintAttribute()`\n """\n return self.__data.paintAttributes & attribute
\n\n\n
\n[docs]\n def backingStore(self):\n """\n :return: Backing store, might be None\n """\n return self.__data.backingStore
\n\n\n
\n[docs]\n def invalidateBackingStore(self):\n """Invalidate the internal backing store"""\n if self.__data.backingStore:\n self.__data.backingStore = QPixmap()
\n\n\n
\n[docs]\n def setFocusIndicator(self, focusIndicator):\n """\n Set the focus indicator\n\n Focus indicators:\n\n * `QwtPlotCanvas.NoFocusIndicator`\n * `QwtPlotCanvas.CanvasFocusIndicator`\n * `QwtPlotCanvas.ItemFocusIndicator`\n\n :param int focusIndicator: Focus indicator\n\n .. seealso::\n\n :py:meth:`focusIndicator()`\n """\n self.__data.focusIndicator = focusIndicator
\n\n\n
\n[docs]\n def focusIndicator(self):\n """\n :return: Focus indicator\n\n .. seealso::\n\n :py:meth:`setFocusIndicator()`\n """\n return self.__data.focusIndicator
\n\n\n
\n[docs]\n def setBorderRadius(self, radius):\n """\n Set the radius for the corners of the border frame\n\n :param float radius: Radius of a rounded corner\n\n .. seealso::\n\n :py:meth:`borderRadius()`\n """\n self.__data.borderRadius = max([0.0, radius])
\n\n\n
\n[docs]\n def borderRadius(self):\n """\n :return: Radius for the corners of the border frame\n\n .. seealso::\n\n :py:meth:`setBorderRadius()`\n """\n return self.__data.borderRadius
\n\n\n
\n[docs]\n def event(self, event):\n if event.type() == QEvent.PolishRequest:\n if self.testPaintAttribute(self.Opaque):\n self.setAttribute(Qt.WA_OpaquePaintEvent, True)\n if event.type() in (QEvent.PolishRequest, QEvent.StyleChange):\n self.updateStyleSheetInfo()\n return QFrame.event(self, event)
\n\n\n
\n[docs]\n def paintEvent(self, event):\n painter = QPainter(self)\n painter.setClipRegion(event.region())\n if (\n self.testPaintAttribute(self.BackingStore)\n and self.__data.backingStore is not None\n and not self.__data.backingStore.isNull()\n ):\n bs = self.__data.backingStore\n pixelRatio = bs.devicePixelRatio()\n if bs.size() != self.size() * pixelRatio:\n bs = QwtPainter.backingStore(self, self.size())\n if self.testAttribute(Qt.WA_StyledBackground):\n p = QPainter(bs)\n qwtFillBackground(p, self)\n self.drawCanvas(p, True)\n else:\n p = QPainter()\n if self.__data.borderRadius <= 0.0:\n # print('**DEBUG: QwtPlotCanvas.paintEvent')\n QwtPainter.fillPixmap(self, bs)\n p.begin(bs)\n self.drawCanvas(p, False)\n else:\n p.begin(bs)\n qwtFillBackground(p, self)\n self.drawCanvas(p, True)\n if self.frameWidth() > 0:\n self.drawBorder(p)\n p.end()\n painter.drawPixmap(0, 0, self.__data.backingStore)\n else:\n if self.testAttribute(Qt.WA_StyledBackground):\n if self.testAttribute(Qt.WA_OpaquePaintEvent):\n qwtFillBackground(painter, self)\n self.drawCanvas(painter, True)\n else:\n self.drawCanvas(painter, False)\n else:\n if self.testAttribute(Qt.WA_OpaquePaintEvent):\n if self.autoFillBackground():\n qwtFillBackground(painter, self)\n qwtDrawBackground(painter, self)\n else:\n if self.borderRadius() > 0.0:\n clipPath = QPainterPath()\n clipPath.addRect(self.rect())\n clipPath = clipPath.subtracted(self.borderPath(self.rect()))\n painter.save()\n painter.setClipPath(clipPath, Qt.IntersectClip)\n qwtFillBackground(painter, self)\n qwtDrawBackground(painter, self)\n painter.restore()\n self.drawCanvas(painter, False)\n if self.frameWidth() > 0:\n self.drawBorder(painter)\n if self.hasFocus() and self.focusIndicator() == self.CanvasFocusIndicator:\n self.drawFocusIndicator(painter)
\n\n\n def drawCanvas(self, painter, withBackground):\n hackStyledBackground = False\n if (\n withBackground\n and self.testAttribute(Qt.WA_StyledBackground)\n and self.testPaintAttribute(self.HackStyledBackground)\n ):\n # Antialiasing rounded borders is done by\n # inserting pixels with colors between the\n # border color and the color on the canvas,\n # When the border is painted before the plot items\n # these colors are interpolated for the canvas\n # and the plot items need to be clipped excluding\n # the anialiased pixels. In situations, where\n # the plot items fill the area at the rounded\n # borders this is noticeable.\n # The only way to avoid these annoying "artefacts"\n # is to paint the border on top of the plot items.\n if (\n self.__data.styleSheet.hasBorder\n and not self.__data.styleSheet.borderPath.isEmpty()\n ):\n # We have a border with at least one rounded corner\n hackStyledBackground = True\n if withBackground:\n painter.save()\n if self.testAttribute(Qt.WA_StyledBackground):\n if hackStyledBackground:\n # paint background without border\n painter.setPen(Qt.NoPen)\n painter.setBrush(self.__data.styleSheet.background.brush)\n painter.setBrushOrigin(self.__data.styleSheet.background.origin)\n painter.setClipPath(self.__data.styleSheet.borderPath)\n painter.drawRect(self.contentsRect())\n else:\n qwtDrawStyledBackground(self, painter)\n elif self.autoFillBackground():\n painter.setPen(Qt.NoPen)\n painter.setBrush(self.palette().brush(self.backgroundRole()))\n if self.__data.borderRadius > 0.0 and self.rect() == self.frameRect():\n if self.frameWidth() > 0:\n painter.setClipPath(self.borderPath(self.rect()))\n painter.drawRect(self.rect())\n else:\n painter.setRenderHint(QPainter.Antialiasing, True)\n painter.drawPath(self.borderPath(self.rect()))\n else:\n painter.drawRect(self.rect())\n painter.restore()\n painter.save()\n if not self.__data.styleSheet.borderPath.isEmpty():\n painter.setClipPath(self.__data.styleSheet.borderPath, Qt.IntersectClip)\n else:\n if self.__data.borderRadius > 0.0:\n painter.setClipPath(self.borderPath(self.frameRect()), Qt.IntersectClip)\n else:\n # print('**DEBUG: QwtPlotCanvas.drawCanvas')\n painter.setClipRect(self.contentsRect(), Qt.IntersectClip)\n self.plot().drawCanvas(painter)\n painter.restore()\n if withBackground and hackStyledBackground:\n # Now paint the border on top\n opt = QStyleOptionFrame()\n opt.initFrom(self)\n self.style().drawPrimitive(QStyle.PE_Frame, opt, painter, self)\n\n
\n[docs]\n def drawBorder(self, painter):\n """\n Draw the border of the plot canvas\n\n :param QPainter painter: Painter\n\n .. seealso::\n\n :py:meth:`setBorderRadius()`\n """\n if self.__data.borderRadius > 0:\n if self.frameWidth() > 0:\n QwtPainter.drawRoundedFrame(\n painter,\n QRectF(self.frameRect()),\n self.__data.borderRadius,\n self.__data.borderRadius,\n self.palette(),\n self.frameWidth(),\n self.frameStyle(),\n )\n else:\n opt = QStyleOptionFrame()\n opt.initFrom(self)\n try:\n shape_mask = QFrame.Shape_Mask.value\n shadow_mask = QFrame.Shadow_Mask.value\n except AttributeError:\n shape_mask = QFrame.Shape_Mask\n shadow_mask = QFrame.Shadow_Mask\n frameShape = self.frameStyle() & shape_mask\n frameShadow = self.frameStyle() & shadow_mask\n opt.frameShape = QFrame.Shape(int(opt.frameShape) | frameShape)\n if frameShape in (\n QFrame.Box,\n QFrame.HLine,\n QFrame.VLine,\n QFrame.StyledPanel,\n QFrame.Panel,\n ):\n opt.lineWidth = self.lineWidth()\n opt.midLineWidth = self.midLineWidth()\n else:\n opt.lineWidth = self.frameWidth()\n if frameShadow == QFrame.Sunken:\n opt.state |= QStyle.State_Sunken\n elif frameShadow == QFrame.Raised:\n opt.state |= QStyle.State_Raised\n self.style().drawControl(QStyle.CE_ShapedFrame, opt, painter, self)
\n\n\n
\n[docs]\n def resizeEvent(self, event):\n QFrame.resizeEvent(self, event)\n self.updateStyleSheetInfo()
\n\n\n
\n[docs]\n def drawFocusIndicator(self, painter):\n """\n Draw the focus indication\n\n :param QPainter painter: Painter\n """\n margin = 1\n focusRect = self.contentsRect()\n focusRect.setRect(\n focusRect.x() + margin,\n focusRect.y() + margin,\n focusRect.width() - 2 * margin,\n focusRect.height() - 2 * margin,\n )\n QwtPainter.drawFocusRect(painter, self, focusRect)
\n\n\n
\n[docs]\n def replot(self):\n """\n Invalidate the paint cache and repaint the canvas\n """\n self.invalidateBackingStore()\n if self.testPaintAttribute(self.ImmediatePaint):\n self.repaint(self.contentsRect())\n else:\n self.update(self.contentsRect())
\n\n\n def invalidatePaintCache(self):\n import warnings\n\n warnings.warn(\n "`invalidatePaintCache` has been removed: " "please use `replot` instead",\n RuntimeWarning,\n )\n self.replot()\n\n
\n[docs]\n def updateStyleSheetInfo(self):\n """\n Update the cached information about the current style sheet\n """\n if not self.testAttribute(Qt.WA_StyledBackground):\n return\n recorder = QwtStyleSheetRecorder(self.size())\n painter = QPainter(recorder)\n opt = QStyleOption()\n opt.initFrom(self)\n self.style().drawPrimitive(QStyle.PE_Widget, opt, painter, self)\n painter.end()\n self.__data.styleSheet.hasBorder = len(recorder.border.rectList) > 0\n self.__data.styleSheet.cornerRects = recorder.clipRects\n if recorder.background.path.isEmpty():\n if self.__data.styleSheet.hasBorder:\n self.__data.styleSheet.borderPath = qwtCombinePathList(\n self.rect(), recorder.border.pathlist\n )\n else:\n self.__data.styleSheet.borderPath = recorder.background.path\n self.__data.styleSheet.background.brush = recorder.background.brush\n self.__data.styleSheet.background.origin = recorder.background.origin
\n\n\n
\n[docs]\n def borderPath(self, rect):\n """\n Calculate the painter path for a styled or rounded border\n\n When the canvas has no styled background or rounded borders\n the painter path is empty.\n\n :param QRect rect: Bounding rectangle of the canvas\n :return: Painter path, that can be used for clipping\n """\n if self.testAttribute(Qt.WA_StyledBackground):\n recorder = QwtStyleSheetRecorder(rect.size())\n painter = QPainter(recorder)\n opt = QStyleOption()\n opt.initFrom(self)\n opt.rect = rect\n self.style().drawPrimitive(QStyle.PE_Widget, opt, painter, self)\n painter.end()\n if not recorder.background.path.isEmpty():\n return recorder.background.path\n if len(recorder.border.rectList) > 0:\n return qwtCombinePathList(rect, recorder.border.pathlist)\n elif self.__data.borderRadius > 0.0:\n fw2 = self.frameWidth() * 0.5\n r = QRectF(rect).adjusted(fw2, fw2, -fw2, -fw2)\n path = QPainterPath()\n path.addRoundedRect(r, self.__data.borderRadius, self.__data.borderRadius)\n return path\n return QPainterPath()
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6b21da0>, 'js_tag': .js_tag at 0x7fc7d6b22520>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/plot_canvas', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_canvas', 'current_page_name': '_modules/qwt/plot_canvas', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f6b880>, 'hasdoc': .hasdoc at 0x7f3d39f69a80>, 'toctree': . at 0x7f3d39f69760>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_canvas', 'body': '

Source code for qwt.plot_canvas

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotCanvas\n-------------\n\n.. autoclass:: QwtPlotCanvas\n   :members:\n"""\n\nimport os\n\nfrom qtpy.QtCore import QEvent, QObject, QPoint, QPointF, QRect, QRectF, QSize, Qt\nfrom qtpy.QtGui import (\n    QBrush,\n    QGradient,\n    QImage,\n    QPaintEngine,\n    QPainter,\n    QPainterPath,\n    QPen,\n    QPixmap,\n    QPolygonF,\n    QRegion,\n    qAlpha,\n)\nfrom qtpy.QtWidgets import QFrame, QStyle, QStyleOption, QStyleOptionFrame\n\nfrom qwt.null_paintdevice import QwtNullPaintDevice\nfrom qwt.painter import QwtPainter\n\nQT_API = os.environ["QT_API"]\n\n\nclass Border(object):\n    def __init__(self):\n        self.pathlist = []\n        self.rectList = []\n        self.clipRegion = QRegion()\n\n\nclass Background(object):\n    def __init__(self):\n        self.path = QPainterPath()\n        self.brush = QBrush()\n        self.origin = QPointF()\n\n\nclass QwtStyleSheetRecorder(QwtNullPaintDevice):\n    def __init__(self, size):\n        super(QwtStyleSheetRecorder, self).__init__()\n        self.__size = size\n        self.__pen = QPen()\n        self.__brush = QBrush()\n        self.__origin = QPointF()\n        self.clipRects = []\n        self.border = Border()\n        self.background = Background()\n\n    def updateState(self, state):\n        if state.state() & QPaintEngine.DirtyPen:\n            self.__pen = state.pen()\n        if state.state() & QPaintEngine.DirtyBrush:\n            self.__brush = state.brush()\n        if state.state() & QPaintEngine.DirtyBrushOrigin:\n            self.__origin = state.brushOrigin()\n\n    def drawRects(self, rects, count):\n        if QT_API.startswith("pyside"):\n            # Pyside\n            if isinstance(rects, (QRect, QRectF)):\n                self.border.list = [rects]\n            else:\n                for i in range(count):\n                    self.border.rectList += [rects.getRect().index(i)]\n        else:\n            # PyQt\n            for i in range(count):\n                self.border.rectList += [rects[i]]\n\n    def drawPath(self, path):\n        rect = QRectF(QPointF(0.0, 0.0), self.__size)\n        if path.controlPointRect().contains(rect.center()):\n            self.setCornerRects(path)\n            self.alignCornerRects(rect)\n            self.background.path = path\n            self.background.brush = self.__brush\n            self.background.origin = self.__origin\n        else:\n            self.border.pathlist += [path]\n\n    def setCornerRects(self, path):\n        pos = QPointF(0.0, 0.0)\n        for i in range(path.elementCount()):\n            el = path.elementAt(i)\n            if el.type in (QPainterPath.MoveToElement, QPainterPath.LineToElement):\n                pos.setX(el.x)\n                pos.setY(el.y)\n            elif el.type == QPainterPath.CurveToElement:\n                r = QRectF(pos, QPointF(el.x, el.y))\n                self.clipRects += [r.normalized()]\n                pos.setX(el.x)\n                pos.setY(el.y)\n            elif el.type == QPainterPath.CurveToDataElement:\n                if self.clipRects:\n                    r = self.clipRects[-1]\n                    r.setCoords(\n                        min([r.left(), el.x]),\n                        min([r.top(), el.y]),\n                        max([r.right(), el.x]),\n                        max([r.bottom(), el.y]),\n                    )\n                    self.clipRects[-1] = r.normalized()\n\n    def sizeMetrics(self):\n        return self.__size\n\n    def alignCornerRects(self, rect):\n        for r in self.clipRects:\n            if r.center().x() < rect.center().x():\n                r.setLeft(rect.left())\n            else:\n                r.setRight(rect.right())\n            if r.center().y() < rect.center().y():\n                r.setTop(rect.top())\n            else:\n                r.setBottom(rect.bottom())\n\n\ndef qwtDrawBackground(painter, canvas):\n    painter.save()\n    borderClip = canvas.borderPath(canvas.rect())\n    if not borderClip.isEmpty():\n        painter.setClipPath(borderClip, Qt.IntersectClip)\n    brush = canvas.palette().brush(canvas.backgroundRole())\n    if brush.style() == Qt.TexturePattern:\n        pm = QPixmap(canvas.size())\n        QwtPainter.fillPixmap(canvas, pm)\n        painter.drawPixmap(0, 0, pm)\n    elif brush.gradient():\n        rects = []\n        if brush.gradient().coordinateMode() == QGradient.ObjectBoundingMode:\n            rects += [canvas.rect()]\n        else:\n            rects += [painter.clipRegion().boundingRect()]\n        useRaster = False\n        if painter.paintEngine().type() == QPaintEngine.X11:\n            useRaster = True\n        if useRaster:\n            format_ = QImage.Format_RGB32\n            stops = brush.gradient().stops()\n            for stop in stops:\n                if stop.second.alpha() != 255:\n                    format_ = QImage.Format_ARGB32\n                    break\n            image = QImage(canvas.size(), format_)\n            pntr = QPainter(image)\n            pntr.setPen(Qt.NoPen)\n            pntr.setBrush(brush)\n            for rect in rects:\n                pntr.drawRect(rect)\n            pntr.end()\n            painter.drawImage(0, 0, image)\n        else:\n            painter.setPen(Qt.NoPen)\n            painter.setBrush(brush)\n            for rect in rects:\n                painter.drawRect(rect)\n    else:\n        painter.setPen(Qt.NoPen)\n        painter.setBrush(brush)\n        painter.drawRect(painter.clipRegion().boundingRect())\n\n    painter.restore()\n\n\ndef qwtRevertPath(path):\n    if path.elementCount() == 4:\n        el0 = path.elementAt(0)\n        el3 = path.elementAt(3)\n        path.setElementPositionAt(0, el3.x, el3.y)\n        path.setElementPositionAt(3, el0.x, el0.y)\n\n\ndef qwtCombinePathList(rect, pathList):\n    if not pathList:\n        return QPainterPath()\n\n    ordered = [None] * 8\n    for subPath in pathList:\n        index = -1\n        br = subPath.controlPointRect()\n        if br.center().x() < rect.center().x():\n            if br.center().y() < rect.center().y():\n                if abs(br.top() - rect.top()) < abs(br.left() - rect.left()):\n                    index = 1\n                else:\n                    index = 0\n            else:\n                if abs(br.bottom() - rect.bottom) < abs(br.left() - rect.left()):\n                    index = 6\n                else:\n                    index = 7\n            if subPath.currentPosition().y() > br.center().y():\n                qwtRevertPath(subPath)\n        else:\n            if br.center().y() < rect.center().y():\n                if abs(br.top() - rect.top()) < abs(br.right() - rect.right()):\n                    index = 2\n                else:\n                    index = 3\n            else:\n                if abs(br.bottom() - rect.bottom()) < abs(br.right() - rect.right()):\n                    index = 5\n                else:\n                    index = 4\n            if subPath.currentPosition().y() < br.center().y():\n                qwtRevertPath(subPath)\n        ordered[index] = subPath\n    for i in range(4):\n        if ordered[2 * i].isEmpty() != ordered[2 * i + 1].isEmpty():\n            return QPainterPath()\n    corners = QPolygonF(rect)\n    path = QPainterPath()\n    for i in range(4):\n        if ordered[2 * i].isEmpty():\n            path.lineTo(corners[i])\n        else:\n            path.connectPath(ordered[2 * i])\n            path.connectPath(ordered[2 * i + 1])\n    path.closeSubpath()\n    return path\n\n\ndef qwtDrawStyledBackground(w, painter):\n    opt = QStyleOption()\n    opt.initFrom(w)\n    w.style().drawPrimitive(QStyle.PE_Widget, opt, painter, w)\n\n\ndef qwtBackgroundWidget(w):\n    if w.parentWidget() is None:\n        return w\n    if w.autoFillBackground():\n        brush = w.palette().brush(w.backgroundRole())\n        if brush.color().alpha() > 0:\n            return w\n    if w.testAttribute(Qt.WA_StyledBackground):\n        image = QImage(1, 1, QImage.Format_ARGB32)\n        image.fill(Qt.transparent)\n        painter = QPainter(image)\n        painter.translate(-w.rect().center())\n        qwtDrawStyledBackground(w, painter)\n        painter.end()\n        if qAlpha(image.pixel(0, 0)) != 0:\n            return w\n    return qwtBackgroundWidget(w.parentWidget())\n\n\ndef qwtFillBackground(*args):\n    if len(args) == 2:\n        painter, canvas = args\n\n        rects = []\n        if canvas.testAttribute(Qt.WA_StyledBackground):\n            recorder = QwtStyleSheetRecorder(canvas.size())\n            p = QPainter(recorder)\n            qwtDrawStyledBackground(canvas, p)\n            p.end()\n            if recorder.background.brush.isOpaque():\n                rects = recorder.clipRects\n            else:\n                rects += [canvas.rect()]\n        else:\n            r = canvas.rect()\n            radius = canvas.borderRadius()\n            if radius > 0.0:\n                sz = QSize(radius, radius)\n                rects += [\n                    QRect(r.topLeft(), sz),\n                    QRect(r.topRight() - QPoint(radius, 0), sz),\n                    QRect(r.bottomRight() - QPoint(radius, radius), sz),\n                    QRect(r.bottomLeft() - QPoint(0, radius), sz),\n                ]\n\n        qwtFillBackground(painter, canvas, rects)\n\n    elif len(args) == 3:\n        painter, widget, fillRects = args\n\n        if not fillRects:\n            return\n        if painter.hasClipping():\n            clipRegion = painter.transform().map(painter.clipRegion())\n        else:\n            clipRegion = widget.contentsRect()\n        bgWidget = qwtBackgroundWidget(widget.parentWidget())\n        for rect in fillRects:\n            if clipRegion.intersects(rect):\n                pm = QPixmap(rect.size())\n                QwtPainter.fillPixmap(\n                    bgWidget, pm, widget.mapTo(bgWidget, rect.topLeft())\n                )\n                painter.drawPixmap(rect, pm)\n\n    else:\n        raise TypeError(\n            "%s() takes 2 or 3 argument(s) (%s given)"\n            % ("qwtFillBackground", len(args))\n        )\n\n\nclass StyleSheetBackground(object):\n    def __init__(self):\n        self.brush = QBrush()\n        self.origin = QPointF()\n\n\nclass StyleSheet(object):\n    def __init__(self):\n        self.hasBorder = False\n        self.borderPath = QPainterPath()\n        self.cornerRects = []\n        self.background = StyleSheetBackground()\n\n\nclass QwtPlotCanvas_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.focusIndicator = QwtPlotCanvas.NoFocusIndicator\n        self.borderRadius = 0\n        self.paintAttributes = 0\n        self.backingStore = None\n        self.styleSheet = StyleSheet()\n        self.styleSheet.hasBorder = False\n\n\n
\n[docs]\nclass QwtPlotCanvas(QFrame):\n """\n Canvas of a QwtPlot.\n\n Canvas is the widget where all plot items are displayed\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setCanvas()`\n\n Paint attributes:\n\n * `QwtPlotCanvas.BackingStore`:\n\n Paint double buffered reusing the content of the pixmap buffer\n when possible.\n\n Using a backing store might improve the performance significantly,\n when working with widget overlays (like rubber bands).\n Disabling the cache might improve the performance for\n incremental paints\n (using :py:class:`qwt.plot_directpainter.QwtPlotDirectPainter`).\n\n * `QwtPlotCanvas.Opaque`:\n\n Try to fill the complete contents rectangle of the plot canvas\n\n When using styled backgrounds Qt assumes, that the canvas doesn't\n fill its area completely (f.e because of rounded borders) and\n fills the area below the canvas. When this is done with gradients\n it might result in a serious performance bottleneck - depending on\n the size.\n\n When the Opaque attribute is enabled the canvas tries to\n identify the gaps with some heuristics and to fill those only.\n\n .. warning::\n\n Will not work for semitransparent backgrounds\n\n * `QwtPlotCanvas.HackStyledBackground`:\n\n Try to improve painting of styled backgrounds\n\n `QwtPlotCanvas` supports the box model attributes for\n customizing the layout with style sheets. Unfortunately\n the design of Qt style sheets has no concept how to\n handle backgrounds with rounded corners - beside of padding.\n\n When HackStyledBackground is enabled the plot canvas tries\n to separate the background from the background border\n by reverse engineering to paint the background before and\n the border after the plot items. In this order the border\n gets perfectly antialiased and you can avoid some pixel\n artifacts in the corners.\n\n * `QwtPlotCanvas.ImmediatePaint`:\n\n When ImmediatePaint is set replot() calls repaint()\n instead of update().\n\n .. seealso::\n\n :py:meth:`replot()`, :py:meth:`QWidget.repaint()`,\n :py:meth:`QWidget.update()`\n\n Focus indicators:\n\n * `QwtPlotCanvas.NoFocusIndicator`:\n\n Don't paint a focus indicator\n\n * `QwtPlotCanvas.CanvasFocusIndicator`:\n\n The focus is related to the complete canvas.\n Paint the focus indicator using paintFocus()\n\n * `QwtPlotCanvas.ItemFocusIndicator`:\n\n The focus is related to an item (curve, point, ...) on\n the canvas. It is up to the application to display a\n focus indication using f.e. highlighting.\n\n .. py:class:: QwtPlotCanvas([plot=None])\n\n Constructor\n\n :param qwt.plot.QwtPlot plot: Parent plot widget\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setCanvas()`\n """\n\n # enum PaintAttribute\n BackingStore = 1\n Opaque = 2\n HackStyledBackground = 4\n ImmediatePaint = 8\n\n # enum FocusIndicator\n NoFocusIndicator, CanvasFocusIndicator, ItemFocusIndicator = list(range(3))\n\n def __init__(self, plot=None):\n super(QwtPlotCanvas, self).__init__(plot)\n self.__plot = plot\n self.setFrameStyle(QFrame.Panel | QFrame.Sunken)\n self.setLineWidth(2)\n self.__data = QwtPlotCanvas_PrivateData()\n self.setCursor(Qt.CrossCursor)\n self.setAutoFillBackground(True)\n self.setPaintAttribute(QwtPlotCanvas.BackingStore, False)\n self.setPaintAttribute(QwtPlotCanvas.Opaque, True)\n self.setPaintAttribute(QwtPlotCanvas.HackStyledBackground, True)\n\n
\n[docs]\n def plot(self):\n """\n :return: Parent plot widget\n """\n return self.__plot
\n\n\n
\n[docs]\n def setPaintAttribute(self, attribute, on=True):\n """\n Changing the paint attributes\n\n Paint attributes:\n\n * `QwtPlotCanvas.BackingStore`\n * `QwtPlotCanvas.Opaque`\n * `QwtPlotCanvas.HackStyledBackground`\n * `QwtPlotCanvas.ImmediatePaint`\n\n :param int attribute: Paint attribute\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`testPaintAttribute()`, :py:meth:`backingStore()`\n """\n if bool(self.__data.paintAttributes & attribute) == on:\n return\n if on:\n self.__data.paintAttributes |= attribute\n else:\n self.__data.paintAttributes &= ~attribute\n if attribute == self.BackingStore:\n if on:\n if self.__data.backingStore is None:\n self.__data.backingStore = QPixmap()\n if self.isVisible():\n self.__data.backingStore = self.grab(self.rect())\n else:\n self.__data.backingStore = None\n elif attribute == self.Opaque:\n if on:\n self.setAttribute(Qt.WA_OpaquePaintEvent, True)\n elif attribute in (self.HackStyledBackground, self.ImmediatePaint):\n pass
\n\n\n
\n[docs]\n def testPaintAttribute(self, attribute):\n """\n Test whether a paint attribute is enabled\n\n :param int attribute: Paint attribute\n :return: True, when attribute is enabled\n\n .. seealso::\n\n :py:meth:`setPaintAttribute()`\n """\n return self.__data.paintAttributes & attribute
\n\n\n
\n[docs]\n def backingStore(self):\n """\n :return: Backing store, might be None\n """\n return self.__data.backingStore
\n\n\n
\n[docs]\n def invalidateBackingStore(self):\n """Invalidate the internal backing store"""\n if self.__data.backingStore:\n self.__data.backingStore = QPixmap()
\n\n\n
\n[docs]\n def setFocusIndicator(self, focusIndicator):\n """\n Set the focus indicator\n\n Focus indicators:\n\n * `QwtPlotCanvas.NoFocusIndicator`\n * `QwtPlotCanvas.CanvasFocusIndicator`\n * `QwtPlotCanvas.ItemFocusIndicator`\n\n :param int focusIndicator: Focus indicator\n\n .. seealso::\n\n :py:meth:`focusIndicator()`\n """\n self.__data.focusIndicator = focusIndicator
\n\n\n
\n[docs]\n def focusIndicator(self):\n """\n :return: Focus indicator\n\n .. seealso::\n\n :py:meth:`setFocusIndicator()`\n """\n return self.__data.focusIndicator
\n\n\n
\n[docs]\n def setBorderRadius(self, radius):\n """\n Set the radius for the corners of the border frame\n\n :param float radius: Radius of a rounded corner\n\n .. seealso::\n\n :py:meth:`borderRadius()`\n """\n self.__data.borderRadius = max([0.0, radius])
\n\n\n
\n[docs]\n def borderRadius(self):\n """\n :return: Radius for the corners of the border frame\n\n .. seealso::\n\n :py:meth:`setBorderRadius()`\n """\n return self.__data.borderRadius
\n\n\n
\n[docs]\n def event(self, event):\n if event.type() == QEvent.PolishRequest:\n if self.testPaintAttribute(self.Opaque):\n self.setAttribute(Qt.WA_OpaquePaintEvent, True)\n if event.type() in (QEvent.PolishRequest, QEvent.StyleChange):\n self.updateStyleSheetInfo()\n return QFrame.event(self, event)
\n\n\n
\n[docs]\n def paintEvent(self, event):\n painter = QPainter(self)\n painter.setClipRegion(event.region())\n if (\n self.testPaintAttribute(self.BackingStore)\n and self.__data.backingStore is not None\n and not self.__data.backingStore.isNull()\n ):\n bs = self.__data.backingStore\n pixelRatio = bs.devicePixelRatio()\n if bs.size() != self.size() * pixelRatio:\n bs = QwtPainter.backingStore(self, self.size())\n if self.testAttribute(Qt.WA_StyledBackground):\n p = QPainter(bs)\n qwtFillBackground(p, self)\n self.drawCanvas(p, True)\n else:\n p = QPainter()\n if self.__data.borderRadius <= 0.0:\n # print('**DEBUG: QwtPlotCanvas.paintEvent')\n QwtPainter.fillPixmap(self, bs)\n p.begin(bs)\n self.drawCanvas(p, False)\n else:\n p.begin(bs)\n qwtFillBackground(p, self)\n self.drawCanvas(p, True)\n if self.frameWidth() > 0:\n self.drawBorder(p)\n p.end()\n painter.drawPixmap(0, 0, self.__data.backingStore)\n else:\n if self.testAttribute(Qt.WA_StyledBackground):\n if self.testAttribute(Qt.WA_OpaquePaintEvent):\n qwtFillBackground(painter, self)\n self.drawCanvas(painter, True)\n else:\n self.drawCanvas(painter, False)\n else:\n if self.testAttribute(Qt.WA_OpaquePaintEvent):\n if self.autoFillBackground():\n qwtFillBackground(painter, self)\n qwtDrawBackground(painter, self)\n else:\n if self.borderRadius() > 0.0:\n clipPath = QPainterPath()\n clipPath.addRect(self.rect())\n clipPath = clipPath.subtracted(self.borderPath(self.rect()))\n painter.save()\n painter.setClipPath(clipPath, Qt.IntersectClip)\n qwtFillBackground(painter, self)\n qwtDrawBackground(painter, self)\n painter.restore()\n self.drawCanvas(painter, False)\n if self.frameWidth() > 0:\n self.drawBorder(painter)\n if self.hasFocus() and self.focusIndicator() == self.CanvasFocusIndicator:\n self.drawFocusIndicator(painter)
\n\n\n def drawCanvas(self, painter, withBackground):\n hackStyledBackground = False\n if (\n withBackground\n and self.testAttribute(Qt.WA_StyledBackground)\n and self.testPaintAttribute(self.HackStyledBackground)\n ):\n # Antialiasing rounded borders is done by\n # inserting pixels with colors between the\n # border color and the color on the canvas,\n # When the border is painted before the plot items\n # these colors are interpolated for the canvas\n # and the plot items need to be clipped excluding\n # the anialiased pixels. In situations, where\n # the plot items fill the area at the rounded\n # borders this is noticeable.\n # The only way to avoid these annoying "artefacts"\n # is to paint the border on top of the plot items.\n if (\n self.__data.styleSheet.hasBorder\n and not self.__data.styleSheet.borderPath.isEmpty()\n ):\n # We have a border with at least one rounded corner\n hackStyledBackground = True\n if withBackground:\n painter.save()\n if self.testAttribute(Qt.WA_StyledBackground):\n if hackStyledBackground:\n # paint background without border\n painter.setPen(Qt.NoPen)\n painter.setBrush(self.__data.styleSheet.background.brush)\n painter.setBrushOrigin(self.__data.styleSheet.background.origin)\n painter.setClipPath(self.__data.styleSheet.borderPath)\n painter.drawRect(self.contentsRect())\n else:\n qwtDrawStyledBackground(self, painter)\n elif self.autoFillBackground():\n painter.setPen(Qt.NoPen)\n painter.setBrush(self.palette().brush(self.backgroundRole()))\n if self.__data.borderRadius > 0.0 and self.rect() == self.frameRect():\n if self.frameWidth() > 0:\n painter.setClipPath(self.borderPath(self.rect()))\n painter.drawRect(self.rect())\n else:\n painter.setRenderHint(QPainter.Antialiasing, True)\n painter.drawPath(self.borderPath(self.rect()))\n else:\n painter.drawRect(self.rect())\n painter.restore()\n painter.save()\n if not self.__data.styleSheet.borderPath.isEmpty():\n painter.setClipPath(self.__data.styleSheet.borderPath, Qt.IntersectClip)\n else:\n if self.__data.borderRadius > 0.0:\n painter.setClipPath(self.borderPath(self.frameRect()), Qt.IntersectClip)\n else:\n # print('**DEBUG: QwtPlotCanvas.drawCanvas')\n painter.setClipRect(self.contentsRect(), Qt.IntersectClip)\n self.plot().drawCanvas(painter)\n painter.restore()\n if withBackground and hackStyledBackground:\n # Now paint the border on top\n opt = QStyleOptionFrame()\n opt.initFrom(self)\n self.style().drawPrimitive(QStyle.PE_Frame, opt, painter, self)\n\n
\n[docs]\n def drawBorder(self, painter):\n """\n Draw the border of the plot canvas\n\n :param QPainter painter: Painter\n\n .. seealso::\n\n :py:meth:`setBorderRadius()`\n """\n if self.__data.borderRadius > 0:\n if self.frameWidth() > 0:\n QwtPainter.drawRoundedFrame(\n painter,\n QRectF(self.frameRect()),\n self.__data.borderRadius,\n self.__data.borderRadius,\n self.palette(),\n self.frameWidth(),\n self.frameStyle(),\n )\n else:\n opt = QStyleOptionFrame()\n opt.initFrom(self)\n try:\n shape_mask = QFrame.Shape_Mask.value\n shadow_mask = QFrame.Shadow_Mask.value\n except AttributeError:\n shape_mask = QFrame.Shape_Mask\n shadow_mask = QFrame.Shadow_Mask\n frameShape = self.frameStyle() & shape_mask\n frameShadow = self.frameStyle() & shadow_mask\n opt.frameShape = QFrame.Shape(int(opt.frameShape) | frameShape)\n if frameShape in (\n QFrame.Box,\n QFrame.HLine,\n QFrame.VLine,\n QFrame.StyledPanel,\n QFrame.Panel,\n ):\n opt.lineWidth = self.lineWidth()\n opt.midLineWidth = self.midLineWidth()\n else:\n opt.lineWidth = self.frameWidth()\n if frameShadow == QFrame.Sunken:\n opt.state |= QStyle.State_Sunken\n elif frameShadow == QFrame.Raised:\n opt.state |= QStyle.State_Raised\n self.style().drawControl(QStyle.CE_ShapedFrame, opt, painter, self)
\n\n\n
\n[docs]\n def resizeEvent(self, event):\n QFrame.resizeEvent(self, event)\n self.updateStyleSheetInfo()
\n\n\n
\n[docs]\n def drawFocusIndicator(self, painter):\n """\n Draw the focus indication\n\n :param QPainter painter: Painter\n """\n margin = 1\n focusRect = self.contentsRect()\n focusRect.setRect(\n focusRect.x() + margin,\n focusRect.y() + margin,\n focusRect.width() - 2 * margin,\n focusRect.height() - 2 * margin,\n )\n QwtPainter.drawFocusRect(painter, self, focusRect)
\n\n\n
\n[docs]\n def replot(self):\n """\n Invalidate the paint cache and repaint the canvas\n """\n self.invalidateBackingStore()\n if self.testPaintAttribute(self.ImmediatePaint):\n self.repaint(self.contentsRect())\n else:\n self.update(self.contentsRect())
\n\n\n def invalidatePaintCache(self):\n import warnings\n\n warnings.warn(\n "`invalidatePaintCache` has been removed: " "please use `replot` instead",\n RuntimeWarning,\n )\n self.replot()\n\n
\n[docs]\n def updateStyleSheetInfo(self):\n """\n Update the cached information about the current style sheet\n """\n if not self.testAttribute(Qt.WA_StyledBackground):\n return\n recorder = QwtStyleSheetRecorder(self.size())\n painter = QPainter(recorder)\n opt = QStyleOption()\n opt.initFrom(self)\n self.style().drawPrimitive(QStyle.PE_Widget, opt, painter, self)\n painter.end()\n self.__data.styleSheet.hasBorder = len(recorder.border.rectList) > 0\n self.__data.styleSheet.cornerRects = recorder.clipRects\n if recorder.background.path.isEmpty():\n if self.__data.styleSheet.hasBorder:\n self.__data.styleSheet.borderPath = qwtCombinePathList(\n self.rect(), recorder.border.pathlist\n )\n else:\n self.__data.styleSheet.borderPath = recorder.background.path\n self.__data.styleSheet.background.brush = recorder.background.brush\n self.__data.styleSheet.background.origin = recorder.background.origin
\n\n\n
\n[docs]\n def borderPath(self, rect):\n """\n Calculate the painter path for a styled or rounded border\n\n When the canvas has no styled background or rounded borders\n the painter path is empty.\n\n :param QRect rect: Bounding rectangle of the canvas\n :return: Painter path, that can be used for clipping\n """\n if self.testAttribute(Qt.WA_StyledBackground):\n recorder = QwtStyleSheetRecorder(rect.size())\n painter = QPainter(recorder)\n opt = QStyleOption()\n opt.initFrom(self)\n opt.rect = rect\n self.style().drawPrimitive(QStyle.PE_Widget, opt, painter, self)\n painter.end()\n if not recorder.background.path.isEmpty():\n return recorder.background.path\n if len(recorder.border.rectList) > 0:\n return qwtCombinePathList(rect, recorder.border.pathlist)\n elif self.__data.borderRadius > 0.0:\n fw2 = self.frameWidth() * 0.5\n r = QRectF(rect).adjusted(fw2, fw2, -fw2, -fw2)\n path = QPainterPath()\n path.addRoundedRect(r, self.__data.borderRadius, self.__data.borderRadius)\n return path\n return QPainterPath()
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39f69da0>, 'js_tag': .js_tag at 0x7f3d39f6a520>}, None) highlighting module code... [ 38%] qwt.plot_curve [app] emitting event: 'viewcode-find-source'('qwt.plot_curve',) -[app] emitting event: 'html-page-context'('_modules/qwt/plot_curve', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_curve', 'current_page_name': '_modules/qwt/plot_curve', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b21300>, 'hasdoc': .hasdoc at 0x7fc7d6b21800>, 'toctree': . at 0x7fc7d6b20360>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_curve', 'body': '

Source code for qwt.plot_curve

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotCurve\n------------\n\n.. autoclass:: QwtPlotCurve\n   :members:\n"""\n\nimport math\nimport os\n\nfrom qtpy.QtCore import QLineF, QPointF, QRectF, QSize, Qt\nfrom qtpy.QtGui import QBrush, QColor, QPainter, QPen, QPolygonF\n\nfrom qwt._math import qwtSqr\nfrom qwt.graphic import QwtGraphic\nfrom qwt.plot import QwtPlot, QwtPlotItem, QwtPlotItem_PrivateData\nfrom qwt.plot_directpainter import QwtPlotDirectPainter\nfrom qwt.plot_series import (\n    QwtPlotSeriesItem,\n    QwtPointArrayData,\n    QwtSeriesData,\n    QwtSeriesStore,\n)\nfrom qwt.qthelpers import qcolor_from_str\nfrom qwt.symbol import QwtSymbol\nfrom qwt.text import QwtText\n\nQT_API = os.environ["QT_API"]\n\nif QT_API == "pyside6":\n    import ctypes\n\n    import shiboken6 as shiboken\n\nimport numpy as np\n\n\ndef qwtUpdateLegendIconSize(curve):\n    if curve.symbol() and curve.testLegendAttribute(QwtPlotCurve.LegendShowSymbol):\n        sz = curve.symbol().boundingRect().size()\n        sz += QSize(2, 2)\n        if curve.testLegendAttribute(QwtPlotCurve.LegendShowLine):\n            w = math.ceil(1.5 * sz.width())\n            if w % 2:\n                w += 1\n            sz.setWidth(max([8, w]))\n        curve.setLegendIconSize(sz)\n\n\ndef qwtVerifyRange(size, i1, i2):\n    if size < 1:\n        return 0\n    i1 = max([0, min([i1, size - 1])])\n    i2 = max([0, min([i2, size - 1])])\n    if i1 > i2:\n        i1, i2 = i2, i1\n    return i2 - i1 + 1\n\n\ndef array2d_to_qpolygonf(xdata, ydata):\n    """\n    Utility function to convert two 1D-NumPy arrays representing curve data\n    (X-axis, Y-axis data) into a single polyline (QtGui.PolygonF object).\n    This feature is compatible with PyQt5 and PySide6 (requires QtPy).\n\n    License/copyright: MIT License © Pierre Raybaut 2020-2021.\n\n    :param numpy.ndarray xdata: 1D-NumPy array\n    :param numpy.ndarray ydata: 1D-NumPy array\n    :return: Polyline\n    :rtype: QtGui.QPolygonF\n    """\n    if not (xdata.size == ydata.size == xdata.shape[0] == ydata.shape[0]):\n        raise ValueError("Arguments must be 1D NumPy arrays with same size")\n    size = xdata.size\n    if QT_API.startswith("pyside"):  # PySide (obviously...)\n        polyline = QPolygonF()\n        polyline.resize(size)\n        address = shiboken.getCppPointer(polyline.data())[0]\n        buffer = (ctypes.c_double * 2 * size).from_address(address)\n    else:  # PyQt\n        if QT_API == "pyqt6":\n            polyline = QPolygonF([QPointF(0, 0)] * size)\n        else:\n            polyline = QPolygonF(size)\n        buffer = polyline.data()\n        buffer.setsize(16 * size)  # 16 bytes per point: 8 bytes per X,Y value (float64)\n    memory = np.frombuffer(buffer, np.float64)\n    memory[: (size - 1) * 2 + 1 : 2] = np.asarray(xdata, dtype=np.float64)\n    memory[1 : (size - 1) * 2 + 2 : 2] = np.asarray(ydata, dtype=np.float64)\n    return polyline\n\n\ndef series_to_polyline(xMap, yMap, series, from_, to):\n    """\n    Convert series data to QPolygon(F) polyline\n    """\n    xdata = xMap.transform(series.xData()[from_ : to + 1])\n    ydata = yMap.transform(series.yData()[from_ : to + 1])\n    return array2d_to_qpolygonf(xdata, ydata)\n\n\nclass QwtPlotCurve_PrivateData(QwtPlotItem_PrivateData):\n    def __init__(self):\n        QwtPlotItem_PrivateData.__init__(self)\n        self.style = QwtPlotCurve.Lines\n        self.baseline = 0.0\n        self.symbol = None\n        self.attributes = 0\n        self.legendAttributes = QwtPlotCurve.LegendShowLine\n        self.pen = QPen(Qt.black)\n        self.brush = QBrush()\n\n\n
\n[docs]\nclass QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore):\n """\n A plot item, that represents a series of points\n\n A curve is the representation of a series of points in the x-y plane.\n It supports different display styles and symbols.\n\n .. seealso::\n\n :py:class:`qwt.symbol.QwtSymbol()`,\n :py:class:`qwt.scale_map.QwtScaleMap()`\n\n Curve styles:\n\n * `QwtPlotCurve.NoCurve`:\n\n Don't draw a curve. Note: This doesn't affect the symbols.\n\n * `QwtPlotCurve.Lines`:\n\n Connect the points with straight lines.\n\n * `QwtPlotCurve.Sticks`:\n\n Draw vertical or horizontal sticks ( depending on the\n orientation() ) from a baseline which is defined by setBaseline().\n\n * `QwtPlotCurve.Steps`:\n\n Connect the points with a step function. The step function\n is drawn from the left to the right or vice versa,\n depending on the QwtPlotCurve::Inverted attribute.\n\n * `QwtPlotCurve.Dots`:\n\n Draw dots at the locations of the data points. Note:\n This is different from a dotted line (see setPen()), and faster\n as a curve in QwtPlotCurve::NoStyle style and a symbol\n painting a point.\n\n * `QwtPlotCurve.UserCurve`:\n\n Styles >= QwtPlotCurve.UserCurve are reserved for derived\n classes of QwtPlotCurve that overload drawCurve() with\n additional application specific curve types.\n\n Curve attributes:\n\n * `QwtPlotCurve.Inverted`:\n\n For `QwtPlotCurve.Steps` only.\n Draws a step function from the right to the left.\n\n Legend attributes:\n\n * `QwtPlotCurve.LegendNoAttribute`:\n\n `QwtPlotCurve` tries to find a color representing the curve\n and paints a rectangle with it.\n\n * `QwtPlotCurve.LegendShowLine`:\n\n If the style() is not `QwtPlotCurve.NoCurve` a line\n is painted with the curve pen().\n\n * `QwtPlotCurve.LegendShowSymbol`:\n\n If the curve has a valid symbol it is painted.\n\n * `QwtPlotCurve.LegendShowBrush`:\n\n If the curve has a brush a rectangle filled with the\n curve brush() is painted.\n\n\n .. py:class:: QwtPlotCurve([title=None])\n\n Constructor\n\n :param title: Curve title\n :type title: qwt.text.QwtText or str or None\n """\n\n # enum CurveStyle\n NoCurve = -1\n Lines, Sticks, Steps, Dots = list(range(4))\n UserCurve = 100\n\n # enum CurveAttribute\n Inverted = 0x01\n\n # enum LegendAttribute\n LegendNoAttribute = 0x00\n LegendShowLine = 0x01\n LegendShowSymbol = 0x02\n LegendShowBrush = 0x04\n\n def __init__(self, title=None):\n if title is None:\n title = QwtText("")\n if not isinstance(title, QwtText):\n title = QwtText(title)\n self.__data = None\n QwtPlotSeriesItem.__init__(self, title)\n QwtSeriesStore.__init__(self)\n self.init()\n\n
\n[docs]\n @classmethod\n def make(\n cls,\n xdata=None,\n ydata=None,\n title=None,\n plot=None,\n z=None,\n x_axis=None,\n y_axis=None,\n style=None,\n symbol=None,\n linecolor=None,\n linewidth=None,\n linestyle=None,\n antialiased=False,\n size=None,\n finite=None,\n ):\n """\n Create and setup a new `QwtPlotCurve` object (convenience function).\n\n :param xdata: List/array of x values\n :param ydata: List/array of y values\n :param title: Curve title\n :type title: qwt.text.QwtText or str or None\n :param plot: Plot to attach the curve to\n :type plot: qwt.plot.QwtPlot or None\n :param z: Z-value\n :type z: float or None\n :param x_axis: curve X-axis (default: QwtPlot.yLeft)\n :type x_axis: int or None\n :param y_axis: curve Y-axis (default: QwtPlot.xBottom)\n :type y_axis: int or None\n :param style: curve style (`QwtPlotCurve.NoCurve`, `QwtPlotCurve.Lines`, `QwtPlotCurve.Sticks`, `QwtPlotCurve.Steps`, `QwtPlotCurve.Dots`, `QwtPlotCurve.UserCurve`)\n :type style: int or None\n :param symbol: curve symbol\n :type symbol: qwt.symbol.QwtSymbol or None\n :param linecolor: curve line color\n :type linecolor: QColor or str or None\n :param linewidth: curve line width\n :type linewidth: float or None\n :param linestyle: curve pen style\n :type linestyle: Qt.PenStyle or None\n :param bool antialiased: if True, enable antialiasing rendering\n :param size: size of xData and yData\n :type size: int or None\n :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements\n\n .. seealso::\n\n :py:meth:`setData()`, :py:meth:`setPen()`, :py:meth:`attach()`\n """\n item = cls(title)\n if z is not None:\n item.setZ(z)\n if xdata is not None or ydata is not None:\n if xdata is None:\n raise ValueError("Missing xdata parameter")\n if ydata is None:\n raise ValueError("Missing ydata parameter")\n item.setData(xdata, ydata, size=size, finite=finite)\n x_axis = QwtPlot.xBottom if x_axis is None else x_axis\n y_axis = QwtPlot.yLeft if y_axis is None else y_axis\n item.setAxes(x_axis, y_axis)\n if style is not None:\n item.setStyle(style)\n if symbol is not None:\n item.setSymbol(symbol)\n linecolor = qcolor_from_str(linecolor, Qt.black)\n linewidth = 1.0 if linewidth is None else linewidth\n linestyle = Qt.SolidLine if linestyle is None else linestyle\n item.setPen(QPen(linecolor, linewidth, linestyle))\n item.setRenderHint(cls.RenderAntialiased, antialiased)\n if plot is not None:\n item.attach(plot)\n return item
\n\n\n
\n[docs]\n def init(self):\n """Initialize internal members"""\n self.__data = QwtPlotCurve_PrivateData()\n self.setItemAttribute(QwtPlotItem.Legend)\n self.setItemAttribute(QwtPlotItem.AutoScale)\n self.setData(QwtPointArrayData())\n self.setZ(20.0)
\n\n\n
\n[docs]\n def rtti(self):\n """:return: `QwtPlotItem.Rtti_PlotCurve`"""\n return QwtPlotItem.Rtti_PlotCurve
\n\n\n
\n[docs]\n def setLegendAttribute(self, attribute, on=True):\n """\n Specify an attribute how to draw the legend icon\n\n Legend attributes:\n\n * `QwtPlotCurve.LegendNoAttribute`\n * `QwtPlotCurve.LegendShowLine`\n * `QwtPlotCurve.LegendShowSymbol`\n * `QwtPlotCurve.LegendShowBrush`\n\n :param int attribute: Legend attribute\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`testLegendAttribute()`, :py:meth:`legendIcon()`\n """\n if on != self.testLegendAttribute(attribute):\n if on:\n self.__data.legendAttributes |= attribute\n else:\n self.__data.legendAttributes &= ~attribute\n qwtUpdateLegendIconSize(self)\n self.legendChanged()
\n\n\n
\n[docs]\n def testLegendAttribute(self, attribute):\n """\n :param int attribute: Legend attribute\n :return: True, when attribute is enabled\n\n .. seealso::\n\n :py:meth:`setLegendAttribute()`\n """\n return self.__data.legendAttributes & attribute
\n\n\n
\n[docs]\n def setStyle(self, style):\n """\n Set the curve's drawing style\n\n Valid curve styles:\n\n * `QwtPlotCurve.NoCurve`\n * `QwtPlotCurve.Lines`\n * `QwtPlotCurve.Sticks`\n * `QwtPlotCurve.Steps`\n * `QwtPlotCurve.Dots`\n * `QwtPlotCurve.UserCurve`\n\n :param int style: Curve style\n\n .. seealso::\n\n :py:meth:`style()`\n """\n if style != self.__data.style:\n self.__data.style = style\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def style(self):\n """\n :return: Style of the curve\n\n .. seealso::\n\n :py:meth:`setStyle()`\n """\n return self.__data.style
\n\n\n
\n[docs]\n def setSymbol(self, symbol):\n """\n Assign a symbol\n\n The curve will take the ownership of the symbol, hence the previously\n set symbol will be delete by setting a new one. If symbol is None no\n symbol will be drawn.\n\n :param qwt.symbol.QwtSymbol symbol: Symbol\n\n .. seealso::\n\n :py:meth:`symbol()`\n """\n if symbol != self.__data.symbol:\n self.__data.symbol = symbol\n qwtUpdateLegendIconSize(self)\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def symbol(self):\n """\n :return: Current symbol or None, when no symbol has been assigned\n\n .. seealso::\n\n :py:meth:`setSymbol()`\n """\n return self.__data.symbol
\n\n\n
\n[docs]\n def setPen(self, *args):\n """\n Build and/or assign a pen, depending on the arguments.\n\n .. py:method:: setPen(color, width, style)\n :noindex:\n\n Build and assign a pen\n\n In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\n non cosmetic (see `QPen.isCosmetic()`). This method signature has\n been introduced to hide this incompatibility.\n\n :param QColor color: Pen color\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n\n .. py:method:: setPen(pen)\n :noindex:\n\n Assign a pen\n\n :param QPen pen: New pen\n\n .. seealso::\n\n :py:meth:`pen()`, :py:meth:`brush()`\n """\n if len(args) == 3:\n color, width, style = args\n pen = QPen(color, width, style)\n elif len(args) == 1:\n (pen,) = args\n else:\n raise TypeError(\n "%s().setPen() takes 1 or 3 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n if pen != self.__data.pen:\n if isinstance(pen, QColor):\n pen = QPen(pen)\n else:\n assert isinstance(pen, QPen)\n self.__data.pen = pen\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def pen(self):\n """\n :return: Pen used to draw the lines\n\n .. seealso::\n\n :py:meth:`setPen()`, :py:meth:`brush()`\n """\n return self.__data.pen
\n\n\n
\n[docs]\n def setBrush(self, brush):\n """\n Assign a brush.\n\n In case of `brush.style() != QBrush.NoBrush`\n and `style() != QwtPlotCurve.Sticks`\n the area between the curve and the baseline will be filled.\n\n In case `not brush.color().isValid()` the area will be filled by\n `pen.color()`. The fill algorithm simply connects the first and the\n last curve point to the baseline. So the curve data has to be sorted\n (ascending or descending).\n\n :param brush: New brush\n :type brush: QBrush or QColor\n\n .. seealso::\n\n :py:meth:`brush()`, :py:meth:`setBaseline()`, :py:meth:`baseline()`\n """\n if isinstance(brush, QColor):\n brush = QBrush(brush)\n else:\n assert isinstance(brush, QBrush)\n if brush != self.__data.brush:\n self.__data.brush = brush\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def brush(self):\n """\n :return: Brush used to fill the area between lines and the baseline\n\n .. seealso::\n\n :py:meth:`setBrush()`, :py:meth:`setBaseline()`,\n :py:meth:`baseline()`\n """\n return self.__data.brush
\n\n\n
\n[docs]\n def directPaint(self, from_, to):\n """\n When observing a measurement while it is running, new points have\n to be added to an existing seriesItem. This method can be used to\n display them avoiding a complete redraw of the canvas.\n\n Setting `plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)`\n will result in faster painting, if the paint engine of the canvas\n widget supports this feature.\n\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted\n\n .. seealso::\n\n :py:meth:`drawSeries()`\n """\n directPainter = QwtPlotDirectPainter(self.plot())\n directPainter.drawSeries(self, from_, to)
\n\n\n
\n[docs]\n def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to):\n """\n Draw an interval of the curve\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`drawCurve()`, :py:meth:`drawSymbols()`\n """\n numSamples = self.dataSize()\n if not painter or numSamples <= 0:\n return\n if to < 0:\n to = numSamples - 1\n if qwtVerifyRange(numSamples, from_, to) > 0:\n painter.save()\n painter.setPen(self.__data.pen)\n self.drawCurve(\n painter, self.__data.style, xMap, yMap, canvasRect, from_, to\n )\n painter.restore()\n if self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol:\n painter.save()\n self.drawSymbols(\n painter, self.__data.symbol, xMap, yMap, canvasRect, from_, to\n )\n painter.restore()
\n\n\n
\n[docs]\n def drawCurve(self, painter, style, xMap, yMap, canvasRect, from_, to):\n """\n Draw the line part (without symbols) of a curve interval.\n\n :param QPainter painter: Painter\n :param int style: curve style, see `QwtPlotCurve.CurveStyle`\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`draw()`, :py:meth:`drawDots()`, :py:meth:`drawLines()`,\n :py:meth:`drawSteps()`, :py:meth:`drawSticks()`\n """\n if style == self.Lines:\n self.drawLines(painter, xMap, yMap, canvasRect, from_, to)\n elif style == self.Sticks:\n self.drawSticks(painter, xMap, yMap, canvasRect, from_, to)\n elif style == self.Steps:\n self.drawSteps(painter, xMap, yMap, canvasRect, from_, to)\n elif style == self.Dots:\n self.drawDots(painter, xMap, yMap, canvasRect, from_, to)
\n\n\n
\n[docs]\n def drawLines(self, painter, xMap, yMap, canvasRect, from_, to):\n """\n Draw lines\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`draw()`, :py:meth:`drawDots()`,\n :py:meth:`drawSteps()`, :py:meth:`drawSticks()`\n """\n if from_ > to:\n return\n doFill = (\n self.__data.brush.style() != Qt.NoBrush\n and self.__data.brush.color().alpha() > 0\n )\n polyline = series_to_polyline(xMap, yMap, self.data(), from_, to)\n painter.drawPolyline(polyline)\n if doFill:\n self.fillCurve(painter, xMap, yMap, canvasRect, polyline)
\n\n\n
\n[docs]\n def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to):\n """\n Draw sticks\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`draw()`, :py:meth:`drawDots()`,\n :py:meth:`drawSteps()`, :py:meth:`drawLines()`\n """\n painter.save()\n painter.setRenderHint(QPainter.Antialiasing, False)\n x0 = xMap.transform(self.__data.baseline)\n y0 = yMap.transform(self.__data.baseline)\n o = self.orientation()\n series = self.data()\n for i in range(from_, to + 1):\n sample = series.sample(i)\n xi = xMap.transform(sample.x())\n yi = yMap.transform(sample.y())\n if o == Qt.Horizontal:\n painter.drawLine(QLineF(xi, y0, xi, yi))\n else:\n painter.drawLine(QLineF(x0, yi, xi, yi))\n painter.restore()
\n\n\n
\n[docs]\n def drawDots(self, painter, xMap, yMap, canvasRect, from_, to):\n """\n Draw dots\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`draw()`, :py:meth:`drawSticks()`,\n :py:meth:`drawSteps()`, :py:meth:`drawLines()`\n """\n doFill = (\n self.__data.brush.style() != Qt.NoBrush\n and self.__data.brush.color().alpha() > 0\n )\n polyline = series_to_polyline(xMap, yMap, self.data(), from_, to)\n painter.drawPoints(polyline)\n if doFill:\n self.fillCurve(painter, xMap, yMap, canvasRect, polyline)
\n\n\n
\n[docs]\n def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to):\n """\n Draw steps\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`draw()`, :py:meth:`drawSticks()`,\n :py:meth:`drawDots()`, :py:meth:`drawLines()`\n """\n size = 2 * (to - from_) + 1\n if QT_API == "pyside6":\n polygon = QPolygonF()\n polygon.resize(size)\n elif QT_API == "pyqt6":\n polygon = QPolygonF([QPointF(0, 0)] * size)\n else:\n polygon = QPolygonF(size)\n inverted = self.orientation() == Qt.Vertical\n if self.__data.attributes & self.Inverted:\n inverted = not inverted\n series = self.data()\n ip = 0\n for i in range(from_, to + 1):\n sample = series.sample(i)\n xi = xMap.transform(sample.x())\n yi = yMap.transform(sample.y())\n if ip > 0:\n p0 = polygon[ip - 2]\n if inverted:\n polygon[ip - 1] = QPointF(p0.x(), yi)\n else:\n polygon[ip - 1] = QPointF(xi, p0.y())\n polygon[ip] = QPointF(xi, yi)\n ip += 2\n painter.drawPolyline(polygon)\n if self.__data.brush.style() != Qt.NoBrush:\n self.fillCurve(painter, xMap, yMap, canvasRect, polygon)
\n\n\n
\n[docs]\n def setCurveAttribute(self, attribute, on=True):\n """\n Specify an attribute for drawing the curve\n\n Supported curve attributes:\n\n * `QwtPlotCurve.Inverted`\n\n :param int attribute: Curve attribute\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`testCurveAttribute()`\n """\n if (self.__data.attributes & attribute) == on:\n return\n if on:\n self.__data.attributes |= attribute\n else:\n self.__data.attributes &= ~attribute\n self.itemChanged()
\n\n\n
\n[docs]\n def testCurveAttribute(self, attribute):\n """\n :return: True, if attribute is enabled\n\n .. seealso::\n\n :py:meth:`setCurveAttribute()`\n """\n return self.__data.attributes & attribute
\n\n\n
\n[docs]\n def fillCurve(self, painter, xMap, yMap, canvasRect, polygon):\n """\n Fill the area between the curve and the baseline with\n the curve brush\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param QPolygonF polygon: Polygon - will be modified !\n\n .. seealso::\n\n :py:meth:`setBrush()`, :py:meth:`setBaseline()`,\n :py:meth:`setStyle()`\n """\n if self.__data.brush.style() == Qt.NoBrush:\n return\n self.closePolyline(painter, xMap, yMap, polygon)\n if polygon.count() <= 2:\n return\n brush = self.__data.brush\n if not brush.color().isValid():\n brush.setColor(self.__data.pen.color())\n painter.save()\n painter.setPen(Qt.NoPen)\n painter.setBrush(brush)\n painter.drawPolygon(polygon)\n painter.restore()
\n\n\n
\n[docs]\n def closePolyline(self, painter, xMap, yMap, polygon):\n """\n Complete a polygon to be a closed polygon including the\n area between the original polygon and the baseline.\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QPolygonF polygon: Polygon to be completed\n """\n if polygon.size() < 2:\n return\n baseline = self.__data.baseline\n if self.orientation() == Qt.Horizontal:\n if yMap.transformation():\n baseline = yMap.transformation().bounded(baseline)\n refY = yMap.transform(baseline)\n polygon.append(QPointF(polygon.last().x(), refY))\n polygon.append(QPointF(polygon.first().x(), refY))\n else:\n if xMap.transformation():\n baseline = xMap.transformation().bounded(baseline)\n refX = xMap.transform(baseline)\n polygon.append(QPointF(refX, polygon.last().y()))\n polygon.append(QPointF(refX, polygon.first().y()))
\n\n\n
\n[docs]\n def drawSymbols(self, painter, symbol, xMap, yMap, canvasRect, from_, to):\n """\n Draw symbols\n\n :param QPainter painter: Painter\n :param qwt.symbol.QwtSymbol symbol: Curve symbol\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`setSymbol()`, :py:meth:`drawSeries()`,\n :py:meth:`drawCurve()`\n """\n chunkSize = 500\n for i in range(from_, to + 1, chunkSize):\n n = min([chunkSize, to - i + 1])\n points = series_to_polyline(xMap, yMap, self.data(), i, i + n - 1)\n if points.size() > 0:\n symbol.drawSymbols(painter, points)
\n\n\n
\n[docs]\n def setBaseline(self, value):\n """\n Set the value of the baseline\n\n The baseline is needed for filling the curve with a brush or\n the Sticks drawing style.\n\n The interpretation of the baseline depends on the `orientation()`.\n With `Qt.Horizontal`, the baseline is interpreted as a horizontal line\n at y = baseline(), with `Qt.Vertical`, it is interpreted as a vertical\n line at x = baseline().\n\n The default value is 0.0.\n\n :param float value: Value of the baseline\n\n .. seealso::\n\n :py:meth:`baseline()`, :py:meth:`setBrush()`,\n :py:meth:`setStyle()`\n """\n if self.__data.baseline != value:\n self.__data.baseline = value\n self.itemChanged()
\n\n\n
\n[docs]\n def baseline(self):\n """\n :return: Value of the baseline\n\n .. seealso::\n\n :py:meth:`setBaseline()`\n """\n return self.__data.baseline
\n\n\n
\n[docs]\n def closestPoint(self, pos):\n """\n Find the closest curve point for a specific position\n\n :param QPoint pos: Position, where to look for the closest curve point\n :return: tuple `(index, dist)`\n\n `dist` is the distance between the position and the closest curve\n point. `index` is the index of the closest curve point, or -1 if\n none can be found ( f.e when the curve has no points ).\n\n .. note::\n\n `closestPoint()` implements a dumb algorithm, that iterates\n over all points\n """\n numSamples = self.dataSize()\n if self.plot() is None or numSamples <= 0:\n return -1\n series = self.data()\n xMap = self.plot().canvasMap(self.xAxis())\n yMap = self.plot().canvasMap(self.yAxis())\n index = -1\n dmin = 1.0e10\n for i in range(numSamples):\n sample = series.sample(i)\n cx = xMap.transform(sample.x()) - pos.x()\n cy = yMap.transform(sample.y()) - pos.y()\n f = qwtSqr(cx) + qwtSqr(cy)\n if f < dmin:\n index = i\n dmin = f\n dist = math.sqrt(dmin)\n return index, dist
\n\n\n
\n[docs]\n def legendIcon(self, index, size):\n """\n :param int index: Index of the legend entry (ignored as there is only one)\n :param QSizeF size: Icon size\n :return: Icon representing the curve on the legend\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`,\n :py:meth:`qwt.plot.QwtPlotItem.legendData()`\n """\n if size.isEmpty():\n return QwtGraphic()\n graphic = QwtGraphic()\n graphic.setDefaultSize(size)\n graphic.setRenderHint(QwtGraphic.RenderPensUnscaled, True)\n painter = QPainter(graphic)\n painter.setRenderHint(\n QPainter.Antialiasing, self.testRenderHint(QwtPlotItem.RenderAntialiased)\n )\n if self.__data.legendAttributes == 0 or (\n self.__data.legendAttributes & QwtPlotCurve.LegendShowBrush\n ):\n brush = self.__data.brush\n if brush.style() == Qt.NoBrush and self.__data.legendAttributes == 0:\n if self.style() != QwtPlotCurve.NoCurve:\n brush = QBrush(self.pen().color())\n elif (\n self.__data.symbol\n and self.__data.symbol.style() != QwtSymbol.NoSymbol\n ):\n brush = QBrush(self.__data.symbol.pen().color())\n if brush.style() != Qt.NoBrush:\n r = QRectF(0, 0, size.width(), size.height())\n painter.fillRect(r, brush)\n if self.__data.legendAttributes & QwtPlotCurve.LegendShowLine:\n if self.pen() != Qt.NoPen:\n painter.setPen(self.pen())\n y = size.height() // 2\n painter.drawLine(QLineF(0, y, size.width(), y))\n if self.__data.legendAttributes & QwtPlotCurve.LegendShowSymbol:\n if self.__data.symbol:\n r = QRectF(0, 0, size.width(), size.height())\n self.__data.symbol.drawSymbol(painter, r)\n return graphic
\n\n\n
\n[docs]\n def setData(self, *args, **kwargs):\n """\n Initialize data with a series data object or an array of points.\n\n .. py:method:: setData(data):\n\n :param data: Series data (e.g. `QwtPointArrayData` instance)\n :type data: .plot_series.QwtSeriesData\n\n .. py:method:: setData(xData, yData, [size=None], [finite=True]):\n\n Initialize data with `x` and `y` arrays.\n\n This signature was removed in Qwt6 and is temporarily maintained here to ensure compatibility with Qwt5.\n\n Same as `setSamples(x, y, [size=None], [finite=True])`\n\n :param x: List/array of x values\n :param y: List/array of y values\n :param size: size of xData and yData\n :type size: int or None\n :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements\n\n .. seealso::\n\n :py:meth:`setSamples()`\n """\n if len(args) == 1 and not kwargs:\n super(QwtPlotCurve, self).setData(*args)\n elif len(args) in (2, 3, 4):\n self.setSamples(*args, **kwargs)\n else:\n raise TypeError(\n "%s().setData() takes 1, 2, 3 or 4 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def setSamples(self, *args, **kwargs):\n """\n Initialize data with an array of points.\n\n .. py:method:: setSamples(data):\n\n :param data: Series data (e.g. `QwtPointArrayData` instance)\n :type data: .plot_series.QwtSeriesData\n\n\n .. py:method:: setSamples(samples):\n\n Same as `setData(QwtPointArrayData(samples))`\n\n :param samples: List/array of points\n\n .. py:method:: setSamples(xData, yData, [size=None], [finite=True]):\n\n Same as `setData(QwtPointArrayData(xData, yData, [size=None]))`\n\n :param xData: List/array of x values\n :param yData: List/array of y values\n :param size: size of xData and yData\n :type size: int or None\n :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements\n\n .. seealso::\n\n :py:class:`.plot_series.QwtPointArrayData`\n """\n if len(args) == 1 and not kwargs:\n (samples,) = args\n if isinstance(samples, QwtSeriesData):\n self.setData(samples)\n else:\n self.setData(QwtPointArrayData(samples))\n elif len(args) >= 2:\n xData, yData = args[:2]\n try:\n size = kwargs.pop("size")\n except KeyError:\n size = None\n try:\n finite = kwargs.pop("finite")\n except KeyError:\n finite = None\n if kwargs:\n raise TypeError(\n "%s().setSamples(): unknown %s keyword "\n "argument(s)"\n % (self.__class__.__name__, ", ".join(list(kwargs.keys())))\n )\n for arg in args[2:]:\n if isinstance(arg, bool):\n finite = arg\n elif isinstance(arg, int):\n size = arg\n self.setData(QwtPointArrayData(xData, yData, size=size, finite=finite))\n else:\n raise TypeError(\n "%s().setSamples() takes 1, 2 or 3 argument(s) "\n "(%s given)" % (self.__class__.__name__, len(args))\n )
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6b236a0>, 'js_tag': .js_tag at 0x7fc7d6b202c0>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/plot_curve', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_curve', 'current_page_name': '_modules/qwt/plot_curve', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f69300>, 'hasdoc': .hasdoc at 0x7f3d39f69800>, 'toctree': . at 0x7f3d39f68360>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_curve', 'body': '

Source code for qwt.plot_curve

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotCurve\n------------\n\n.. autoclass:: QwtPlotCurve\n   :members:\n"""\n\nimport math\nimport os\n\nfrom qtpy.QtCore import QLineF, QPointF, QRectF, QSize, Qt\nfrom qtpy.QtGui import QBrush, QColor, QPainter, QPen, QPolygonF\n\nfrom qwt._math import qwtSqr\nfrom qwt.graphic import QwtGraphic\nfrom qwt.plot import QwtPlot, QwtPlotItem, QwtPlotItem_PrivateData\nfrom qwt.plot_directpainter import QwtPlotDirectPainter\nfrom qwt.plot_series import (\n    QwtPlotSeriesItem,\n    QwtPointArrayData,\n    QwtSeriesData,\n    QwtSeriesStore,\n)\nfrom qwt.qthelpers import qcolor_from_str\nfrom qwt.symbol import QwtSymbol\nfrom qwt.text import QwtText\n\nQT_API = os.environ["QT_API"]\n\nif QT_API == "pyside6":\n    import ctypes\n\n    import shiboken6 as shiboken\n\nimport numpy as np\n\n\ndef qwtUpdateLegendIconSize(curve):\n    if curve.symbol() and curve.testLegendAttribute(QwtPlotCurve.LegendShowSymbol):\n        sz = curve.symbol().boundingRect().size()\n        sz += QSize(2, 2)\n        if curve.testLegendAttribute(QwtPlotCurve.LegendShowLine):\n            w = math.ceil(1.5 * sz.width())\n            if w % 2:\n                w += 1\n            sz.setWidth(max([8, w]))\n        curve.setLegendIconSize(sz)\n\n\ndef qwtVerifyRange(size, i1, i2):\n    if size < 1:\n        return 0\n    i1 = max([0, min([i1, size - 1])])\n    i2 = max([0, min([i2, size - 1])])\n    if i1 > i2:\n        i1, i2 = i2, i1\n    return i2 - i1 + 1\n\n\ndef array2d_to_qpolygonf(xdata, ydata):\n    """\n    Utility function to convert two 1D-NumPy arrays representing curve data\n    (X-axis, Y-axis data) into a single polyline (QtGui.PolygonF object).\n    This feature is compatible with PyQt5 and PySide6 (requires QtPy).\n\n    License/copyright: MIT License © Pierre Raybaut 2020-2021.\n\n    :param numpy.ndarray xdata: 1D-NumPy array\n    :param numpy.ndarray ydata: 1D-NumPy array\n    :return: Polyline\n    :rtype: QtGui.QPolygonF\n    """\n    if not (xdata.size == ydata.size == xdata.shape[0] == ydata.shape[0]):\n        raise ValueError("Arguments must be 1D NumPy arrays with same size")\n    size = xdata.size\n    if QT_API.startswith("pyside"):  # PySide (obviously...)\n        polyline = QPolygonF()\n        polyline.resize(size)\n        address = shiboken.getCppPointer(polyline.data())[0]\n        buffer = (ctypes.c_double * 2 * size).from_address(address)\n    else:  # PyQt\n        if QT_API == "pyqt6":\n            polyline = QPolygonF([QPointF(0, 0)] * size)\n        else:\n            polyline = QPolygonF(size)\n        buffer = polyline.data()\n        buffer.setsize(16 * size)  # 16 bytes per point: 8 bytes per X,Y value (float64)\n    memory = np.frombuffer(buffer, np.float64)\n    memory[: (size - 1) * 2 + 1 : 2] = np.asarray(xdata, dtype=np.float64)\n    memory[1 : (size - 1) * 2 + 2 : 2] = np.asarray(ydata, dtype=np.float64)\n    return polyline\n\n\ndef series_to_polyline(xMap, yMap, series, from_, to):\n    """\n    Convert series data to QPolygon(F) polyline\n    """\n    xdata = xMap.transform(series.xData()[from_ : to + 1])\n    ydata = yMap.transform(series.yData()[from_ : to + 1])\n    return array2d_to_qpolygonf(xdata, ydata)\n\n\nclass QwtPlotCurve_PrivateData(QwtPlotItem_PrivateData):\n    def __init__(self):\n        QwtPlotItem_PrivateData.__init__(self)\n        self.style = QwtPlotCurve.Lines\n        self.baseline = 0.0\n        self.symbol = None\n        self.attributes = 0\n        self.legendAttributes = QwtPlotCurve.LegendShowLine\n        self.pen = QPen(Qt.black)\n        self.brush = QBrush()\n\n\n
\n[docs]\nclass QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore):\n """\n A plot item, that represents a series of points\n\n A curve is the representation of a series of points in the x-y plane.\n It supports different display styles and symbols.\n\n .. seealso::\n\n :py:class:`qwt.symbol.QwtSymbol()`,\n :py:class:`qwt.scale_map.QwtScaleMap()`\n\n Curve styles:\n\n * `QwtPlotCurve.NoCurve`:\n\n Don't draw a curve. Note: This doesn't affect the symbols.\n\n * `QwtPlotCurve.Lines`:\n\n Connect the points with straight lines.\n\n * `QwtPlotCurve.Sticks`:\n\n Draw vertical or horizontal sticks ( depending on the\n orientation() ) from a baseline which is defined by setBaseline().\n\n * `QwtPlotCurve.Steps`:\n\n Connect the points with a step function. The step function\n is drawn from the left to the right or vice versa,\n depending on the QwtPlotCurve::Inverted attribute.\n\n * `QwtPlotCurve.Dots`:\n\n Draw dots at the locations of the data points. Note:\n This is different from a dotted line (see setPen()), and faster\n as a curve in QwtPlotCurve::NoStyle style and a symbol\n painting a point.\n\n * `QwtPlotCurve.UserCurve`:\n\n Styles >= QwtPlotCurve.UserCurve are reserved for derived\n classes of QwtPlotCurve that overload drawCurve() with\n additional application specific curve types.\n\n Curve attributes:\n\n * `QwtPlotCurve.Inverted`:\n\n For `QwtPlotCurve.Steps` only.\n Draws a step function from the right to the left.\n\n Legend attributes:\n\n * `QwtPlotCurve.LegendNoAttribute`:\n\n `QwtPlotCurve` tries to find a color representing the curve\n and paints a rectangle with it.\n\n * `QwtPlotCurve.LegendShowLine`:\n\n If the style() is not `QwtPlotCurve.NoCurve` a line\n is painted with the curve pen().\n\n * `QwtPlotCurve.LegendShowSymbol`:\n\n If the curve has a valid symbol it is painted.\n\n * `QwtPlotCurve.LegendShowBrush`:\n\n If the curve has a brush a rectangle filled with the\n curve brush() is painted.\n\n\n .. py:class:: QwtPlotCurve([title=None])\n\n Constructor\n\n :param title: Curve title\n :type title: qwt.text.QwtText or str or None\n """\n\n # enum CurveStyle\n NoCurve = -1\n Lines, Sticks, Steps, Dots = list(range(4))\n UserCurve = 100\n\n # enum CurveAttribute\n Inverted = 0x01\n\n # enum LegendAttribute\n LegendNoAttribute = 0x00\n LegendShowLine = 0x01\n LegendShowSymbol = 0x02\n LegendShowBrush = 0x04\n\n def __init__(self, title=None):\n if title is None:\n title = QwtText("")\n if not isinstance(title, QwtText):\n title = QwtText(title)\n self.__data = None\n QwtPlotSeriesItem.__init__(self, title)\n QwtSeriesStore.__init__(self)\n self.init()\n\n
\n[docs]\n @classmethod\n def make(\n cls,\n xdata=None,\n ydata=None,\n title=None,\n plot=None,\n z=None,\n x_axis=None,\n y_axis=None,\n style=None,\n symbol=None,\n linecolor=None,\n linewidth=None,\n linestyle=None,\n antialiased=False,\n size=None,\n finite=None,\n ):\n """\n Create and setup a new `QwtPlotCurve` object (convenience function).\n\n :param xdata: List/array of x values\n :param ydata: List/array of y values\n :param title: Curve title\n :type title: qwt.text.QwtText or str or None\n :param plot: Plot to attach the curve to\n :type plot: qwt.plot.QwtPlot or None\n :param z: Z-value\n :type z: float or None\n :param x_axis: curve X-axis (default: QwtPlot.yLeft)\n :type x_axis: int or None\n :param y_axis: curve Y-axis (default: QwtPlot.xBottom)\n :type y_axis: int or None\n :param style: curve style (`QwtPlotCurve.NoCurve`, `QwtPlotCurve.Lines`, `QwtPlotCurve.Sticks`, `QwtPlotCurve.Steps`, `QwtPlotCurve.Dots`, `QwtPlotCurve.UserCurve`)\n :type style: int or None\n :param symbol: curve symbol\n :type symbol: qwt.symbol.QwtSymbol or None\n :param linecolor: curve line color\n :type linecolor: QColor or str or None\n :param linewidth: curve line width\n :type linewidth: float or None\n :param linestyle: curve pen style\n :type linestyle: Qt.PenStyle or None\n :param bool antialiased: if True, enable antialiasing rendering\n :param size: size of xData and yData\n :type size: int or None\n :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements\n\n .. seealso::\n\n :py:meth:`setData()`, :py:meth:`setPen()`, :py:meth:`attach()`\n """\n item = cls(title)\n if z is not None:\n item.setZ(z)\n if xdata is not None or ydata is not None:\n if xdata is None:\n raise ValueError("Missing xdata parameter")\n if ydata is None:\n raise ValueError("Missing ydata parameter")\n item.setData(xdata, ydata, size=size, finite=finite)\n x_axis = QwtPlot.xBottom if x_axis is None else x_axis\n y_axis = QwtPlot.yLeft if y_axis is None else y_axis\n item.setAxes(x_axis, y_axis)\n if style is not None:\n item.setStyle(style)\n if symbol is not None:\n item.setSymbol(symbol)\n linecolor = qcolor_from_str(linecolor, Qt.black)\n linewidth = 1.0 if linewidth is None else linewidth\n linestyle = Qt.SolidLine if linestyle is None else linestyle\n item.setPen(QPen(linecolor, linewidth, linestyle))\n item.setRenderHint(cls.RenderAntialiased, antialiased)\n if plot is not None:\n item.attach(plot)\n return item
\n\n\n
\n[docs]\n def init(self):\n """Initialize internal members"""\n self.__data = QwtPlotCurve_PrivateData()\n self.setItemAttribute(QwtPlotItem.Legend)\n self.setItemAttribute(QwtPlotItem.AutoScale)\n self.setData(QwtPointArrayData())\n self.setZ(20.0)
\n\n\n
\n[docs]\n def rtti(self):\n """:return: `QwtPlotItem.Rtti_PlotCurve`"""\n return QwtPlotItem.Rtti_PlotCurve
\n\n\n
\n[docs]\n def setLegendAttribute(self, attribute, on=True):\n """\n Specify an attribute how to draw the legend icon\n\n Legend attributes:\n\n * `QwtPlotCurve.LegendNoAttribute`\n * `QwtPlotCurve.LegendShowLine`\n * `QwtPlotCurve.LegendShowSymbol`\n * `QwtPlotCurve.LegendShowBrush`\n\n :param int attribute: Legend attribute\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`testLegendAttribute()`, :py:meth:`legendIcon()`\n """\n if on != self.testLegendAttribute(attribute):\n if on:\n self.__data.legendAttributes |= attribute\n else:\n self.__data.legendAttributes &= ~attribute\n qwtUpdateLegendIconSize(self)\n self.legendChanged()
\n\n\n
\n[docs]\n def testLegendAttribute(self, attribute):\n """\n :param int attribute: Legend attribute\n :return: True, when attribute is enabled\n\n .. seealso::\n\n :py:meth:`setLegendAttribute()`\n """\n return self.__data.legendAttributes & attribute
\n\n\n
\n[docs]\n def setStyle(self, style):\n """\n Set the curve's drawing style\n\n Valid curve styles:\n\n * `QwtPlotCurve.NoCurve`\n * `QwtPlotCurve.Lines`\n * `QwtPlotCurve.Sticks`\n * `QwtPlotCurve.Steps`\n * `QwtPlotCurve.Dots`\n * `QwtPlotCurve.UserCurve`\n\n :param int style: Curve style\n\n .. seealso::\n\n :py:meth:`style()`\n """\n if style != self.__data.style:\n self.__data.style = style\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def style(self):\n """\n :return: Style of the curve\n\n .. seealso::\n\n :py:meth:`setStyle()`\n """\n return self.__data.style
\n\n\n
\n[docs]\n def setSymbol(self, symbol):\n """\n Assign a symbol\n\n The curve will take the ownership of the symbol, hence the previously\n set symbol will be delete by setting a new one. If symbol is None no\n symbol will be drawn.\n\n :param qwt.symbol.QwtSymbol symbol: Symbol\n\n .. seealso::\n\n :py:meth:`symbol()`\n """\n if symbol != self.__data.symbol:\n self.__data.symbol = symbol\n qwtUpdateLegendIconSize(self)\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def symbol(self):\n """\n :return: Current symbol or None, when no symbol has been assigned\n\n .. seealso::\n\n :py:meth:`setSymbol()`\n """\n return self.__data.symbol
\n\n\n
\n[docs]\n def setPen(self, *args):\n """\n Build and/or assign a pen, depending on the arguments.\n\n .. py:method:: setPen(color, width, style)\n :noindex:\n\n Build and assign a pen\n\n In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\n non cosmetic (see `QPen.isCosmetic()`). This method signature has\n been introduced to hide this incompatibility.\n\n :param QColor color: Pen color\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n\n .. py:method:: setPen(pen)\n :noindex:\n\n Assign a pen\n\n :param QPen pen: New pen\n\n .. seealso::\n\n :py:meth:`pen()`, :py:meth:`brush()`\n """\n if len(args) == 3:\n color, width, style = args\n pen = QPen(color, width, style)\n elif len(args) == 1:\n (pen,) = args\n else:\n raise TypeError(\n "%s().setPen() takes 1 or 3 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n if pen != self.__data.pen:\n if isinstance(pen, QColor):\n pen = QPen(pen)\n else:\n assert isinstance(pen, QPen)\n self.__data.pen = pen\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def pen(self):\n """\n :return: Pen used to draw the lines\n\n .. seealso::\n\n :py:meth:`setPen()`, :py:meth:`brush()`\n """\n return self.__data.pen
\n\n\n
\n[docs]\n def setBrush(self, brush):\n """\n Assign a brush.\n\n In case of `brush.style() != QBrush.NoBrush`\n and `style() != QwtPlotCurve.Sticks`\n the area between the curve and the baseline will be filled.\n\n In case `not brush.color().isValid()` the area will be filled by\n `pen.color()`. The fill algorithm simply connects the first and the\n last curve point to the baseline. So the curve data has to be sorted\n (ascending or descending).\n\n :param brush: New brush\n :type brush: QBrush or QColor\n\n .. seealso::\n\n :py:meth:`brush()`, :py:meth:`setBaseline()`, :py:meth:`baseline()`\n """\n if isinstance(brush, QColor):\n brush = QBrush(brush)\n else:\n assert isinstance(brush, QBrush)\n if brush != self.__data.brush:\n self.__data.brush = brush\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def brush(self):\n """\n :return: Brush used to fill the area between lines and the baseline\n\n .. seealso::\n\n :py:meth:`setBrush()`, :py:meth:`setBaseline()`,\n :py:meth:`baseline()`\n """\n return self.__data.brush
\n\n\n
\n[docs]\n def directPaint(self, from_, to):\n """\n When observing a measurement while it is running, new points have\n to be added to an existing seriesItem. This method can be used to\n display them avoiding a complete redraw of the canvas.\n\n Setting `plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)`\n will result in faster painting, if the paint engine of the canvas\n widget supports this feature.\n\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted\n\n .. seealso::\n\n :py:meth:`drawSeries()`\n """\n directPainter = QwtPlotDirectPainter(self.plot())\n directPainter.drawSeries(self, from_, to)
\n\n\n
\n[docs]\n def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to):\n """\n Draw an interval of the curve\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`drawCurve()`, :py:meth:`drawSymbols()`\n """\n numSamples = self.dataSize()\n if not painter or numSamples <= 0:\n return\n if to < 0:\n to = numSamples - 1\n if qwtVerifyRange(numSamples, from_, to) > 0:\n painter.save()\n painter.setPen(self.__data.pen)\n self.drawCurve(\n painter, self.__data.style, xMap, yMap, canvasRect, from_, to\n )\n painter.restore()\n if self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol:\n painter.save()\n self.drawSymbols(\n painter, self.__data.symbol, xMap, yMap, canvasRect, from_, to\n )\n painter.restore()
\n\n\n
\n[docs]\n def drawCurve(self, painter, style, xMap, yMap, canvasRect, from_, to):\n """\n Draw the line part (without symbols) of a curve interval.\n\n :param QPainter painter: Painter\n :param int style: curve style, see `QwtPlotCurve.CurveStyle`\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`draw()`, :py:meth:`drawDots()`, :py:meth:`drawLines()`,\n :py:meth:`drawSteps()`, :py:meth:`drawSticks()`\n """\n if style == self.Lines:\n self.drawLines(painter, xMap, yMap, canvasRect, from_, to)\n elif style == self.Sticks:\n self.drawSticks(painter, xMap, yMap, canvasRect, from_, to)\n elif style == self.Steps:\n self.drawSteps(painter, xMap, yMap, canvasRect, from_, to)\n elif style == self.Dots:\n self.drawDots(painter, xMap, yMap, canvasRect, from_, to)
\n\n\n
\n[docs]\n def drawLines(self, painter, xMap, yMap, canvasRect, from_, to):\n """\n Draw lines\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`draw()`, :py:meth:`drawDots()`,\n :py:meth:`drawSteps()`, :py:meth:`drawSticks()`\n """\n if from_ > to:\n return\n doFill = (\n self.__data.brush.style() != Qt.NoBrush\n and self.__data.brush.color().alpha() > 0\n )\n polyline = series_to_polyline(xMap, yMap, self.data(), from_, to)\n painter.drawPolyline(polyline)\n if doFill:\n self.fillCurve(painter, xMap, yMap, canvasRect, polyline)
\n\n\n
\n[docs]\n def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to):\n """\n Draw sticks\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`draw()`, :py:meth:`drawDots()`,\n :py:meth:`drawSteps()`, :py:meth:`drawLines()`\n """\n painter.save()\n painter.setRenderHint(QPainter.Antialiasing, False)\n x0 = xMap.transform(self.__data.baseline)\n y0 = yMap.transform(self.__data.baseline)\n o = self.orientation()\n series = self.data()\n for i in range(from_, to + 1):\n sample = series.sample(i)\n xi = xMap.transform(sample.x())\n yi = yMap.transform(sample.y())\n if o == Qt.Horizontal:\n painter.drawLine(QLineF(xi, y0, xi, yi))\n else:\n painter.drawLine(QLineF(x0, yi, xi, yi))\n painter.restore()
\n\n\n
\n[docs]\n def drawDots(self, painter, xMap, yMap, canvasRect, from_, to):\n """\n Draw dots\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`draw()`, :py:meth:`drawSticks()`,\n :py:meth:`drawSteps()`, :py:meth:`drawLines()`\n """\n doFill = (\n self.__data.brush.style() != Qt.NoBrush\n and self.__data.brush.color().alpha() > 0\n )\n polyline = series_to_polyline(xMap, yMap, self.data(), from_, to)\n painter.drawPoints(polyline)\n if doFill:\n self.fillCurve(painter, xMap, yMap, canvasRect, polyline)
\n\n\n
\n[docs]\n def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to):\n """\n Draw steps\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`draw()`, :py:meth:`drawSticks()`,\n :py:meth:`drawDots()`, :py:meth:`drawLines()`\n """\n size = 2 * (to - from_) + 1\n if QT_API == "pyside6":\n polygon = QPolygonF()\n polygon.resize(size)\n elif QT_API == "pyqt6":\n polygon = QPolygonF([QPointF(0, 0)] * size)\n else:\n polygon = QPolygonF(size)\n inverted = self.orientation() == Qt.Vertical\n if self.__data.attributes & self.Inverted:\n inverted = not inverted\n series = self.data()\n ip = 0\n for i in range(from_, to + 1):\n sample = series.sample(i)\n xi = xMap.transform(sample.x())\n yi = yMap.transform(sample.y())\n if ip > 0:\n p0 = polygon[ip - 2]\n if inverted:\n polygon[ip - 1] = QPointF(p0.x(), yi)\n else:\n polygon[ip - 1] = QPointF(xi, p0.y())\n polygon[ip] = QPointF(xi, yi)\n ip += 2\n painter.drawPolyline(polygon)\n if self.__data.brush.style() != Qt.NoBrush:\n self.fillCurve(painter, xMap, yMap, canvasRect, polygon)
\n\n\n
\n[docs]\n def setCurveAttribute(self, attribute, on=True):\n """\n Specify an attribute for drawing the curve\n\n Supported curve attributes:\n\n * `QwtPlotCurve.Inverted`\n\n :param int attribute: Curve attribute\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`testCurveAttribute()`\n """\n if (self.__data.attributes & attribute) == on:\n return\n if on:\n self.__data.attributes |= attribute\n else:\n self.__data.attributes &= ~attribute\n self.itemChanged()
\n\n\n
\n[docs]\n def testCurveAttribute(self, attribute):\n """\n :return: True, if attribute is enabled\n\n .. seealso::\n\n :py:meth:`setCurveAttribute()`\n """\n return self.__data.attributes & attribute
\n\n\n
\n[docs]\n def fillCurve(self, painter, xMap, yMap, canvasRect, polygon):\n """\n Fill the area between the curve and the baseline with\n the curve brush\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param QPolygonF polygon: Polygon - will be modified !\n\n .. seealso::\n\n :py:meth:`setBrush()`, :py:meth:`setBaseline()`,\n :py:meth:`setStyle()`\n """\n if self.__data.brush.style() == Qt.NoBrush:\n return\n self.closePolyline(painter, xMap, yMap, polygon)\n if polygon.count() <= 2:\n return\n brush = self.__data.brush\n if not brush.color().isValid():\n brush.setColor(self.__data.pen.color())\n painter.save()\n painter.setPen(Qt.NoPen)\n painter.setBrush(brush)\n painter.drawPolygon(polygon)\n painter.restore()
\n\n\n
\n[docs]\n def closePolyline(self, painter, xMap, yMap, polygon):\n """\n Complete a polygon to be a closed polygon including the\n area between the original polygon and the baseline.\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QPolygonF polygon: Polygon to be completed\n """\n if polygon.size() < 2:\n return\n baseline = self.__data.baseline\n if self.orientation() == Qt.Horizontal:\n if yMap.transformation():\n baseline = yMap.transformation().bounded(baseline)\n refY = yMap.transform(baseline)\n polygon.append(QPointF(polygon.last().x(), refY))\n polygon.append(QPointF(polygon.first().x(), refY))\n else:\n if xMap.transformation():\n baseline = xMap.transformation().bounded(baseline)\n refX = xMap.transform(baseline)\n polygon.append(QPointF(refX, polygon.last().y()))\n polygon.append(QPointF(refX, polygon.first().y()))
\n\n\n
\n[docs]\n def drawSymbols(self, painter, symbol, xMap, yMap, canvasRect, from_, to):\n """\n Draw symbols\n\n :param QPainter painter: Painter\n :param qwt.symbol.QwtSymbol symbol: Curve symbol\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n :py:meth:`setSymbol()`, :py:meth:`drawSeries()`,\n :py:meth:`drawCurve()`\n """\n chunkSize = 500\n for i in range(from_, to + 1, chunkSize):\n n = min([chunkSize, to - i + 1])\n points = series_to_polyline(xMap, yMap, self.data(), i, i + n - 1)\n if points.size() > 0:\n symbol.drawSymbols(painter, points)
\n\n\n
\n[docs]\n def setBaseline(self, value):\n """\n Set the value of the baseline\n\n The baseline is needed for filling the curve with a brush or\n the Sticks drawing style.\n\n The interpretation of the baseline depends on the `orientation()`.\n With `Qt.Horizontal`, the baseline is interpreted as a horizontal line\n at y = baseline(), with `Qt.Vertical`, it is interpreted as a vertical\n line at x = baseline().\n\n The default value is 0.0.\n\n :param float value: Value of the baseline\n\n .. seealso::\n\n :py:meth:`baseline()`, :py:meth:`setBrush()`,\n :py:meth:`setStyle()`\n """\n if self.__data.baseline != value:\n self.__data.baseline = value\n self.itemChanged()
\n\n\n
\n[docs]\n def baseline(self):\n """\n :return: Value of the baseline\n\n .. seealso::\n\n :py:meth:`setBaseline()`\n """\n return self.__data.baseline
\n\n\n
\n[docs]\n def closestPoint(self, pos):\n """\n Find the closest curve point for a specific position\n\n :param QPoint pos: Position, where to look for the closest curve point\n :return: tuple `(index, dist)`\n\n `dist` is the distance between the position and the closest curve\n point. `index` is the index of the closest curve point, or -1 if\n none can be found ( f.e when the curve has no points ).\n\n .. note::\n\n `closestPoint()` implements a dumb algorithm, that iterates\n over all points\n """\n numSamples = self.dataSize()\n if self.plot() is None or numSamples <= 0:\n return -1\n series = self.data()\n xMap = self.plot().canvasMap(self.xAxis())\n yMap = self.plot().canvasMap(self.yAxis())\n index = -1\n dmin = 1.0e10\n for i in range(numSamples):\n sample = series.sample(i)\n cx = xMap.transform(sample.x()) - pos.x()\n cy = yMap.transform(sample.y()) - pos.y()\n f = qwtSqr(cx) + qwtSqr(cy)\n if f < dmin:\n index = i\n dmin = f\n dist = math.sqrt(dmin)\n return index, dist
\n\n\n
\n[docs]\n def legendIcon(self, index, size):\n """\n :param int index: Index of the legend entry (ignored as there is only one)\n :param QSizeF size: Icon size\n :return: Icon representing the curve on the legend\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`,\n :py:meth:`qwt.plot.QwtPlotItem.legendData()`\n """\n if size.isEmpty():\n return QwtGraphic()\n graphic = QwtGraphic()\n graphic.setDefaultSize(size)\n graphic.setRenderHint(QwtGraphic.RenderPensUnscaled, True)\n painter = QPainter(graphic)\n painter.setRenderHint(\n QPainter.Antialiasing, self.testRenderHint(QwtPlotItem.RenderAntialiased)\n )\n if self.__data.legendAttributes == 0 or (\n self.__data.legendAttributes & QwtPlotCurve.LegendShowBrush\n ):\n brush = self.__data.brush\n if brush.style() == Qt.NoBrush and self.__data.legendAttributes == 0:\n if self.style() != QwtPlotCurve.NoCurve:\n brush = QBrush(self.pen().color())\n elif (\n self.__data.symbol\n and self.__data.symbol.style() != QwtSymbol.NoSymbol\n ):\n brush = QBrush(self.__data.symbol.pen().color())\n if brush.style() != Qt.NoBrush:\n r = QRectF(0, 0, size.width(), size.height())\n painter.fillRect(r, brush)\n if self.__data.legendAttributes & QwtPlotCurve.LegendShowLine:\n if self.pen() != Qt.NoPen:\n painter.setPen(self.pen())\n y = size.height() // 2\n painter.drawLine(QLineF(0, y, size.width(), y))\n if self.__data.legendAttributes & QwtPlotCurve.LegendShowSymbol:\n if self.__data.symbol:\n r = QRectF(0, 0, size.width(), size.height())\n self.__data.symbol.drawSymbol(painter, r)\n return graphic
\n\n\n
\n[docs]\n def setData(self, *args, **kwargs):\n """\n Initialize data with a series data object or an array of points.\n\n .. py:method:: setData(data):\n\n :param data: Series data (e.g. `QwtPointArrayData` instance)\n :type data: .plot_series.QwtSeriesData\n\n .. py:method:: setData(xData, yData, [size=None], [finite=True]):\n\n Initialize data with `x` and `y` arrays.\n\n This signature was removed in Qwt6 and is temporarily maintained here to ensure compatibility with Qwt5.\n\n Same as `setSamples(x, y, [size=None], [finite=True])`\n\n :param x: List/array of x values\n :param y: List/array of y values\n :param size: size of xData and yData\n :type size: int or None\n :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements\n\n .. seealso::\n\n :py:meth:`setSamples()`\n """\n if len(args) == 1 and not kwargs:\n super(QwtPlotCurve, self).setData(*args)\n elif len(args) in (2, 3, 4):\n self.setSamples(*args, **kwargs)\n else:\n raise TypeError(\n "%s().setData() takes 1, 2, 3 or 4 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def setSamples(self, *args, **kwargs):\n """\n Initialize data with an array of points.\n\n .. py:method:: setSamples(data):\n\n :param data: Series data (e.g. `QwtPointArrayData` instance)\n :type data: .plot_series.QwtSeriesData\n\n\n .. py:method:: setSamples(samples):\n\n Same as `setData(QwtPointArrayData(samples))`\n\n :param samples: List/array of points\n\n .. py:method:: setSamples(xData, yData, [size=None], [finite=True]):\n\n Same as `setData(QwtPointArrayData(xData, yData, [size=None]))`\n\n :param xData: List/array of x values\n :param yData: List/array of y values\n :param size: size of xData and yData\n :type size: int or None\n :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements\n\n .. seealso::\n\n :py:class:`.plot_series.QwtPointArrayData`\n """\n if len(args) == 1 and not kwargs:\n (samples,) = args\n if isinstance(samples, QwtSeriesData):\n self.setData(samples)\n else:\n self.setData(QwtPointArrayData(samples))\n elif len(args) >= 2:\n xData, yData = args[:2]\n try:\n size = kwargs.pop("size")\n except KeyError:\n size = None\n try:\n finite = kwargs.pop("finite")\n except KeyError:\n finite = None\n if kwargs:\n raise TypeError(\n "%s().setSamples(): unknown %s keyword "\n "argument(s)"\n % (self.__class__.__name__, ", ".join(list(kwargs.keys())))\n )\n for arg in args[2:]:\n if isinstance(arg, bool):\n finite = arg\n elif isinstance(arg, int):\n size = arg\n self.setData(QwtPointArrayData(xData, yData, size=size, finite=finite))\n else:\n raise TypeError(\n "%s().setSamples() takes 1, 2 or 3 argument(s) "\n "(%s given)" % (self.__class__.__name__, len(args))\n )
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39f6b6a0>, 'js_tag': .js_tag at 0x7f3d39f682c0>}, None) highlighting module code... [ 42%] qwt.plot_directpainter [app] emitting event: 'viewcode-find-source'('qwt.plot_directpainter',) -[app] emitting event: 'html-page-context'('_modules/qwt/plot_directpainter', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_directpainter', 'current_page_name': '_modules/qwt/plot_directpainter', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b23ec0>, 'hasdoc': .hasdoc at 0x7fc7d6b213a0>, 'toctree': . at 0x7fc7d6b20cc0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_directpainter', 'body': '

Source code for qwt.plot_directpainter

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotDirectPainter\n--------------------\n\n.. autoclass:: QwtPlotDirectPainter\n   :members:\n"""\n\nfrom qtpy.QtCore import QEvent, QObject, Qt\nfrom qtpy.QtGui import QPainter, QRegion\n\nfrom qwt.plot import QwtPlotItem\nfrom qwt.plot_canvas import QwtPlotCanvas\n\n\ndef qwtRenderItem(painter, canvasRect, seriesItem, from_, to):\n    # TODO: A minor performance improvement is possible with caching the maps\n    plot = seriesItem.plot()\n    xMap = plot.canvasMap(seriesItem.xAxis())\n    yMap = plot.canvasMap(seriesItem.yAxis())\n    painter.setRenderHint(\n        QPainter.Antialiasing, seriesItem.testRenderHint(QwtPlotItem.RenderAntialiased)\n    )\n    seriesItem.drawSeries(painter, xMap, yMap, canvasRect, from_, to)\n\n\ndef qwtHasBackingStore(canvas):\n    return (\n        canvas.testPaintAttribute(QwtPlotCanvas.BackingStore)\n        and canvas.backingStore() is not None\n        and not canvas.backingStore().isNull()\n    )\n\n\nclass QwtPlotDirectPainter_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.attributes = 0\n        self.hasClipping = False\n        self.seriesItem = None  # QwtPlotSeriesItem\n        self.clipRegion = QRegion()\n        self.painter = QPainter()\n        self.from_ = None\n        self.to = None\n\n\n
\n[docs]\nclass QwtPlotDirectPainter(QObject):\n """\n Painter object trying to paint incrementally\n\n Often applications want to display samples while they are\n collected. When there are too many samples complete replots\n will be expensive to be processed in a collection cycle.\n\n `QwtPlotDirectPainter` offers an API to paint\n subsets (f.e all additions points) without erasing/repainting\n the plot canvas.\n\n On certain environments it might be important to calculate a proper\n clip region before painting. F.e. for Qt Embedded only the clipped part\n of the backing store will be copied to a (maybe unaccelerated)\n frame buffer.\n\n .. warning::\n\n Incremental painting will only help when no replot is triggered\n by another operation (like changing scales) and nothing needs\n to be erased.\n\n Paint attributes:\n\n * `QwtPlotDirectPainter.AtomicPainter`:\n\n Initializing a `QPainter` is an expensive operation.\n When `AtomicPainter` is set each call of `drawSeries()` opens/closes\n a temporary `QPainter`. Otherwise `QwtPlotDirectPainter` tries to\n use the same `QPainter` as long as possible.\n\n * `QwtPlotDirectPainter.FullRepaint`:\n\n When `FullRepaint` is set the plot canvas is explicitly repainted\n after the samples have been rendered.\n\n * `QwtPlotDirectPainter.CopyBackingStore`:\n\n When `QwtPlotCanvas.BackingStore` is enabled the painter\n has to paint to the backing store and the widget. In certain\n situations/environments it might be faster to paint to\n the backing store only and then copy the backing store to the canvas.\n This flag can also be useful for settings, where Qt fills the\n the clip region with the widget background.\n """\n\n # enum Attribute\n AtomicPainter = 0x01\n FullRepaint = 0x02\n CopyBackingStore = 0x04\n\n def __init__(self, parent=None):\n QObject.__init__(self, parent)\n self.__data = QwtPlotDirectPainter_PrivateData()\n\n
\n[docs]\n def setAttribute(self, attribute, on=True):\n """\n Change an attribute\n\n :param int attribute: Attribute to change\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`testAttribute()`\n """\n if self.testAttribute(attribute) != on:\n self.__data.attributes |= attribute\n else:\n self.__data.attributes &= ~attribute\n if attribute == self.AtomicPainter and on:\n self.reset()
\n\n\n
\n[docs]\n def testAttribute(self, attribute):\n """\n :param int attribute: Attribute to be tested\n :return: True, when attribute is enabled\n\n .. seealso::\n\n :py:meth:`setAttribute()`\n """\n return self.__data.attributes & attribute
\n\n\n
\n[docs]\n def setClipping(self, enable):\n """\n En/Disables clipping\n\n :param bool enable: Enables clipping is true, disable it otherwise\n\n .. seealso::\n\n :py:meth:`hasClipping()`, :py:meth:`clipRegion()`,\n :py:meth:`setClipRegion()`\n """\n self.__data.hasClipping = enable
\n\n\n
\n[docs]\n def hasClipping(self):\n """\n :return: Return true, when clipping is enabled\n\n .. seealso::\n\n :py:meth:`setClipping()`, :py:meth:`clipRegion()`,\n :py:meth:`setClipRegion()`\n """\n return self.__data.hasClipping
\n\n\n
\n[docs]\n def setClipRegion(self, region):\n """\n Assign a clip region and enable clipping\n\n Depending on the environment setting a proper clip region might\n improve the performance heavily. F.e. on Qt embedded only the clipped\n part of the backing store will be copied to a (maybe unaccelerated)\n frame buffer device.\n\n :param QRegion region: Clip region\n\n .. seealso::\n\n :py:meth:`hasClipping()`, :py:meth:`setClipping()`,\n :py:meth:`clipRegion()`\n """\n self.__data.clipRegion = region\n self.__data.hasClipping = True
\n\n\n
\n[docs]\n def clipRegion(self):\n """\n :return: Return Currently set clip region.\n\n .. seealso::\n\n :py:meth:`hasClipping()`, :py:meth:`setClipping()`,\n :py:meth:`setClipRegion()`\n """\n return self.__data.clipRegion
\n\n\n
\n[docs]\n def drawSeries(self, seriesItem, from_, to):\n """\n Draw a set of points of a seriesItem.\n\n When observing a measurement while it is running, new points have\n to be added to an existing seriesItem. drawSeries() can be used to\n display them avoiding a complete redraw of the canvas.\n\n Setting `plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)`\n will result in faster painting, if the paint engine of the canvas widget\n supports this feature.\n\n :param qwt.plot_series.QwtPlotSeriesItem seriesItem: Item to be painted\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the series will be painted to its last point.\n """\n if seriesItem is None or seriesItem.plot() is None:\n return\n canvas = seriesItem.plot().canvas()\n canvasRect = canvas.contentsRect()\n if canvas and qwtHasBackingStore(canvas):\n painter = QPainter(canvas.backingStore())\n if self.__data.hasClipping:\n painter.setClipRegion(self.__data.clipRegion)\n qwtRenderItem(painter, canvasRect, seriesItem, from_, to)\n painter.end()\n if self.testAttribute(self.FullRepaint):\n canvas.repaint()\n return\n if canvas.testAttribute(Qt.WA_WState_InPaintEvent):\n if not self.__data.painter.isActive():\n self.reset()\n self.__data.painter.begin(canvas)\n canvas.installEventFilter(self)\n if self.__data.hasClipping:\n self.__data.painter.setClipRegion(\n QRegion(canvasRect) & self.__data.clipRegion\n )\n elif not self.__data.painter.hasClipping():\n self.__data.painter.setClipRect(canvasRect)\n qwtRenderItem(self.__data.painter, canvasRect, seriesItem, from_, to)\n if self.__data.attributes & self.AtomicPainter:\n self.reset()\n elif self.__data.hasClipping:\n self.__data.painter.setClipping(False)\n else:\n self.reset()\n self.__data.seriesItem = seriesItem\n self.__data.from_ = from_\n self.__data.to = to\n clipRegion = QRegion(canvasRect)\n if self.__data.hasClipping:\n clipRegion &= self.__data.clipRegion\n canvas.installEventFilter(self)\n canvas.repaint(clipRegion)\n canvas.removeEventFilter(self)\n self.__data.seriesItem = None
\n\n\n
\n[docs]\n def reset(self):\n """Close the internal QPainter"""\n if self.__data.painter.isActive():\n w = self.__data.painter.device() # XXX: cast to QWidget\n if w:\n w.removeEventFilter(self)\n self.__data.painter.end()
\n\n\n
\n[docs]\n def eventFilter(self, obj_, event):\n if event.type() == QEvent.Paint:\n self.reset()\n if self.__data.seriesItem:\n pe = event # XXX: cast to QPaintEvent\n canvas = self.__data.seriesItem.plot().canvas()\n painter = QPainter(canvas)\n painter.setClipRegion(pe.region())\n doCopyCache = self.testAttribute(self.CopyBackingStore)\n if doCopyCache:\n plotCanvas = canvas # XXX: cast to QwtPlotCanvas\n if plotCanvas:\n doCopyCache = qwtHasBackingStore(plotCanvas)\n if doCopyCache:\n painter.drawPixmap(\n plotCanvas.rect().topLeft(), plotCanvas.backingStore()\n )\n if not doCopyCache:\n qwtRenderItem(\n painter,\n canvas.contentsRect(),\n self.__data.seriesItem,\n self.__data.from_,\n self.__data.to,\n )\n return True\n return False
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6b21f80>, 'js_tag': .js_tag at 0x7fc7d6b205e0>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/plot_directpainter', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_directpainter', 'current_page_name': '_modules/qwt/plot_directpainter', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f6bec0>, 'hasdoc': .hasdoc at 0x7f3d39f693a0>, 'toctree': . at 0x7f3d39f68cc0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_directpainter', 'body': '

Source code for qwt.plot_directpainter

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotDirectPainter\n--------------------\n\n.. autoclass:: QwtPlotDirectPainter\n   :members:\n"""\n\nfrom qtpy.QtCore import QEvent, QObject, Qt\nfrom qtpy.QtGui import QPainter, QRegion\n\nfrom qwt.plot import QwtPlotItem\nfrom qwt.plot_canvas import QwtPlotCanvas\n\n\ndef qwtRenderItem(painter, canvasRect, seriesItem, from_, to):\n    # TODO: A minor performance improvement is possible with caching the maps\n    plot = seriesItem.plot()\n    xMap = plot.canvasMap(seriesItem.xAxis())\n    yMap = plot.canvasMap(seriesItem.yAxis())\n    painter.setRenderHint(\n        QPainter.Antialiasing, seriesItem.testRenderHint(QwtPlotItem.RenderAntialiased)\n    )\n    seriesItem.drawSeries(painter, xMap, yMap, canvasRect, from_, to)\n\n\ndef qwtHasBackingStore(canvas):\n    return (\n        canvas.testPaintAttribute(QwtPlotCanvas.BackingStore)\n        and canvas.backingStore() is not None\n        and not canvas.backingStore().isNull()\n    )\n\n\nclass QwtPlotDirectPainter_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.attributes = 0\n        self.hasClipping = False\n        self.seriesItem = None  # QwtPlotSeriesItem\n        self.clipRegion = QRegion()\n        self.painter = QPainter()\n        self.from_ = None\n        self.to = None\n\n\n
\n[docs]\nclass QwtPlotDirectPainter(QObject):\n """\n Painter object trying to paint incrementally\n\n Often applications want to display samples while they are\n collected. When there are too many samples complete replots\n will be expensive to be processed in a collection cycle.\n\n `QwtPlotDirectPainter` offers an API to paint\n subsets (f.e all additions points) without erasing/repainting\n the plot canvas.\n\n On certain environments it might be important to calculate a proper\n clip region before painting. F.e. for Qt Embedded only the clipped part\n of the backing store will be copied to a (maybe unaccelerated)\n frame buffer.\n\n .. warning::\n\n Incremental painting will only help when no replot is triggered\n by another operation (like changing scales) and nothing needs\n to be erased.\n\n Paint attributes:\n\n * `QwtPlotDirectPainter.AtomicPainter`:\n\n Initializing a `QPainter` is an expensive operation.\n When `AtomicPainter` is set each call of `drawSeries()` opens/closes\n a temporary `QPainter`. Otherwise `QwtPlotDirectPainter` tries to\n use the same `QPainter` as long as possible.\n\n * `QwtPlotDirectPainter.FullRepaint`:\n\n When `FullRepaint` is set the plot canvas is explicitly repainted\n after the samples have been rendered.\n\n * `QwtPlotDirectPainter.CopyBackingStore`:\n\n When `QwtPlotCanvas.BackingStore` is enabled the painter\n has to paint to the backing store and the widget. In certain\n situations/environments it might be faster to paint to\n the backing store only and then copy the backing store to the canvas.\n This flag can also be useful for settings, where Qt fills the\n the clip region with the widget background.\n """\n\n # enum Attribute\n AtomicPainter = 0x01\n FullRepaint = 0x02\n CopyBackingStore = 0x04\n\n def __init__(self, parent=None):\n QObject.__init__(self, parent)\n self.__data = QwtPlotDirectPainter_PrivateData()\n\n
\n[docs]\n def setAttribute(self, attribute, on=True):\n """\n Change an attribute\n\n :param int attribute: Attribute to change\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`testAttribute()`\n """\n if self.testAttribute(attribute) != on:\n self.__data.attributes |= attribute\n else:\n self.__data.attributes &= ~attribute\n if attribute == self.AtomicPainter and on:\n self.reset()
\n\n\n
\n[docs]\n def testAttribute(self, attribute):\n """\n :param int attribute: Attribute to be tested\n :return: True, when attribute is enabled\n\n .. seealso::\n\n :py:meth:`setAttribute()`\n """\n return self.__data.attributes & attribute
\n\n\n
\n[docs]\n def setClipping(self, enable):\n """\n En/Disables clipping\n\n :param bool enable: Enables clipping is true, disable it otherwise\n\n .. seealso::\n\n :py:meth:`hasClipping()`, :py:meth:`clipRegion()`,\n :py:meth:`setClipRegion()`\n """\n self.__data.hasClipping = enable
\n\n\n
\n[docs]\n def hasClipping(self):\n """\n :return: Return true, when clipping is enabled\n\n .. seealso::\n\n :py:meth:`setClipping()`, :py:meth:`clipRegion()`,\n :py:meth:`setClipRegion()`\n """\n return self.__data.hasClipping
\n\n\n
\n[docs]\n def setClipRegion(self, region):\n """\n Assign a clip region and enable clipping\n\n Depending on the environment setting a proper clip region might\n improve the performance heavily. F.e. on Qt embedded only the clipped\n part of the backing store will be copied to a (maybe unaccelerated)\n frame buffer device.\n\n :param QRegion region: Clip region\n\n .. seealso::\n\n :py:meth:`hasClipping()`, :py:meth:`setClipping()`,\n :py:meth:`clipRegion()`\n """\n self.__data.clipRegion = region\n self.__data.hasClipping = True
\n\n\n
\n[docs]\n def clipRegion(self):\n """\n :return: Return Currently set clip region.\n\n .. seealso::\n\n :py:meth:`hasClipping()`, :py:meth:`setClipping()`,\n :py:meth:`setClipRegion()`\n """\n return self.__data.clipRegion
\n\n\n
\n[docs]\n def drawSeries(self, seriesItem, from_, to):\n """\n Draw a set of points of a seriesItem.\n\n When observing a measurement while it is running, new points have\n to be added to an existing seriesItem. drawSeries() can be used to\n display them avoiding a complete redraw of the canvas.\n\n Setting `plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)`\n will result in faster painting, if the paint engine of the canvas widget\n supports this feature.\n\n :param qwt.plot_series.QwtPlotSeriesItem seriesItem: Item to be painted\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the series will be painted to its last point.\n """\n if seriesItem is None or seriesItem.plot() is None:\n return\n canvas = seriesItem.plot().canvas()\n canvasRect = canvas.contentsRect()\n if canvas and qwtHasBackingStore(canvas):\n painter = QPainter(canvas.backingStore())\n if self.__data.hasClipping:\n painter.setClipRegion(self.__data.clipRegion)\n qwtRenderItem(painter, canvasRect, seriesItem, from_, to)\n painter.end()\n if self.testAttribute(self.FullRepaint):\n canvas.repaint()\n return\n if canvas.testAttribute(Qt.WA_WState_InPaintEvent):\n if not self.__data.painter.isActive():\n self.reset()\n self.__data.painter.begin(canvas)\n canvas.installEventFilter(self)\n if self.__data.hasClipping:\n self.__data.painter.setClipRegion(\n QRegion(canvasRect) & self.__data.clipRegion\n )\n elif not self.__data.painter.hasClipping():\n self.__data.painter.setClipRect(canvasRect)\n qwtRenderItem(self.__data.painter, canvasRect, seriesItem, from_, to)\n if self.__data.attributes & self.AtomicPainter:\n self.reset()\n elif self.__data.hasClipping:\n self.__data.painter.setClipping(False)\n else:\n self.reset()\n self.__data.seriesItem = seriesItem\n self.__data.from_ = from_\n self.__data.to = to\n clipRegion = QRegion(canvasRect)\n if self.__data.hasClipping:\n clipRegion &= self.__data.clipRegion\n canvas.installEventFilter(self)\n canvas.repaint(clipRegion)\n canvas.removeEventFilter(self)\n self.__data.seriesItem = None
\n\n\n
\n[docs]\n def reset(self):\n """Close the internal QPainter"""\n if self.__data.painter.isActive():\n w = self.__data.painter.device() # XXX: cast to QWidget\n if w:\n w.removeEventFilter(self)\n self.__data.painter.end()
\n\n\n
\n[docs]\n def eventFilter(self, obj_, event):\n if event.type() == QEvent.Paint:\n self.reset()\n if self.__data.seriesItem:\n pe = event # XXX: cast to QPaintEvent\n canvas = self.__data.seriesItem.plot().canvas()\n painter = QPainter(canvas)\n painter.setClipRegion(pe.region())\n doCopyCache = self.testAttribute(self.CopyBackingStore)\n if doCopyCache:\n plotCanvas = canvas # XXX: cast to QwtPlotCanvas\n if plotCanvas:\n doCopyCache = qwtHasBackingStore(plotCanvas)\n if doCopyCache:\n painter.drawPixmap(\n plotCanvas.rect().topLeft(), plotCanvas.backingStore()\n )\n if not doCopyCache:\n qwtRenderItem(\n painter,\n canvas.contentsRect(),\n self.__data.seriesItem,\n self.__data.from_,\n self.__data.to,\n )\n return True\n return False
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39f69f80>, 'js_tag': .js_tag at 0x7f3d39f685e0>}, None) highlighting module code... [ 46%] qwt.plot_grid [app] emitting event: 'viewcode-find-source'('qwt.plot_grid',) -[app] emitting event: 'html-page-context'('_modules/qwt/plot_grid', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_grid', 'current_page_name': '_modules/qwt/plot_grid', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6890680>, 'hasdoc': .hasdoc at 0x7fc7d6891260>, 'toctree': . at 0x7fc7d68911c0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_grid', 'body': '

Source code for qwt.plot_grid

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotGrid\n-----------\n\n.. autoclass:: QwtPlotGrid\n   :members:\n"""\n\nfrom qtpy.QtCore import QLineF, QObject, Qt\nfrom qtpy.QtGui import QPen\n\nfrom qwt._math import qwtFuzzyGreaterOrEqual, qwtFuzzyLessOrEqual\nfrom qwt.plot import QwtPlotItem\nfrom qwt.qthelpers import qcolor_from_str\nfrom qwt.scale_div import QwtScaleDiv\n\n\nclass QwtPlotGrid_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.xEnabled = True\n        self.yEnabled = True\n        self.xMinEnabled = False\n        self.yMinEnabled = False\n        self.xScaleDiv = QwtScaleDiv()\n        self.yScaleDiv = QwtScaleDiv()\n        self.majorPen = QPen()\n        self.minorPen = QPen()\n\n\n
\n[docs]\nclass QwtPlotGrid(QwtPlotItem):\n """\n A class which draws a coordinate grid\n\n The `QwtPlotGrid` class can be used to draw a coordinate grid.\n A coordinate grid consists of major and minor vertical\n and horizontal grid lines. The locations of the grid lines\n are determined by the X and Y scale divisions which can\n be assigned with `setXDiv()` and `setYDiv()`.\n The `draw()` member draws the grid within a bounding\n rectangle.\n """\n\n def __init__(self, title="Grid"):\n QwtPlotItem.__init__(self, title)\n self.__data = QwtPlotGrid_PrivateData()\n self.setItemInterest(QwtPlotItem.ScaleInterest, True)\n self.setZ(10.0)\n\n
\n[docs]\n @classmethod\n def make(\n cls,\n plot=None,\n z=None,\n enablemajor=None,\n enableminor=None,\n color=None,\n width=None,\n style=None,\n mincolor=None,\n minwidth=None,\n minstyle=None,\n ):\n """\n Create and setup a new `QwtPlotGrid` object (convenience function).\n\n :param plot: Plot to attach the curve to\n :type plot: qwt.plot.QwtPlot or None\n :param z: Z-value\n :type z: float or None\n :param enablemajor: Tuple of two boolean values (x, y) for enabling major grid lines\n :type enablemajor: bool or None\n :param enableminor: Tuple of two boolean values (x, y) for enabling minor grid lines\n :type enableminor: bool or None\n :param color: Pen color for both major and minor grid lines (default: Qt.gray)\n :type color: QColor or str or None\n :param width: Pen width for both major and minor grid lines (default: 1.0)\n :type width: float or None\n :param style: Pen style for both major and minor grid lines (default: Qt.DotLine)\n :type style: Qt.PenStyle or None\n :param mincolor: Pen color for minor grid lines only (default: Qt.gray)\n :type mincolor: QColor or str or None\n :param minwidth: Pen width for minor grid lines only (default: 1.0)\n :type minwidth: float or None\n :param minstyle: Pen style for minor grid lines only (default: Qt.DotLine)\n :type minstyle: Qt.PenStyle or None\n\n .. seealso::\n\n :py:meth:`setMinorPen()`, :py:meth:`setMajorPen()`\n """\n item = cls()\n if z is not None:\n item.setZ(z)\n color = qcolor_from_str(color, Qt.gray)\n width = 1.0 if width is None else float(width)\n style = Qt.DotLine if style is None else style\n item.setPen(QPen(color, width, style))\n if mincolor is not None or minwidth is not None or minstyle is not None:\n mincolor = qcolor_from_str(mincolor, Qt.gray)\n minwidth = 1.0 if width is None else minwidth\n minstyle = Qt.DotLine if style is None else minstyle\n item.setMinorPen(QPen(mincolor, minwidth, minstyle))\n if enablemajor is not None:\n if isinstance(enablemajor, tuple) and len(enablemajor) == 2:\n item.enableX(enablemajor[0])\n item.enableY(enablemajor[1])\n else:\n raise TypeError(\n "Invalid enablemajor %r (expecting tuple of two booleans)"\n % enablemajor\n )\n if enableminor is not None:\n if isinstance(enableminor, tuple) and len(enableminor) == 2:\n item.enableXMin(enableminor[0])\n item.enableYMin(enableminor[1])\n else:\n raise TypeError(\n "Invalid enableminor %r (expecting tuple of two booleans)"\n % enableminor\n )\n if plot is not None:\n item.attach(plot)\n return item
\n\n\n
\n[docs]\n def rtti(self):\n """\n :return: Return `QwtPlotItem.Rtti_PlotGrid`\n """\n return QwtPlotItem.Rtti_PlotGrid
\n\n\n
\n[docs]\n def enableX(self, on):\n """\n Enable or disable vertical grid lines\n\n :param bool on: Enable (true) or disable\n\n .. seealso::\n\n :py:meth:`enableXMin()`\n """\n if self.__data.xEnabled != on:\n self.__data.xEnabled = on\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def enableY(self, on):\n """\n Enable or disable horizontal grid lines\n\n :param bool on: Enable (true) or disable\n\n .. seealso::\n\n :py:meth:`enableYMin()`\n """\n if self.__data.yEnabled != on:\n self.__data.yEnabled = on\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def enableXMin(self, on):\n """\n Enable or disable minor vertical grid lines.\n\n :param bool on: Enable (true) or disable\n\n .. seealso::\n\n :py:meth:`enableX()`\n """\n if self.__data.xMinEnabled != on:\n self.__data.xMinEnabled = on\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def enableYMin(self, on):\n """\n Enable or disable minor horizontal grid lines.\n\n :param bool on: Enable (true) or disable\n\n .. seealso::\n\n :py:meth:`enableY()`\n """\n if self.__data.yMinEnabled != on:\n self.__data.yMinEnabled = on\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def setXDiv(self, scaleDiv):\n """\n Assign an x axis scale division\n\n :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division\n """\n if self.__data.xScaleDiv != scaleDiv:\n self.__data.xScaleDiv = scaleDiv\n self.itemChanged()
\n\n\n
\n[docs]\n def setYDiv(self, scaleDiv):\n """\n Assign an y axis scale division\n\n :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division\n """\n if self.__data.yScaleDiv != scaleDiv:\n self.__data.yScaleDiv = scaleDiv\n self.itemChanged()
\n\n\n
\n[docs]\n def setPen(self, *args):\n """\n Build and/or assign a pen for both major and minor grid lines\n\n .. py:method:: setPen(color, width, style)\n :noindex:\n\n Build and assign a pen for both major and minor grid lines\n\n In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\n non cosmetic (see `QPen.isCosmetic()`). This method signature has\n been introduced to hide this incompatibility.\n\n :param QColor color: Pen color\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n\n .. py:method:: setPen(pen)\n :noindex:\n\n Assign a pen for both major and minor grid lines\n\n :param QPen pen: New pen\n\n .. seealso::\n\n :py:meth:`pen()`, :py:meth:`brush()`\n """\n if len(args) == 3:\n color, width, style = args\n self.setPen(QPen(color, width, style))\n elif len(args) == 1:\n (pen,) = args\n if self.__data.majorPen != pen or self.__data.minorPen != pen:\n self.__data.majorPen = pen\n self.__data.minorPen = pen\n self.legendChanged()\n self.itemChanged()\n else:\n raise TypeError(\n "%s().setPen() takes 1 or 3 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def setMajorPen(self, *args):\n """\n Build and/or assign a pen for both major grid lines\n\n .. py:method:: setMajorPen(color, width, style)\n :noindex:\n\n Build and assign a pen for both major grid lines\n\n In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\n non cosmetic (see `QPen.isCosmetic()`). This method signature has\n been introduced to hide this incompatibility.\n\n :param QColor color: Pen color\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n\n .. py:method:: setMajorPen(pen)\n :noindex:\n\n Assign a pen for the major grid lines\n\n :param QPen pen: New pen\n\n .. seealso::\n\n :py:meth:`majorPen()`, :py:meth:`setMinorPen()`,\n :py:meth:`setPen()`, :py:meth:`pen()`, :py:meth:`brush()`\n """\n if len(args) == 3:\n color, width, style = args\n self.setMajorPen(QPen(color, width, style))\n elif len(args) == 1:\n (pen,) = args\n if self.__data.majorPen != pen:\n self.__data.majorPen = pen\n self.legendChanged()\n self.itemChanged()\n else:\n raise TypeError(\n "%s().setMajorPen() takes 1 or 3 argument(s) (%s "\n "given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def setMinorPen(self, *args):\n """\n Build and/or assign a pen for both minor grid lines\n\n .. py:method:: setMinorPen(color, width, style)\n :noindex:\n\n Build and assign a pen for both minor grid lines\n\n In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\n non cosmetic (see `QPen.isCosmetic()`). This method signature has\n been introduced to hide this incompatibility.\n\n :param QColor color: Pen color\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n\n .. py:method:: setMinorPen(pen)\n :noindex:\n\n Assign a pen for the minor grid lines\n\n :param QPen pen: New pen\n\n .. seealso::\n\n :py:meth:`minorPen()`, :py:meth:`setMajorPen()`,\n :py:meth:`setPen()`, :py:meth:`pen()`, :py:meth:`brush()`\n """\n if len(args) == 3:\n color, width, style = args\n self.setMinorPen(QPen(color, width, style))\n elif len(args) == 1:\n (pen,) = args\n if self.__data.minorPen != pen:\n self.__data.minorPen = pen\n self.legendChanged()\n self.itemChanged()\n else:\n raise TypeError(\n "%s().setMinorPen() takes 1 or 3 argument(s) (%s "\n "given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def draw(self, painter, xMap, yMap, canvasRect):\n """\n Draw the grid\n\n The grid is drawn into the bounding rectangle such that\n grid lines begin and end at the rectangle's borders. The X and Y\n maps are used to map the scale divisions into the drawing region\n screen.\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: X axis map\n :param qwt.scale_map.QwtScaleMap yMap: Y axis\n :param QRectF canvasRect: Contents rectangle of the plot canvas\n """\n minorPen = QPen(self.__data.minorPen)\n minorPen.setCapStyle(Qt.FlatCap)\n painter.setPen(minorPen)\n if self.__data.xEnabled and self.__data.xMinEnabled:\n self.drawLines(\n painter,\n canvasRect,\n Qt.Vertical,\n xMap,\n self.__data.xScaleDiv.ticks(QwtScaleDiv.MinorTick),\n )\n self.drawLines(\n painter,\n canvasRect,\n Qt.Vertical,\n xMap,\n self.__data.xScaleDiv.ticks(QwtScaleDiv.MediumTick),\n )\n if self.__data.yEnabled and self.__data.yMinEnabled:\n self.drawLines(\n painter,\n canvasRect,\n Qt.Horizontal,\n yMap,\n self.__data.yScaleDiv.ticks(QwtScaleDiv.MinorTick),\n )\n self.drawLines(\n painter,\n canvasRect,\n Qt.Horizontal,\n yMap,\n self.__data.yScaleDiv.ticks(QwtScaleDiv.MediumTick),\n )\n majorPen = QPen(self.__data.majorPen)\n majorPen.setCapStyle(Qt.FlatCap)\n painter.setPen(majorPen)\n if self.__data.xEnabled:\n self.drawLines(\n painter,\n canvasRect,\n Qt.Vertical,\n xMap,\n self.__data.xScaleDiv.ticks(QwtScaleDiv.MajorTick),\n )\n if self.__data.yEnabled:\n self.drawLines(\n painter,\n canvasRect,\n Qt.Horizontal,\n yMap,\n self.__data.yScaleDiv.ticks(QwtScaleDiv.MajorTick),\n )
\n\n\n def drawLines(self, painter, canvasRect, orientation, scaleMap, values):\n x1 = canvasRect.left()\n x2 = canvasRect.right() - 1.0\n y1 = canvasRect.top()\n y2 = canvasRect.bottom() - 1.0\n for val in values:\n value = scaleMap.transform(val)\n if orientation == Qt.Horizontal:\n if qwtFuzzyGreaterOrEqual(value, y1) and qwtFuzzyLessOrEqual(value, y2):\n painter.drawLine(QLineF(x1, value, x2, value))\n else:\n if qwtFuzzyGreaterOrEqual(value, x1) and qwtFuzzyLessOrEqual(value, x2):\n painter.drawLine(QLineF(value, y1, value, y2))\n\n
\n[docs]\n def majorPen(self):\n """\n :return: the pen for the major grid lines\n\n .. seealso::\n\n :py:meth:`setMajorPen()`, :py:meth:`setMinorPen()`,\n :py:meth:`setPen()`\n """\n return self.__data.majorPen
\n\n\n
\n[docs]\n def minorPen(self):\n """\n :return: the pen for the minor grid lines\n\n .. seealso::\n\n :py:meth:`setMinorPen()`, :py:meth:`setMajorPen()`,\n :py:meth:`setPen()`\n """\n return self.__data.minorPen
\n\n\n
\n[docs]\n def xEnabled(self):\n """\n :return: True if vertical grid lines are enabled\n\n .. seealso::\n\n :py:meth:`enableX()`\n """\n return self.__data.xEnabled
\n\n\n
\n[docs]\n def yEnabled(self):\n """\n :return: True if horizontal grid lines are enabled\n\n .. seealso::\n\n :py:meth:`enableY()`\n """\n return self.__data.yEnabled
\n\n\n
\n[docs]\n def xMinEnabled(self):\n """\n :return: True if minor vertical grid lines are enabled\n\n .. seealso::\n\n :py:meth:`enableXMin()`\n """\n return self.__data.xMinEnabled
\n\n\n
\n[docs]\n def yMinEnabled(self):\n """\n :return: True if minor horizontal grid lines are enabled\n\n .. seealso::\n\n :py:meth:`enableYMin()`\n """\n return self.__data.yMinEnabled
\n\n\n
\n[docs]\n def xScaleDiv(self):\n """\n :return: the scale division of the x axis\n """\n return self.__data.xScaleDiv
\n\n\n
\n[docs]\n def yScaleDiv(self):\n """\n :return: the scale division of the y axis\n """\n return self.__data.yScaleDiv
\n\n\n
\n[docs]\n def updateScaleDiv(self, xScaleDiv, yScaleDiv):\n """\n Update the grid to changes of the axes scale division\n\n :param qwt.scale_map.QwtScaleMap xMap: Scale division of the x-axis\n :param qwt.scale_map.QwtScaleMap yMap: Scale division of the y-axis\n\n .. seealso::\n\n :py:meth:`updateAxes()`\n """\n self.setXDiv(xScaleDiv)\n self.setYDiv(yScaleDiv)
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6891120>, 'js_tag': .js_tag at 0x7fc7d6891300>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/plot_grid', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_grid', 'current_page_name': '_modules/qwt/plot_grid', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ca0680>, 'hasdoc': .hasdoc at 0x7f3d39ca1260>, 'toctree': . at 0x7f3d39ca11c0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_grid', 'body': '

Source code for qwt.plot_grid

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotGrid\n-----------\n\n.. autoclass:: QwtPlotGrid\n   :members:\n"""\n\nfrom qtpy.QtCore import QLineF, QObject, Qt\nfrom qtpy.QtGui import QPen\n\nfrom qwt._math import qwtFuzzyGreaterOrEqual, qwtFuzzyLessOrEqual\nfrom qwt.plot import QwtPlotItem\nfrom qwt.qthelpers import qcolor_from_str\nfrom qwt.scale_div import QwtScaleDiv\n\n\nclass QwtPlotGrid_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.xEnabled = True\n        self.yEnabled = True\n        self.xMinEnabled = False\n        self.yMinEnabled = False\n        self.xScaleDiv = QwtScaleDiv()\n        self.yScaleDiv = QwtScaleDiv()\n        self.majorPen = QPen()\n        self.minorPen = QPen()\n\n\n
\n[docs]\nclass QwtPlotGrid(QwtPlotItem):\n """\n A class which draws a coordinate grid\n\n The `QwtPlotGrid` class can be used to draw a coordinate grid.\n A coordinate grid consists of major and minor vertical\n and horizontal grid lines. The locations of the grid lines\n are determined by the X and Y scale divisions which can\n be assigned with `setXDiv()` and `setYDiv()`.\n The `draw()` member draws the grid within a bounding\n rectangle.\n """\n\n def __init__(self, title="Grid"):\n QwtPlotItem.__init__(self, title)\n self.__data = QwtPlotGrid_PrivateData()\n self.setItemInterest(QwtPlotItem.ScaleInterest, True)\n self.setZ(10.0)\n\n
\n[docs]\n @classmethod\n def make(\n cls,\n plot=None,\n z=None,\n enablemajor=None,\n enableminor=None,\n color=None,\n width=None,\n style=None,\n mincolor=None,\n minwidth=None,\n minstyle=None,\n ):\n """\n Create and setup a new `QwtPlotGrid` object (convenience function).\n\n :param plot: Plot to attach the curve to\n :type plot: qwt.plot.QwtPlot or None\n :param z: Z-value\n :type z: float or None\n :param enablemajor: Tuple of two boolean values (x, y) for enabling major grid lines\n :type enablemajor: bool or None\n :param enableminor: Tuple of two boolean values (x, y) for enabling minor grid lines\n :type enableminor: bool or None\n :param color: Pen color for both major and minor grid lines (default: Qt.gray)\n :type color: QColor or str or None\n :param width: Pen width for both major and minor grid lines (default: 1.0)\n :type width: float or None\n :param style: Pen style for both major and minor grid lines (default: Qt.DotLine)\n :type style: Qt.PenStyle or None\n :param mincolor: Pen color for minor grid lines only (default: Qt.gray)\n :type mincolor: QColor or str or None\n :param minwidth: Pen width for minor grid lines only (default: 1.0)\n :type minwidth: float or None\n :param minstyle: Pen style for minor grid lines only (default: Qt.DotLine)\n :type minstyle: Qt.PenStyle or None\n\n .. seealso::\n\n :py:meth:`setMinorPen()`, :py:meth:`setMajorPen()`\n """\n item = cls()\n if z is not None:\n item.setZ(z)\n color = qcolor_from_str(color, Qt.gray)\n width = 1.0 if width is None else float(width)\n style = Qt.DotLine if style is None else style\n item.setPen(QPen(color, width, style))\n if mincolor is not None or minwidth is not None or minstyle is not None:\n mincolor = qcolor_from_str(mincolor, Qt.gray)\n minwidth = 1.0 if width is None else minwidth\n minstyle = Qt.DotLine if style is None else minstyle\n item.setMinorPen(QPen(mincolor, minwidth, minstyle))\n if enablemajor is not None:\n if isinstance(enablemajor, tuple) and len(enablemajor) == 2:\n item.enableX(enablemajor[0])\n item.enableY(enablemajor[1])\n else:\n raise TypeError(\n "Invalid enablemajor %r (expecting tuple of two booleans)"\n % enablemajor\n )\n if enableminor is not None:\n if isinstance(enableminor, tuple) and len(enableminor) == 2:\n item.enableXMin(enableminor[0])\n item.enableYMin(enableminor[1])\n else:\n raise TypeError(\n "Invalid enableminor %r (expecting tuple of two booleans)"\n % enableminor\n )\n if plot is not None:\n item.attach(plot)\n return item
\n\n\n
\n[docs]\n def rtti(self):\n """\n :return: Return `QwtPlotItem.Rtti_PlotGrid`\n """\n return QwtPlotItem.Rtti_PlotGrid
\n\n\n
\n[docs]\n def enableX(self, on):\n """\n Enable or disable vertical grid lines\n\n :param bool on: Enable (true) or disable\n\n .. seealso::\n\n :py:meth:`enableXMin()`\n """\n if self.__data.xEnabled != on:\n self.__data.xEnabled = on\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def enableY(self, on):\n """\n Enable or disable horizontal grid lines\n\n :param bool on: Enable (true) or disable\n\n .. seealso::\n\n :py:meth:`enableYMin()`\n """\n if self.__data.yEnabled != on:\n self.__data.yEnabled = on\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def enableXMin(self, on):\n """\n Enable or disable minor vertical grid lines.\n\n :param bool on: Enable (true) or disable\n\n .. seealso::\n\n :py:meth:`enableX()`\n """\n if self.__data.xMinEnabled != on:\n self.__data.xMinEnabled = on\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def enableYMin(self, on):\n """\n Enable or disable minor horizontal grid lines.\n\n :param bool on: Enable (true) or disable\n\n .. seealso::\n\n :py:meth:`enableY()`\n """\n if self.__data.yMinEnabled != on:\n self.__data.yMinEnabled = on\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def setXDiv(self, scaleDiv):\n """\n Assign an x axis scale division\n\n :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division\n """\n if self.__data.xScaleDiv != scaleDiv:\n self.__data.xScaleDiv = scaleDiv\n self.itemChanged()
\n\n\n
\n[docs]\n def setYDiv(self, scaleDiv):\n """\n Assign an y axis scale division\n\n :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division\n """\n if self.__data.yScaleDiv != scaleDiv:\n self.__data.yScaleDiv = scaleDiv\n self.itemChanged()
\n\n\n
\n[docs]\n def setPen(self, *args):\n """\n Build and/or assign a pen for both major and minor grid lines\n\n .. py:method:: setPen(color, width, style)\n :noindex:\n\n Build and assign a pen for both major and minor grid lines\n\n In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\n non cosmetic (see `QPen.isCosmetic()`). This method signature has\n been introduced to hide this incompatibility.\n\n :param QColor color: Pen color\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n\n .. py:method:: setPen(pen)\n :noindex:\n\n Assign a pen for both major and minor grid lines\n\n :param QPen pen: New pen\n\n .. seealso::\n\n :py:meth:`pen()`, :py:meth:`brush()`\n """\n if len(args) == 3:\n color, width, style = args\n self.setPen(QPen(color, width, style))\n elif len(args) == 1:\n (pen,) = args\n if self.__data.majorPen != pen or self.__data.minorPen != pen:\n self.__data.majorPen = pen\n self.__data.minorPen = pen\n self.legendChanged()\n self.itemChanged()\n else:\n raise TypeError(\n "%s().setPen() takes 1 or 3 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def setMajorPen(self, *args):\n """\n Build and/or assign a pen for both major grid lines\n\n .. py:method:: setMajorPen(color, width, style)\n :noindex:\n\n Build and assign a pen for both major grid lines\n\n In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\n non cosmetic (see `QPen.isCosmetic()`). This method signature has\n been introduced to hide this incompatibility.\n\n :param QColor color: Pen color\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n\n .. py:method:: setMajorPen(pen)\n :noindex:\n\n Assign a pen for the major grid lines\n\n :param QPen pen: New pen\n\n .. seealso::\n\n :py:meth:`majorPen()`, :py:meth:`setMinorPen()`,\n :py:meth:`setPen()`, :py:meth:`pen()`, :py:meth:`brush()`\n """\n if len(args) == 3:\n color, width, style = args\n self.setMajorPen(QPen(color, width, style))\n elif len(args) == 1:\n (pen,) = args\n if self.__data.majorPen != pen:\n self.__data.majorPen = pen\n self.legendChanged()\n self.itemChanged()\n else:\n raise TypeError(\n "%s().setMajorPen() takes 1 or 3 argument(s) (%s "\n "given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def setMinorPen(self, *args):\n """\n Build and/or assign a pen for both minor grid lines\n\n .. py:method:: setMinorPen(color, width, style)\n :noindex:\n\n Build and assign a pen for both minor grid lines\n\n In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\n non cosmetic (see `QPen.isCosmetic()`). This method signature has\n been introduced to hide this incompatibility.\n\n :param QColor color: Pen color\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n\n .. py:method:: setMinorPen(pen)\n :noindex:\n\n Assign a pen for the minor grid lines\n\n :param QPen pen: New pen\n\n .. seealso::\n\n :py:meth:`minorPen()`, :py:meth:`setMajorPen()`,\n :py:meth:`setPen()`, :py:meth:`pen()`, :py:meth:`brush()`\n """\n if len(args) == 3:\n color, width, style = args\n self.setMinorPen(QPen(color, width, style))\n elif len(args) == 1:\n (pen,) = args\n if self.__data.minorPen != pen:\n self.__data.minorPen = pen\n self.legendChanged()\n self.itemChanged()\n else:\n raise TypeError(\n "%s().setMinorPen() takes 1 or 3 argument(s) (%s "\n "given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def draw(self, painter, xMap, yMap, canvasRect):\n """\n Draw the grid\n\n The grid is drawn into the bounding rectangle such that\n grid lines begin and end at the rectangle's borders. The X and Y\n maps are used to map the scale divisions into the drawing region\n screen.\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: X axis map\n :param qwt.scale_map.QwtScaleMap yMap: Y axis\n :param QRectF canvasRect: Contents rectangle of the plot canvas\n """\n minorPen = QPen(self.__data.minorPen)\n minorPen.setCapStyle(Qt.FlatCap)\n painter.setPen(minorPen)\n if self.__data.xEnabled and self.__data.xMinEnabled:\n self.drawLines(\n painter,\n canvasRect,\n Qt.Vertical,\n xMap,\n self.__data.xScaleDiv.ticks(QwtScaleDiv.MinorTick),\n )\n self.drawLines(\n painter,\n canvasRect,\n Qt.Vertical,\n xMap,\n self.__data.xScaleDiv.ticks(QwtScaleDiv.MediumTick),\n )\n if self.__data.yEnabled and self.__data.yMinEnabled:\n self.drawLines(\n painter,\n canvasRect,\n Qt.Horizontal,\n yMap,\n self.__data.yScaleDiv.ticks(QwtScaleDiv.MinorTick),\n )\n self.drawLines(\n painter,\n canvasRect,\n Qt.Horizontal,\n yMap,\n self.__data.yScaleDiv.ticks(QwtScaleDiv.MediumTick),\n )\n majorPen = QPen(self.__data.majorPen)\n majorPen.setCapStyle(Qt.FlatCap)\n painter.setPen(majorPen)\n if self.__data.xEnabled:\n self.drawLines(\n painter,\n canvasRect,\n Qt.Vertical,\n xMap,\n self.__data.xScaleDiv.ticks(QwtScaleDiv.MajorTick),\n )\n if self.__data.yEnabled:\n self.drawLines(\n painter,\n canvasRect,\n Qt.Horizontal,\n yMap,\n self.__data.yScaleDiv.ticks(QwtScaleDiv.MajorTick),\n )
\n\n\n def drawLines(self, painter, canvasRect, orientation, scaleMap, values):\n x1 = canvasRect.left()\n x2 = canvasRect.right() - 1.0\n y1 = canvasRect.top()\n y2 = canvasRect.bottom() - 1.0\n for val in values:\n value = scaleMap.transform(val)\n if orientation == Qt.Horizontal:\n if qwtFuzzyGreaterOrEqual(value, y1) and qwtFuzzyLessOrEqual(value, y2):\n painter.drawLine(QLineF(x1, value, x2, value))\n else:\n if qwtFuzzyGreaterOrEqual(value, x1) and qwtFuzzyLessOrEqual(value, x2):\n painter.drawLine(QLineF(value, y1, value, y2))\n\n
\n[docs]\n def majorPen(self):\n """\n :return: the pen for the major grid lines\n\n .. seealso::\n\n :py:meth:`setMajorPen()`, :py:meth:`setMinorPen()`,\n :py:meth:`setPen()`\n """\n return self.__data.majorPen
\n\n\n
\n[docs]\n def minorPen(self):\n """\n :return: the pen for the minor grid lines\n\n .. seealso::\n\n :py:meth:`setMinorPen()`, :py:meth:`setMajorPen()`,\n :py:meth:`setPen()`\n """\n return self.__data.minorPen
\n\n\n
\n[docs]\n def xEnabled(self):\n """\n :return: True if vertical grid lines are enabled\n\n .. seealso::\n\n :py:meth:`enableX()`\n """\n return self.__data.xEnabled
\n\n\n
\n[docs]\n def yEnabled(self):\n """\n :return: True if horizontal grid lines are enabled\n\n .. seealso::\n\n :py:meth:`enableY()`\n """\n return self.__data.yEnabled
\n\n\n
\n[docs]\n def xMinEnabled(self):\n """\n :return: True if minor vertical grid lines are enabled\n\n .. seealso::\n\n :py:meth:`enableXMin()`\n """\n return self.__data.xMinEnabled
\n\n\n
\n[docs]\n def yMinEnabled(self):\n """\n :return: True if minor horizontal grid lines are enabled\n\n .. seealso::\n\n :py:meth:`enableYMin()`\n """\n return self.__data.yMinEnabled
\n\n\n
\n[docs]\n def xScaleDiv(self):\n """\n :return: the scale division of the x axis\n """\n return self.__data.xScaleDiv
\n\n\n
\n[docs]\n def yScaleDiv(self):\n """\n :return: the scale division of the y axis\n """\n return self.__data.yScaleDiv
\n\n\n
\n[docs]\n def updateScaleDiv(self, xScaleDiv, yScaleDiv):\n """\n Update the grid to changes of the axes scale division\n\n :param qwt.scale_map.QwtScaleMap xMap: Scale division of the x-axis\n :param qwt.scale_map.QwtScaleMap yMap: Scale division of the y-axis\n\n .. seealso::\n\n :py:meth:`updateAxes()`\n """\n self.setXDiv(xScaleDiv)\n self.setYDiv(yScaleDiv)
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39ca1120>, 'js_tag': .js_tag at 0x7f3d39ca1300>}, None) highlighting module code... [ 50%] qwt.plot_layout [app] emitting event: 'viewcode-find-source'('qwt.plot_layout',) -[app] emitting event: 'html-page-context'('_modules/qwt/plot_layout', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_layout', 'current_page_name': '_modules/qwt/plot_layout', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d68900e0>, 'hasdoc': .hasdoc at 0x7fc7d6890540>, 'toctree': . at 0x7fc7d6891080>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_layout', 'body': '

Source code for qwt.plot_layout

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotLayout\n-------------\n\n.. autoclass:: QwtPlotLayout\n   :members:\n"""\n\nimport math\n\nfrom qtpy.QtCore import QObject, QRectF, QSize, Qt\nfrom qtpy.QtGui import QFont, QRegion\n\nfrom qwt.plot import QwtPlot\nfrom qwt.scale_draw import QwtAbstractScaleDraw\nfrom qwt.scale_widget import QwtScaleWidget\nfrom qwt.text import QwtText\n\nQWIDGETSIZE_MAX = (1 << 24) - 1\n\n\nclass LegendData(object):\n    def __init__(self):\n        self.frameWidth = None\n        self.hScrollExtent = None\n        self.vScrollExtent = None\n        self.hint = QSize()\n\n\nclass TitleData(object):\n    def __init__(self):\n        self.text = QwtText()\n        self.frameWidth = None\n\n\nclass FooterData(object):\n    def __init__(self):\n        self.text = QwtText()\n        self.frameWidth = None\n\n\nclass ScaleData(object):\n    def __init__(self):\n        self.isEnabled = None\n        self.scaleWidget = QwtScaleWidget()\n        self.scaleFont = QFont()\n        self.start = None\n        self.end = None\n        self.baseLineOffset = None\n        self.tickOffset = None\n        self.dimWithoutTitle = None\n\n\nclass CanvasData(object):\n    def __init__(self):\n        self.contentsMargins = [0 for _i in QwtPlot.AXES]\n\n\nclass QwtPlotLayout_LayoutData(object):\n    def __init__(self):\n        self.legend = LegendData()\n        self.title = TitleData()\n        self.footer = FooterData()\n        self.scale = [ScaleData() for _i in QwtPlot.AXES]\n        self.canvas = CanvasData()\n\n    def init(self, plot, rect):\n        """Extract all layout relevant data from the plot components"""\n        # legend\n        legend = plot.legend()\n        if legend:\n            self.legend.frameWidth = legend.frameWidth()\n            self.legend.hScrollExtent = legend.scrollExtent(Qt.Horizontal)\n            self.legend.vScrollExtent = legend.scrollExtent(Qt.Vertical)\n            hint = legend.sizeHint()\n            w = min([hint.width(), math.floor(rect.width())])\n            h = legend.heightForWidth(w)\n            if h <= 0:\n                h = hint.height()\n            self.legend.hint = QSize(w, h)\n        # title\n        self.title.frameWidth = 0\n        self.title.text = QwtText()\n        if plot.titleLabel():\n            label = plot.titleLabel()\n            self.title.text = label.text()\n            if not self.title.text.testPaintAttribute(QwtText.PaintUsingTextFont):\n                self.title.text.setFont(label.font())\n            self.title.frameWidth = plot.titleLabel().frameWidth()\n        # footer\n        self.footer.frameWidth = 0\n        self.footer.text = QwtText()\n        if plot.footerLabel():\n            label = plot.footerLabel()\n            self.footer.text = label.text()\n            if not self.footer.text.testPaintAttribute(QwtText.PaintUsingTextFont):\n                self.footer.text.setFont(label.font())\n            self.footer.frameWidth = plot.footerLabel().frameWidth()\n        # scales\n        for axis in QwtPlot.AXES:\n            if plot.axisEnabled(axis):\n                scaleWidget = plot.axisWidget(axis)\n                self.scale[axis].isEnabled = True\n                self.scale[axis].scaleWidget = scaleWidget\n                self.scale[axis].scaleFont = scaleWidget.font()\n                self.scale[axis].start = scaleWidget.startBorderDist()\n                self.scale[axis].end = scaleWidget.endBorderDist()\n                self.scale[axis].baseLineOffset = scaleWidget.margin()\n                self.scale[axis].tickOffset = scaleWidget.margin()\n                if scaleWidget.scaleDraw().hasComponent(QwtAbstractScaleDraw.Ticks):\n                    self.scale[\n                        axis\n                    ].tickOffset += scaleWidget.scaleDraw().maxTickLength()\n                self.scale[axis].dimWithoutTitle = scaleWidget.dimForLength(\n                    QWIDGETSIZE_MAX, self.scale[axis].scaleFont\n                )\n                if not scaleWidget.title().isEmpty():\n                    self.scale[axis].dimWithoutTitle -= scaleWidget.titleHeightForWidth(\n                        QWIDGETSIZE_MAX\n                    )\n            else:\n                self.scale[axis].isEnabled = False\n                self.scale[axis].start = 0\n                self.scale[axis].end = 0\n                self.scale[axis].baseLineOffset = 0\n                self.scale[axis].tickOffset = 0.0\n                self.scale[axis].dimWithoutTitle = 0\n        layout = plot.canvas().layout()\n        if layout is not None:\n            mgn = layout.contentsMargins()\n            self.canvas.contentsMargins = [\n                mgn.left(),\n                mgn.top(),\n                mgn.right(),\n                mgn.bottom(),\n            ]\n\n\nclass QwtPlotLayout_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.spacing = 5\n        self.titleRect = QRectF()\n        self.footerRect = QRectF()\n        self.legendRect = QRectF()\n        self.scaleRect = [QRectF() for _i in QwtPlot.AXES]\n        self.canvasRect = QRectF()\n        self.layoutData = QwtPlotLayout_LayoutData()\n        self.legendPos = None\n        self.legendRatio = None\n        self.canvasMargin = [0] * len(QwtPlot.AXES)\n        self.alignCanvasToScales = [False] * len(QwtPlot.AXES)\n\n\n
\n[docs]\nclass QwtPlotLayout(object):\n """\n Layout engine for QwtPlot.\n\n It is used by the `QwtPlot` widget to organize its internal widgets\n or by `QwtPlot.print()` to render its content to a QPaintDevice like\n a QPrinter, QPixmap/QImage or QSvgRenderer.\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setPlotLayout()`\n\n Valid options:\n\n * `QwtPlotLayout.AlignScales`: Unused\n * `QwtPlotLayout.IgnoreScrollbars`: Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is not rendered to widgets.\n * `QwtPlotLayout.IgnoreFrames`: Ignore all frames.\n * `QwtPlotLayout.IgnoreLegend`: Ignore the legend.\n * `QwtPlotLayout.IgnoreTitle`: Ignore the title.\n * `QwtPlotLayout.IgnoreFooter`: Ignore the footer.\n """\n\n # enum Option\n AlignScales = 0x01\n IgnoreScrollbars = 0x02\n IgnoreFrames = 0x04\n IgnoreLegend = 0x08\n IgnoreTitle = 0x10\n IgnoreFooter = 0x20\n\n def __init__(self):\n self.__data = QwtPlotLayout_PrivateData()\n self.setLegendPosition(QwtPlot.BottomLegend)\n self.setCanvasMargin(4)\n self.setAlignCanvasToScales(False)\n self.invalidate()\n\n
\n[docs]\n def setCanvasMargin(self, margin, axis=-1):\n """\n Change a margin of the canvas. The margin is the space\n above/below the scale ticks. A negative margin will\n be set to -1, excluding the borders of the scales.\n\n :param int margin: New margin\n :param int axisId: Axis index\n\n .. seealso::\n\n :py:meth:`canvasMargin()`\n\n .. warning::\n\n The margin will have no effect when `alignCanvasToScale()` is True\n """\n if margin < 1:\n margin = -1\n if axis == -1:\n for axis in QwtPlot.AXES:\n self.__data.canvasMargin[axis] = margin\n elif axis in QwtPlot.AXES:\n self.__data.canvasMargin[axis] = margin
\n\n\n
\n[docs]\n def canvasMargin(self, axisId):\n """\n :param int axisId: Axis index\n :return: Margin around the scale tick borders\n\n .. seealso::\n\n :py:meth:`setCanvasMargin()`\n """\n if axisId not in QwtPlot.AXES:\n return 0\n return self.__data.canvasMargin[axisId]
\n\n\n
\n[docs]\n def setAlignCanvasToScales(self, *args):\n """\n Change the align-canvas-to-axis-scales setting.\n\n .. py:method:: setAlignCanvasToScales(on):\n\n Set the align-canvas-to-axis-scales flag for all axes\n\n :param bool on: True/False\n\n .. py:method:: setAlignCanvasToScales(axisId, on):\n\n Change the align-canvas-to-axis-scales setting.\n The canvas may:\n\n - extend beyond the axis scale ends to maximize its size,\n - align with the axis scale ends to control its size.\n\n The axisId parameter is somehow confusing as it identifies a\n border of the plot and not the axes, that are aligned. F.e when\n `QwtPlot.yLeft` is set, the left end of the the x-axes\n (`QwtPlot.xTop`, `QwtPlot.xBottom`) is aligned.\n\n :param int axisId: Axis index\n :param bool on: True/False\n\n .. seealso::\n\n :py:meth:`setAlignCanvasToScale()`,\n :py:meth:`alignCanvasToScale()`\n """\n if len(args) == 1:\n (on,) = args\n for axis in QwtPlot.AXES:\n self.__data.alignCanvasToScales[axis] = on\n elif len(args) == 2:\n axisId, on = args\n if axisId in QwtPlot.AXES:\n self.__data.alignCanvasToScales[axisId] = on\n else:\n raise TypeError(\n "%s().setAlignCanvasToScales() takes 1 or 2 "\n "argument(s) (%s given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def alignCanvasToScale(self, axisId):\n """\n Return the align-canvas-to-axis-scales setting.\n The canvas may:\n\n - extend beyond the axis scale ends to maximize its size\n - align with the axis scale ends to control its size.\n\n :param int axisId: Axis index\n :return: align-canvas-to-axis-scales setting\n\n .. seealso::\n\n :py:meth:`setAlignCanvasToScale()`, :py:meth:`setCanvasMargin()`\n """\n if axisId not in QwtPlot.AXES:\n return False\n return self.__data.alignCanvasToScales[axisId]
\n\n\n
\n[docs]\n def setSpacing(self, spacing):\n """\n Change the spacing of the plot. The spacing is the distance\n between the plot components.\n\n :param int spacing: New spacing\n\n .. seealso::\n\n :py:meth:`setCanvasMargin()`, :py:meth:`spacing()`\n """\n self.__data.spacing = max([0, spacing])
\n\n\n
\n[docs]\n def spacing(self):\n """\n :return: Spacing\n\n .. seealso::\n\n :py:meth:`margin()`, :py:meth:`setSpacing()`\n """\n return self.__data.spacing
\n\n\n
\n[docs]\n def setLegendPosition(self, *args):\n """\n Specify the position of the legend\n\n .. py:method:: setLegendPosition(pos, [ratio=0.]):\n\n Specify the position of the legend\n\n :param QwtPlot.LegendPosition pos: Legend position\n :param float ratio: Ratio between legend and the bounding rectangle of title, footer, canvas and axes\n\n The legend will be shrunk if it would need more space than the\n given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of\n <= 0.0 it will be reset to the default ratio. The default\n vertical/horizontal ratio is 0.33/0.5.\n\n Valid position values:\n\n * `QwtPlot.LeftLegend`,\n * `QwtPlot.RightLegend`,\n * `QwtPlot.TopLegend`,\n * `QwtPlot.BottomLegend`\n\n .. seealso::\n\n :py:meth:`setLegendPosition()`\n """\n if len(args) == 2:\n pos, ratio = args\n if ratio > 1.0:\n ratio = 1.0\n if pos in (QwtPlot.TopLegend, QwtPlot.BottomLegend):\n if ratio <= 0.0:\n ratio = 0.33\n self.__data.legendRatio = ratio\n self.__data.legendPos = pos\n elif pos in (QwtPlot.LeftLegend, QwtPlot.RightLegend):\n if ratio <= 0.0:\n ratio = 0.5\n self.__data.legendRatio = ratio\n self.__data.legendPos = pos\n elif len(args) == 1:\n (pos,) = args\n self.setLegendPosition(pos, 0.0)\n else:\n raise TypeError(\n "%s().setLegendPosition() takes 1 or 2 argument(s)"\n "(%s given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def legendPosition(self):\n """\n :return: Position of the legend\n\n .. seealso::\n\n :py:meth:`legendPosition()`\n """\n return self.__data.legendPos
\n\n\n
\n[docs]\n def setLegendRatio(self, ratio):\n """\n Specify the relative size of the legend in the plot\n\n :param float ratio: Ratio between legend and the bounding rectangle of title, footer, canvas and axes\n\n The legend will be shrunk if it would need more space than the\n given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of\n <= 0.0 it will be reset to the default ratio. The default\n vertical/horizontal ratio is 0.33/0.5.\n\n .. seealso::\n\n :py:meth:`legendRatio()`\n """\n self.setLegendPosition(self.legendPosition(), ratio)
\n\n\n
\n[docs]\n def legendRatio(self):\n """\n :return: The relative size of the legend in the plot.\n\n .. seealso::\n\n :py:meth:`setLegendRatio()`\n """\n return self.__data.legendRatio
\n\n\n
\n[docs]\n def setTitleRect(self, rect):\n """\n Set the geometry for the title\n\n This method is intended to be used from derived layouts\n overloading `activate()`\n\n :param QRectF rect: Rectangle\n\n .. seealso::\n\n :py:meth:`titleRect()`, :py:meth:`activate()`\n """\n self.__data.titleRect = rect
\n\n\n
\n[docs]\n def titleRect(self):\n """\n :return: Geometry for the title\n\n .. seealso::\n\n :py:meth:`invalidate()`, :py:meth:`activate()`\n """\n return self.__data.titleRect
\n\n\n
\n[docs]\n def setFooterRect(self, rect):\n """\n Set the geometry for the footer\n\n This method is intended to be used from derived layouts\n overloading `activate()`\n\n :param QRectF rect: Rectangle\n\n .. seealso::\n\n :py:meth:`footerRect()`, :py:meth:`activate()`\n """\n self.__data.footerRect = rect
\n\n\n
\n[docs]\n def footerRect(self):\n """\n :return: Geometry for the footer\n\n .. seealso::\n\n :py:meth:`invalidate()`, :py:meth:`activate()`\n """\n return self.__data.footerRect
\n\n\n
\n[docs]\n def setLegendRect(self, rect):\n """\n Set the geometry for the legend\n\n This method is intended to be used from derived layouts\n overloading `activate()`\n\n :param QRectF rect: Rectangle for the legend\n\n .. seealso::\n\n :py:meth:`footerRect()`, :py:meth:`activate()`\n """\n self.__data.legendRect = rect
\n\n\n
\n[docs]\n def legendRect(self):\n """\n :return: Geometry for the legend\n\n .. seealso::\n\n :py:meth:`invalidate()`, :py:meth:`activate()`\n """\n return self.__data.legendRect
\n\n\n
\n[docs]\n def setScaleRect(self, axis, rect):\n """\n Set the geometry for an axis\n\n This method is intended to be used from derived layouts\n overloading `activate()`\n\n :param int axisId: Axis index\n :param QRectF rect: Rectangle for the scale\n\n .. seealso::\n\n :py:meth:`scaleRect()`, :py:meth:`activate()`\n """\n if axis in QwtPlot.AXES:\n self.__data.scaleRect[axis] = rect
\n\n\n
\n[docs]\n def scaleRect(self, axis):\n """\n :param int axisId: Axis index\n :return: Geometry for the scale\n\n .. seealso::\n\n :py:meth:`invalidate()`, :py:meth:`activate()`\n """\n if axis not in QwtPlot.AXES:\n return QRectF()\n return self.__data.scaleRect[axis]
\n\n\n
\n[docs]\n def setCanvasRect(self, rect):\n """\n Set the geometry for the canvas\n\n This method is intended to be used from derived layouts\n overloading `activate()`\n\n :param QRectF rect: Rectangle\n\n .. seealso::\n\n :py:meth:`canvasRect()`, :py:meth:`activate()`\n """\n self.__data.canvasRect = rect
\n\n\n
\n[docs]\n def canvasRect(self):\n """\n :return: Geometry for the canvas\n\n .. seealso::\n\n :py:meth:`invalidate()`, :py:meth:`activate()`\n """\n return self.__data.canvasRect
\n\n\n
\n[docs]\n def invalidate(self):\n """\n Invalidate the geometry of all components.\n\n .. seealso::\n\n :py:meth:`activate()`\n """\n self.__data.titleRect = QRectF()\n self.__data.footerRect = QRectF()\n self.__data.legendRect = QRectF()\n self.__data.canvasRect = QRectF()\n for axis in QwtPlot.AXES:\n self.__data.scaleRect[axis] = QRectF()
\n\n\n
\n[docs]\n def minimumSizeHint(self, plot):\n """\n :param qwt.plot.QwtPlot plot: Plot widget\n :return: Minimum size hint\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.minimumSizeHint()`\n """\n\n class _ScaleData(object):\n def __init__(self):\n self.w = 0\n self.h = 0\n self.minLeft = 0\n self.minRight = 0\n self.tickOffset = 0\n\n scaleData = [_ScaleData() for _i in QwtPlot.AXES]\n canvasBorder = [0 for _i in QwtPlot.AXES]\n layout = plot.canvas().layout()\n if layout is None:\n left, top, right, bottom = 0, 0, 0, 0\n else:\n mgn = layout.contentsMargins()\n left, top, right, bottom = (\n mgn.left(),\n mgn.top(),\n mgn.right(),\n mgn.bottom(),\n )\n for axis in QwtPlot.AXES:\n if plot.axisEnabled(axis):\n scl = plot.axisWidget(axis)\n sd = scaleData[axis]\n hint = scl.minimumSizeHint()\n sd.w = hint.width()\n sd.h = hint.height()\n sd.minLeft, sd.minLeft = scl.getBorderDistHint()\n sd.tickOffset = scl.margin()\n if scl.scaleDraw().hasComponent(QwtAbstractScaleDraw.Ticks):\n sd.tickOffset += math.ceil(scl.scaleDraw().maxTickLength())\n canvasBorder[axis] = left + self.__data.canvasMargin[axis] + 1\n for axis in QwtPlot.AXES:\n sd = scaleData[axis]\n if sd.w and axis in (QwtPlot.xBottom, QwtPlot.xTop):\n if (\n sd.minLeft > canvasBorder[QwtPlot.yLeft]\n and scaleData[QwtPlot.yLeft].w\n ):\n shiftLeft = sd.minLeft - canvasBorder[QwtPlot.yLeft]\n if shiftLeft > scaleData[QwtPlot.yLeft].w:\n shiftLeft = scaleData[QwtPlot.yLeft].w\n sd.w -= shiftLeft\n if (\n sd.minRight > canvasBorder[QwtPlot.yRight]\n and scaleData[QwtPlot.yRight].w\n ):\n shiftRight = sd.minRight - canvasBorder[QwtPlot.yRight]\n if shiftRight > scaleData[QwtPlot.yRight].w:\n shiftRight = scaleData[QwtPlot.yRight].w\n sd.w -= shiftRight\n if sd.h and axis in (QwtPlot.yLeft, QwtPlot.yRight):\n if (\n sd.minLeft > canvasBorder[QwtPlot.xBottom]\n and scaleData[QwtPlot.xBottom].h\n ):\n shiftBottom = sd.minLeft - canvasBorder[QwtPlot.xBottom]\n if shiftBottom > scaleData[QwtPlot.xBottom].tickOffset:\n shiftBottom = scaleData[QwtPlot.xBottom].tickOffset\n sd.h -= shiftBottom\n if (\n sd.minLeft > canvasBorder[QwtPlot.xTop]\n and scaleData[QwtPlot.xTop].h\n ):\n shiftTop = sd.minRight - canvasBorder[QwtPlot.xTop]\n if shiftTop > scaleData[QwtPlot.xTop].tickOffset:\n shiftTop = scaleData[QwtPlot.xTop].tickOffset\n sd.h -= shiftTop\n canvas = plot.canvas()\n minCanvasSize = canvas.minimumSize()\n w = scaleData[QwtPlot.yLeft].w + scaleData[QwtPlot.yRight].w\n cw = (\n max([scaleData[QwtPlot.xBottom].w, scaleData[QwtPlot.xTop].w])\n + left\n + 1\n + right\n + 1\n )\n w += max([cw, minCanvasSize.width()])\n h = scaleData[QwtPlot.xBottom].h + scaleData[QwtPlot.xTop].h\n ch = (\n max([scaleData[QwtPlot.yLeft].h, scaleData[QwtPlot.yRight].h])\n + top\n + 1\n + bottom\n + 1\n )\n h += max([ch, minCanvasSize.height()])\n for label in [plot.titleLabel(), plot.footerLabel()]:\n if label and not label.text().isEmpty():\n centerOnCanvas = not plot.axisEnabled(\n QwtPlot.yLeft\n ) and plot.axisEnabled(QwtPlot.yRight)\n labelW = w\n if centerOnCanvas:\n labelW -= scaleData[QwtPlot.yLeft].w + scaleData[QwtPlot.yRight].w\n labelH = label.heightForWidth(labelW)\n if labelH > labelW:\n w = labelW = labelH\n if centerOnCanvas:\n w += scaleData[QwtPlot.yLeft].w + scaleData[QwtPlot.yRight].w\n labelH = label.heightForWidth(labelW)\n h += labelH + self.__data.spacing\n legend = plot.legend()\n if legend and not legend.isEmpty():\n if self.__data.legendPos in (QwtPlot.LeftLegend, QwtPlot.RightLegend):\n legendW = legend.sizeHint().width()\n legendH = legend.heightForWidth(legendW)\n if legend.frameWidth() > 0:\n w += self.__data.spacing\n if legendH > h:\n legendW += legend.scrollExtent(Qt.Horizontal)\n if self.__data.legendRatio < 1.0:\n legendW = min([legendW, int(w / (1.0 - self.__data.legendRatio))])\n w += legendW + self.__data.spacing\n else:\n legendW = min([legend.sizeHint().width(), w])\n legendH = legend.heightForWidth(legendW)\n if legend.frameWidth() > 0:\n h += self.__data.spacing\n if self.__data.legendRatio < 1.0:\n legendH = min([legendH, int(h / (1.0 - self.__data.legendRatio))])\n h += legendH + self.__data.spacing\n return QSize(int(w), int(h))
\n\n\n
\n[docs]\n def layoutLegend(self, options, rect):\n """\n Find the geometry for the legend\n\n :param options: Options how to layout the legend\n :param QRectF rect: Rectangle where to place the legend\n :return: Geometry for the legend\n """\n hint = self.__data.layoutData.legend.hint\n if self.__data.legendPos in (QwtPlot.LeftLegend, QwtPlot.RightLegend):\n dim = min([hint.width(), int(rect.width() * self.__data.legendRatio)])\n if not (options & self.IgnoreScrollbars):\n if hint.height() > rect.height():\n dim += self.__data.layoutData.legend.hScrollExtent\n else:\n dim = min([hint.height(), int(rect.height() * self.__data.legendRatio)])\n dim = max([dim, self.__data.layoutData.legend.vScrollExtent])\n legendRect = QRectF(rect)\n if self.__data.legendPos == QwtPlot.LeftLegend:\n legendRect.setWidth(dim)\n elif self.__data.legendPos == QwtPlot.RightLegend:\n legendRect.setX(rect.right() - dim)\n legendRect.setWidth(dim)\n elif self.__data.legendPos == QwtPlot.TopLegend:\n legendRect.setHeight(dim)\n elif self.__data.legendPos == QwtPlot.BottomLegend:\n legendRect.setY(rect.bottom() - dim)\n legendRect.setHeight(dim)\n return legendRect
\n\n\n
\n[docs]\n def alignLegend(self, canvasRect, legendRect):\n """\n Align the legend to the canvas\n\n :param QRectF canvasRect: Geometry of the canvas\n :param QRectF legendRect: Maximum geometry for the legend\n :return: Geometry for the aligned legend\n """\n alignedRect = legendRect\n if self.__data.legendPos in (QwtPlot.BottomLegend, QwtPlot.TopLegend):\n if self.__data.layoutData.legend.hint.width() < canvasRect.width():\n alignedRect.setX(canvasRect.x())\n alignedRect.setWidth(canvasRect.width())\n else:\n if self.__data.layoutData.legend.hint.height() < canvasRect.height():\n alignedRect.setY(canvasRect.y())\n alignedRect.setHeight(canvasRect.height())\n return alignedRect
\n\n\n
\n[docs]\n def expandLineBreaks(self, options, rect):\n """\n Expand all line breaks in text labels, and calculate the height\n of their widgets in orientation of the text.\n\n :param options: Options how to layout the legend\n :param QRectF rect: Bounding rectangle for title, footer, axes and canvas.\n :return: tuple `(dimTitle, dimFooter, dimAxes)`\n\n Returns:\n\n * `dimTitle`: Expanded height of the title widget\n * `dimFooter`: Expanded height of the footer widget\n * `dimAxes`: Expanded heights of the axis in axis orientation.\n """\n dimTitle = dimFooter = 0\n dimAxes = [0 for axis in QwtPlot.AXES]\n backboneOffset = [0 for _i in QwtPlot.AXES]\n for axis in QwtPlot.AXES:\n if not (options & self.IgnoreFrames):\n backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[\n axis\n ]\n if not self.__data.alignCanvasToScales[axis]:\n backboneOffset[axis] += self.__data.canvasMargin[axis]\n done = False\n while not done:\n done = True\n # the size for the 4 axis depend on each other. Expanding\n # the height of a horizontal axis will shrink the height\n # for the vertical axis, shrinking the height of a vertical\n # axis will result in a line break what will expand the\n # width and results in shrinking the width of a horizontal\n # axis what might result in a line break of a horizontal\n # axis ... . So we loop as long until no size changes.\n if not (\n (options & self.IgnoreTitle)\n or self.__data.layoutData.title.text.isEmpty()\n ):\n w = rect.width()\n if (\n self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled\n != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled\n ):\n w -= dimAxes[QwtPlot.yLeft] + dimAxes[QwtPlot.yRight]\n d = math.ceil(self.__data.layoutData.title.text.heightForWidth(w))\n if not (options & self.IgnoreFrames):\n d += 2 * self.__data.layoutData.title.frameWidth\n if d > dimTitle:\n dimTitle = d\n done = False\n if not (\n (options & self.IgnoreFooter)\n or self.__data.layoutData.footer.text.isEmpty()\n ):\n w = rect.width()\n if (\n self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled\n != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled\n ):\n w -= dimAxes[QwtPlot.yLeft] + dimAxes[QwtPlot.yRight]\n d = math.ceil(self.__data.layoutData.footer.text.heightForWidth(w))\n if not (options & self.IgnoreFrames):\n d += 2 * self.__data.layoutData.footer.frameWidth\n if d > dimFooter:\n dimFooter = d\n done = False\n for axis in QwtPlot.AXES:\n scaleData = self.__data.layoutData.scale[axis]\n if scaleData.isEnabled:\n if axis in (QwtPlot.xTop, QwtPlot.xBottom):\n length = (\n rect.width()\n - dimAxes[QwtPlot.yLeft]\n - dimAxes[QwtPlot.yRight]\n )\n length -= scaleData.start + scaleData.end\n if dimAxes[QwtPlot.yRight] > 0:\n length -= 1\n length += min(\n [\n dimAxes[QwtPlot.yLeft],\n scaleData.start - backboneOffset[QwtPlot.yLeft],\n ]\n )\n length += min(\n [\n dimAxes[QwtPlot.yRight],\n scaleData.end - backboneOffset[QwtPlot.yRight],\n ]\n )\n else:\n length = (\n rect.height()\n - dimAxes[QwtPlot.xTop]\n - dimAxes[QwtPlot.xBottom]\n )\n length -= scaleData.start + scaleData.end\n length -= 1\n if dimAxes[QwtPlot.xBottom] <= 0:\n length -= 1\n if dimAxes[QwtPlot.xTop] <= 0:\n length -= 1\n if dimAxes[QwtPlot.xBottom] > 0:\n length += min(\n [\n self.__data.layoutData.scale[\n QwtPlot.xBottom\n ].tickOffset,\n float(\n scaleData.start\n - backboneOffset[QwtPlot.xBottom]\n ),\n ]\n )\n if dimAxes[QwtPlot.xTop] > 0:\n length += min(\n [\n self.__data.layoutData.scale[\n QwtPlot.xTop\n ].tickOffset,\n float(scaleData.end - backboneOffset[QwtPlot.xTop]),\n ]\n )\n if dimTitle > 0:\n length -= dimTitle + self.__data.spacing\n d = scaleData.dimWithoutTitle\n if not scaleData.scaleWidget.title().isEmpty():\n d += scaleData.scaleWidget.titleHeightForWidth(\n math.floor(length)\n )\n if d > dimAxes[axis]:\n dimAxes[axis] = d\n done = False\n return dimTitle, dimFooter, dimAxes
\n\n\n
\n[docs]\n def alignScales(self, options, canvasRect, scaleRect):\n """\n Align the ticks of the axis to the canvas borders using\n the empty corners.\n\n :param options: Options how to layout the legend\n :param QRectF canvasRect: Geometry of the canvas ( IN/OUT )\n :param QRectF scaleRect: Geometry of the scales ( IN/OUT )\n """\n backboneOffset = [0 for _i in QwtPlot.AXES]\n for axis in QwtPlot.AXES:\n backboneOffset[axis] = 0\n if not self.__data.alignCanvasToScales[axis]:\n backboneOffset[axis] += self.__data.canvasMargin[axis]\n if not options & self.IgnoreFrames:\n backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[\n axis\n ]\n for axis in QwtPlot.AXES:\n if not scaleRect[axis].isValid():\n continue\n startDist = self.__data.layoutData.scale[axis].start\n endDist = self.__data.layoutData.scale[axis].end\n axisRect = scaleRect[axis]\n if axis in (QwtPlot.xTop, QwtPlot.xBottom):\n leftScaleRect = scaleRect[QwtPlot.yLeft]\n leftOffset = backboneOffset[QwtPlot.yLeft] - startDist\n if leftScaleRect.isValid():\n dx = leftOffset + leftScaleRect.width()\n if self.__data.alignCanvasToScales[QwtPlot.yLeft] and dx < 0.0:\n cLeft = canvasRect.left()\n canvasRect.setLeft(max([cLeft, axisRect.left() - dx]))\n else:\n minLeft = leftScaleRect.left()\n left = axisRect.left() + leftOffset\n axisRect.setLeft(max([left, minLeft]))\n else:\n if (\n self.__data.alignCanvasToScales[QwtPlot.yLeft]\n and leftOffset < 0\n ):\n canvasRect.setLeft(\n max([canvasRect.left(), axisRect.left() - leftOffset])\n )\n else:\n if leftOffset > 0:\n axisRect.setLeft(axisRect.left() + leftOffset)\n rightScaleRect = scaleRect[QwtPlot.yRight]\n rightOffset = backboneOffset[QwtPlot.yRight] - endDist + 1\n if rightScaleRect.isValid():\n dx = rightOffset + rightScaleRect.width()\n if self.__data.alignCanvasToScales[QwtPlot.yRight] and dx < 0:\n cRight = canvasRect.right()\n canvasRect.setRight(min([cRight, axisRect.right() + dx]))\n maxRight = rightScaleRect.right()\n right = axisRect.right() - rightOffset\n axisRect.setRight(min([right, maxRight]))\n else:\n if (\n self.__data.alignCanvasToScales[QwtPlot.yRight]\n and rightOffset < 0\n ):\n canvasRect.setRight(\n min([canvasRect.right(), axisRect.right() + rightOffset])\n )\n else:\n if rightOffset > 0:\n axisRect.setRight(axisRect.right() - rightOffset)\n else:\n bottomScaleRect = scaleRect[QwtPlot.xBottom]\n bottomOffset = backboneOffset[QwtPlot.xBottom] - endDist + 1\n if bottomScaleRect.isValid():\n dy = bottomOffset + bottomScaleRect.height()\n if self.__data.alignCanvasToScales[QwtPlot.xBottom] and dy < 0:\n cBottom = canvasRect.bottom()\n canvasRect.setBottom(min([cBottom, axisRect.bottom() + dy]))\n else:\n maxBottom = (\n bottomScaleRect.top()\n + self.__data.layoutData.scale[QwtPlot.xBottom].tickOffset\n )\n bottom = axisRect.bottom() - bottomOffset\n axisRect.setBottom(min([bottom, maxBottom]))\n else:\n if (\n self.__data.alignCanvasToScales[QwtPlot.xBottom]\n and bottomOffset < 0\n ):\n canvasRect.setBottom(\n min([canvasRect.bottom(), axisRect.bottom() + bottomOffset])\n )\n else:\n if bottomOffset > 0:\n axisRect.setBottom(axisRect.bottom() - bottomOffset)\n topScaleRect = scaleRect[QwtPlot.xTop]\n topOffset = backboneOffset[QwtPlot.xTop] - startDist\n if topScaleRect.isValid():\n dy = topOffset + topScaleRect.height()\n if self.__data.alignCanvasToScales[QwtPlot.xTop] and dy < 0:\n cTop = canvasRect.top()\n canvasRect.setTop(max([cTop, axisRect.top() - dy]))\n else:\n minTop = (\n topScaleRect.bottom()\n - self.__data.layoutData.scale[QwtPlot.xTop].tickOffset\n )\n top = axisRect.top() + topOffset\n axisRect.setTop(max([top, minTop]))\n else:\n if self.__data.alignCanvasToScales[QwtPlot.xTop] and topOffset < 0:\n canvasRect.setTop(\n max([canvasRect.top(), axisRect.top() - topOffset])\n )\n else:\n if topOffset > 0:\n axisRect.setTop(axisRect.top() + topOffset)\n for axis in QwtPlot.AXES:\n sRect = scaleRect[axis]\n if not sRect.isValid():\n continue\n if axis in (QwtPlot.xBottom, QwtPlot.xTop):\n if self.__data.alignCanvasToScales[QwtPlot.yLeft]:\n y = canvasRect.left() - self.__data.layoutData.scale[axis].start\n if not options & self.IgnoreFrames:\n y += self.__data.layoutData.canvas.contentsMargins[\n QwtPlot.yLeft\n ]\n sRect.setLeft(y)\n if self.__data.alignCanvasToScales[QwtPlot.yRight]:\n y = canvasRect.right() - 1 + self.__data.layoutData.scale[axis].end\n if not options & self.IgnoreFrames:\n y -= self.__data.layoutData.canvas.contentsMargins[\n QwtPlot.yRight\n ]\n sRect.setRight(y)\n if self.__data.alignCanvasToScales[axis]:\n if axis == QwtPlot.xTop:\n sRect.setBottom(canvasRect.top())\n else:\n sRect.setTop(canvasRect.bottom())\n else:\n if self.__data.alignCanvasToScales[QwtPlot.xTop]:\n x = canvasRect.top() - self.__data.layoutData.scale[axis].start\n if not options & self.IgnoreFrames:\n x += self.__data.layoutData.canvas.contentsMargins[QwtPlot.xTop]\n sRect.setTop(x)\n if self.__data.alignCanvasToScales[QwtPlot.xBottom]:\n x = canvasRect.bottom() - 1 + self.__data.layoutData.scale[axis].end\n if not options & self.IgnoreFrames:\n x -= self.__data.layoutData.canvas.contentsMargins[\n QwtPlot.xBottom\n ]\n sRect.setBottom(x)\n if self.__data.alignCanvasToScales[axis]:\n if axis == QwtPlot.yLeft:\n sRect.setRight(canvasRect.left())\n else:\n sRect.setLeft(canvasRect.right())
\n\n\n
\n[docs]\n def activate(self, plot, plotRect, options=0x00):\n """\n Recalculate the geometry of all components.\n\n :param qwt.plot.QwtPlot plot: Plot to be layout\n :param QRectF plotRect: Rectangle where to place the components\n :param options: Layout options\n """\n self.invalidate()\n rect = QRectF(plotRect)\n self.__data.layoutData.init(plot, rect)\n if (\n not (options & self.IgnoreLegend)\n and plot.legend()\n and not plot.legend().isEmpty()\n ):\n self.__data.legendRect = self.layoutLegend(options, rect)\n region = QRegion(rect.toRect())\n rect = QRectF(\n region.subtracted(\n QRegion(self.__data.legendRect.toRect())\n ).boundingRect()\n )\n if self.__data.legendPos == QwtPlot.LeftLegend:\n rect.setLeft(rect.left() + self.__data.spacing)\n elif self.__data.legendPos == QwtPlot.RightLegend:\n rect.setRight(rect.right() - self.__data.spacing)\n elif self.__data.legendPos == QwtPlot.TopLegend:\n rect.setTop(rect.top() + self.__data.spacing)\n elif self.__data.legendPos == QwtPlot.BottomLegend:\n rect.setBottom(rect.bottom() - self.__data.spacing)\n\n # +---+-----------+---+\n # | Title |\n # +---+-----------+---+\n # | | Axis | |\n # +---+-----------+---+\n # | A | | A |\n # | x | Canvas | x |\n # | i | | i |\n # | s | | s |\n # +---+-----------+---+\n # | | Axis | |\n # +---+-----------+---+\n # | Footer |\n # +---+-----------+---+\n\n # title, footer and axes include text labels. The height of each\n # label depends on its line breaks, that depend on the width\n # for the label. A line break in a horizontal text will reduce\n # the available width for vertical texts and vice versa.\n # expandLineBreaks finds the height/width for title, footer and axes\n # including all line breaks.\n\n dimTitle, dimFooter, dimAxes = self.expandLineBreaks(options, rect)\n if dimTitle > 0:\n self.__data.titleRect.setRect(\n rect.left(), rect.top(), rect.width(), dimTitle\n )\n rect.setTop(self.__data.titleRect.bottom() + self.__data.spacing)\n if (\n self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled\n != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled\n ):\n self.__data.titleRect.setX(rect.left() + dimAxes[QwtPlot.yLeft])\n self.__data.titleRect.setWidth(\n rect.width() - dimAxes[QwtPlot.yLeft] - dimAxes[QwtPlot.yRight]\n )\n if dimFooter > 0:\n self.__data.footerRect.setRect(\n rect.left(), rect.bottom() - dimFooter, rect.width(), dimFooter\n )\n rect.setBottom(self.__data.footerRect.top() - self.__data.spacing)\n if (\n self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled\n != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled\n ):\n self.__data.footerRect.setX(rect.left() + dimAxes[QwtPlot.yLeft])\n self.__data.footerRect.setWidth(\n rect.width() - dimAxes[QwtPlot.yLeft] - dimAxes[QwtPlot.yRight]\n )\n self.__data.canvasRect.setRect(\n rect.x() + dimAxes[QwtPlot.yLeft],\n rect.y() + dimAxes[QwtPlot.xTop],\n rect.width() - dimAxes[QwtPlot.yRight] - dimAxes[QwtPlot.yLeft],\n rect.height() - dimAxes[QwtPlot.xBottom] - dimAxes[QwtPlot.xTop],\n )\n for axis in QwtPlot.AXES:\n if dimAxes[axis]:\n dim = dimAxes[axis]\n scaleRect = self.__data.scaleRect[axis]\n scaleRect.setRect(*self.__data.canvasRect.getRect())\n if axis == QwtPlot.yLeft:\n scaleRect.setX(self.__data.canvasRect.left() - dim)\n scaleRect.setWidth(dim)\n elif axis == QwtPlot.yRight:\n scaleRect.setX(self.__data.canvasRect.right())\n scaleRect.setWidth(dim)\n elif axis == QwtPlot.xBottom:\n scaleRect.setY(self.__data.canvasRect.bottom())\n scaleRect.setHeight(dim)\n elif axis == QwtPlot.xTop:\n scaleRect.setY(self.__data.canvasRect.top() - dim)\n scaleRect.setHeight(dim)\n scaleRect = scaleRect.normalized()\n\n # +---+-----------+---+\n # | <- Axis -> |\n # +-^-+-----------+-^-+\n # | | | | | |\n # | | | |\n # | A | | A |\n # | x | Canvas | x |\n # | i | | i |\n # | s | | s |\n # | | | |\n # | | | | | |\n # +-V-+-----------+-V-+\n # | <- Axis -> |\n # +---+-----------+---+\n\n # The ticks of the axes - not the labels above - should\n # be aligned to the canvas. So we try to use the empty\n # corners to extend the axes, so that the label texts\n # left/right of the min/max ticks are moved into them.\n\n self.alignScales(options, self.__data.canvasRect, self.__data.scaleRect)\n if not self.__data.legendRect.isEmpty():\n self.__data.legendRect = self.alignLegend(\n self.__data.canvasRect, self.__data.legendRect\n )
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6890a40>, 'js_tag': .js_tag at 0x7fc7d68902c0>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/plot_layout', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_layout', 'current_page_name': '_modules/qwt/plot_layout', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ca00e0>, 'hasdoc': .hasdoc at 0x7f3d39ca0540>, 'toctree': . at 0x7f3d39ca1080>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_layout', 'body': '

Source code for qwt.plot_layout

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotLayout\n-------------\n\n.. autoclass:: QwtPlotLayout\n   :members:\n"""\n\nimport math\n\nfrom qtpy.QtCore import QObject, QRectF, QSize, Qt\nfrom qtpy.QtGui import QFont, QRegion\n\nfrom qwt.plot import QwtPlot\nfrom qwt.scale_draw import QwtAbstractScaleDraw\nfrom qwt.scale_widget import QwtScaleWidget\nfrom qwt.text import QwtText\n\nQWIDGETSIZE_MAX = (1 << 24) - 1\n\n\nclass LegendData(object):\n    def __init__(self):\n        self.frameWidth = None\n        self.hScrollExtent = None\n        self.vScrollExtent = None\n        self.hint = QSize()\n\n\nclass TitleData(object):\n    def __init__(self):\n        self.text = QwtText()\n        self.frameWidth = None\n\n\nclass FooterData(object):\n    def __init__(self):\n        self.text = QwtText()\n        self.frameWidth = None\n\n\nclass ScaleData(object):\n    def __init__(self):\n        self.isEnabled = None\n        self.scaleWidget = QwtScaleWidget()\n        self.scaleFont = QFont()\n        self.start = None\n        self.end = None\n        self.baseLineOffset = None\n        self.tickOffset = None\n        self.dimWithoutTitle = None\n\n\nclass CanvasData(object):\n    def __init__(self):\n        self.contentsMargins = [0 for _i in QwtPlot.AXES]\n\n\nclass QwtPlotLayout_LayoutData(object):\n    def __init__(self):\n        self.legend = LegendData()\n        self.title = TitleData()\n        self.footer = FooterData()\n        self.scale = [ScaleData() for _i in QwtPlot.AXES]\n        self.canvas = CanvasData()\n\n    def init(self, plot, rect):\n        """Extract all layout relevant data from the plot components"""\n        # legend\n        legend = plot.legend()\n        if legend:\n            self.legend.frameWidth = legend.frameWidth()\n            self.legend.hScrollExtent = legend.scrollExtent(Qt.Horizontal)\n            self.legend.vScrollExtent = legend.scrollExtent(Qt.Vertical)\n            hint = legend.sizeHint()\n            w = min([hint.width(), math.floor(rect.width())])\n            h = legend.heightForWidth(w)\n            if h <= 0:\n                h = hint.height()\n            self.legend.hint = QSize(w, h)\n        # title\n        self.title.frameWidth = 0\n        self.title.text = QwtText()\n        if plot.titleLabel():\n            label = plot.titleLabel()\n            self.title.text = label.text()\n            if not self.title.text.testPaintAttribute(QwtText.PaintUsingTextFont):\n                self.title.text.setFont(label.font())\n            self.title.frameWidth = plot.titleLabel().frameWidth()\n        # footer\n        self.footer.frameWidth = 0\n        self.footer.text = QwtText()\n        if plot.footerLabel():\n            label = plot.footerLabel()\n            self.footer.text = label.text()\n            if not self.footer.text.testPaintAttribute(QwtText.PaintUsingTextFont):\n                self.footer.text.setFont(label.font())\n            self.footer.frameWidth = plot.footerLabel().frameWidth()\n        # scales\n        for axis in QwtPlot.AXES:\n            if plot.axisEnabled(axis):\n                scaleWidget = plot.axisWidget(axis)\n                self.scale[axis].isEnabled = True\n                self.scale[axis].scaleWidget = scaleWidget\n                self.scale[axis].scaleFont = scaleWidget.font()\n                self.scale[axis].start = scaleWidget.startBorderDist()\n                self.scale[axis].end = scaleWidget.endBorderDist()\n                self.scale[axis].baseLineOffset = scaleWidget.margin()\n                self.scale[axis].tickOffset = scaleWidget.margin()\n                if scaleWidget.scaleDraw().hasComponent(QwtAbstractScaleDraw.Ticks):\n                    self.scale[\n                        axis\n                    ].tickOffset += scaleWidget.scaleDraw().maxTickLength()\n                self.scale[axis].dimWithoutTitle = scaleWidget.dimForLength(\n                    QWIDGETSIZE_MAX, self.scale[axis].scaleFont\n                )\n                if not scaleWidget.title().isEmpty():\n                    self.scale[axis].dimWithoutTitle -= scaleWidget.titleHeightForWidth(\n                        QWIDGETSIZE_MAX\n                    )\n            else:\n                self.scale[axis].isEnabled = False\n                self.scale[axis].start = 0\n                self.scale[axis].end = 0\n                self.scale[axis].baseLineOffset = 0\n                self.scale[axis].tickOffset = 0.0\n                self.scale[axis].dimWithoutTitle = 0\n        layout = plot.canvas().layout()\n        if layout is not None:\n            mgn = layout.contentsMargins()\n            self.canvas.contentsMargins = [\n                mgn.left(),\n                mgn.top(),\n                mgn.right(),\n                mgn.bottom(),\n            ]\n\n\nclass QwtPlotLayout_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.spacing = 5\n        self.titleRect = QRectF()\n        self.footerRect = QRectF()\n        self.legendRect = QRectF()\n        self.scaleRect = [QRectF() for _i in QwtPlot.AXES]\n        self.canvasRect = QRectF()\n        self.layoutData = QwtPlotLayout_LayoutData()\n        self.legendPos = None\n        self.legendRatio = None\n        self.canvasMargin = [0] * len(QwtPlot.AXES)\n        self.alignCanvasToScales = [False] * len(QwtPlot.AXES)\n\n\n
\n[docs]\nclass QwtPlotLayout(object):\n """\n Layout engine for QwtPlot.\n\n It is used by the `QwtPlot` widget to organize its internal widgets\n or by `QwtPlot.print()` to render its content to a QPaintDevice like\n a QPrinter, QPixmap/QImage or QSvgRenderer.\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.setPlotLayout()`\n\n Valid options:\n\n * `QwtPlotLayout.AlignScales`: Unused\n * `QwtPlotLayout.IgnoreScrollbars`: Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is not rendered to widgets.\n * `QwtPlotLayout.IgnoreFrames`: Ignore all frames.\n * `QwtPlotLayout.IgnoreLegend`: Ignore the legend.\n * `QwtPlotLayout.IgnoreTitle`: Ignore the title.\n * `QwtPlotLayout.IgnoreFooter`: Ignore the footer.\n """\n\n # enum Option\n AlignScales = 0x01\n IgnoreScrollbars = 0x02\n IgnoreFrames = 0x04\n IgnoreLegend = 0x08\n IgnoreTitle = 0x10\n IgnoreFooter = 0x20\n\n def __init__(self):\n self.__data = QwtPlotLayout_PrivateData()\n self.setLegendPosition(QwtPlot.BottomLegend)\n self.setCanvasMargin(4)\n self.setAlignCanvasToScales(False)\n self.invalidate()\n\n
\n[docs]\n def setCanvasMargin(self, margin, axis=-1):\n """\n Change a margin of the canvas. The margin is the space\n above/below the scale ticks. A negative margin will\n be set to -1, excluding the borders of the scales.\n\n :param int margin: New margin\n :param int axisId: Axis index\n\n .. seealso::\n\n :py:meth:`canvasMargin()`\n\n .. warning::\n\n The margin will have no effect when `alignCanvasToScale()` is True\n """\n if margin < 1:\n margin = -1\n if axis == -1:\n for axis in QwtPlot.AXES:\n self.__data.canvasMargin[axis] = margin\n elif axis in QwtPlot.AXES:\n self.__data.canvasMargin[axis] = margin
\n\n\n
\n[docs]\n def canvasMargin(self, axisId):\n """\n :param int axisId: Axis index\n :return: Margin around the scale tick borders\n\n .. seealso::\n\n :py:meth:`setCanvasMargin()`\n """\n if axisId not in QwtPlot.AXES:\n return 0\n return self.__data.canvasMargin[axisId]
\n\n\n
\n[docs]\n def setAlignCanvasToScales(self, *args):\n """\n Change the align-canvas-to-axis-scales setting.\n\n .. py:method:: setAlignCanvasToScales(on):\n\n Set the align-canvas-to-axis-scales flag for all axes\n\n :param bool on: True/False\n\n .. py:method:: setAlignCanvasToScales(axisId, on):\n\n Change the align-canvas-to-axis-scales setting.\n The canvas may:\n\n - extend beyond the axis scale ends to maximize its size,\n - align with the axis scale ends to control its size.\n\n The axisId parameter is somehow confusing as it identifies a\n border of the plot and not the axes, that are aligned. F.e when\n `QwtPlot.yLeft` is set, the left end of the the x-axes\n (`QwtPlot.xTop`, `QwtPlot.xBottom`) is aligned.\n\n :param int axisId: Axis index\n :param bool on: True/False\n\n .. seealso::\n\n :py:meth:`setAlignCanvasToScale()`,\n :py:meth:`alignCanvasToScale()`\n """\n if len(args) == 1:\n (on,) = args\n for axis in QwtPlot.AXES:\n self.__data.alignCanvasToScales[axis] = on\n elif len(args) == 2:\n axisId, on = args\n if axisId in QwtPlot.AXES:\n self.__data.alignCanvasToScales[axisId] = on\n else:\n raise TypeError(\n "%s().setAlignCanvasToScales() takes 1 or 2 "\n "argument(s) (%s given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def alignCanvasToScale(self, axisId):\n """\n Return the align-canvas-to-axis-scales setting.\n The canvas may:\n\n - extend beyond the axis scale ends to maximize its size\n - align with the axis scale ends to control its size.\n\n :param int axisId: Axis index\n :return: align-canvas-to-axis-scales setting\n\n .. seealso::\n\n :py:meth:`setAlignCanvasToScale()`, :py:meth:`setCanvasMargin()`\n """\n if axisId not in QwtPlot.AXES:\n return False\n return self.__data.alignCanvasToScales[axisId]
\n\n\n
\n[docs]\n def setSpacing(self, spacing):\n """\n Change the spacing of the plot. The spacing is the distance\n between the plot components.\n\n :param int spacing: New spacing\n\n .. seealso::\n\n :py:meth:`setCanvasMargin()`, :py:meth:`spacing()`\n """\n self.__data.spacing = max([0, spacing])
\n\n\n
\n[docs]\n def spacing(self):\n """\n :return: Spacing\n\n .. seealso::\n\n :py:meth:`margin()`, :py:meth:`setSpacing()`\n """\n return self.__data.spacing
\n\n\n
\n[docs]\n def setLegendPosition(self, *args):\n """\n Specify the position of the legend\n\n .. py:method:: setLegendPosition(pos, [ratio=0.]):\n\n Specify the position of the legend\n\n :param QwtPlot.LegendPosition pos: Legend position\n :param float ratio: Ratio between legend and the bounding rectangle of title, footer, canvas and axes\n\n The legend will be shrunk if it would need more space than the\n given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of\n <= 0.0 it will be reset to the default ratio. The default\n vertical/horizontal ratio is 0.33/0.5.\n\n Valid position values:\n\n * `QwtPlot.LeftLegend`,\n * `QwtPlot.RightLegend`,\n * `QwtPlot.TopLegend`,\n * `QwtPlot.BottomLegend`\n\n .. seealso::\n\n :py:meth:`setLegendPosition()`\n """\n if len(args) == 2:\n pos, ratio = args\n if ratio > 1.0:\n ratio = 1.0\n if pos in (QwtPlot.TopLegend, QwtPlot.BottomLegend):\n if ratio <= 0.0:\n ratio = 0.33\n self.__data.legendRatio = ratio\n self.__data.legendPos = pos\n elif pos in (QwtPlot.LeftLegend, QwtPlot.RightLegend):\n if ratio <= 0.0:\n ratio = 0.5\n self.__data.legendRatio = ratio\n self.__data.legendPos = pos\n elif len(args) == 1:\n (pos,) = args\n self.setLegendPosition(pos, 0.0)\n else:\n raise TypeError(\n "%s().setLegendPosition() takes 1 or 2 argument(s)"\n "(%s given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def legendPosition(self):\n """\n :return: Position of the legend\n\n .. seealso::\n\n :py:meth:`legendPosition()`\n """\n return self.__data.legendPos
\n\n\n
\n[docs]\n def setLegendRatio(self, ratio):\n """\n Specify the relative size of the legend in the plot\n\n :param float ratio: Ratio between legend and the bounding rectangle of title, footer, canvas and axes\n\n The legend will be shrunk if it would need more space than the\n given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of\n <= 0.0 it will be reset to the default ratio. The default\n vertical/horizontal ratio is 0.33/0.5.\n\n .. seealso::\n\n :py:meth:`legendRatio()`\n """\n self.setLegendPosition(self.legendPosition(), ratio)
\n\n\n
\n[docs]\n def legendRatio(self):\n """\n :return: The relative size of the legend in the plot.\n\n .. seealso::\n\n :py:meth:`setLegendRatio()`\n """\n return self.__data.legendRatio
\n\n\n
\n[docs]\n def setTitleRect(self, rect):\n """\n Set the geometry for the title\n\n This method is intended to be used from derived layouts\n overloading `activate()`\n\n :param QRectF rect: Rectangle\n\n .. seealso::\n\n :py:meth:`titleRect()`, :py:meth:`activate()`\n """\n self.__data.titleRect = rect
\n\n\n
\n[docs]\n def titleRect(self):\n """\n :return: Geometry for the title\n\n .. seealso::\n\n :py:meth:`invalidate()`, :py:meth:`activate()`\n """\n return self.__data.titleRect
\n\n\n
\n[docs]\n def setFooterRect(self, rect):\n """\n Set the geometry for the footer\n\n This method is intended to be used from derived layouts\n overloading `activate()`\n\n :param QRectF rect: Rectangle\n\n .. seealso::\n\n :py:meth:`footerRect()`, :py:meth:`activate()`\n """\n self.__data.footerRect = rect
\n\n\n
\n[docs]\n def footerRect(self):\n """\n :return: Geometry for the footer\n\n .. seealso::\n\n :py:meth:`invalidate()`, :py:meth:`activate()`\n """\n return self.__data.footerRect
\n\n\n
\n[docs]\n def setLegendRect(self, rect):\n """\n Set the geometry for the legend\n\n This method is intended to be used from derived layouts\n overloading `activate()`\n\n :param QRectF rect: Rectangle for the legend\n\n .. seealso::\n\n :py:meth:`footerRect()`, :py:meth:`activate()`\n """\n self.__data.legendRect = rect
\n\n\n
\n[docs]\n def legendRect(self):\n """\n :return: Geometry for the legend\n\n .. seealso::\n\n :py:meth:`invalidate()`, :py:meth:`activate()`\n """\n return self.__data.legendRect
\n\n\n
\n[docs]\n def setScaleRect(self, axis, rect):\n """\n Set the geometry for an axis\n\n This method is intended to be used from derived layouts\n overloading `activate()`\n\n :param int axisId: Axis index\n :param QRectF rect: Rectangle for the scale\n\n .. seealso::\n\n :py:meth:`scaleRect()`, :py:meth:`activate()`\n """\n if axis in QwtPlot.AXES:\n self.__data.scaleRect[axis] = rect
\n\n\n
\n[docs]\n def scaleRect(self, axis):\n """\n :param int axisId: Axis index\n :return: Geometry for the scale\n\n .. seealso::\n\n :py:meth:`invalidate()`, :py:meth:`activate()`\n """\n if axis not in QwtPlot.AXES:\n return QRectF()\n return self.__data.scaleRect[axis]
\n\n\n
\n[docs]\n def setCanvasRect(self, rect):\n """\n Set the geometry for the canvas\n\n This method is intended to be used from derived layouts\n overloading `activate()`\n\n :param QRectF rect: Rectangle\n\n .. seealso::\n\n :py:meth:`canvasRect()`, :py:meth:`activate()`\n """\n self.__data.canvasRect = rect
\n\n\n
\n[docs]\n def canvasRect(self):\n """\n :return: Geometry for the canvas\n\n .. seealso::\n\n :py:meth:`invalidate()`, :py:meth:`activate()`\n """\n return self.__data.canvasRect
\n\n\n
\n[docs]\n def invalidate(self):\n """\n Invalidate the geometry of all components.\n\n .. seealso::\n\n :py:meth:`activate()`\n """\n self.__data.titleRect = QRectF()\n self.__data.footerRect = QRectF()\n self.__data.legendRect = QRectF()\n self.__data.canvasRect = QRectF()\n for axis in QwtPlot.AXES:\n self.__data.scaleRect[axis] = QRectF()
\n\n\n
\n[docs]\n def minimumSizeHint(self, plot):\n """\n :param qwt.plot.QwtPlot plot: Plot widget\n :return: Minimum size hint\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlot.minimumSizeHint()`\n """\n\n class _ScaleData(object):\n def __init__(self):\n self.w = 0\n self.h = 0\n self.minLeft = 0\n self.minRight = 0\n self.tickOffset = 0\n\n scaleData = [_ScaleData() for _i in QwtPlot.AXES]\n canvasBorder = [0 for _i in QwtPlot.AXES]\n layout = plot.canvas().layout()\n if layout is None:\n left, top, right, bottom = 0, 0, 0, 0\n else:\n mgn = layout.contentsMargins()\n left, top, right, bottom = (\n mgn.left(),\n mgn.top(),\n mgn.right(),\n mgn.bottom(),\n )\n for axis in QwtPlot.AXES:\n if plot.axisEnabled(axis):\n scl = plot.axisWidget(axis)\n sd = scaleData[axis]\n hint = scl.minimumSizeHint()\n sd.w = hint.width()\n sd.h = hint.height()\n sd.minLeft, sd.minLeft = scl.getBorderDistHint()\n sd.tickOffset = scl.margin()\n if scl.scaleDraw().hasComponent(QwtAbstractScaleDraw.Ticks):\n sd.tickOffset += math.ceil(scl.scaleDraw().maxTickLength())\n canvasBorder[axis] = left + self.__data.canvasMargin[axis] + 1\n for axis in QwtPlot.AXES:\n sd = scaleData[axis]\n if sd.w and axis in (QwtPlot.xBottom, QwtPlot.xTop):\n if (\n sd.minLeft > canvasBorder[QwtPlot.yLeft]\n and scaleData[QwtPlot.yLeft].w\n ):\n shiftLeft = sd.minLeft - canvasBorder[QwtPlot.yLeft]\n if shiftLeft > scaleData[QwtPlot.yLeft].w:\n shiftLeft = scaleData[QwtPlot.yLeft].w\n sd.w -= shiftLeft\n if (\n sd.minRight > canvasBorder[QwtPlot.yRight]\n and scaleData[QwtPlot.yRight].w\n ):\n shiftRight = sd.minRight - canvasBorder[QwtPlot.yRight]\n if shiftRight > scaleData[QwtPlot.yRight].w:\n shiftRight = scaleData[QwtPlot.yRight].w\n sd.w -= shiftRight\n if sd.h and axis in (QwtPlot.yLeft, QwtPlot.yRight):\n if (\n sd.minLeft > canvasBorder[QwtPlot.xBottom]\n and scaleData[QwtPlot.xBottom].h\n ):\n shiftBottom = sd.minLeft - canvasBorder[QwtPlot.xBottom]\n if shiftBottom > scaleData[QwtPlot.xBottom].tickOffset:\n shiftBottom = scaleData[QwtPlot.xBottom].tickOffset\n sd.h -= shiftBottom\n if (\n sd.minLeft > canvasBorder[QwtPlot.xTop]\n and scaleData[QwtPlot.xTop].h\n ):\n shiftTop = sd.minRight - canvasBorder[QwtPlot.xTop]\n if shiftTop > scaleData[QwtPlot.xTop].tickOffset:\n shiftTop = scaleData[QwtPlot.xTop].tickOffset\n sd.h -= shiftTop\n canvas = plot.canvas()\n minCanvasSize = canvas.minimumSize()\n w = scaleData[QwtPlot.yLeft].w + scaleData[QwtPlot.yRight].w\n cw = (\n max([scaleData[QwtPlot.xBottom].w, scaleData[QwtPlot.xTop].w])\n + left\n + 1\n + right\n + 1\n )\n w += max([cw, minCanvasSize.width()])\n h = scaleData[QwtPlot.xBottom].h + scaleData[QwtPlot.xTop].h\n ch = (\n max([scaleData[QwtPlot.yLeft].h, scaleData[QwtPlot.yRight].h])\n + top\n + 1\n + bottom\n + 1\n )\n h += max([ch, minCanvasSize.height()])\n for label in [plot.titleLabel(), plot.footerLabel()]:\n if label and not label.text().isEmpty():\n centerOnCanvas = not plot.axisEnabled(\n QwtPlot.yLeft\n ) and plot.axisEnabled(QwtPlot.yRight)\n labelW = w\n if centerOnCanvas:\n labelW -= scaleData[QwtPlot.yLeft].w + scaleData[QwtPlot.yRight].w\n labelH = label.heightForWidth(labelW)\n if labelH > labelW:\n w = labelW = labelH\n if centerOnCanvas:\n w += scaleData[QwtPlot.yLeft].w + scaleData[QwtPlot.yRight].w\n labelH = label.heightForWidth(labelW)\n h += labelH + self.__data.spacing\n legend = plot.legend()\n if legend and not legend.isEmpty():\n if self.__data.legendPos in (QwtPlot.LeftLegend, QwtPlot.RightLegend):\n legendW = legend.sizeHint().width()\n legendH = legend.heightForWidth(legendW)\n if legend.frameWidth() > 0:\n w += self.__data.spacing\n if legendH > h:\n legendW += legend.scrollExtent(Qt.Horizontal)\n if self.__data.legendRatio < 1.0:\n legendW = min([legendW, int(w / (1.0 - self.__data.legendRatio))])\n w += legendW + self.__data.spacing\n else:\n legendW = min([legend.sizeHint().width(), w])\n legendH = legend.heightForWidth(legendW)\n if legend.frameWidth() > 0:\n h += self.__data.spacing\n if self.__data.legendRatio < 1.0:\n legendH = min([legendH, int(h / (1.0 - self.__data.legendRatio))])\n h += legendH + self.__data.spacing\n return QSize(int(w), int(h))
\n\n\n
\n[docs]\n def layoutLegend(self, options, rect):\n """\n Find the geometry for the legend\n\n :param options: Options how to layout the legend\n :param QRectF rect: Rectangle where to place the legend\n :return: Geometry for the legend\n """\n hint = self.__data.layoutData.legend.hint\n if self.__data.legendPos in (QwtPlot.LeftLegend, QwtPlot.RightLegend):\n dim = min([hint.width(), int(rect.width() * self.__data.legendRatio)])\n if not (options & self.IgnoreScrollbars):\n if hint.height() > rect.height():\n dim += self.__data.layoutData.legend.hScrollExtent\n else:\n dim = min([hint.height(), int(rect.height() * self.__data.legendRatio)])\n dim = max([dim, self.__data.layoutData.legend.vScrollExtent])\n legendRect = QRectF(rect)\n if self.__data.legendPos == QwtPlot.LeftLegend:\n legendRect.setWidth(dim)\n elif self.__data.legendPos == QwtPlot.RightLegend:\n legendRect.setX(rect.right() - dim)\n legendRect.setWidth(dim)\n elif self.__data.legendPos == QwtPlot.TopLegend:\n legendRect.setHeight(dim)\n elif self.__data.legendPos == QwtPlot.BottomLegend:\n legendRect.setY(rect.bottom() - dim)\n legendRect.setHeight(dim)\n return legendRect
\n\n\n
\n[docs]\n def alignLegend(self, canvasRect, legendRect):\n """\n Align the legend to the canvas\n\n :param QRectF canvasRect: Geometry of the canvas\n :param QRectF legendRect: Maximum geometry for the legend\n :return: Geometry for the aligned legend\n """\n alignedRect = legendRect\n if self.__data.legendPos in (QwtPlot.BottomLegend, QwtPlot.TopLegend):\n if self.__data.layoutData.legend.hint.width() < canvasRect.width():\n alignedRect.setX(canvasRect.x())\n alignedRect.setWidth(canvasRect.width())\n else:\n if self.__data.layoutData.legend.hint.height() < canvasRect.height():\n alignedRect.setY(canvasRect.y())\n alignedRect.setHeight(canvasRect.height())\n return alignedRect
\n\n\n
\n[docs]\n def expandLineBreaks(self, options, rect):\n """\n Expand all line breaks in text labels, and calculate the height\n of their widgets in orientation of the text.\n\n :param options: Options how to layout the legend\n :param QRectF rect: Bounding rectangle for title, footer, axes and canvas.\n :return: tuple `(dimTitle, dimFooter, dimAxes)`\n\n Returns:\n\n * `dimTitle`: Expanded height of the title widget\n * `dimFooter`: Expanded height of the footer widget\n * `dimAxes`: Expanded heights of the axis in axis orientation.\n """\n dimTitle = dimFooter = 0\n dimAxes = [0 for axis in QwtPlot.AXES]\n backboneOffset = [0 for _i in QwtPlot.AXES]\n for axis in QwtPlot.AXES:\n if not (options & self.IgnoreFrames):\n backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[\n axis\n ]\n if not self.__data.alignCanvasToScales[axis]:\n backboneOffset[axis] += self.__data.canvasMargin[axis]\n done = False\n while not done:\n done = True\n # the size for the 4 axis depend on each other. Expanding\n # the height of a horizontal axis will shrink the height\n # for the vertical axis, shrinking the height of a vertical\n # axis will result in a line break what will expand the\n # width and results in shrinking the width of a horizontal\n # axis what might result in a line break of a horizontal\n # axis ... . So we loop as long until no size changes.\n if not (\n (options & self.IgnoreTitle)\n or self.__data.layoutData.title.text.isEmpty()\n ):\n w = rect.width()\n if (\n self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled\n != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled\n ):\n w -= dimAxes[QwtPlot.yLeft] + dimAxes[QwtPlot.yRight]\n d = math.ceil(self.__data.layoutData.title.text.heightForWidth(w))\n if not (options & self.IgnoreFrames):\n d += 2 * self.__data.layoutData.title.frameWidth\n if d > dimTitle:\n dimTitle = d\n done = False\n if not (\n (options & self.IgnoreFooter)\n or self.__data.layoutData.footer.text.isEmpty()\n ):\n w = rect.width()\n if (\n self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled\n != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled\n ):\n w -= dimAxes[QwtPlot.yLeft] + dimAxes[QwtPlot.yRight]\n d = math.ceil(self.__data.layoutData.footer.text.heightForWidth(w))\n if not (options & self.IgnoreFrames):\n d += 2 * self.__data.layoutData.footer.frameWidth\n if d > dimFooter:\n dimFooter = d\n done = False\n for axis in QwtPlot.AXES:\n scaleData = self.__data.layoutData.scale[axis]\n if scaleData.isEnabled:\n if axis in (QwtPlot.xTop, QwtPlot.xBottom):\n length = (\n rect.width()\n - dimAxes[QwtPlot.yLeft]\n - dimAxes[QwtPlot.yRight]\n )\n length -= scaleData.start + scaleData.end\n if dimAxes[QwtPlot.yRight] > 0:\n length -= 1\n length += min(\n [\n dimAxes[QwtPlot.yLeft],\n scaleData.start - backboneOffset[QwtPlot.yLeft],\n ]\n )\n length += min(\n [\n dimAxes[QwtPlot.yRight],\n scaleData.end - backboneOffset[QwtPlot.yRight],\n ]\n )\n else:\n length = (\n rect.height()\n - dimAxes[QwtPlot.xTop]\n - dimAxes[QwtPlot.xBottom]\n )\n length -= scaleData.start + scaleData.end\n length -= 1\n if dimAxes[QwtPlot.xBottom] <= 0:\n length -= 1\n if dimAxes[QwtPlot.xTop] <= 0:\n length -= 1\n if dimAxes[QwtPlot.xBottom] > 0:\n length += min(\n [\n self.__data.layoutData.scale[\n QwtPlot.xBottom\n ].tickOffset,\n float(\n scaleData.start\n - backboneOffset[QwtPlot.xBottom]\n ),\n ]\n )\n if dimAxes[QwtPlot.xTop] > 0:\n length += min(\n [\n self.__data.layoutData.scale[\n QwtPlot.xTop\n ].tickOffset,\n float(scaleData.end - backboneOffset[QwtPlot.xTop]),\n ]\n )\n if dimTitle > 0:\n length -= dimTitle + self.__data.spacing\n d = scaleData.dimWithoutTitle\n if not scaleData.scaleWidget.title().isEmpty():\n d += scaleData.scaleWidget.titleHeightForWidth(\n math.floor(length)\n )\n if d > dimAxes[axis]:\n dimAxes[axis] = d\n done = False\n return dimTitle, dimFooter, dimAxes
\n\n\n
\n[docs]\n def alignScales(self, options, canvasRect, scaleRect):\n """\n Align the ticks of the axis to the canvas borders using\n the empty corners.\n\n :param options: Options how to layout the legend\n :param QRectF canvasRect: Geometry of the canvas ( IN/OUT )\n :param QRectF scaleRect: Geometry of the scales ( IN/OUT )\n """\n backboneOffset = [0 for _i in QwtPlot.AXES]\n for axis in QwtPlot.AXES:\n backboneOffset[axis] = 0\n if not self.__data.alignCanvasToScales[axis]:\n backboneOffset[axis] += self.__data.canvasMargin[axis]\n if not options & self.IgnoreFrames:\n backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[\n axis\n ]\n for axis in QwtPlot.AXES:\n if not scaleRect[axis].isValid():\n continue\n startDist = self.__data.layoutData.scale[axis].start\n endDist = self.__data.layoutData.scale[axis].end\n axisRect = scaleRect[axis]\n if axis in (QwtPlot.xTop, QwtPlot.xBottom):\n leftScaleRect = scaleRect[QwtPlot.yLeft]\n leftOffset = backboneOffset[QwtPlot.yLeft] - startDist\n if leftScaleRect.isValid():\n dx = leftOffset + leftScaleRect.width()\n if self.__data.alignCanvasToScales[QwtPlot.yLeft] and dx < 0.0:\n cLeft = canvasRect.left()\n canvasRect.setLeft(max([cLeft, axisRect.left() - dx]))\n else:\n minLeft = leftScaleRect.left()\n left = axisRect.left() + leftOffset\n axisRect.setLeft(max([left, minLeft]))\n else:\n if (\n self.__data.alignCanvasToScales[QwtPlot.yLeft]\n and leftOffset < 0\n ):\n canvasRect.setLeft(\n max([canvasRect.left(), axisRect.left() - leftOffset])\n )\n else:\n if leftOffset > 0:\n axisRect.setLeft(axisRect.left() + leftOffset)\n rightScaleRect = scaleRect[QwtPlot.yRight]\n rightOffset = backboneOffset[QwtPlot.yRight] - endDist + 1\n if rightScaleRect.isValid():\n dx = rightOffset + rightScaleRect.width()\n if self.__data.alignCanvasToScales[QwtPlot.yRight] and dx < 0:\n cRight = canvasRect.right()\n canvasRect.setRight(min([cRight, axisRect.right() + dx]))\n maxRight = rightScaleRect.right()\n right = axisRect.right() - rightOffset\n axisRect.setRight(min([right, maxRight]))\n else:\n if (\n self.__data.alignCanvasToScales[QwtPlot.yRight]\n and rightOffset < 0\n ):\n canvasRect.setRight(\n min([canvasRect.right(), axisRect.right() + rightOffset])\n )\n else:\n if rightOffset > 0:\n axisRect.setRight(axisRect.right() - rightOffset)\n else:\n bottomScaleRect = scaleRect[QwtPlot.xBottom]\n bottomOffset = backboneOffset[QwtPlot.xBottom] - endDist + 1\n if bottomScaleRect.isValid():\n dy = bottomOffset + bottomScaleRect.height()\n if self.__data.alignCanvasToScales[QwtPlot.xBottom] and dy < 0:\n cBottom = canvasRect.bottom()\n canvasRect.setBottom(min([cBottom, axisRect.bottom() + dy]))\n else:\n maxBottom = (\n bottomScaleRect.top()\n + self.__data.layoutData.scale[QwtPlot.xBottom].tickOffset\n )\n bottom = axisRect.bottom() - bottomOffset\n axisRect.setBottom(min([bottom, maxBottom]))\n else:\n if (\n self.__data.alignCanvasToScales[QwtPlot.xBottom]\n and bottomOffset < 0\n ):\n canvasRect.setBottom(\n min([canvasRect.bottom(), axisRect.bottom() + bottomOffset])\n )\n else:\n if bottomOffset > 0:\n axisRect.setBottom(axisRect.bottom() - bottomOffset)\n topScaleRect = scaleRect[QwtPlot.xTop]\n topOffset = backboneOffset[QwtPlot.xTop] - startDist\n if topScaleRect.isValid():\n dy = topOffset + topScaleRect.height()\n if self.__data.alignCanvasToScales[QwtPlot.xTop] and dy < 0:\n cTop = canvasRect.top()\n canvasRect.setTop(max([cTop, axisRect.top() - dy]))\n else:\n minTop = (\n topScaleRect.bottom()\n - self.__data.layoutData.scale[QwtPlot.xTop].tickOffset\n )\n top = axisRect.top() + topOffset\n axisRect.setTop(max([top, minTop]))\n else:\n if self.__data.alignCanvasToScales[QwtPlot.xTop] and topOffset < 0:\n canvasRect.setTop(\n max([canvasRect.top(), axisRect.top() - topOffset])\n )\n else:\n if topOffset > 0:\n axisRect.setTop(axisRect.top() + topOffset)\n for axis in QwtPlot.AXES:\n sRect = scaleRect[axis]\n if not sRect.isValid():\n continue\n if axis in (QwtPlot.xBottom, QwtPlot.xTop):\n if self.__data.alignCanvasToScales[QwtPlot.yLeft]:\n y = canvasRect.left() - self.__data.layoutData.scale[axis].start\n if not options & self.IgnoreFrames:\n y += self.__data.layoutData.canvas.contentsMargins[\n QwtPlot.yLeft\n ]\n sRect.setLeft(y)\n if self.__data.alignCanvasToScales[QwtPlot.yRight]:\n y = canvasRect.right() - 1 + self.__data.layoutData.scale[axis].end\n if not options & self.IgnoreFrames:\n y -= self.__data.layoutData.canvas.contentsMargins[\n QwtPlot.yRight\n ]\n sRect.setRight(y)\n if self.__data.alignCanvasToScales[axis]:\n if axis == QwtPlot.xTop:\n sRect.setBottom(canvasRect.top())\n else:\n sRect.setTop(canvasRect.bottom())\n else:\n if self.__data.alignCanvasToScales[QwtPlot.xTop]:\n x = canvasRect.top() - self.__data.layoutData.scale[axis].start\n if not options & self.IgnoreFrames:\n x += self.__data.layoutData.canvas.contentsMargins[QwtPlot.xTop]\n sRect.setTop(x)\n if self.__data.alignCanvasToScales[QwtPlot.xBottom]:\n x = canvasRect.bottom() - 1 + self.__data.layoutData.scale[axis].end\n if not options & self.IgnoreFrames:\n x -= self.__data.layoutData.canvas.contentsMargins[\n QwtPlot.xBottom\n ]\n sRect.setBottom(x)\n if self.__data.alignCanvasToScales[axis]:\n if axis == QwtPlot.yLeft:\n sRect.setRight(canvasRect.left())\n else:\n sRect.setLeft(canvasRect.right())
\n\n\n
\n[docs]\n def activate(self, plot, plotRect, options=0x00):\n """\n Recalculate the geometry of all components.\n\n :param qwt.plot.QwtPlot plot: Plot to be layout\n :param QRectF plotRect: Rectangle where to place the components\n :param options: Layout options\n """\n self.invalidate()\n rect = QRectF(plotRect)\n self.__data.layoutData.init(plot, rect)\n if (\n not (options & self.IgnoreLegend)\n and plot.legend()\n and not plot.legend().isEmpty()\n ):\n self.__data.legendRect = self.layoutLegend(options, rect)\n region = QRegion(rect.toRect())\n rect = QRectF(\n region.subtracted(\n QRegion(self.__data.legendRect.toRect())\n ).boundingRect()\n )\n if self.__data.legendPos == QwtPlot.LeftLegend:\n rect.setLeft(rect.left() + self.__data.spacing)\n elif self.__data.legendPos == QwtPlot.RightLegend:\n rect.setRight(rect.right() - self.__data.spacing)\n elif self.__data.legendPos == QwtPlot.TopLegend:\n rect.setTop(rect.top() + self.__data.spacing)\n elif self.__data.legendPos == QwtPlot.BottomLegend:\n rect.setBottom(rect.bottom() - self.__data.spacing)\n\n # +---+-----------+---+\n # | Title |\n # +---+-----------+---+\n # | | Axis | |\n # +---+-----------+---+\n # | A | | A |\n # | x | Canvas | x |\n # | i | | i |\n # | s | | s |\n # +---+-----------+---+\n # | | Axis | |\n # +---+-----------+---+\n # | Footer |\n # +---+-----------+---+\n\n # title, footer and axes include text labels. The height of each\n # label depends on its line breaks, that depend on the width\n # for the label. A line break in a horizontal text will reduce\n # the available width for vertical texts and vice versa.\n # expandLineBreaks finds the height/width for title, footer and axes\n # including all line breaks.\n\n dimTitle, dimFooter, dimAxes = self.expandLineBreaks(options, rect)\n if dimTitle > 0:\n self.__data.titleRect.setRect(\n rect.left(), rect.top(), rect.width(), dimTitle\n )\n rect.setTop(self.__data.titleRect.bottom() + self.__data.spacing)\n if (\n self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled\n != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled\n ):\n self.__data.titleRect.setX(rect.left() + dimAxes[QwtPlot.yLeft])\n self.__data.titleRect.setWidth(\n rect.width() - dimAxes[QwtPlot.yLeft] - dimAxes[QwtPlot.yRight]\n )\n if dimFooter > 0:\n self.__data.footerRect.setRect(\n rect.left(), rect.bottom() - dimFooter, rect.width(), dimFooter\n )\n rect.setBottom(self.__data.footerRect.top() - self.__data.spacing)\n if (\n self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled\n != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled\n ):\n self.__data.footerRect.setX(rect.left() + dimAxes[QwtPlot.yLeft])\n self.__data.footerRect.setWidth(\n rect.width() - dimAxes[QwtPlot.yLeft] - dimAxes[QwtPlot.yRight]\n )\n self.__data.canvasRect.setRect(\n rect.x() + dimAxes[QwtPlot.yLeft],\n rect.y() + dimAxes[QwtPlot.xTop],\n rect.width() - dimAxes[QwtPlot.yRight] - dimAxes[QwtPlot.yLeft],\n rect.height() - dimAxes[QwtPlot.xBottom] - dimAxes[QwtPlot.xTop],\n )\n for axis in QwtPlot.AXES:\n if dimAxes[axis]:\n dim = dimAxes[axis]\n scaleRect = self.__data.scaleRect[axis]\n scaleRect.setRect(*self.__data.canvasRect.getRect())\n if axis == QwtPlot.yLeft:\n scaleRect.setX(self.__data.canvasRect.left() - dim)\n scaleRect.setWidth(dim)\n elif axis == QwtPlot.yRight:\n scaleRect.setX(self.__data.canvasRect.right())\n scaleRect.setWidth(dim)\n elif axis == QwtPlot.xBottom:\n scaleRect.setY(self.__data.canvasRect.bottom())\n scaleRect.setHeight(dim)\n elif axis == QwtPlot.xTop:\n scaleRect.setY(self.__data.canvasRect.top() - dim)\n scaleRect.setHeight(dim)\n scaleRect = scaleRect.normalized()\n\n # +---+-----------+---+\n # | <- Axis -> |\n # +-^-+-----------+-^-+\n # | | | | | |\n # | | | |\n # | A | | A |\n # | x | Canvas | x |\n # | i | | i |\n # | s | | s |\n # | | | |\n # | | | | | |\n # +-V-+-----------+-V-+\n # | <- Axis -> |\n # +---+-----------+---+\n\n # The ticks of the axes - not the labels above - should\n # be aligned to the canvas. So we try to use the empty\n # corners to extend the axes, so that the label texts\n # left/right of the min/max ticks are moved into them.\n\n self.alignScales(options, self.__data.canvasRect, self.__data.scaleRect)\n if not self.__data.legendRect.isEmpty():\n self.__data.legendRect = self.alignLegend(\n self.__data.canvasRect, self.__data.legendRect\n )
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39ca0a40>, 'js_tag': .js_tag at 0x7f3d39ca02c0>}, None) highlighting module code... [ 54%] qwt.plot_marker [app] emitting event: 'viewcode-find-source'('qwt.plot_marker',) -[app] emitting event: 'html-page-context'('_modules/qwt/plot_marker', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_marker', 'current_page_name': '_modules/qwt/plot_marker', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b207c0>, 'hasdoc': .hasdoc at 0x7fc7d6892660>, 'toctree': . at 0x7fc7d6892700>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_marker', 'body': '

Source code for qwt.plot_marker

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotMarker\n-------------\n\n.. autoclass:: QwtPlotMarker\n   :members:\n"""\n\nfrom qtpy.QtCore import QLineF, QObject, QPointF, QRect, QRectF, QSizeF, Qt\nfrom qtpy.QtGui import QPainter, QPen\n\nfrom qwt.graphic import QwtGraphic\nfrom qwt.plot import QwtPlot, QwtPlotItem\nfrom qwt.qthelpers import qcolor_from_str\nfrom qwt.symbol import QwtSymbol\nfrom qwt.text import QwtText\n\n\nclass QwtPlotMarker_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.labelAlignment = Qt.AlignCenter\n        self.labelOrientation = Qt.Horizontal\n        self.spacing = 2\n        self.symbol = None\n        self.style = QwtPlotMarker.NoLine\n        self.xValue = 0.0\n        self.yValue = 0.0\n        self.label = QwtText()\n        self.pen = QPen()\n\n\n
\n[docs]\nclass QwtPlotMarker(QwtPlotItem):\n """\n A class for drawing markers\n\n A marker can be a horizontal line, a vertical line,\n a symbol, a label or any combination of them, which can\n be drawn around a center point inside a bounding rectangle.\n\n The `setSymbol()` member assigns a symbol to the marker.\n The symbol is drawn at the specified point.\n\n With `setLabel()`, a label can be assigned to the marker.\n The `setLabelAlignment()` member specifies where the label is drawn. All\n the Align*-constants in `Qt.AlignmentFlags` (see Qt documentation)\n are valid. The interpretation of the alignment depends on the marker's\n line style. The alignment refers to the center point of\n the marker, which means, for example, that the label would be printed\n left above the center point if the alignment was set to\n `Qt.AlignLeft | Qt.AlignTop`.\n\n Line styles:\n\n * `QwtPlotMarker.NoLine`: No line\n * `QwtPlotMarker.HLine`: A horizontal line\n * `QwtPlotMarker.VLine`: A vertical line\n * `QwtPlotMarker.Cross`: A crosshair\n """\n\n # enum LineStyle\n NoLine, HLine, VLine, Cross = list(range(4))\n\n def __init__(self, title=None):\n if title is None:\n title = ""\n if not isinstance(title, QwtText):\n title = QwtText(title)\n QwtPlotItem.__init__(self, title)\n self.__data = QwtPlotMarker_PrivateData()\n self.setZ(30.0)\n\n
\n[docs]\n @classmethod\n def make(\n cls,\n xvalue=None,\n yvalue=None,\n title=None,\n label=None,\n symbol=None,\n plot=None,\n z=None,\n x_axis=None,\n y_axis=None,\n align=None,\n orientation=None,\n spacing=None,\n linestyle=None,\n color=None,\n width=None,\n style=None,\n antialiased=False,\n ):\n """\n Create and setup a new `QwtPlotMarker` object (convenience function).\n\n :param xvalue: x position (optional, default: None)\n :type xvalue: float or None\n :param yvalue: y position (optional, default: None)\n :type yvalue: float or None\n :param title: Marker title\n :type title: qwt.text.QwtText or str or None\n :param label: Label text\n :type label: qwt.text.QwtText or str or None\n :param symbol: New symbol\n :type symbol: qwt.symbol.QwtSymbol or None\n :param plot: Plot to attach the curve to\n :type plot: qwt.plot.QwtPlot or None\n :param z: Z-value\n :type z: float or None\n :param int x_axis: curve X-axis (default: QwtPlot.yLeft)\n :param int y_axis: curve Y-axis (default: QwtPlot.xBottom)\n :param align: Alignment of the label\n :type align: Qt.Alignment or None\n :param orientation: Orientation of the label\n :type orientation: Qt.Orientation or None\n :param spacing: Spacing (distance between the position and the label)\n :type spacing: int or None\n :param int linestyle: Line style\n :param color: Pen color\n :type color: QColor or str or None\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n :param bool antialiased: if True, enable antialiasing rendering\n\n .. seealso::\n\n :py:meth:`setData()`, :py:meth:`setPen()`, :py:meth:`attach()`\n """\n item = cls(title)\n if z is not None:\n item.setZ(z)\n if symbol is not None:\n item.setSymbol(symbol)\n if xvalue is not None:\n item.setXValue(xvalue)\n if yvalue is not None:\n item.setYValue(yvalue)\n if label is not None:\n item.setLabel(label)\n x_axis = QwtPlot.xBottom if x_axis is None else x_axis\n y_axis = QwtPlot.yLeft if y_axis is None else y_axis\n item.setAxes(x_axis, y_axis)\n if align is not None:\n item.setLabelAlignment(align)\n if orientation is not None:\n item.setLabelOrientation(orientation)\n if spacing is not None:\n item.setSpacing(spacing)\n color = qcolor_from_str(color, Qt.black)\n width = 1.0 if width is None else width\n style = Qt.SolidLine if style is None else style\n item.setLinePen(QPen(color, width, style))\n item.setRenderHint(cls.RenderAntialiased, antialiased)\n if linestyle is not None:\n item.setLineStyle(linestyle)\n if plot is not None:\n item.attach(plot)\n return item
\n\n\n
\n[docs]\n def rtti(self):\n """:return: `QwtPlotItem.Rtti_PlotMarker`"""\n return QwtPlotItem.Rtti_PlotMarker
\n\n\n
\n[docs]\n def value(self):\n """:return: Value"""\n return QPointF(self.__data.xValue, self.__data.yValue)
\n\n\n
\n[docs]\n def xValue(self):\n """:return: x Value"""\n return self.__data.xValue
\n\n\n
\n[docs]\n def yValue(self):\n """:return: y Value"""\n return self.__data.yValue
\n\n\n
\n[docs]\n def setValue(self, *args):\n """\n Set Value\n\n .. py:method:: setValue(pos):\n\n :param QPointF pos: Position\n\n .. py:method:: setValue(x, y):\n\n :param float x: x position\n :param float y: y position\n """\n if len(args) == 1:\n (pos,) = args\n self.setValue(pos.x(), pos.y())\n elif len(args) == 2:\n x, y = args\n if x != self.__data.xValue or y != self.__data.yValue:\n self.__data.xValue = x\n self.__data.yValue = y\n self.itemChanged()\n else:\n raise TypeError(\n "%s() takes 1 or 2 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def setXValue(self, x):\n """\n Set X Value\n\n :param float x: x position\n """\n self.setValue(x, self.__data.yValue)
\n\n\n
\n[docs]\n def setYValue(self, y):\n """\n Set Y Value\n\n :param float y: y position\n """\n self.setValue(self.__data.xValue, y)
\n\n\n
\n[docs]\n def draw(self, painter, xMap, yMap, canvasRect):\n """\n Draw the marker\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: x Scale Map\n :param qwt.scale_map.QwtScaleMap yMap: y Scale Map\n :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates\n """\n pos = QPointF(\n xMap.transform(self.__data.xValue), yMap.transform(self.__data.yValue)\n )\n self.drawLines(painter, canvasRect, pos)\n if self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol:\n sz = self.__data.symbol.size()\n width, height = int(sz.width()), int(sz.height())\n clipRect = QRectF(canvasRect.adjusted(-width, -height, width, height))\n if clipRect.contains(pos):\n self.__data.symbol.drawSymbols(painter, [pos])\n self.drawLabel(painter, canvasRect, pos)
\n\n\n
\n[docs]\n def drawLines(self, painter, canvasRect, pos):\n """\n Draw the lines marker\n\n :param QPainter painter: Painter\n :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates\n :param QPointF pos: Position of the marker, translated into widget coordinates\n\n .. seealso::\n\n :py:meth:`drawLabel()`,\n :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()`\n """\n if self.__data.style == self.NoLine:\n return\n painter.setPen(self.__data.pen)\n if self.__data.style in (QwtPlotMarker.HLine, QwtPlotMarker.Cross):\n y = pos.y()\n painter.drawLine(QLineF(canvasRect.left(), y, canvasRect.right() - 1.0, y))\n if self.__data.style in (QwtPlotMarker.VLine, QwtPlotMarker.Cross):\n x = pos.x()\n painter.drawLine(QLineF(x, canvasRect.top(), x, canvasRect.bottom() - 1.0))
\n\n\n
\n[docs]\n def drawLabel(self, painter, canvasRect, pos):\n """\n Align and draw the text label of the marker\n\n :param QPainter painter: Painter\n :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates\n :param QPointF pos: Position of the marker, translated into widget coordinates\n\n .. seealso::\n\n :py:meth:`drawLabel()`,\n :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()`\n """\n if self.__data.label.isEmpty():\n return\n align = self.__data.labelAlignment\n alignPos = QPointF(pos)\n symbolOff = QSizeF(0, 0)\n if self.__data.style == QwtPlotMarker.VLine:\n # In VLine-style the y-position is pointless and\n # the alignment flags are relative to the canvas\n if bool(self.__data.labelAlignment & Qt.AlignTop):\n alignPos.setY(canvasRect.top())\n align &= ~Qt.AlignTop\n align |= Qt.AlignBottom\n elif bool(self.__data.labelAlignment & Qt.AlignBottom):\n # In HLine-style the x-position is pointless and\n # the alignment flags are relative to the canvas\n alignPos.setY(canvasRect.bottom() - 1)\n align &= ~Qt.AlignBottom\n align |= Qt.AlignTop\n else:\n alignPos.setY(canvasRect.center().y())\n elif self.__data.style == QwtPlotMarker.HLine:\n if bool(self.__data.labelAlignment & Qt.AlignLeft):\n alignPos.setX(canvasRect.left())\n align &= ~Qt.AlignLeft\n align |= Qt.AlignRight\n elif bool(self.__data.labelAlignment & Qt.AlignRight):\n alignPos.setX(canvasRect.right() - 1)\n align &= ~Qt.AlignRight\n align |= Qt.AlignLeft\n else:\n alignPos.setX(canvasRect.center().x())\n else:\n if self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol:\n symbolOff = QSizeF(self.__data.symbol.size()) + QSizeF(1, 1)\n symbolOff /= 2\n pw2 = self.__data.pen.widthF() / 2.0\n if pw2 == 0.0:\n pw2 = 0.5\n spacing = self.__data.spacing\n xOff = max([pw2, symbolOff.width()])\n yOff = max([pw2, symbolOff.height()])\n textSize = self.__data.label.textSize(painter.font())\n if align & Qt.AlignLeft:\n alignPos.setX(alignPos.x() - (xOff + spacing))\n if self.__data.labelOrientation == Qt.Vertical:\n alignPos.setX(alignPos.x() - textSize.height())\n else:\n alignPos.setX(alignPos.x() - textSize.width())\n elif align & Qt.AlignRight:\n alignPos.setX(alignPos.x() + xOff + spacing)\n else:\n if self.__data.labelOrientation == Qt.Vertical:\n alignPos.setX(alignPos.x() - textSize.height() / 2)\n else:\n alignPos.setX(alignPos.x() - textSize.width() / 2)\n if align & Qt.AlignTop:\n alignPos.setY(alignPos.y() - (yOff + spacing))\n if self.__data.labelOrientation != Qt.Vertical:\n alignPos.setY(alignPos.y() - textSize.height())\n elif align & Qt.AlignBottom:\n alignPos.setY(alignPos.y() + yOff + spacing)\n if self.__data.labelOrientation == Qt.Vertical:\n alignPos.setY(alignPos.y() + textSize.width())\n else:\n if self.__data.labelOrientation == Qt.Vertical:\n alignPos.setY(alignPos.y() + textSize.width() / 2)\n else:\n alignPos.setY(alignPos.y() - textSize.height() / 2)\n painter.translate(alignPos.x(), alignPos.y())\n if self.__data.labelOrientation == Qt.Vertical:\n painter.rotate(-90.0)\n textRect = QRectF(0, 0, textSize.width(), textSize.height())\n self.__data.label.draw(painter, textRect)
\n\n\n
\n[docs]\n def setLineStyle(self, style):\n """\n Set the line style\n\n :param int style: Line style\n\n Line styles:\n\n * `QwtPlotMarker.NoLine`: No line\n * `QwtPlotMarker.HLine`: A horizontal line\n * `QwtPlotMarker.VLine`: A vertical line\n * `QwtPlotMarker.Cross`: A crosshair\n\n .. seealso::\n\n :py:meth:`lineStyle()`\n """\n if style != self.__data.style:\n self.__data.style = style\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def lineStyle(self):\n """\n :return: the line style\n\n .. seealso::\n\n :py:meth:`setLineStyle()`\n """\n return self.__data.style
\n\n\n
\n[docs]\n def setSymbol(self, symbol):\n """\n Assign a symbol\n\n :param qwt.symbol.QwtSymbol symbol: New symbol\n\n .. seealso::\n\n :py:meth:`symbol()`\n """\n if symbol != self.__data.symbol:\n self.__data.symbol = symbol\n if symbol is not None:\n self.setLegendIconSize(symbol.boundingRect().size())\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def symbol(self):\n """\n :return: the symbol\n\n .. seealso::\n\n :py:meth:`setSymbol()`\n """\n return self.__data.symbol
\n\n\n
\n[docs]\n def setLabel(self, label):\n """\n Set the label\n\n :param label: Label text\n :type label: qwt.text.QwtText or str\n\n .. seealso::\n\n :py:meth:`label()`\n """\n if not isinstance(label, QwtText):\n label = QwtText(label)\n if label != self.__data.label:\n self.__data.label = label\n self.itemChanged()
\n\n\n
\n[docs]\n def label(self):\n """\n :return: the label\n\n .. seealso::\n\n :py:meth:`setLabel()`\n """\n return self.__data.label
\n\n\n
\n[docs]\n def setLabelAlignment(self, align):\n """\n Set the alignment of the label\n\n In case of `QwtPlotMarker.HLine` the alignment is relative to the\n y position of the marker, but the horizontal flags correspond to the\n canvas rectangle. In case of `QwtPlotMarker.VLine` the alignment is\n relative to the x position of the marker, but the vertical flags\n correspond to the canvas rectangle.\n\n In all other styles the alignment is relative to the marker's position.\n\n :param Qt.Alignment align: Alignment\n\n .. seealso::\n\n :py:meth:`labelAlignment()`, :py:meth:`labelOrientation()`\n """\n if align != self.__data.labelAlignment:\n self.__data.labelAlignment = align\n self.itemChanged()
\n\n\n
\n[docs]\n def labelAlignment(self):\n """\n :return: the label alignment\n\n .. seealso::\n\n :py:meth:`setLabelAlignment()`, :py:meth:`setLabelOrientation()`\n """\n return self.__data.labelAlignment
\n\n\n
\n[docs]\n def setLabelOrientation(self, orientation):\n """\n Set the orientation of the label\n\n When orientation is `Qt.Vertical` the label is rotated by 90.0 degrees\n (from bottom to top).\n\n :param Qt.Orientation orientation: Orientation of the label\n\n .. seealso::\n\n :py:meth:`labelOrientation()`, :py:meth:`setLabelAlignment()`\n """\n if orientation != self.__data.labelOrientation:\n self.__data.labelOrientation = orientation\n self.itemChanged()
\n\n\n
\n[docs]\n def labelOrientation(self):\n """\n :return: the label orientation\n\n .. seealso::\n\n :py:meth:`setLabelOrientation()`, :py:meth:`labelAlignment()`\n """\n return self.__data.labelOrientation
\n\n\n
\n[docs]\n def setSpacing(self, spacing):\n """\n Set the spacing\n\n When the label is not centered on the marker position, the spacing\n is the distance between the position and the label.\n\n :param int spacing: Spacing\n\n .. seealso::\n\n :py:meth:`spacing()`, :py:meth:`setLabelAlignment()`\n """\n if spacing < 0:\n spacing = 0\n if spacing != self.__data.spacing:\n self.__data.spacing = spacing\n self.itemChanged()
\n\n\n
\n[docs]\n def spacing(self):\n """\n :return: the spacing\n\n .. seealso::\n\n :py:meth:`setSpacing()`\n """\n return self.__data.spacing
\n\n\n
\n[docs]\n def setLinePen(self, *args):\n """\n Build and/or assigna a line pen, depending on the arguments.\n\n .. py:method:: setLinePen(color, width, style)\n :noindex:\n\n Build and assign a line pen\n\n In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\n non cosmetic (see `QPen.isCosmetic()`). This method signature has\n been introduced to hide this incompatibility.\n\n :param QColor color: Pen color\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n\n .. py:method:: setLinePen(pen)\n :noindex:\n\n Specify a pen for the line.\n\n :param QPen pen: New pen\n\n .. seealso::\n\n :py:meth:`pen()`, :py:meth:`brush()`\n """\n if len(args) == 1 and isinstance(args[0], QPen):\n (pen,) = args\n elif len(args) in (1, 2, 3):\n color = args[0]\n width = 0.0\n style = Qt.SolidLine\n if len(args) > 1:\n width = args[1]\n if len(args) > 2:\n style = args[2]\n pen = QPen(color, width, style)\n self.setLinePen(pen)\n else:\n raise TypeError(\n "%s().setLinePen() takes 1, 2 or 3 argument(s) "\n "(%s given)" % (self.__class__.__name__, len(args))\n )\n if pen != self.__data.pen:\n self.__data.pen = pen\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def linePen(self):\n """\n :return: the line pen\n\n .. seealso::\n\n :py:meth:`setLinePen()`\n """\n return self.__data.pen
\n\n\n
\n[docs]\n def boundingRect(self):\n if self.__data.style == QwtPlotMarker.HLine:\n return QRectF(self.__data.xValue, self.__data.yValue, -1.0, 0.0)\n elif self.__data.style == QwtPlotMarker.VLine:\n return QRectF(self.__data.xValue, self.__data.yValue, 0.0, -1.0)\n else:\n return QRectF(self.__data.xValue, self.__data.yValue, 0.0, 0.0)
\n\n\n
\n[docs]\n def legendIcon(self, index, size):\n """\n :param int index: Index of the legend entry (ignored as there is only one)\n :param QSizeF size: Icon size\n :return: Icon representing the marker on the legend\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`,\n :py:meth:`qwt.plot.QwtPlotItem.legendData()`\n """\n if size.isEmpty():\n return QwtGraphic()\n icon = QwtGraphic()\n icon.setDefaultSize(size)\n icon.setRenderHint(QwtGraphic.RenderPensUnscaled, True)\n painter = QPainter(icon)\n painter.setRenderHint(\n QPainter.Antialiasing, self.testRenderHint(QwtPlotItem.RenderAntialiased)\n )\n if self.__data.style != QwtPlotMarker.NoLine:\n painter.setPen(self.__data.pen)\n if self.__data.style in (QwtPlotMarker.HLine, QwtPlotMarker.Cross):\n y = 0.5 * size.height()\n painter.drawLine(QLineF(0.0, y, size.width(), y))\n if self.__data.style in (QwtPlotMarker.VLine, QwtPlotMarker.Cross):\n x = 0.5 * size.width()\n painter.drawLine(QLineF(x, 0.0, x, size.height()))\n if self.__data.symbol:\n r = QRect(0, 0, size.width(), size.height())\n self.__data.symbol.drawSymbol(painter, r)\n return icon
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6891800>, 'js_tag': .js_tag at 0x7fc7d6891760>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/plot_marker', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_marker', 'current_page_name': '_modules/qwt/plot_marker', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f687c0>, 'hasdoc': .hasdoc at 0x7f3d39ca2660>, 'toctree': . at 0x7f3d39ca2700>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_marker', 'body': '

Source code for qwt.plot_marker

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotMarker\n-------------\n\n.. autoclass:: QwtPlotMarker\n   :members:\n"""\n\nfrom qtpy.QtCore import QLineF, QObject, QPointF, QRect, QRectF, QSizeF, Qt\nfrom qtpy.QtGui import QPainter, QPen\n\nfrom qwt.graphic import QwtGraphic\nfrom qwt.plot import QwtPlot, QwtPlotItem\nfrom qwt.qthelpers import qcolor_from_str\nfrom qwt.symbol import QwtSymbol\nfrom qwt.text import QwtText\n\n\nclass QwtPlotMarker_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.labelAlignment = Qt.AlignCenter\n        self.labelOrientation = Qt.Horizontal\n        self.spacing = 2\n        self.symbol = None\n        self.style = QwtPlotMarker.NoLine\n        self.xValue = 0.0\n        self.yValue = 0.0\n        self.label = QwtText()\n        self.pen = QPen()\n\n\n
\n[docs]\nclass QwtPlotMarker(QwtPlotItem):\n """\n A class for drawing markers\n\n A marker can be a horizontal line, a vertical line,\n a symbol, a label or any combination of them, which can\n be drawn around a center point inside a bounding rectangle.\n\n The `setSymbol()` member assigns a symbol to the marker.\n The symbol is drawn at the specified point.\n\n With `setLabel()`, a label can be assigned to the marker.\n The `setLabelAlignment()` member specifies where the label is drawn. All\n the Align*-constants in `Qt.AlignmentFlags` (see Qt documentation)\n are valid. The interpretation of the alignment depends on the marker's\n line style. The alignment refers to the center point of\n the marker, which means, for example, that the label would be printed\n left above the center point if the alignment was set to\n `Qt.AlignLeft | Qt.AlignTop`.\n\n Line styles:\n\n * `QwtPlotMarker.NoLine`: No line\n * `QwtPlotMarker.HLine`: A horizontal line\n * `QwtPlotMarker.VLine`: A vertical line\n * `QwtPlotMarker.Cross`: A crosshair\n """\n\n # enum LineStyle\n NoLine, HLine, VLine, Cross = list(range(4))\n\n def __init__(self, title=None):\n if title is None:\n title = ""\n if not isinstance(title, QwtText):\n title = QwtText(title)\n QwtPlotItem.__init__(self, title)\n self.__data = QwtPlotMarker_PrivateData()\n self.setZ(30.0)\n\n
\n[docs]\n @classmethod\n def make(\n cls,\n xvalue=None,\n yvalue=None,\n title=None,\n label=None,\n symbol=None,\n plot=None,\n z=None,\n x_axis=None,\n y_axis=None,\n align=None,\n orientation=None,\n spacing=None,\n linestyle=None,\n color=None,\n width=None,\n style=None,\n antialiased=False,\n ):\n """\n Create and setup a new `QwtPlotMarker` object (convenience function).\n\n :param xvalue: x position (optional, default: None)\n :type xvalue: float or None\n :param yvalue: y position (optional, default: None)\n :type yvalue: float or None\n :param title: Marker title\n :type title: qwt.text.QwtText or str or None\n :param label: Label text\n :type label: qwt.text.QwtText or str or None\n :param symbol: New symbol\n :type symbol: qwt.symbol.QwtSymbol or None\n :param plot: Plot to attach the curve to\n :type plot: qwt.plot.QwtPlot or None\n :param z: Z-value\n :type z: float or None\n :param int x_axis: curve X-axis (default: QwtPlot.yLeft)\n :param int y_axis: curve Y-axis (default: QwtPlot.xBottom)\n :param align: Alignment of the label\n :type align: Qt.Alignment or None\n :param orientation: Orientation of the label\n :type orientation: Qt.Orientation or None\n :param spacing: Spacing (distance between the position and the label)\n :type spacing: int or None\n :param int linestyle: Line style\n :param color: Pen color\n :type color: QColor or str or None\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n :param bool antialiased: if True, enable antialiasing rendering\n\n .. seealso::\n\n :py:meth:`setData()`, :py:meth:`setPen()`, :py:meth:`attach()`\n """\n item = cls(title)\n if z is not None:\n item.setZ(z)\n if symbol is not None:\n item.setSymbol(symbol)\n if xvalue is not None:\n item.setXValue(xvalue)\n if yvalue is not None:\n item.setYValue(yvalue)\n if label is not None:\n item.setLabel(label)\n x_axis = QwtPlot.xBottom if x_axis is None else x_axis\n y_axis = QwtPlot.yLeft if y_axis is None else y_axis\n item.setAxes(x_axis, y_axis)\n if align is not None:\n item.setLabelAlignment(align)\n if orientation is not None:\n item.setLabelOrientation(orientation)\n if spacing is not None:\n item.setSpacing(spacing)\n color = qcolor_from_str(color, Qt.black)\n width = 1.0 if width is None else width\n style = Qt.SolidLine if style is None else style\n item.setLinePen(QPen(color, width, style))\n item.setRenderHint(cls.RenderAntialiased, antialiased)\n if linestyle is not None:\n item.setLineStyle(linestyle)\n if plot is not None:\n item.attach(plot)\n return item
\n\n\n
\n[docs]\n def rtti(self):\n """:return: `QwtPlotItem.Rtti_PlotMarker`"""\n return QwtPlotItem.Rtti_PlotMarker
\n\n\n
\n[docs]\n def value(self):\n """:return: Value"""\n return QPointF(self.__data.xValue, self.__data.yValue)
\n\n\n
\n[docs]\n def xValue(self):\n """:return: x Value"""\n return self.__data.xValue
\n\n\n
\n[docs]\n def yValue(self):\n """:return: y Value"""\n return self.__data.yValue
\n\n\n
\n[docs]\n def setValue(self, *args):\n """\n Set Value\n\n .. py:method:: setValue(pos):\n\n :param QPointF pos: Position\n\n .. py:method:: setValue(x, y):\n\n :param float x: x position\n :param float y: y position\n """\n if len(args) == 1:\n (pos,) = args\n self.setValue(pos.x(), pos.y())\n elif len(args) == 2:\n x, y = args\n if x != self.__data.xValue or y != self.__data.yValue:\n self.__data.xValue = x\n self.__data.yValue = y\n self.itemChanged()\n else:\n raise TypeError(\n "%s() takes 1 or 2 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def setXValue(self, x):\n """\n Set X Value\n\n :param float x: x position\n """\n self.setValue(x, self.__data.yValue)
\n\n\n
\n[docs]\n def setYValue(self, y):\n """\n Set Y Value\n\n :param float y: y position\n """\n self.setValue(self.__data.xValue, y)
\n\n\n
\n[docs]\n def draw(self, painter, xMap, yMap, canvasRect):\n """\n Draw the marker\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: x Scale Map\n :param qwt.scale_map.QwtScaleMap yMap: y Scale Map\n :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates\n """\n pos = QPointF(\n xMap.transform(self.__data.xValue), yMap.transform(self.__data.yValue)\n )\n self.drawLines(painter, canvasRect, pos)\n if self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol:\n sz = self.__data.symbol.size()\n width, height = int(sz.width()), int(sz.height())\n clipRect = QRectF(canvasRect.adjusted(-width, -height, width, height))\n if clipRect.contains(pos):\n self.__data.symbol.drawSymbols(painter, [pos])\n self.drawLabel(painter, canvasRect, pos)
\n\n\n
\n[docs]\n def drawLines(self, painter, canvasRect, pos):\n """\n Draw the lines marker\n\n :param QPainter painter: Painter\n :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates\n :param QPointF pos: Position of the marker, translated into widget coordinates\n\n .. seealso::\n\n :py:meth:`drawLabel()`,\n :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()`\n """\n if self.__data.style == self.NoLine:\n return\n painter.setPen(self.__data.pen)\n if self.__data.style in (QwtPlotMarker.HLine, QwtPlotMarker.Cross):\n y = pos.y()\n painter.drawLine(QLineF(canvasRect.left(), y, canvasRect.right() - 1.0, y))\n if self.__data.style in (QwtPlotMarker.VLine, QwtPlotMarker.Cross):\n x = pos.x()\n painter.drawLine(QLineF(x, canvasRect.top(), x, canvasRect.bottom() - 1.0))
\n\n\n
\n[docs]\n def drawLabel(self, painter, canvasRect, pos):\n """\n Align and draw the text label of the marker\n\n :param QPainter painter: Painter\n :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates\n :param QPointF pos: Position of the marker, translated into widget coordinates\n\n .. seealso::\n\n :py:meth:`drawLabel()`,\n :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()`\n """\n if self.__data.label.isEmpty():\n return\n align = self.__data.labelAlignment\n alignPos = QPointF(pos)\n symbolOff = QSizeF(0, 0)\n if self.__data.style == QwtPlotMarker.VLine:\n # In VLine-style the y-position is pointless and\n # the alignment flags are relative to the canvas\n if bool(self.__data.labelAlignment & Qt.AlignTop):\n alignPos.setY(canvasRect.top())\n align &= ~Qt.AlignTop\n align |= Qt.AlignBottom\n elif bool(self.__data.labelAlignment & Qt.AlignBottom):\n # In HLine-style the x-position is pointless and\n # the alignment flags are relative to the canvas\n alignPos.setY(canvasRect.bottom() - 1)\n align &= ~Qt.AlignBottom\n align |= Qt.AlignTop\n else:\n alignPos.setY(canvasRect.center().y())\n elif self.__data.style == QwtPlotMarker.HLine:\n if bool(self.__data.labelAlignment & Qt.AlignLeft):\n alignPos.setX(canvasRect.left())\n align &= ~Qt.AlignLeft\n align |= Qt.AlignRight\n elif bool(self.__data.labelAlignment & Qt.AlignRight):\n alignPos.setX(canvasRect.right() - 1)\n align &= ~Qt.AlignRight\n align |= Qt.AlignLeft\n else:\n alignPos.setX(canvasRect.center().x())\n else:\n if self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol:\n symbolOff = QSizeF(self.__data.symbol.size()) + QSizeF(1, 1)\n symbolOff /= 2\n pw2 = self.__data.pen.widthF() / 2.0\n if pw2 == 0.0:\n pw2 = 0.5\n spacing = self.__data.spacing\n xOff = max([pw2, symbolOff.width()])\n yOff = max([pw2, symbolOff.height()])\n textSize = self.__data.label.textSize(painter.font())\n if align & Qt.AlignLeft:\n alignPos.setX(alignPos.x() - (xOff + spacing))\n if self.__data.labelOrientation == Qt.Vertical:\n alignPos.setX(alignPos.x() - textSize.height())\n else:\n alignPos.setX(alignPos.x() - textSize.width())\n elif align & Qt.AlignRight:\n alignPos.setX(alignPos.x() + xOff + spacing)\n else:\n if self.__data.labelOrientation == Qt.Vertical:\n alignPos.setX(alignPos.x() - textSize.height() / 2)\n else:\n alignPos.setX(alignPos.x() - textSize.width() / 2)\n if align & Qt.AlignTop:\n alignPos.setY(alignPos.y() - (yOff + spacing))\n if self.__data.labelOrientation != Qt.Vertical:\n alignPos.setY(alignPos.y() - textSize.height())\n elif align & Qt.AlignBottom:\n alignPos.setY(alignPos.y() + yOff + spacing)\n if self.__data.labelOrientation == Qt.Vertical:\n alignPos.setY(alignPos.y() + textSize.width())\n else:\n if self.__data.labelOrientation == Qt.Vertical:\n alignPos.setY(alignPos.y() + textSize.width() / 2)\n else:\n alignPos.setY(alignPos.y() - textSize.height() / 2)\n painter.translate(alignPos.x(), alignPos.y())\n if self.__data.labelOrientation == Qt.Vertical:\n painter.rotate(-90.0)\n textRect = QRectF(0, 0, textSize.width(), textSize.height())\n self.__data.label.draw(painter, textRect)
\n\n\n
\n[docs]\n def setLineStyle(self, style):\n """\n Set the line style\n\n :param int style: Line style\n\n Line styles:\n\n * `QwtPlotMarker.NoLine`: No line\n * `QwtPlotMarker.HLine`: A horizontal line\n * `QwtPlotMarker.VLine`: A vertical line\n * `QwtPlotMarker.Cross`: A crosshair\n\n .. seealso::\n\n :py:meth:`lineStyle()`\n """\n if style != self.__data.style:\n self.__data.style = style\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def lineStyle(self):\n """\n :return: the line style\n\n .. seealso::\n\n :py:meth:`setLineStyle()`\n """\n return self.__data.style
\n\n\n
\n[docs]\n def setSymbol(self, symbol):\n """\n Assign a symbol\n\n :param qwt.symbol.QwtSymbol symbol: New symbol\n\n .. seealso::\n\n :py:meth:`symbol()`\n """\n if symbol != self.__data.symbol:\n self.__data.symbol = symbol\n if symbol is not None:\n self.setLegendIconSize(symbol.boundingRect().size())\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def symbol(self):\n """\n :return: the symbol\n\n .. seealso::\n\n :py:meth:`setSymbol()`\n """\n return self.__data.symbol
\n\n\n
\n[docs]\n def setLabel(self, label):\n """\n Set the label\n\n :param label: Label text\n :type label: qwt.text.QwtText or str\n\n .. seealso::\n\n :py:meth:`label()`\n """\n if not isinstance(label, QwtText):\n label = QwtText(label)\n if label != self.__data.label:\n self.__data.label = label\n self.itemChanged()
\n\n\n
\n[docs]\n def label(self):\n """\n :return: the label\n\n .. seealso::\n\n :py:meth:`setLabel()`\n """\n return self.__data.label
\n\n\n
\n[docs]\n def setLabelAlignment(self, align):\n """\n Set the alignment of the label\n\n In case of `QwtPlotMarker.HLine` the alignment is relative to the\n y position of the marker, but the horizontal flags correspond to the\n canvas rectangle. In case of `QwtPlotMarker.VLine` the alignment is\n relative to the x position of the marker, but the vertical flags\n correspond to the canvas rectangle.\n\n In all other styles the alignment is relative to the marker's position.\n\n :param Qt.Alignment align: Alignment\n\n .. seealso::\n\n :py:meth:`labelAlignment()`, :py:meth:`labelOrientation()`\n """\n if align != self.__data.labelAlignment:\n self.__data.labelAlignment = align\n self.itemChanged()
\n\n\n
\n[docs]\n def labelAlignment(self):\n """\n :return: the label alignment\n\n .. seealso::\n\n :py:meth:`setLabelAlignment()`, :py:meth:`setLabelOrientation()`\n """\n return self.__data.labelAlignment
\n\n\n
\n[docs]\n def setLabelOrientation(self, orientation):\n """\n Set the orientation of the label\n\n When orientation is `Qt.Vertical` the label is rotated by 90.0 degrees\n (from bottom to top).\n\n :param Qt.Orientation orientation: Orientation of the label\n\n .. seealso::\n\n :py:meth:`labelOrientation()`, :py:meth:`setLabelAlignment()`\n """\n if orientation != self.__data.labelOrientation:\n self.__data.labelOrientation = orientation\n self.itemChanged()
\n\n\n
\n[docs]\n def labelOrientation(self):\n """\n :return: the label orientation\n\n .. seealso::\n\n :py:meth:`setLabelOrientation()`, :py:meth:`labelAlignment()`\n """\n return self.__data.labelOrientation
\n\n\n
\n[docs]\n def setSpacing(self, spacing):\n """\n Set the spacing\n\n When the label is not centered on the marker position, the spacing\n is the distance between the position and the label.\n\n :param int spacing: Spacing\n\n .. seealso::\n\n :py:meth:`spacing()`, :py:meth:`setLabelAlignment()`\n """\n if spacing < 0:\n spacing = 0\n if spacing != self.__data.spacing:\n self.__data.spacing = spacing\n self.itemChanged()
\n\n\n
\n[docs]\n def spacing(self):\n """\n :return: the spacing\n\n .. seealso::\n\n :py:meth:`setSpacing()`\n """\n return self.__data.spacing
\n\n\n
\n[docs]\n def setLinePen(self, *args):\n """\n Build and/or assigna a line pen, depending on the arguments.\n\n .. py:method:: setLinePen(color, width, style)\n :noindex:\n\n Build and assign a line pen\n\n In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\n non cosmetic (see `QPen.isCosmetic()`). This method signature has\n been introduced to hide this incompatibility.\n\n :param QColor color: Pen color\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n\n .. py:method:: setLinePen(pen)\n :noindex:\n\n Specify a pen for the line.\n\n :param QPen pen: New pen\n\n .. seealso::\n\n :py:meth:`pen()`, :py:meth:`brush()`\n """\n if len(args) == 1 and isinstance(args[0], QPen):\n (pen,) = args\n elif len(args) in (1, 2, 3):\n color = args[0]\n width = 0.0\n style = Qt.SolidLine\n if len(args) > 1:\n width = args[1]\n if len(args) > 2:\n style = args[2]\n pen = QPen(color, width, style)\n self.setLinePen(pen)\n else:\n raise TypeError(\n "%s().setLinePen() takes 1, 2 or 3 argument(s) "\n "(%s given)" % (self.__class__.__name__, len(args))\n )\n if pen != self.__data.pen:\n self.__data.pen = pen\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def linePen(self):\n """\n :return: the line pen\n\n .. seealso::\n\n :py:meth:`setLinePen()`\n """\n return self.__data.pen
\n\n\n
\n[docs]\n def boundingRect(self):\n if self.__data.style == QwtPlotMarker.HLine:\n return QRectF(self.__data.xValue, self.__data.yValue, -1.0, 0.0)\n elif self.__data.style == QwtPlotMarker.VLine:\n return QRectF(self.__data.xValue, self.__data.yValue, 0.0, -1.0)\n else:\n return QRectF(self.__data.xValue, self.__data.yValue, 0.0, 0.0)
\n\n\n
\n[docs]\n def legendIcon(self, index, size):\n """\n :param int index: Index of the legend entry (ignored as there is only one)\n :param QSizeF size: Icon size\n :return: Icon representing the marker on the legend\n\n .. seealso::\n\n :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`,\n :py:meth:`qwt.plot.QwtPlotItem.legendData()`\n """\n if size.isEmpty():\n return QwtGraphic()\n icon = QwtGraphic()\n icon.setDefaultSize(size)\n icon.setRenderHint(QwtGraphic.RenderPensUnscaled, True)\n painter = QPainter(icon)\n painter.setRenderHint(\n QPainter.Antialiasing, self.testRenderHint(QwtPlotItem.RenderAntialiased)\n )\n if self.__data.style != QwtPlotMarker.NoLine:\n painter.setPen(self.__data.pen)\n if self.__data.style in (QwtPlotMarker.HLine, QwtPlotMarker.Cross):\n y = 0.5 * size.height()\n painter.drawLine(QLineF(0.0, y, size.width(), y))\n if self.__data.style in (QwtPlotMarker.VLine, QwtPlotMarker.Cross):\n x = 0.5 * size.width()\n painter.drawLine(QLineF(x, 0.0, x, size.height()))\n if self.__data.symbol:\n r = QRect(0, 0, size.width(), size.height())\n self.__data.symbol.drawSymbol(painter, r)\n return icon
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39ca1800>, 'js_tag': .js_tag at 0x7f3d39ca1760>}, None) highlighting module code... [ 58%] qwt.plot_renderer [app] emitting event: 'viewcode-find-source'('qwt.plot_renderer',) -[app] emitting event: 'html-page-context'('_modules/qwt/plot_renderer', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_renderer', 'current_page_name': '_modules/qwt/plot_renderer', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6891f80>, 'hasdoc': .hasdoc at 0x7fc7d6892de0>, 'toctree': . at 0x7fc7d6892fc0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_renderer', 'body': '

Source code for qwt.plot_renderer

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotRenderer\n---------------\n\n.. autoclass:: QwtPlotRenderer\n   :members:\n"""\n\nimport math\nimport os.path as osp\n\nfrom qtpy.compat import getsavefilename\nfrom qtpy.QtCore import QObject, QRect, QRectF, QSizeF, Qt\nfrom qtpy.QtGui import (\n    QColor,\n    QImage,\n    QImageWriter,\n    QPageSize,\n    QPaintDevice,\n    QPainter,\n    QPainterPath,\n    QPalette,\n    QPen,\n    QTransform,\n)\nfrom qtpy.QtPrintSupport import QPrinter\nfrom qtpy.QtSvg import QSvgGenerator\nfrom qtpy.QtWidgets import QFileDialog\n\nfrom qwt.painter import QwtPainter\nfrom qwt.plot import QwtPlot\nfrom qwt.plot_layout import QwtPlotLayout\nfrom qwt.scale_draw import QwtScaleDraw\nfrom qwt.scale_map import QwtScaleMap\n\n\ndef qwtCanvasClip(canvas, canvasRect):\n    """\n    The clip region is calculated in integers\n    To avoid too much rounding errors better\n    calculate it in target device resolution\n    """\n    x1 = math.ceil(canvasRect.left())\n    x2 = math.floor(canvasRect.right())\n    y1 = math.ceil(canvasRect.top())\n    y2 = math.floor(canvasRect.bottom())\n    r = QRect(x1, y1, x2 - x1 - 1, y2 - y1 - 1)\n    return canvas.borderPath(r)\n\n\nclass QwtPlotRenderer_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.discardFlags = QwtPlotRenderer.DiscardNone\n        self.layoutFlags = QwtPlotRenderer.DefaultLayout\n\n\n
\n[docs]\nclass QwtPlotRenderer(QObject):\n """\n Renderer for exporting a plot to a document, a printer\n or anything else, that is supported by QPainter/QPaintDevice\n\n Discard flags:\n\n * `QwtPlotRenderer.DiscardNone`: Render all components of the plot\n * `QwtPlotRenderer.DiscardBackground`: Don't render the background of the plot\n * `QwtPlotRenderer.DiscardTitle`: Don't render the title of the plot\n * `QwtPlotRenderer.DiscardLegend`: Don't render the legend of the plot\n * `QwtPlotRenderer.DiscardCanvasBackground`: Don't render the background of the canvas\n * `QwtPlotRenderer.DiscardFooter`: Don't render the footer of the plot\n * `QwtPlotRenderer.DiscardCanvasFrame`: Don't render the frame of the canvas\n\n .. note::\n\n The `QwtPlotRenderer.DiscardCanvasFrame` flag has no effect when using\n style sheets, where the frame is part of the background\n\n Layout flags:\n\n * `QwtPlotRenderer.DefaultLayout`: Use the default layout as on screen\n * `QwtPlotRenderer.FrameWithScales`: Instead of the scales a box is painted around the plot canvas, where the scale ticks are aligned to.\n """\n\n # enum DiscardFlag\n DiscardNone = 0x00\n DiscardBackground = 0x01\n DiscardTitle = 0x02\n DiscardLegend = 0x04\n DiscardCanvasBackground = 0x08\n DiscardFooter = 0x10\n DiscardCanvasFrame = 0x20\n\n # enum LayoutFlag\n DefaultLayout = 0x00\n FrameWithScales = 0x01\n\n def __init__(self, parent=None):\n QObject.__init__(self, parent)\n self.__data = QwtPlotRenderer_PrivateData()\n\n
\n[docs]\n def setDiscardFlag(self, flag, on=True):\n """\n Change a flag, indicating what to discard from rendering\n\n :param int flag: Flag to change\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`testDiscardFlag()`, :py:meth:`setDiscardFlags()`,\n :py:meth:`discardFlags()`\n """\n if on:\n self.__data.discardFlags |= flag\n else:\n self.__data.discardFlags &= ~flag
\n\n\n
\n[docs]\n def testDiscardFlag(self, flag):\n """\n :param int flag: Flag to be tested\n :return: True, if flag is enabled.\n\n .. seealso::\n\n :py:meth:`setDiscardFlag()`, :py:meth:`setDiscardFlags()`,\n :py:meth:`discardFlags()`\n """\n return self.__data.discardFlags & flag
\n\n\n
\n[docs]\n def setDiscardFlags(self, flags):\n """\n Set the flags, indicating what to discard from rendering\n\n :param int flags: Flags\n\n .. seealso::\n\n :py:meth:`testDiscardFlag()`, :py:meth:`setDiscardFlag()`,\n :py:meth:`discardFlags()`\n """\n self.__data.discardFlags = flags
\n\n\n
\n[docs]\n def discardFlags(self):\n """\n :return: Flags, indicating what to discard from rendering\n\n .. seealso::\n\n :py:meth:`setDiscardFlag()`, :py:meth:`setDiscardFlags()`,\n :py:meth:`testDiscardFlag()`\n """\n return self.__data.discardFlags
\n\n\n
\n[docs]\n def setLayoutFlag(self, flag, on=True):\n """\n Change a layout flag\n\n :param int flag: Flag to change\n\n .. seealso::\n\n :py:meth:`testLayoutFlag()`, :py:meth:`setLayoutFlags()`,\n :py:meth:`layoutFlags()`\n """\n if on:\n self.__data.layoutFlags |= flag\n else:\n self.__data.layoutFlags &= ~flag
\n\n\n
\n[docs]\n def testLayoutFlag(self, flag):\n """\n :param int flag: Flag to be tested\n :return: True, if flag is enabled.\n\n .. seealso::\n\n :py:meth:`setLayoutFlag()`, :py:meth:`setLayoutFlags()`,\n :py:meth:`layoutFlags()`\n """\n return self.__data.layoutFlags & flag
\n\n\n
\n[docs]\n def setLayoutFlags(self, flags):\n """\n Set the layout flags\n\n :param int flags: Flags\n\n .. seealso::\n\n :py:meth:`setLayoutFlag()`, :py:meth:`testLayoutFlag()`,\n :py:meth:`layoutFlags()`\n """\n self.__data.layoutFlags = flags
\n\n\n
\n[docs]\n def layoutFlags(self):\n """\n :return: Layout flags\n\n .. seealso::\n\n :py:meth:`setLayoutFlags()`, :py:meth:`setLayoutFlag()`,\n :py:meth:`testLayoutFlag()`\n """\n return self.__data.layoutFlags
\n\n\n
\n[docs]\n def renderDocument(\n self, plot, filename, sizeMM=(300, 200), resolution=85, format_=None\n ):\n """\n Render a plot to a file\n\n The format of the document will be auto-detected from the\n suffix of the file name.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param str fileName: Path of the file, where the document will be stored\n :param QSizeF sizeMM: Size for the document in millimeters\n :param int resolution: Resolution in dots per Inch (dpi)\n """\n if isinstance(sizeMM, tuple):\n sizeMM = QSizeF(*sizeMM)\n if format_ is None:\n ext = osp.splitext(filename)[1]\n if not ext:\n raise TypeError("Unable to determine target format from filename")\n format_ = ext[1:]\n if plot is None or sizeMM.isEmpty() or resolution <= 0:\n return\n title = plot.title().text()\n if not title:\n title = "Plot Document"\n mmToInch = 1.0 / 25.4\n size = sizeMM * mmToInch * resolution\n documentRect = QRectF(0.0, 0.0, size.width(), size.height())\n fmt = format_.lower()\n if fmt in ("pdf", "ps"):\n printer = QPrinter()\n if fmt == "pdf":\n try:\n printer.setOutputFormat(QPrinter.PdfFormat)\n except AttributeError:\n # PyQt6 on Linux\n printer.setPrinterName("")\n else:\n printer.setOutputFormat(QPrinter.PostScriptFormat)\n try:\n printer.setColorMode(QPrinter.Color)\n except AttributeError:\n # PyQt6 on Linux\n pass\n printer.setFullPage(True)\n printer.setPageSize(QPageSize(sizeMM, QPageSize.Millimeter))\n printer.setDocName(title)\n printer.setOutputFileName(filename)\n printer.setResolution(resolution)\n painter = QPainter(printer)\n self.render(plot, painter, documentRect)\n painter.end()\n elif fmt == "svg":\n generator = QSvgGenerator()\n generator.setTitle(title)\n generator.setFileName(filename)\n generator.setResolution(resolution)\n generator.setViewBox(documentRect)\n painter = QPainter(generator)\n self.render(plot, painter, documentRect)\n painter.end()\n elif fmt in QImageWriter.supportedImageFormats():\n imageRect = documentRect.toRect()\n dotsPerMeter = int(round(resolution * mmToInch * 1000.0))\n image = QImage(imageRect.size(), QImage.Format_ARGB32)\n image.setDotsPerMeterX(dotsPerMeter)\n image.setDotsPerMeterY(dotsPerMeter)\n image.fill(QColor(Qt.white).rgb())\n painter = QPainter(image)\n self.render(plot, painter, imageRect)\n painter.end()\n image.save(filename, fmt)\n else:\n raise TypeError("Unsupported file format '%s'" % fmt)
\n\n\n
\n[docs]\n def renderTo(self, plot, dest):\n """\n Render a plot to a file\n\n Supported formats are:\n\n - pdf: Portable Document Format PDF\n - ps: Postcript\n - svg: Scalable Vector Graphics SVG\n - all image formats supported by Qt, see QImageWriter.supportedImageFormats()\n\n Scalable vector graphic formats like PDF or SVG are superior to\n raster graphics formats.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param dest: QPaintDevice, QPrinter or QSvgGenerator instance\n\n .. seealso::\n\n :py:meth:`render()`,\n :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()`\n """\n if isinstance(dest, QPaintDevice):\n w = dest.width()\n h = dest.height()\n rect = QRectF(0, 0, w, h)\n elif isinstance(dest, QPrinter):\n w = dest.width()\n h = dest.height()\n rect = QRectF(0, 0, w, h)\n aspect = rect.width() / rect.height()\n if aspect < 1.0:\n rect.setHeight(aspect * rect.width())\n elif isinstance(dest, QSvgGenerator):\n rect = dest.viewBoxF()\n if rect.isEmpty():\n rect.setRect(0, 0, dest.width(), dest.height())\n if rect.isEmpty():\n rect.setRect(0, 0, 800, 600)\n else:\n raise TypeError("Unsupported destination type %s" % type(dest))\n p = QPainter(dest)\n self.render(plot, p, rect)
\n\n\n
\n[docs]\n def render(self, plot, painter, plotRect):\n """\n Paint the contents of a QwtPlot instance into a given rectangle.\n\n :param qwt.plot.QwtPlot plot: Plot to be rendered\n :param QPainter painter: Painter\n :param str format: Format for the document\n :param QRectF plotRect: Bounding rectangle\n\n .. seealso::\n\n :py:meth:`renderDocument()`, :py:meth:`renderTo()`,\n :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()`\n """\n if (\n painter == 0\n or not painter.isActive()\n or not plotRect.isValid()\n or plot.size().isNull()\n ):\n return\n if not self.__data.discardFlags & self.DiscardBackground:\n QwtPainter.drawBackground(painter, plotRect, plot)\n\n # The layout engine uses the same methods as they are used\n # by the Qt layout system. Therefore we need to calculate the\n # layout in screen coordinates and paint with a scaled painter.\n transform = QTransform()\n transform.scale(\n float(painter.device().logicalDpiX()) / plot.logicalDpiX(),\n float(painter.device().logicalDpiY()) / plot.logicalDpiY(),\n )\n\n invtrans, _ok = transform.inverted()\n layoutRect = invtrans.mapRect(plotRect)\n if not (self.__data.discardFlags & self.DiscardBackground):\n mg = plot.contentsMargins()\n layoutRect.adjust(mg.left(), mg.top(), -mg.right(), -mg.bottom())\n\n layout = plot.plotLayout()\n baseLineDists = canvasMargins = [None] * len(QwtPlot.AXES)\n\n for axisId in QwtPlot.AXES:\n canvasMargins[axisId] = layout.canvasMargin(axisId)\n if self.__data.layoutFlags & self.FrameWithScales:\n scaleWidget = plot.axisWidget(axisId)\n if scaleWidget:\n mgn = scaleWidget.contentsMargins()\n baseLineDists[axisId] = max(\n [mgn.left(), mgn.top(), mgn.right(), mgn.bottom()]\n )\n scaleWidget.setMargin(0)\n if not plot.axisEnabled(axisId):\n # When we have a scale the frame is painted on\n # the position of the backbone - otherwise we\n # need to introduce a margin around the canvas\n if axisId == QwtPlot.yLeft:\n layoutRect.adjust(1, 0, 0, 0)\n elif axisId == QwtPlot.yRight:\n layoutRect.adjust(0, 0, -1, 0)\n elif axisId == QwtPlot.xTop:\n layoutRect.adjust(0, 1, 0, 0)\n elif axisId == QwtPlot.xBottom:\n layoutRect.adjust(0, 0, 0, -1)\n\n # Calculate the layout for the document.\n layoutOptions = QwtPlotLayout.IgnoreScrollbars\n\n if (\n self.__data.layoutFlags & self.FrameWithScales\n or self.__data.discardFlags & self.DiscardCanvasFrame\n ):\n layoutOptions |= QwtPlotLayout.IgnoreFrames\n\n if self.__data.discardFlags & self.DiscardLegend:\n layoutOptions |= QwtPlotLayout.IgnoreLegend\n if self.__data.discardFlags & self.DiscardTitle:\n layoutOptions |= QwtPlotLayout.IgnoreTitle\n if self.__data.discardFlags & self.DiscardFooter:\n layoutOptions |= QwtPlotLayout.IgnoreFooter\n\n layout.activate(plot, layoutRect, layoutOptions)\n\n maps = self.buildCanvasMaps(plot, layout.canvasRect())\n if self.updateCanvasMargins(plot, layout.canvasRect(), maps):\n # recalculate maps and layout, when the margins\n # have been changed\n layout.activate(plot, layoutRect, layoutOptions)\n maps = self.buildCanvasMaps(plot, layout.canvasRect())\n\n painter.save()\n painter.setWorldTransform(transform, True)\n\n self.renderCanvas(plot, painter, layout.canvasRect(), maps)\n\n if (\n not self.__data.discardFlags & self.DiscardTitle\n ) and plot.titleLabel().text():\n self.renderTitle(plot, painter, layout.titleRect())\n\n if (\n not self.__data.discardFlags & self.DiscardFooter\n ) and plot.titleLabel().text():\n self.renderFooter(plot, painter, layout.footerRect())\n\n if (\n not self.__data.discardFlags & self.DiscardLegend\n ) and plot.titleLabel().text():\n self.renderLegend(plot, painter, layout.legendRect())\n\n for axisId in QwtPlot.AXES:\n scaleWidget = plot.axisWidget(axisId)\n if scaleWidget:\n mgn = scaleWidget.contentsMargins()\n baseDist = max([mgn.left(), mgn.top(), mgn.right(), mgn.bottom()])\n startDist, endDist = scaleWidget.getBorderDistHint()\n self.renderScale(\n plot,\n painter,\n axisId,\n startDist,\n endDist,\n baseDist,\n layout.scaleRect(axisId),\n )\n\n painter.restore()\n\n for axisId in QwtPlot.AXES:\n if self.__data.layoutFlags & self.FrameWithScales:\n scaleWidget = plot.axisWidget(axisId)\n if scaleWidget:\n scaleWidget.setMargin(baseLineDists[axisId])\n layout.setCanvasMargin(canvasMargins[axisId])\n\n layout.invalidate()
\n\n\n
\n[docs]\n def renderTitle(self, plot, painter, rect):\n """\n Render the title into a given rectangle.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param QPainter painter: Painter\n :param QRectF rect: Bounding rectangle\n """\n painter.setFont(plot.titleLabel().font())\n color = plot.titleLabel().palette().color(QPalette.Active, QPalette.Text)\n painter.setPen(color)\n plot.titleLabel().text().draw(painter, rect)
\n\n\n
\n[docs]\n def renderFooter(self, plot, painter, rect):\n """\n Render the footer into a given rectangle.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param QPainter painter: Painter\n :param QRectF rect: Bounding rectangle\n """\n painter.setFont(plot.footerLabel().font())\n color = plot.footerLabel().palette().color(QPalette.Active, QPalette.Text)\n painter.setPen(color)\n plot.footerLabel().text().draw(painter, rect)
\n\n\n
\n[docs]\n def renderLegend(self, plot, painter, rect):\n """\n Render the legend into a given rectangle.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param QPainter painter: Painter\n :param QRectF rect: Bounding rectangle\n """\n if plot.legend():\n fillBackground = not self.__data.discardFlags & self.DiscardBackground\n plot.legend().renderLegend(painter, rect, fillBackground)
\n\n\n
\n[docs]\n def renderScale(self, plot, painter, axisId, startDist, endDist, baseDist, rect):\n """\n Paint a scale into a given rectangle.\n Paint the scale into a given rectangle.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param QPainter painter: Painter\n :param int axisId: Axis\n :param int startDist: Start border distance\n :param int endDist: End border distance\n :param int baseDist: Base distance\n :param QRectF rect: Bounding rectangle\n """\n if not plot.axisEnabled(axisId):\n return\n scaleWidget = plot.axisWidget(axisId)\n if scaleWidget.isColorBarEnabled() and scaleWidget.colorBarWidth() > 0:\n scaleWidget.drawColorBar(painter, scaleWidget.colorBarRect(rect))\n baseDist += scaleWidget.colorBarWidth() + scaleWidget.spacing()\n painter.save()\n if axisId == QwtPlot.yLeft:\n x = rect.right() - 1.0 - baseDist\n y = rect.y() + startDist\n w = rect.height() - startDist - endDist\n align = QwtScaleDraw.LeftScale\n elif axisId == QwtPlot.yRight:\n x = rect.left() + baseDist\n y = rect.y() + startDist\n w = rect.height() - startDist - endDist\n align = QwtScaleDraw.RightScale\n elif axisId == QwtPlot.xTop:\n x = rect.left() + startDist\n y = rect.bottom() - 1.0 - baseDist\n w = rect.width() - startDist - endDist\n align = QwtScaleDraw.TopScale\n else: # QwtPlot.xBottom\n x = rect.left() + startDist\n y = rect.top() + baseDist\n w = rect.width() - startDist - endDist\n align = QwtScaleDraw.BottomScale\n\n scaleWidget.drawTitle(painter, align, rect)\n painter.setFont(scaleWidget.font())\n sd = scaleWidget.scaleDraw()\n sdPos = sd.pos()\n sdLength = sd.length()\n sd.move(x, y)\n sd.setLength(w)\n palette = scaleWidget.palette()\n palette.setCurrentColorGroup(QPalette.Active)\n sd.draw(painter, palette)\n sd.move(sdPos)\n sd.setLength(sdLength)\n painter.restore()
\n\n\n
\n[docs]\n def renderCanvas(self, plot, painter, canvasRect, maps):\n """\n Render the canvas into a given rectangle.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param QPainter painter: Painter\n :param QRectF rect: Bounding rectangle\n :param qwt.scale_map.QwtScaleMap maps: mapping between plot and paint device coordinates\n """\n canvas = plot.canvas()\n r = canvasRect.adjusted(0.0, 0.0, -1.0, 1.0)\n if self.__data.layoutFlags & self.FrameWithScales:\n painter.save()\n r.adjust(-1.0, -1.0, 1.0, 1.0)\n painter.setPen(QPen(Qt.black))\n if not (self.__data.discardFlags & self.DiscardCanvasBackground):\n bgBrush = canvas.palette().brush(plot.backgroundRole())\n painter.setBrush(bgBrush)\n painter.drawRect(r)\n painter.restore()\n painter.save()\n painter.setClipRect(canvasRect)\n plot.drawItems(painter, canvasRect, maps)\n painter.restore()\n elif canvas.testAttribute(Qt.WA_StyledBackground):\n clipPath = QPainterPath()\n painter.save()\n if not self.__data.discardFlags & self.DiscardCanvasBackground:\n QwtPainter.drawBackground(painter, r, canvas)\n clipPath = qwtCanvasClip(canvas, canvasRect)\n painter.restore()\n painter.save()\n if clipPath.isEmpty():\n painter.setClipRect(canvasRect)\n else:\n painter.setClipPath(clipPath)\n plot.drawItems(painter, canvasRect, maps)\n painter.restore()\n else:\n clipPath = QPainterPath()\n frameWidth = 0\n if not self.__data.discardFlags & self.DiscardCanvasFrame:\n frameWidth = canvas.frameWidth()\n clipPath = qwtCanvasClip(canvas, canvasRect)\n innerRect = canvasRect.adjusted(\n frameWidth, frameWidth, -frameWidth, -frameWidth\n )\n painter.save()\n if clipPath.isEmpty():\n painter.setClipRect(innerRect)\n else:\n painter.setClipPath(clipPath)\n if not self.__data.discardFlags & self.DiscardCanvasBackground:\n QwtPainter.drawBackground(painter, innerRect, canvas)\n plot.drawItems(painter, innerRect, maps)\n painter.restore()\n if frameWidth > 0:\n painter.save()\n frameStyle = canvas.frameShadow() | canvas.frameShape()\n radius = canvas.borderRadius()\n if radius > 0.0:\n QwtPainter.drawRoundedFrame(\n painter,\n canvasRect,\n radius,\n radius,\n canvas.palette(),\n frameWidth,\n frameStyle,\n )\n else:\n midLineWidth = canvas.midLineWidth()\n QwtPainter.drawFrame(\n painter,\n canvasRect,\n canvas.palette(),\n canvas.foregroundRole(),\n frameWidth,\n midLineWidth,\n frameStyle,\n )\n painter.restore()
\n\n\n
\n[docs]\n def buildCanvasMaps(self, plot, canvasRect):\n """\n Calculated the scale maps for rendering the canvas\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param QRectF canvasRect: Target rectangle\n :return: Calculated scale maps\n """\n maps = []\n for axisId in QwtPlot.AXES:\n map_ = QwtScaleMap()\n map_.setTransformation(plot.axisScaleEngine(axisId).transformation())\n sd = plot.axisScaleDiv(axisId)\n map_.setScaleInterval(sd.lowerBound(), sd.upperBound())\n if plot.axisEnabled(axisId):\n s = plot.axisWidget(axisId)\n scaleRect = plot.plotLayout().scaleRect(axisId)\n if axisId in (QwtPlot.xTop, QwtPlot.xBottom):\n from_ = scaleRect.left() + s.startBorderDist()\n to = scaleRect.right() - s.endBorderDist()\n else:\n from_ = scaleRect.bottom() - s.endBorderDist()\n to = scaleRect.top() + s.startBorderDist()\n else:\n margin = 0\n if not plot.plotLayout().alignCanvasToScale(axisId):\n margin = plot.plotLayout().canvasMargin(axisId)\n if axisId in (QwtPlot.yLeft, QwtPlot.yRight):\n from_ = canvasRect.bottom() - margin\n to = canvasRect.top() + margin\n else:\n from_ = canvasRect.left() + margin\n to = canvasRect.right() - margin\n map_.setPaintInterval(from_, to)\n maps.append(map_)\n return maps
\n\n\n def updateCanvasMargins(self, plot, canvasRect, maps):\n margins = plot.getCanvasMarginsHint(maps, canvasRect)\n marginsChanged = False\n for axisId in QwtPlot.AXES:\n if margins[axisId] >= 0.0:\n m = math.ceil(margins[axisId])\n plot.plotLayout().setCanvasMargin(m, axisId)\n marginsChanged = True\n return marginsChanged\n\n
\n[docs]\n def exportTo(self, plot, documentname, sizeMM=None, resolution=85):\n """\n Execute a file dialog and render the plot to the selected file\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param str documentName: Default document name\n :param QSizeF sizeMM: Size for the document in millimeters\n :param int resolution: Resolution in dots per Inch (dpi)\n :return: True, when exporting was successful\n\n .. seealso::\n\n :py:meth:`renderDocument()`\n """\n if plot is None:\n return\n if sizeMM is None:\n sizeMM = QSizeF(300, 200)\n filename = documentname\n imageFormats = QImageWriter.supportedImageFormats()\n filter_ = [\n "PDF documents (*.pdf)",\n "SVG documents (*.svg)",\n "Postscript documents (*.ps)",\n ]\n if imageFormats:\n imageFilter = "Images"\n imageFilter += " ("\n for idx, fmt in enumerate(imageFormats):\n if idx > 0:\n imageFilter += " "\n imageFilter += "*." + str(fmt)\n imageFilter += ")"\n filter_ += [imageFilter]\n filename, _s = getsavefilename(\n plot,\n "Export File Name",\n filename,\n ";;".join(filter_),\n options=QFileDialog.DontConfirmOverwrite,\n )\n if not filename:\n return False\n self.renderDocument(plot, filename, sizeMM, resolution)\n return True\n return True
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6892e80>, 'js_tag': .js_tag at 0x7fc7d6892ca0>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/plot_renderer', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_renderer', 'current_page_name': '_modules/qwt/plot_renderer', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ca1f80>, 'hasdoc': .hasdoc at 0x7f3d39ca2de0>, 'toctree': . at 0x7f3d39ca2fc0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_renderer', 'body': '

Source code for qwt.plot_renderer

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtPlotRenderer\n---------------\n\n.. autoclass:: QwtPlotRenderer\n   :members:\n"""\n\nimport math\nimport os.path as osp\n\nfrom qtpy.compat import getsavefilename\nfrom qtpy.QtCore import QObject, QRect, QRectF, QSizeF, Qt\nfrom qtpy.QtGui import (\n    QColor,\n    QImage,\n    QImageWriter,\n    QPageSize,\n    QPaintDevice,\n    QPainter,\n    QPainterPath,\n    QPalette,\n    QPen,\n    QTransform,\n)\nfrom qtpy.QtPrintSupport import QPrinter\nfrom qtpy.QtSvg import QSvgGenerator\nfrom qtpy.QtWidgets import QFileDialog\n\nfrom qwt.painter import QwtPainter\nfrom qwt.plot import QwtPlot\nfrom qwt.plot_layout import QwtPlotLayout\nfrom qwt.scale_draw import QwtScaleDraw\nfrom qwt.scale_map import QwtScaleMap\n\n\ndef qwtCanvasClip(canvas, canvasRect):\n    """\n    The clip region is calculated in integers\n    To avoid too much rounding errors better\n    calculate it in target device resolution\n    """\n    x1 = math.ceil(canvasRect.left())\n    x2 = math.floor(canvasRect.right())\n    y1 = math.ceil(canvasRect.top())\n    y2 = math.floor(canvasRect.bottom())\n    r = QRect(x1, y1, x2 - x1 - 1, y2 - y1 - 1)\n    return canvas.borderPath(r)\n\n\nclass QwtPlotRenderer_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.discardFlags = QwtPlotRenderer.DiscardNone\n        self.layoutFlags = QwtPlotRenderer.DefaultLayout\n\n\n
\n[docs]\nclass QwtPlotRenderer(QObject):\n """\n Renderer for exporting a plot to a document, a printer\n or anything else, that is supported by QPainter/QPaintDevice\n\n Discard flags:\n\n * `QwtPlotRenderer.DiscardNone`: Render all components of the plot\n * `QwtPlotRenderer.DiscardBackground`: Don't render the background of the plot\n * `QwtPlotRenderer.DiscardTitle`: Don't render the title of the plot\n * `QwtPlotRenderer.DiscardLegend`: Don't render the legend of the plot\n * `QwtPlotRenderer.DiscardCanvasBackground`: Don't render the background of the canvas\n * `QwtPlotRenderer.DiscardFooter`: Don't render the footer of the plot\n * `QwtPlotRenderer.DiscardCanvasFrame`: Don't render the frame of the canvas\n\n .. note::\n\n The `QwtPlotRenderer.DiscardCanvasFrame` flag has no effect when using\n style sheets, where the frame is part of the background\n\n Layout flags:\n\n * `QwtPlotRenderer.DefaultLayout`: Use the default layout as on screen\n * `QwtPlotRenderer.FrameWithScales`: Instead of the scales a box is painted around the plot canvas, where the scale ticks are aligned to.\n """\n\n # enum DiscardFlag\n DiscardNone = 0x00\n DiscardBackground = 0x01\n DiscardTitle = 0x02\n DiscardLegend = 0x04\n DiscardCanvasBackground = 0x08\n DiscardFooter = 0x10\n DiscardCanvasFrame = 0x20\n\n # enum LayoutFlag\n DefaultLayout = 0x00\n FrameWithScales = 0x01\n\n def __init__(self, parent=None):\n QObject.__init__(self, parent)\n self.__data = QwtPlotRenderer_PrivateData()\n\n
\n[docs]\n def setDiscardFlag(self, flag, on=True):\n """\n Change a flag, indicating what to discard from rendering\n\n :param int flag: Flag to change\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`testDiscardFlag()`, :py:meth:`setDiscardFlags()`,\n :py:meth:`discardFlags()`\n """\n if on:\n self.__data.discardFlags |= flag\n else:\n self.__data.discardFlags &= ~flag
\n\n\n
\n[docs]\n def testDiscardFlag(self, flag):\n """\n :param int flag: Flag to be tested\n :return: True, if flag is enabled.\n\n .. seealso::\n\n :py:meth:`setDiscardFlag()`, :py:meth:`setDiscardFlags()`,\n :py:meth:`discardFlags()`\n """\n return self.__data.discardFlags & flag
\n\n\n
\n[docs]\n def setDiscardFlags(self, flags):\n """\n Set the flags, indicating what to discard from rendering\n\n :param int flags: Flags\n\n .. seealso::\n\n :py:meth:`testDiscardFlag()`, :py:meth:`setDiscardFlag()`,\n :py:meth:`discardFlags()`\n """\n self.__data.discardFlags = flags
\n\n\n
\n[docs]\n def discardFlags(self):\n """\n :return: Flags, indicating what to discard from rendering\n\n .. seealso::\n\n :py:meth:`setDiscardFlag()`, :py:meth:`setDiscardFlags()`,\n :py:meth:`testDiscardFlag()`\n """\n return self.__data.discardFlags
\n\n\n
\n[docs]\n def setLayoutFlag(self, flag, on=True):\n """\n Change a layout flag\n\n :param int flag: Flag to change\n\n .. seealso::\n\n :py:meth:`testLayoutFlag()`, :py:meth:`setLayoutFlags()`,\n :py:meth:`layoutFlags()`\n """\n if on:\n self.__data.layoutFlags |= flag\n else:\n self.__data.layoutFlags &= ~flag
\n\n\n
\n[docs]\n def testLayoutFlag(self, flag):\n """\n :param int flag: Flag to be tested\n :return: True, if flag is enabled.\n\n .. seealso::\n\n :py:meth:`setLayoutFlag()`, :py:meth:`setLayoutFlags()`,\n :py:meth:`layoutFlags()`\n """\n return self.__data.layoutFlags & flag
\n\n\n
\n[docs]\n def setLayoutFlags(self, flags):\n """\n Set the layout flags\n\n :param int flags: Flags\n\n .. seealso::\n\n :py:meth:`setLayoutFlag()`, :py:meth:`testLayoutFlag()`,\n :py:meth:`layoutFlags()`\n """\n self.__data.layoutFlags = flags
\n\n\n
\n[docs]\n def layoutFlags(self):\n """\n :return: Layout flags\n\n .. seealso::\n\n :py:meth:`setLayoutFlags()`, :py:meth:`setLayoutFlag()`,\n :py:meth:`testLayoutFlag()`\n """\n return self.__data.layoutFlags
\n\n\n
\n[docs]\n def renderDocument(\n self, plot, filename, sizeMM=(300, 200), resolution=85, format_=None\n ):\n """\n Render a plot to a file\n\n The format of the document will be auto-detected from the\n suffix of the file name.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param str fileName: Path of the file, where the document will be stored\n :param QSizeF sizeMM: Size for the document in millimeters\n :param int resolution: Resolution in dots per Inch (dpi)\n """\n if isinstance(sizeMM, tuple):\n sizeMM = QSizeF(*sizeMM)\n if format_ is None:\n ext = osp.splitext(filename)[1]\n if not ext:\n raise TypeError("Unable to determine target format from filename")\n format_ = ext[1:]\n if plot is None or sizeMM.isEmpty() or resolution <= 0:\n return\n title = plot.title().text()\n if not title:\n title = "Plot Document"\n mmToInch = 1.0 / 25.4\n size = sizeMM * mmToInch * resolution\n documentRect = QRectF(0.0, 0.0, size.width(), size.height())\n fmt = format_.lower()\n if fmt in ("pdf", "ps"):\n printer = QPrinter()\n if fmt == "pdf":\n try:\n printer.setOutputFormat(QPrinter.PdfFormat)\n except AttributeError:\n # PyQt6 on Linux\n printer.setPrinterName("")\n else:\n printer.setOutputFormat(QPrinter.PostScriptFormat)\n try:\n printer.setColorMode(QPrinter.Color)\n except AttributeError:\n # PyQt6 on Linux\n pass\n printer.setFullPage(True)\n printer.setPageSize(QPageSize(sizeMM, QPageSize.Millimeter))\n printer.setDocName(title)\n printer.setOutputFileName(filename)\n printer.setResolution(resolution)\n painter = QPainter(printer)\n self.render(plot, painter, documentRect)\n painter.end()\n elif fmt == "svg":\n generator = QSvgGenerator()\n generator.setTitle(title)\n generator.setFileName(filename)\n generator.setResolution(resolution)\n generator.setViewBox(documentRect)\n painter = QPainter(generator)\n self.render(plot, painter, documentRect)\n painter.end()\n elif fmt in QImageWriter.supportedImageFormats():\n imageRect = documentRect.toRect()\n dotsPerMeter = int(round(resolution * mmToInch * 1000.0))\n image = QImage(imageRect.size(), QImage.Format_ARGB32)\n image.setDotsPerMeterX(dotsPerMeter)\n image.setDotsPerMeterY(dotsPerMeter)\n image.fill(QColor(Qt.white).rgb())\n painter = QPainter(image)\n self.render(plot, painter, imageRect)\n painter.end()\n image.save(filename, fmt)\n else:\n raise TypeError("Unsupported file format '%s'" % fmt)
\n\n\n
\n[docs]\n def renderTo(self, plot, dest):\n """\n Render a plot to a file\n\n Supported formats are:\n\n - pdf: Portable Document Format PDF\n - ps: Postcript\n - svg: Scalable Vector Graphics SVG\n - all image formats supported by Qt, see QImageWriter.supportedImageFormats()\n\n Scalable vector graphic formats like PDF or SVG are superior to\n raster graphics formats.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param dest: QPaintDevice, QPrinter or QSvgGenerator instance\n\n .. seealso::\n\n :py:meth:`render()`,\n :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()`\n """\n if isinstance(dest, QPaintDevice):\n w = dest.width()\n h = dest.height()\n rect = QRectF(0, 0, w, h)\n elif isinstance(dest, QPrinter):\n w = dest.width()\n h = dest.height()\n rect = QRectF(0, 0, w, h)\n aspect = rect.width() / rect.height()\n if aspect < 1.0:\n rect.setHeight(aspect * rect.width())\n elif isinstance(dest, QSvgGenerator):\n rect = dest.viewBoxF()\n if rect.isEmpty():\n rect.setRect(0, 0, dest.width(), dest.height())\n if rect.isEmpty():\n rect.setRect(0, 0, 800, 600)\n else:\n raise TypeError("Unsupported destination type %s" % type(dest))\n p = QPainter(dest)\n self.render(plot, p, rect)
\n\n\n
\n[docs]\n def render(self, plot, painter, plotRect):\n """\n Paint the contents of a QwtPlot instance into a given rectangle.\n\n :param qwt.plot.QwtPlot plot: Plot to be rendered\n :param QPainter painter: Painter\n :param str format: Format for the document\n :param QRectF plotRect: Bounding rectangle\n\n .. seealso::\n\n :py:meth:`renderDocument()`, :py:meth:`renderTo()`,\n :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()`\n """\n if (\n painter == 0\n or not painter.isActive()\n or not plotRect.isValid()\n or plot.size().isNull()\n ):\n return\n if not self.__data.discardFlags & self.DiscardBackground:\n QwtPainter.drawBackground(painter, plotRect, plot)\n\n # The layout engine uses the same methods as they are used\n # by the Qt layout system. Therefore we need to calculate the\n # layout in screen coordinates and paint with a scaled painter.\n transform = QTransform()\n transform.scale(\n float(painter.device().logicalDpiX()) / plot.logicalDpiX(),\n float(painter.device().logicalDpiY()) / plot.logicalDpiY(),\n )\n\n invtrans, _ok = transform.inverted()\n layoutRect = invtrans.mapRect(plotRect)\n if not (self.__data.discardFlags & self.DiscardBackground):\n mg = plot.contentsMargins()\n layoutRect.adjust(mg.left(), mg.top(), -mg.right(), -mg.bottom())\n\n layout = plot.plotLayout()\n baseLineDists = canvasMargins = [None] * len(QwtPlot.AXES)\n\n for axisId in QwtPlot.AXES:\n canvasMargins[axisId] = layout.canvasMargin(axisId)\n if self.__data.layoutFlags & self.FrameWithScales:\n scaleWidget = plot.axisWidget(axisId)\n if scaleWidget:\n mgn = scaleWidget.contentsMargins()\n baseLineDists[axisId] = max(\n [mgn.left(), mgn.top(), mgn.right(), mgn.bottom()]\n )\n scaleWidget.setMargin(0)\n if not plot.axisEnabled(axisId):\n # When we have a scale the frame is painted on\n # the position of the backbone - otherwise we\n # need to introduce a margin around the canvas\n if axisId == QwtPlot.yLeft:\n layoutRect.adjust(1, 0, 0, 0)\n elif axisId == QwtPlot.yRight:\n layoutRect.adjust(0, 0, -1, 0)\n elif axisId == QwtPlot.xTop:\n layoutRect.adjust(0, 1, 0, 0)\n elif axisId == QwtPlot.xBottom:\n layoutRect.adjust(0, 0, 0, -1)\n\n # Calculate the layout for the document.\n layoutOptions = QwtPlotLayout.IgnoreScrollbars\n\n if (\n self.__data.layoutFlags & self.FrameWithScales\n or self.__data.discardFlags & self.DiscardCanvasFrame\n ):\n layoutOptions |= QwtPlotLayout.IgnoreFrames\n\n if self.__data.discardFlags & self.DiscardLegend:\n layoutOptions |= QwtPlotLayout.IgnoreLegend\n if self.__data.discardFlags & self.DiscardTitle:\n layoutOptions |= QwtPlotLayout.IgnoreTitle\n if self.__data.discardFlags & self.DiscardFooter:\n layoutOptions |= QwtPlotLayout.IgnoreFooter\n\n layout.activate(plot, layoutRect, layoutOptions)\n\n maps = self.buildCanvasMaps(plot, layout.canvasRect())\n if self.updateCanvasMargins(plot, layout.canvasRect(), maps):\n # recalculate maps and layout, when the margins\n # have been changed\n layout.activate(plot, layoutRect, layoutOptions)\n maps = self.buildCanvasMaps(plot, layout.canvasRect())\n\n painter.save()\n painter.setWorldTransform(transform, True)\n\n self.renderCanvas(plot, painter, layout.canvasRect(), maps)\n\n if (\n not self.__data.discardFlags & self.DiscardTitle\n ) and plot.titleLabel().text():\n self.renderTitle(plot, painter, layout.titleRect())\n\n if (\n not self.__data.discardFlags & self.DiscardFooter\n ) and plot.titleLabel().text():\n self.renderFooter(plot, painter, layout.footerRect())\n\n if (\n not self.__data.discardFlags & self.DiscardLegend\n ) and plot.titleLabel().text():\n self.renderLegend(plot, painter, layout.legendRect())\n\n for axisId in QwtPlot.AXES:\n scaleWidget = plot.axisWidget(axisId)\n if scaleWidget:\n mgn = scaleWidget.contentsMargins()\n baseDist = max([mgn.left(), mgn.top(), mgn.right(), mgn.bottom()])\n startDist, endDist = scaleWidget.getBorderDistHint()\n self.renderScale(\n plot,\n painter,\n axisId,\n startDist,\n endDist,\n baseDist,\n layout.scaleRect(axisId),\n )\n\n painter.restore()\n\n for axisId in QwtPlot.AXES:\n if self.__data.layoutFlags & self.FrameWithScales:\n scaleWidget = plot.axisWidget(axisId)\n if scaleWidget:\n scaleWidget.setMargin(baseLineDists[axisId])\n layout.setCanvasMargin(canvasMargins[axisId])\n\n layout.invalidate()
\n\n\n
\n[docs]\n def renderTitle(self, plot, painter, rect):\n """\n Render the title into a given rectangle.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param QPainter painter: Painter\n :param QRectF rect: Bounding rectangle\n """\n painter.setFont(plot.titleLabel().font())\n color = plot.titleLabel().palette().color(QPalette.Active, QPalette.Text)\n painter.setPen(color)\n plot.titleLabel().text().draw(painter, rect)
\n\n\n
\n[docs]\n def renderFooter(self, plot, painter, rect):\n """\n Render the footer into a given rectangle.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param QPainter painter: Painter\n :param QRectF rect: Bounding rectangle\n """\n painter.setFont(plot.footerLabel().font())\n color = plot.footerLabel().palette().color(QPalette.Active, QPalette.Text)\n painter.setPen(color)\n plot.footerLabel().text().draw(painter, rect)
\n\n\n
\n[docs]\n def renderLegend(self, plot, painter, rect):\n """\n Render the legend into a given rectangle.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param QPainter painter: Painter\n :param QRectF rect: Bounding rectangle\n """\n if plot.legend():\n fillBackground = not self.__data.discardFlags & self.DiscardBackground\n plot.legend().renderLegend(painter, rect, fillBackground)
\n\n\n
\n[docs]\n def renderScale(self, plot, painter, axisId, startDist, endDist, baseDist, rect):\n """\n Paint a scale into a given rectangle.\n Paint the scale into a given rectangle.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param QPainter painter: Painter\n :param int axisId: Axis\n :param int startDist: Start border distance\n :param int endDist: End border distance\n :param int baseDist: Base distance\n :param QRectF rect: Bounding rectangle\n """\n if not plot.axisEnabled(axisId):\n return\n scaleWidget = plot.axisWidget(axisId)\n if scaleWidget.isColorBarEnabled() and scaleWidget.colorBarWidth() > 0:\n scaleWidget.drawColorBar(painter, scaleWidget.colorBarRect(rect))\n baseDist += scaleWidget.colorBarWidth() + scaleWidget.spacing()\n painter.save()\n if axisId == QwtPlot.yLeft:\n x = rect.right() - 1.0 - baseDist\n y = rect.y() + startDist\n w = rect.height() - startDist - endDist\n align = QwtScaleDraw.LeftScale\n elif axisId == QwtPlot.yRight:\n x = rect.left() + baseDist\n y = rect.y() + startDist\n w = rect.height() - startDist - endDist\n align = QwtScaleDraw.RightScale\n elif axisId == QwtPlot.xTop:\n x = rect.left() + startDist\n y = rect.bottom() - 1.0 - baseDist\n w = rect.width() - startDist - endDist\n align = QwtScaleDraw.TopScale\n else: # QwtPlot.xBottom\n x = rect.left() + startDist\n y = rect.top() + baseDist\n w = rect.width() - startDist - endDist\n align = QwtScaleDraw.BottomScale\n\n scaleWidget.drawTitle(painter, align, rect)\n painter.setFont(scaleWidget.font())\n sd = scaleWidget.scaleDraw()\n sdPos = sd.pos()\n sdLength = sd.length()\n sd.move(x, y)\n sd.setLength(w)\n palette = scaleWidget.palette()\n palette.setCurrentColorGroup(QPalette.Active)\n sd.draw(painter, palette)\n sd.move(sdPos)\n sd.setLength(sdLength)\n painter.restore()
\n\n\n
\n[docs]\n def renderCanvas(self, plot, painter, canvasRect, maps):\n """\n Render the canvas into a given rectangle.\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param QPainter painter: Painter\n :param QRectF rect: Bounding rectangle\n :param qwt.scale_map.QwtScaleMap maps: mapping between plot and paint device coordinates\n """\n canvas = plot.canvas()\n r = canvasRect.adjusted(0.0, 0.0, -1.0, 1.0)\n if self.__data.layoutFlags & self.FrameWithScales:\n painter.save()\n r.adjust(-1.0, -1.0, 1.0, 1.0)\n painter.setPen(QPen(Qt.black))\n if not (self.__data.discardFlags & self.DiscardCanvasBackground):\n bgBrush = canvas.palette().brush(plot.backgroundRole())\n painter.setBrush(bgBrush)\n painter.drawRect(r)\n painter.restore()\n painter.save()\n painter.setClipRect(canvasRect)\n plot.drawItems(painter, canvasRect, maps)\n painter.restore()\n elif canvas.testAttribute(Qt.WA_StyledBackground):\n clipPath = QPainterPath()\n painter.save()\n if not self.__data.discardFlags & self.DiscardCanvasBackground:\n QwtPainter.drawBackground(painter, r, canvas)\n clipPath = qwtCanvasClip(canvas, canvasRect)\n painter.restore()\n painter.save()\n if clipPath.isEmpty():\n painter.setClipRect(canvasRect)\n else:\n painter.setClipPath(clipPath)\n plot.drawItems(painter, canvasRect, maps)\n painter.restore()\n else:\n clipPath = QPainterPath()\n frameWidth = 0\n if not self.__data.discardFlags & self.DiscardCanvasFrame:\n frameWidth = canvas.frameWidth()\n clipPath = qwtCanvasClip(canvas, canvasRect)\n innerRect = canvasRect.adjusted(\n frameWidth, frameWidth, -frameWidth, -frameWidth\n )\n painter.save()\n if clipPath.isEmpty():\n painter.setClipRect(innerRect)\n else:\n painter.setClipPath(clipPath)\n if not self.__data.discardFlags & self.DiscardCanvasBackground:\n QwtPainter.drawBackground(painter, innerRect, canvas)\n plot.drawItems(painter, innerRect, maps)\n painter.restore()\n if frameWidth > 0:\n painter.save()\n frameStyle = canvas.frameShadow() | canvas.frameShape()\n radius = canvas.borderRadius()\n if radius > 0.0:\n QwtPainter.drawRoundedFrame(\n painter,\n canvasRect,\n radius,\n radius,\n canvas.palette(),\n frameWidth,\n frameStyle,\n )\n else:\n midLineWidth = canvas.midLineWidth()\n QwtPainter.drawFrame(\n painter,\n canvasRect,\n canvas.palette(),\n canvas.foregroundRole(),\n frameWidth,\n midLineWidth,\n frameStyle,\n )\n painter.restore()
\n\n\n
\n[docs]\n def buildCanvasMaps(self, plot, canvasRect):\n """\n Calculated the scale maps for rendering the canvas\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param QRectF canvasRect: Target rectangle\n :return: Calculated scale maps\n """\n maps = []\n for axisId in QwtPlot.AXES:\n map_ = QwtScaleMap()\n map_.setTransformation(plot.axisScaleEngine(axisId).transformation())\n sd = plot.axisScaleDiv(axisId)\n map_.setScaleInterval(sd.lowerBound(), sd.upperBound())\n if plot.axisEnabled(axisId):\n s = plot.axisWidget(axisId)\n scaleRect = plot.plotLayout().scaleRect(axisId)\n if axisId in (QwtPlot.xTop, QwtPlot.xBottom):\n from_ = scaleRect.left() + s.startBorderDist()\n to = scaleRect.right() - s.endBorderDist()\n else:\n from_ = scaleRect.bottom() - s.endBorderDist()\n to = scaleRect.top() + s.startBorderDist()\n else:\n margin = 0\n if not plot.plotLayout().alignCanvasToScale(axisId):\n margin = plot.plotLayout().canvasMargin(axisId)\n if axisId in (QwtPlot.yLeft, QwtPlot.yRight):\n from_ = canvasRect.bottom() - margin\n to = canvasRect.top() + margin\n else:\n from_ = canvasRect.left() + margin\n to = canvasRect.right() - margin\n map_.setPaintInterval(from_, to)\n maps.append(map_)\n return maps
\n\n\n def updateCanvasMargins(self, plot, canvasRect, maps):\n margins = plot.getCanvasMarginsHint(maps, canvasRect)\n marginsChanged = False\n for axisId in QwtPlot.AXES:\n if margins[axisId] >= 0.0:\n m = math.ceil(margins[axisId])\n plot.plotLayout().setCanvasMargin(m, axisId)\n marginsChanged = True\n return marginsChanged\n\n
\n[docs]\n def exportTo(self, plot, documentname, sizeMM=None, resolution=85):\n """\n Execute a file dialog and render the plot to the selected file\n\n :param qwt.plot.QwtPlot plot: Plot widget\n :param str documentName: Default document name\n :param QSizeF sizeMM: Size for the document in millimeters\n :param int resolution: Resolution in dots per Inch (dpi)\n :return: True, when exporting was successful\n\n .. seealso::\n\n :py:meth:`renderDocument()`\n """\n if plot is None:\n return\n if sizeMM is None:\n sizeMM = QSizeF(300, 200)\n filename = documentname\n imageFormats = QImageWriter.supportedImageFormats()\n filter_ = [\n "PDF documents (*.pdf)",\n "SVG documents (*.svg)",\n "Postscript documents (*.ps)",\n ]\n if imageFormats:\n imageFilter = "Images"\n imageFilter += " ("\n for idx, fmt in enumerate(imageFormats):\n if idx > 0:\n imageFilter += " "\n imageFilter += "*." + str(fmt)\n imageFilter += ")"\n filter_ += [imageFilter]\n filename, _s = getsavefilename(\n plot,\n "Export File Name",\n filename,\n ";;".join(filter_),\n options=QFileDialog.DontConfirmOverwrite,\n )\n if not filename:\n return False\n self.renderDocument(plot, filename, sizeMM, resolution)\n return True\n return True
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39ca2e80>, 'js_tag': .js_tag at 0x7f3d39ca2ca0>}, None) highlighting module code... [ 62%] qwt.plot_series [app] emitting event: 'viewcode-find-source'('qwt.plot_series',) -[app] emitting event: 'html-page-context'('_modules/qwt/plot_series', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_series', 'current_page_name': '_modules/qwt/plot_series', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6893d80>, 'hasdoc': .hasdoc at 0x7fc7d6893e20>, 'toctree': . at 0x7fc7d6893c40>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_series', 'body': '

Source code for qwt.plot_series

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nPlotting series item\n--------------------\n\nQwtPlotSeriesItem\n~~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtPlotSeriesItem\n   :members:\n\nQwtSeriesData\n~~~~~~~~~~~~~\n\n.. autoclass:: QwtSeriesData\n   :members:\n\nQwtPointArrayData\n~~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtPointArrayData\n   :members:\n\nQwtSeriesStore\n~~~~~~~~~~~~~~\n\n.. autoclass:: QwtSeriesStore\n   :members:\n"""\n\nimport numpy as np\nfrom qtpy.QtCore import QPointF, QRectF, Qt\n\nfrom qwt.plot import QwtPlotItem, QwtPlotItem_PrivateData\nfrom qwt.text import QwtText\n\n\nclass QwtPlotSeriesItem_PrivateData(QwtPlotItem_PrivateData):\n    def __init__(self):\n        QwtPlotItem_PrivateData.__init__(self)\n        self.orientation = Qt.Horizontal\n\n\n
\n[docs]\nclass QwtPlotSeriesItem(QwtPlotItem):\n """\n Base class for plot items representing a series of samples\n """\n\n def __init__(self, title):\n if not isinstance(title, QwtText):\n title = QwtText(title)\n QwtPlotItem.__init__(self, title)\n self.__data = QwtPlotSeriesItem_PrivateData()\n self.setItemInterest(QwtPlotItem.ScaleInterest, True)\n\n
\n[docs]\n def setOrientation(self, orientation):\n """\n Set the orientation of the item. Default is `Qt.Horizontal`.\n\n The `orientation()` might be used in specific way by a plot item.\n F.e. a QwtPlotCurve uses it to identify how to display the curve\n int `QwtPlotCurve.Steps` or `QwtPlotCurve.Sticks` style.\n\n .. seealso::\n\n :py:meth`orientation()`\n """\n if self.__data.orientation != orientation:\n self.__data.orientation = orientation\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def orientation(self):\n """\n :return: Orientation of the plot item\n\n .. seealso::\n\n :py:meth`setOrientation()`\n """\n return self.__data.orientation
\n\n\n
\n[docs]\n def draw(self, painter, xMap, yMap, canvasRect):\n """\n Draw the complete series\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n """\n self.drawSeries(painter, xMap, yMap, canvasRect, 0, -1)
\n\n\n
\n[docs]\n def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to):\n """\n Draw a subset of the samples\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n This method is implemented in `qwt.plot_curve.QwtPlotCurve`\n """\n raise NotImplementedError
\n\n\n
\n[docs]\n def boundingRect(self):\n return self.dataRect() # dataRect method is implemented in QwtSeriesStore
\n\n\n def updateScaleDiv(self, xScaleDiv, yScaleDiv):\n rect = QRectF(\n xScaleDiv.lowerBound(),\n yScaleDiv.lowerBound(),\n xScaleDiv.range(),\n yScaleDiv.range(),\n )\n self.setRectOfInterest(\n rect\n ) # setRectOfInterest method is implemented in QwtSeriesData\n\n def dataChanged(self):\n self.itemChanged()
\n\n\n\n
\n[docs]\nclass QwtSeriesData(object):\n """\n Abstract interface for iterating over samples\n\n `PythonQwt` offers several implementations of the QwtSeriesData API,\n but in situations, where data of an application specific format\n needs to be displayed, without having to copy it, it is recommended\n to implement an individual data access.\n\n A subclass of `QwtSeriesData` must implement:\n\n - size():\n\n Should return number of data points.\n\n - sample()\n\n Should return values x and y values of the sample at specific position\n as QPointF object.\n\n - boundingRect()\n\n Should return the bounding rectangle of the data series.\n It is used for autoscaling and might help certain algorithms for\n displaying the data.\n The member `_boundingRect` is intended for caching the calculated\n rectangle.\n """\n\n def __init__(self):\n self._boundingRect = QRectF(0.0, 0.0, -1.0, -1.0)\n\n
\n[docs]\n def setRectOfInterest(self, rect):\n """\n Set a the "rect of interest"\n\n QwtPlotSeriesItem defines the current area of the plot canvas\n as "rectangle of interest" ( QwtPlotSeriesItem::updateScaleDiv() ).\n It can be used to implement different levels of details.\n\n The default implementation does nothing.\n\n :param QRectF rect: Rectangle of interest\n """\n pass
\n\n\n
\n[docs]\n def size(self):\n """\n :return: Number of samples\n """\n pass
\n\n\n
\n[docs]\n def sample(self, i):\n """\n Return a sample\n\n :param int i: Index\n :return: Sample at position i\n """\n pass
\n\n\n
\n[docs]\n def boundingRect(self):\n """\n Calculate the bounding rect of all samples\n\n The bounding rect is necessary for autoscaling and can be used\n for a couple of painting optimizations.\n\n :return: Bounding rectangle\n """\n pass
\n
\n\n\n\n
\n[docs]\nclass QwtPointArrayData(QwtSeriesData):\n """\n Interface for iterating over two array objects\n\n .. py:class:: QwtCQwtPointArrayDataolorMap(x, y, [size=None])\n\n :param x: Array of x values\n :type x: list or tuple or numpy.array\n :param y: Array of y values\n :type y: list or tuple or numpy.array\n :param int size: Size of the x and y arrays\n :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements\n """\n\n def __init__(self, x=None, y=None, size=None, finite=None):\n QwtSeriesData.__init__(self)\n if x is None and y is not None:\n x = np.arange(len(y))\n elif y is None and x is not None:\n y = x\n x = np.arange(len(y))\n elif x is None and y is None:\n x = np.array([])\n y = np.array([])\n if isinstance(x, (tuple, list)):\n x = np.array(x)\n if isinstance(y, (tuple, list)):\n y = np.array(y)\n if size is not None:\n x = np.resize(x, (size,))\n y = np.resize(y, (size,))\n if len(x) != len(y):\n minlen = min(len(x), len(y))\n x = np.resize(x, (minlen,))\n y = np.resize(y, (minlen,))\n if finite if finite is not None else True:\n indexes = np.logical_and(np.isfinite(x), np.isfinite(y))\n self.__x = x[indexes]\n self.__y = y[indexes]\n else:\n self.__x = x\n self.__y = y\n\n
\n[docs]\n def boundingRect(self):\n """\n Calculate the bounding rectangle\n\n The bounding rectangle is calculated once by iterating over all\n points and is stored for all following requests.\n\n :return: Bounding rectangle\n """\n xmin = self.__x.min()\n xmax = self.__x.max()\n ymin = self.__y.min()\n ymax = self.__y.max()\n return QRectF(xmin, ymin, xmax - xmin, ymax - ymin)
\n\n\n
\n[docs]\n def size(self):\n """\n :return: Size of the data set\n """\n return min([self.__x.size, self.__y.size])
\n\n\n
\n[docs]\n def sample(self, index):\n """\n :param int index: Index\n :return: Sample at position `index`\n """\n return QPointF(self.__x[index], self.__y[index])
\n\n\n
\n[docs]\n def xData(self):\n """\n :return: Array of the x-values\n """\n return self.__x
\n\n\n
\n[docs]\n def yData(self):\n """\n :return: Array of the y-values\n """\n return self.__y
\n
\n\n\n\n
\n[docs]\nclass QwtSeriesStore(object):\n """\n Class storing a `QwtSeriesData` object\n\n `QwtSeriesStore` and `QwtPlotSeriesItem` are intended as base classes for\n all plot items iterating over a series of samples.\n """\n\n def __init__(self):\n self.__series = None\n\n
\n[docs]\n def setData(self, series):\n """\n Assign a series of samples\n\n :param qwt.plot_series.QwtSeriesData series: Data\n\n .. warning::\n\n The item takes ownership of the data object, deleting it\n when its not used anymore.\n """\n if self.__series != series:\n self.__series = series\n self.dataChanged()
\n\n\n def dataChanged(self):\n raise NotImplementedError\n\n
\n[docs]\n def data(self):\n """\n :return: the series data\n """\n return self.__series
\n\n\n
\n[docs]\n def sample(self, index):\n """\n :param int index: Index\n :return: Sample at position index\n """\n if self.__series:\n return self.__series.sample(index)\n else:\n return
\n\n\n
\n[docs]\n def dataSize(self):\n """\n :return: Number of samples of the series\n\n .. seealso::\n\n :py:meth:`setData()`,\n :py:meth:`qwt.plot_series.QwtSeriesData.size()`\n """\n if self.__series is None:\n return 0\n return self.__series.size()
\n\n\n
\n[docs]\n def dataRect(self):\n """\n :return: Bounding rectangle of the series or an invalid rectangle, when no series is stored\n\n .. seealso::\n\n :py:meth:`qwt.plot_series.QwtSeriesData.boundingRect()`\n """\n if self.__series is None or self.dataSize() == 0:\n return QRectF(1.0, 1.0, -2.0, -2.0)\n return self.__series.boundingRect()
\n\n\n
\n[docs]\n def setRectOfInterest(self, rect):\n """\n Set a the "rect of interest" for the series\n\n :param QRectF rect: Rectangle of interest\n\n .. seealso::\n\n :py:meth:`qwt.plot_series.QwtSeriesData.setRectOfInterest()`\n """\n if self.__series:\n self.__series.setRectOfInterest(rect)
\n\n\n
\n[docs]\n def swapData(self, series):\n """\n Replace a series without deleting the previous one\n\n :param qwt.plot_series.QwtSeriesData series: New series\n :return: Previously assigned series\n """\n swappedSeries = self.__series\n self.__series = series\n return swappedSeries
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6892ac0>, 'js_tag': .js_tag at 0x7fc7d6892b60>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/plot_series', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/plot_series', 'current_page_name': '_modules/qwt/plot_series', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ca3d80>, 'hasdoc': .hasdoc at 0x7f3d39ca3e20>, 'toctree': . at 0x7f3d39ca3c40>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.plot_series', 'body': '

Source code for qwt.plot_series

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nPlotting series item\n--------------------\n\nQwtPlotSeriesItem\n~~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtPlotSeriesItem\n   :members:\n\nQwtSeriesData\n~~~~~~~~~~~~~\n\n.. autoclass:: QwtSeriesData\n   :members:\n\nQwtPointArrayData\n~~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtPointArrayData\n   :members:\n\nQwtSeriesStore\n~~~~~~~~~~~~~~\n\n.. autoclass:: QwtSeriesStore\n   :members:\n"""\n\nimport numpy as np\nfrom qtpy.QtCore import QPointF, QRectF, Qt\n\nfrom qwt.plot import QwtPlotItem, QwtPlotItem_PrivateData\nfrom qwt.text import QwtText\n\n\nclass QwtPlotSeriesItem_PrivateData(QwtPlotItem_PrivateData):\n    def __init__(self):\n        QwtPlotItem_PrivateData.__init__(self)\n        self.orientation = Qt.Horizontal\n\n\n
\n[docs]\nclass QwtPlotSeriesItem(QwtPlotItem):\n """\n Base class for plot items representing a series of samples\n """\n\n def __init__(self, title):\n if not isinstance(title, QwtText):\n title = QwtText(title)\n QwtPlotItem.__init__(self, title)\n self.__data = QwtPlotSeriesItem_PrivateData()\n self.setItemInterest(QwtPlotItem.ScaleInterest, True)\n\n
\n[docs]\n def setOrientation(self, orientation):\n """\n Set the orientation of the item. Default is `Qt.Horizontal`.\n\n The `orientation()` might be used in specific way by a plot item.\n F.e. a QwtPlotCurve uses it to identify how to display the curve\n int `QwtPlotCurve.Steps` or `QwtPlotCurve.Sticks` style.\n\n .. seealso::\n\n :py:meth`orientation()`\n """\n if self.__data.orientation != orientation:\n self.__data.orientation = orientation\n self.legendChanged()\n self.itemChanged()
\n\n\n
\n[docs]\n def orientation(self):\n """\n :return: Orientation of the plot item\n\n .. seealso::\n\n :py:meth`setOrientation()`\n """\n return self.__data.orientation
\n\n\n
\n[docs]\n def draw(self, painter, xMap, yMap, canvasRect):\n """\n Draw the complete series\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n """\n self.drawSeries(painter, xMap, yMap, canvasRect, 0, -1)
\n\n\n
\n[docs]\n def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to):\n """\n Draw a subset of the samples\n\n :param QPainter painter: Painter\n :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates.\n :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates.\n :param QRectF canvasRect: Contents rectangle of the canvas\n :param int from_: Index of the first point to be painted\n :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point.\n\n .. seealso::\n\n This method is implemented in `qwt.plot_curve.QwtPlotCurve`\n """\n raise NotImplementedError
\n\n\n
\n[docs]\n def boundingRect(self):\n return self.dataRect() # dataRect method is implemented in QwtSeriesStore
\n\n\n def updateScaleDiv(self, xScaleDiv, yScaleDiv):\n rect = QRectF(\n xScaleDiv.lowerBound(),\n yScaleDiv.lowerBound(),\n xScaleDiv.range(),\n yScaleDiv.range(),\n )\n self.setRectOfInterest(\n rect\n ) # setRectOfInterest method is implemented in QwtSeriesData\n\n def dataChanged(self):\n self.itemChanged()
\n\n\n\n
\n[docs]\nclass QwtSeriesData(object):\n """\n Abstract interface for iterating over samples\n\n `PythonQwt` offers several implementations of the QwtSeriesData API,\n but in situations, where data of an application specific format\n needs to be displayed, without having to copy it, it is recommended\n to implement an individual data access.\n\n A subclass of `QwtSeriesData` must implement:\n\n - size():\n\n Should return number of data points.\n\n - sample()\n\n Should return values x and y values of the sample at specific position\n as QPointF object.\n\n - boundingRect()\n\n Should return the bounding rectangle of the data series.\n It is used for autoscaling and might help certain algorithms for\n displaying the data.\n The member `_boundingRect` is intended for caching the calculated\n rectangle.\n """\n\n def __init__(self):\n self._boundingRect = QRectF(0.0, 0.0, -1.0, -1.0)\n\n
\n[docs]\n def setRectOfInterest(self, rect):\n """\n Set a the "rect of interest"\n\n QwtPlotSeriesItem defines the current area of the plot canvas\n as "rectangle of interest" ( QwtPlotSeriesItem::updateScaleDiv() ).\n It can be used to implement different levels of details.\n\n The default implementation does nothing.\n\n :param QRectF rect: Rectangle of interest\n """\n pass
\n\n\n
\n[docs]\n def size(self):\n """\n :return: Number of samples\n """\n pass
\n\n\n
\n[docs]\n def sample(self, i):\n """\n Return a sample\n\n :param int i: Index\n :return: Sample at position i\n """\n pass
\n\n\n
\n[docs]\n def boundingRect(self):\n """\n Calculate the bounding rect of all samples\n\n The bounding rect is necessary for autoscaling and can be used\n for a couple of painting optimizations.\n\n :return: Bounding rectangle\n """\n pass
\n
\n\n\n\n
\n[docs]\nclass QwtPointArrayData(QwtSeriesData):\n """\n Interface for iterating over two array objects\n\n .. py:class:: QwtCQwtPointArrayDataolorMap(x, y, [size=None])\n\n :param x: Array of x values\n :type x: list or tuple or numpy.array\n :param y: Array of y values\n :type y: list or tuple or numpy.array\n :param int size: Size of the x and y arrays\n :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements\n """\n\n def __init__(self, x=None, y=None, size=None, finite=None):\n QwtSeriesData.__init__(self)\n if x is None and y is not None:\n x = np.arange(len(y))\n elif y is None and x is not None:\n y = x\n x = np.arange(len(y))\n elif x is None and y is None:\n x = np.array([])\n y = np.array([])\n if isinstance(x, (tuple, list)):\n x = np.array(x)\n if isinstance(y, (tuple, list)):\n y = np.array(y)\n if size is not None:\n x = np.resize(x, (size,))\n y = np.resize(y, (size,))\n if len(x) != len(y):\n minlen = min(len(x), len(y))\n x = np.resize(x, (minlen,))\n y = np.resize(y, (minlen,))\n if finite if finite is not None else True:\n indexes = np.logical_and(np.isfinite(x), np.isfinite(y))\n self.__x = x[indexes]\n self.__y = y[indexes]\n else:\n self.__x = x\n self.__y = y\n\n
\n[docs]\n def boundingRect(self):\n """\n Calculate the bounding rectangle\n\n The bounding rectangle is calculated once by iterating over all\n points and is stored for all following requests.\n\n :return: Bounding rectangle\n """\n xmin = self.__x.min()\n xmax = self.__x.max()\n ymin = self.__y.min()\n ymax = self.__y.max()\n return QRectF(xmin, ymin, xmax - xmin, ymax - ymin)
\n\n\n
\n[docs]\n def size(self):\n """\n :return: Size of the data set\n """\n return min([self.__x.size, self.__y.size])
\n\n\n
\n[docs]\n def sample(self, index):\n """\n :param int index: Index\n :return: Sample at position `index`\n """\n return QPointF(self.__x[index], self.__y[index])
\n\n\n
\n[docs]\n def xData(self):\n """\n :return: Array of the x-values\n """\n return self.__x
\n\n\n
\n[docs]\n def yData(self):\n """\n :return: Array of the y-values\n """\n return self.__y
\n
\n\n\n\n
\n[docs]\nclass QwtSeriesStore(object):\n """\n Class storing a `QwtSeriesData` object\n\n `QwtSeriesStore` and `QwtPlotSeriesItem` are intended as base classes for\n all plot items iterating over a series of samples.\n """\n\n def __init__(self):\n self.__series = None\n\n
\n[docs]\n def setData(self, series):\n """\n Assign a series of samples\n\n :param qwt.plot_series.QwtSeriesData series: Data\n\n .. warning::\n\n The item takes ownership of the data object, deleting it\n when its not used anymore.\n """\n if self.__series != series:\n self.__series = series\n self.dataChanged()
\n\n\n def dataChanged(self):\n raise NotImplementedError\n\n
\n[docs]\n def data(self):\n """\n :return: the series data\n """\n return self.__series
\n\n\n
\n[docs]\n def sample(self, index):\n """\n :param int index: Index\n :return: Sample at position index\n """\n if self.__series:\n return self.__series.sample(index)\n else:\n return
\n\n\n
\n[docs]\n def dataSize(self):\n """\n :return: Number of samples of the series\n\n .. seealso::\n\n :py:meth:`setData()`,\n :py:meth:`qwt.plot_series.QwtSeriesData.size()`\n """\n if self.__series is None:\n return 0\n return self.__series.size()
\n\n\n
\n[docs]\n def dataRect(self):\n """\n :return: Bounding rectangle of the series or an invalid rectangle, when no series is stored\n\n .. seealso::\n\n :py:meth:`qwt.plot_series.QwtSeriesData.boundingRect()`\n """\n if self.__series is None or self.dataSize() == 0:\n return QRectF(1.0, 1.0, -2.0, -2.0)\n return self.__series.boundingRect()
\n\n\n
\n[docs]\n def setRectOfInterest(self, rect):\n """\n Set a the "rect of interest" for the series\n\n :param QRectF rect: Rectangle of interest\n\n .. seealso::\n\n :py:meth:`qwt.plot_series.QwtSeriesData.setRectOfInterest()`\n """\n if self.__series:\n self.__series.setRectOfInterest(rect)
\n\n\n
\n[docs]\n def swapData(self, series):\n """\n Replace a series without deleting the previous one\n\n :param qwt.plot_series.QwtSeriesData series: New series\n :return: Previously assigned series\n """\n swappedSeries = self.__series\n self.__series = series\n return swappedSeries
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39ca2ac0>, 'js_tag': .js_tag at 0x7f3d39ca2b60>}, None) highlighting module code... [ 67%] qwt.scale_div [app] emitting event: 'viewcode-find-source'('qwt.scale_div',) -[app] emitting event: 'html-page-context'('_modules/qwt/scale_div', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/scale_div', 'current_page_name': '_modules/qwt/scale_div', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d68937e0>, 'hasdoc': .hasdoc at 0x7fc7d6893740>, 'toctree': . at 0x7fc7d6892f20>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.scale_div', 'body': '

Source code for qwt.scale_div

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtScaleDiv\n-----------\n\n.. autoclass:: QwtScaleDiv\n   :members:\n"""\n\nimport copy\n\nfrom qwt.interval import QwtInterval\n\n\n
\n[docs]\nclass QwtScaleDiv(object):\n """\n A class representing a scale division\n\n A Qwt scale is defined by its boundaries and 3 list\n for the positions of the major, medium and minor ticks.\n\n The `upperLimit()` might be smaller than the `lowerLimit()`\n to indicate inverted scales.\n\n Scale divisions can be calculated from a `QwtScaleEngine`.\n\n .. seealso::\n\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`,\n :py:meth:`qwt.plot.QwtPlot.setAxisScaleDiv()`\n\n Scale tick types:\n\n * `QwtScaleDiv.NoTick`: No ticks\n * `QwtScaleDiv.MinorTick`: Minor ticks\n * `QwtScaleDiv.MediumTick`: Medium ticks\n * `QwtScaleDiv.MajorTick`: Major ticks\n * `QwtScaleDiv.NTickTypes`: Number of valid tick types\n\n .. py:class:: QwtScaleDiv()\n\n Basic constructor. Lower bound = Upper bound = 0.\n\n .. py:class:: QwtScaleDiv(interval, ticks)\n :noindex:\n\n :param qwt.interval.QwtInterval interval: Interval\n :param list ticks: list of major, medium and minor ticks\n\n .. py:class:: QwtScaleDiv(lowerBound, upperBound)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n\n .. py:class:: QwtScaleDiv(lowerBound, upperBound, ticks)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n :param list ticks: list of major, medium and minor ticks\n\n .. py:class:: QwtScaleDiv(lowerBound, upperBound, minorTicks, mediumTicks, majorTicks)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n :param list minorTicks: list of minor ticks\n :param list mediumTicks: list of medium ticks\n :param list majorTicks: list of major ticks\n\n .. note::\n\n lowerBound might be greater than upperBound for inverted scales\n """\n\n # enum TickType\n NoTick = -1\n MinorTick, MediumTick, MajorTick, NTickTypes = list(range(4))\n\n def __init__(self, *args):\n self.__ticks = None\n if len(args) == 2 and isinstance(args[1], (tuple, list)):\n interval, ticks = args\n self.__lowerBound = interval.minValue()\n self.__upperBound = interval.maxValue()\n self.__ticks = ticks[:]\n elif len(args) == 2:\n self.__lowerBound, self.__upperBound = args\n elif len(args) == 3:\n self.__lowerBound, self.__upperBound, ticks = args\n self.__ticks = ticks[:]\n elif len(args) == 5:\n (\n self.__lowerBound,\n self.__upperBound,\n minorTicks,\n mediumTicks,\n majorTicks,\n ) = args\n self.__ticks = [0] * self.NTickTypes\n self.__ticks[self.MinorTick] = minorTicks\n self.__ticks[self.MediumTick] = mediumTicks\n self.__ticks[self.MajorTick] = majorTicks\n elif len(args) == 0:\n self.__lowerBound, self.__upperBound = 0.0, 0.0\n else:\n raise TypeError(\n "%s() takes 0, 2, 3 or 5 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n\n
\n[docs]\n def setInterval(self, *args):\n """\n Change the interval\n\n .. py:method:: setInterval(lowerBound, upperBound)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n\n .. py:method:: setInterval(interval)\n :noindex:\n\n :param qwt.interval.QwtInterval interval: Interval\n\n .. note::\n\n lowerBound might be greater than upperBound for inverted scales\n """\n if len(args) == 2:\n self.__lowerBound, self.__upperBound = args\n elif len(args) == 1:\n (interval,) = args\n self.__lowerBound = interval.minValue()\n self.__upperBound = interval.maxValue()\n else:\n raise TypeError(\n "%s().setInterval() takes 1 or 2 argument(s) (%s "\n "given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def interval(self):\n """\n :return: Interval\n """\n return QwtInterval(self.__lowerBound, self.__upperBound)
\n\n\n
\n[docs]\n def setLowerBound(self, lowerBound):\n """\n Set the first boundary\n\n :param float lowerBound: First boundary\n\n .. seealso::\n\n :py:meth:`lowerBound()`, :py:meth:`setUpperBound()`\n """\n self.__lowerBound = lowerBound
\n\n\n
\n[docs]\n def lowerBound(self):\n """\n :return: the first boundary\n\n .. seealso::\n\n :py:meth:`upperBound()`\n """\n return self.__lowerBound
\n\n\n
\n[docs]\n def setUpperBound(self, upperBound):\n """\n Set the second boundary\n\n :param float lowerBound: Second boundary\n\n .. seealso::\n\n :py:meth:`upperBound()`, :py:meth:`setLowerBound()`\n """\n self.__upperBound = upperBound
\n\n\n
\n[docs]\n def upperBound(self):\n """\n :return: the second boundary\n\n .. seealso::\n\n :py:meth:`lowerBound()`\n """\n return self.__upperBound
\n\n\n
\n[docs]\n def range(self):\n """\n :return: upperBound() - lowerBound()\n """\n return self.__upperBound - self.__lowerBound
\n\n\n def __eq__(self, other):\n if self.__ticks is None:\n return False\n if (\n self.__lowerBound != other.__lowerBound\n or self.__upperBound != other.__upperBound\n ):\n return False\n return self.__ticks == other.__ticks\n\n def __ne__(self, other):\n return not self.__eq__(other)\n\n
\n[docs]\n def isEmpty(self):\n """\n Check if the scale division is empty( lowerBound() == upperBound() )\n """\n return self.__lowerBound == self.__upperBound
\n\n\n
\n[docs]\n def isIncreasing(self):\n """\n Check if the scale division is increasing( lowerBound() <= upperBound() )\n """\n return self.__lowerBound <= self.__upperBound
\n\n\n
\n[docs]\n def contains(self, value):\n """\n Return if a value is between lowerBound() and upperBound()\n\n :param float value: Value\n :return: True/False\n """\n min_ = min([self.__lowerBound, self.__upperBound])\n max_ = max([self.__lowerBound, self.__upperBound])\n return value >= min_ and value <= max_
\n\n\n
\n[docs]\n def invert(self):\n """\n Invert the scale division\n\n .. seealso::\n\n :py:meth:`inverted()`\n """\n (self.__lowerBound, self.__upperBound) = self.__upperBound, self.__lowerBound\n for index in range(self.NTickTypes):\n self.__ticks[index].reverse()
\n\n\n
\n[docs]\n def inverted(self):\n """\n :return: A scale division with inverted boundaries and ticks\n\n .. seealso::\n\n :py:meth:`invert()`\n """\n other = copy.deepcopy(self)\n other.invert()\n return other
\n\n\n
\n[docs]\n def bounded(self, lowerBound, upperBound):\n """\n Return a scale division with an interval [lowerBound, upperBound]\n where all ticks outside this interval are removed\n\n :param float lowerBound: First boundary\n :param float lowerBound: Second boundary\n :return: Scale division with all ticks inside of the given interval\n\n .. note::\n\n lowerBound might be greater than upperBound for inverted scales\n """\n min_ = min([self.__lowerBound, self.__upperBound])\n max_ = max([self.__lowerBound, self.__upperBound])\n sd = QwtScaleDiv()\n sd.setInterval(lowerBound, upperBound)\n for tickType in range(self.NTickTypes):\n sd.setTicks(\n tickType,\n [\n tick\n for tick in self.__ticks[tickType]\n if tick >= min_ and tick <= max_\n ],\n )\n return sd
\n\n\n
\n[docs]\n def setTicks(self, tickType, ticks):\n """\n Assign ticks\n\n :param int type: MinorTick, MediumTick or MajorTick\n :param list ticks: Values of the tick positions\n """\n if tickType in range(self.NTickTypes):\n self.__ticks[tickType] = ticks
\n\n\n
\n[docs]\n def ticks(self, tickType):\n """\n Return a list of ticks\n\n :param int type: MinorTick, MediumTick or MajorTick\n :return: Tick list\n """\n if self.__ticks is not None and tickType in range(self.NTickTypes):\n return self.__ticks[tickType]\n else:\n return []
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6893880>, 'js_tag': .js_tag at 0x7fc7d6893920>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/scale_div', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/scale_div', 'current_page_name': '_modules/qwt/scale_div', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ca37e0>, 'hasdoc': .hasdoc at 0x7f3d39ca3740>, 'toctree': . at 0x7f3d39ca2f20>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.scale_div', 'body': '

Source code for qwt.scale_div

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtScaleDiv\n-----------\n\n.. autoclass:: QwtScaleDiv\n   :members:\n"""\n\nimport copy\n\nfrom qwt.interval import QwtInterval\n\n\n
\n[docs]\nclass QwtScaleDiv(object):\n """\n A class representing a scale division\n\n A Qwt scale is defined by its boundaries and 3 list\n for the positions of the major, medium and minor ticks.\n\n The `upperLimit()` might be smaller than the `lowerLimit()`\n to indicate inverted scales.\n\n Scale divisions can be calculated from a `QwtScaleEngine`.\n\n .. seealso::\n\n :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`,\n :py:meth:`qwt.plot.QwtPlot.setAxisScaleDiv()`\n\n Scale tick types:\n\n * `QwtScaleDiv.NoTick`: No ticks\n * `QwtScaleDiv.MinorTick`: Minor ticks\n * `QwtScaleDiv.MediumTick`: Medium ticks\n * `QwtScaleDiv.MajorTick`: Major ticks\n * `QwtScaleDiv.NTickTypes`: Number of valid tick types\n\n .. py:class:: QwtScaleDiv()\n\n Basic constructor. Lower bound = Upper bound = 0.\n\n .. py:class:: QwtScaleDiv(interval, ticks)\n :noindex:\n\n :param qwt.interval.QwtInterval interval: Interval\n :param list ticks: list of major, medium and minor ticks\n\n .. py:class:: QwtScaleDiv(lowerBound, upperBound)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n\n .. py:class:: QwtScaleDiv(lowerBound, upperBound, ticks)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n :param list ticks: list of major, medium and minor ticks\n\n .. py:class:: QwtScaleDiv(lowerBound, upperBound, minorTicks, mediumTicks, majorTicks)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n :param list minorTicks: list of minor ticks\n :param list mediumTicks: list of medium ticks\n :param list majorTicks: list of major ticks\n\n .. note::\n\n lowerBound might be greater than upperBound for inverted scales\n """\n\n # enum TickType\n NoTick = -1\n MinorTick, MediumTick, MajorTick, NTickTypes = list(range(4))\n\n def __init__(self, *args):\n self.__ticks = None\n if len(args) == 2 and isinstance(args[1], (tuple, list)):\n interval, ticks = args\n self.__lowerBound = interval.minValue()\n self.__upperBound = interval.maxValue()\n self.__ticks = ticks[:]\n elif len(args) == 2:\n self.__lowerBound, self.__upperBound = args\n elif len(args) == 3:\n self.__lowerBound, self.__upperBound, ticks = args\n self.__ticks = ticks[:]\n elif len(args) == 5:\n (\n self.__lowerBound,\n self.__upperBound,\n minorTicks,\n mediumTicks,\n majorTicks,\n ) = args\n self.__ticks = [0] * self.NTickTypes\n self.__ticks[self.MinorTick] = minorTicks\n self.__ticks[self.MediumTick] = mediumTicks\n self.__ticks[self.MajorTick] = majorTicks\n elif len(args) == 0:\n self.__lowerBound, self.__upperBound = 0.0, 0.0\n else:\n raise TypeError(\n "%s() takes 0, 2, 3 or 5 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n\n
\n[docs]\n def setInterval(self, *args):\n """\n Change the interval\n\n .. py:method:: setInterval(lowerBound, upperBound)\n :noindex:\n\n :param float lowerBound: First boundary\n :param float upperBound: Second boundary\n\n .. py:method:: setInterval(interval)\n :noindex:\n\n :param qwt.interval.QwtInterval interval: Interval\n\n .. note::\n\n lowerBound might be greater than upperBound for inverted scales\n """\n if len(args) == 2:\n self.__lowerBound, self.__upperBound = args\n elif len(args) == 1:\n (interval,) = args\n self.__lowerBound = interval.minValue()\n self.__upperBound = interval.maxValue()\n else:\n raise TypeError(\n "%s().setInterval() takes 1 or 2 argument(s) (%s "\n "given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def interval(self):\n """\n :return: Interval\n """\n return QwtInterval(self.__lowerBound, self.__upperBound)
\n\n\n
\n[docs]\n def setLowerBound(self, lowerBound):\n """\n Set the first boundary\n\n :param float lowerBound: First boundary\n\n .. seealso::\n\n :py:meth:`lowerBound()`, :py:meth:`setUpperBound()`\n """\n self.__lowerBound = lowerBound
\n\n\n
\n[docs]\n def lowerBound(self):\n """\n :return: the first boundary\n\n .. seealso::\n\n :py:meth:`upperBound()`\n """\n return self.__lowerBound
\n\n\n
\n[docs]\n def setUpperBound(self, upperBound):\n """\n Set the second boundary\n\n :param float lowerBound: Second boundary\n\n .. seealso::\n\n :py:meth:`upperBound()`, :py:meth:`setLowerBound()`\n """\n self.__upperBound = upperBound
\n\n\n
\n[docs]\n def upperBound(self):\n """\n :return: the second boundary\n\n .. seealso::\n\n :py:meth:`lowerBound()`\n """\n return self.__upperBound
\n\n\n
\n[docs]\n def range(self):\n """\n :return: upperBound() - lowerBound()\n """\n return self.__upperBound - self.__lowerBound
\n\n\n def __eq__(self, other):\n if self.__ticks is None:\n return False\n if (\n self.__lowerBound != other.__lowerBound\n or self.__upperBound != other.__upperBound\n ):\n return False\n return self.__ticks == other.__ticks\n\n def __ne__(self, other):\n return not self.__eq__(other)\n\n
\n[docs]\n def isEmpty(self):\n """\n Check if the scale division is empty( lowerBound() == upperBound() )\n """\n return self.__lowerBound == self.__upperBound
\n\n\n
\n[docs]\n def isIncreasing(self):\n """\n Check if the scale division is increasing( lowerBound() <= upperBound() )\n """\n return self.__lowerBound <= self.__upperBound
\n\n\n
\n[docs]\n def contains(self, value):\n """\n Return if a value is between lowerBound() and upperBound()\n\n :param float value: Value\n :return: True/False\n """\n min_ = min([self.__lowerBound, self.__upperBound])\n max_ = max([self.__lowerBound, self.__upperBound])\n return value >= min_ and value <= max_
\n\n\n
\n[docs]\n def invert(self):\n """\n Invert the scale division\n\n .. seealso::\n\n :py:meth:`inverted()`\n """\n (self.__lowerBound, self.__upperBound) = self.__upperBound, self.__lowerBound\n for index in range(self.NTickTypes):\n self.__ticks[index].reverse()
\n\n\n
\n[docs]\n def inverted(self):\n """\n :return: A scale division with inverted boundaries and ticks\n\n .. seealso::\n\n :py:meth:`invert()`\n """\n other = copy.deepcopy(self)\n other.invert()\n return other
\n\n\n
\n[docs]\n def bounded(self, lowerBound, upperBound):\n """\n Return a scale division with an interval [lowerBound, upperBound]\n where all ticks outside this interval are removed\n\n :param float lowerBound: First boundary\n :param float lowerBound: Second boundary\n :return: Scale division with all ticks inside of the given interval\n\n .. note::\n\n lowerBound might be greater than upperBound for inverted scales\n """\n min_ = min([self.__lowerBound, self.__upperBound])\n max_ = max([self.__lowerBound, self.__upperBound])\n sd = QwtScaleDiv()\n sd.setInterval(lowerBound, upperBound)\n for tickType in range(self.NTickTypes):\n sd.setTicks(\n tickType,\n [\n tick\n for tick in self.__ticks[tickType]\n if tick >= min_ and tick <= max_\n ],\n )\n return sd
\n\n\n
\n[docs]\n def setTicks(self, tickType, ticks):\n """\n Assign ticks\n\n :param int type: MinorTick, MediumTick or MajorTick\n :param list ticks: Values of the tick positions\n """\n if tickType in range(self.NTickTypes):\n self.__ticks[tickType] = ticks
\n\n\n
\n[docs]\n def ticks(self, tickType):\n """\n Return a list of ticks\n\n :param int type: MinorTick, MediumTick or MajorTick\n :return: Tick list\n """\n if self.__ticks is not None and tickType in range(self.NTickTypes):\n return self.__ticks[tickType]\n else:\n return []
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39ca3880>, 'js_tag': .js_tag at 0x7f3d39ca3920>}, None) highlighting module code... [ 71%] qwt.scale_draw [app] emitting event: 'viewcode-find-source'('qwt.scale_draw',) -[app] emitting event: 'html-page-context'('_modules/qwt/scale_draw', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/scale_draw', 'current_page_name': '_modules/qwt/scale_draw', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6890cc0>, 'hasdoc': .hasdoc at 0x7fc7d6892700>, 'toctree': . at 0x7fc7d6892a20>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.scale_draw', 'body': '

Source code for qwt.scale_draw

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtAbstractScaleDraw\n--------------------\n\n.. autoclass:: QwtAbstractScaleDraw\n   :members:\n\nQwtScaleDraw\n------------\n\n.. autoclass:: QwtScaleDraw\n   :members:\n"""\n\nimport math\n\nfrom qtpy.QtCore import (\n    QLineF,\n    QObject,\n    QPoint,\n    QPointF,\n    QRect,\n    QRectF,\n    Qt,\n    qFuzzyCompare,\n)\nfrom qtpy.QtGui import QFontMetrics, QPalette, QTransform\n\nfrom qwt._math import qwtRadians\nfrom qwt.scale_div import QwtScaleDiv\nfrom qwt.scale_map import QwtScaleMap\nfrom qwt.text import QwtText\n\n\nclass QwtAbstractScaleDraw_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.spacing = 4\n        self.penWidth = 0\n        self.minExtent = 0.0\n\n        self.components = (\n            QwtAbstractScaleDraw.Backbone\n            | QwtAbstractScaleDraw.Ticks\n            | QwtAbstractScaleDraw.Labels\n        )\n        self.tick_length = {\n            QwtScaleDiv.MinorTick: 4.0,\n            QwtScaleDiv.MediumTick: 6.0,\n            QwtScaleDiv.MajorTick: 8.0,\n        }\n        self.tick_lighter_factor = {\n            QwtScaleDiv.MinorTick: 100,\n            QwtScaleDiv.MediumTick: 100,\n            QwtScaleDiv.MajorTick: 100,\n        }\n\n        self.map = QwtScaleMap()\n        self.scaleDiv = QwtScaleDiv()\n\n        self.labelCache = {}\n\n\n
\n[docs]\nclass QwtAbstractScaleDraw(object):\n """\n A abstract base class for drawing scales\n\n `QwtAbstractScaleDraw` can be used to draw linear or logarithmic scales.\n\n After a scale division has been specified as a `QwtScaleDiv` object\n using `setScaleDiv()`, the scale can be drawn with the `draw()` member.\n\n Scale components:\n\n * `QwtAbstractScaleDraw.Backbone`: Backbone = the line where the ticks are located\n * `QwtAbstractScaleDraw.Ticks`: Ticks\n * `QwtAbstractScaleDraw.Labels`: Labels\n\n .. py:class:: QwtAbstractScaleDraw()\n\n The range of the scale is initialized to [0, 100],\n The spacing (distance between ticks and labels) is\n set to 4, the tick lengths are set to 4,6 and 8 pixels\n """\n\n # enum ScaleComponent\n Backbone = 0x01\n Ticks = 0x02\n Labels = 0x04\n\n def __init__(self):\n self.__data = QwtAbstractScaleDraw_PrivateData()\n\n
\n[docs]\n def extent(self, font):\n """\n Calculate the extent\n\n The extent is the distance from the baseline to the outermost\n pixel of the scale draw in opposite to its orientation.\n It is at least minimumExtent() pixels.\n\n :param QFont font: Font used for drawing the tick labels\n :return: Number of pixels\n\n .. seealso::\n\n :py:meth:`setMinimumExtent()`, :py:meth:`minimumExtent()`\n """\n return 0.0
\n\n\n
\n[docs]\n def drawTick(self, painter, value, len_):\n """\n Draw a tick\n\n :param QPainter painter: Painter\n :param float value: Value of the tick\n :param float len: Length of the tick\n\n .. seealso::\n\n :py:meth:`drawBackbone()`, :py:meth:`drawLabel()`\n """\n pass
\n\n\n
\n[docs]\n def drawBackbone(self, painter):\n """\n Draws the baseline of the scale\n\n :param QPainter painter: Painter\n\n .. seealso::\n\n :py:meth:`drawTick()`, :py:meth:`drawLabel()`\n """\n pass
\n\n\n
\n[docs]\n def drawLabel(self, painter, value):\n """\n Draws the label for a major scale tick\n\n :param QPainter painter: Painter\n :param float value: Value\n\n .. seealso::\n\n :py:meth:`drawTick()`, :py:meth:`drawBackbone()`\n """\n pass
\n\n\n
\n[docs]\n def enableComponent(self, component, enable):\n """\n En/Disable a component of the scale\n\n :param int component: Scale component\n :param bool enable: On/Off\n\n .. seealso::\n\n :py:meth:`hasComponent()`\n """\n if enable:\n self.__data.components |= component\n else:\n self.__data.components &= ~component
\n\n\n
\n[docs]\n def hasComponent(self, component):\n """\n Check if a component is enabled\n\n :param int component: Component type\n :return: True, when component is enabled\n\n .. seealso::\n\n :py:meth:`enableComponent()`\n """\n return self.__data.components & component
\n\n\n
\n[docs]\n def setScaleDiv(self, scaleDiv):\n """\n Change the scale division\n\n :param qwt.scale_div.QwtScaleDiv scaleDiv: New scale division\n """\n self.__data.scaleDiv = scaleDiv\n self.__data.map.setScaleInterval(scaleDiv.lowerBound(), scaleDiv.upperBound())\n self.invalidateCache()
\n\n\n
\n[docs]\n def setTransformation(self, transformation):\n """\n Change the transformation of the scale\n\n :param qwt.transform.QwtTransform transformation: New scale transformation\n """\n self.__data.map.setTransformation(transformation)
\n\n\n
\n[docs]\n def scaleMap(self):\n """\n :return: Map how to translate between scale and pixel values\n """\n return self.__data.map
\n\n\n
\n[docs]\n def scaleDiv(self):\n """\n :return: scale division\n """\n return self.__data.scaleDiv
\n\n\n
\n[docs]\n def setPenWidth(self, width):\n """\n Specify the width of the scale pen\n\n :param int width: Pen width\n\n .. seealso::\n\n :py:meth:`penWidth()`\n """\n if width < 0:\n width = 0\n if width != self.__data.penWidth:\n self.__data.penWidth = width
\n\n\n
\n[docs]\n def penWidth(self):\n """\n :return: Scale pen width\n\n .. seealso::\n\n :py:meth:`setPenWidth()`\n """\n return self.__data.penWidth
\n\n\n
\n[docs]\n def draw(self, painter, palette):\n """\n Draw the scale\n\n :param QPainter painter: The painter\n :param QPalette palette: Palette, text color is used for the labels,\n foreground color for ticks and backbone\n """\n painter.save()\n\n pen = painter.pen()\n pen.setWidth(self.__data.penWidth)\n pen.setCosmetic(False)\n painter.setPen(pen)\n\n if self.hasComponent(QwtAbstractScaleDraw.Labels):\n painter.save()\n painter.setPen(palette.color(QPalette.Text))\n majorTicks = self.__data.scaleDiv.ticks(QwtScaleDiv.MajorTick)\n for v in majorTicks:\n if self.__data.scaleDiv.contains(v):\n self.drawLabel(painter, v)\n painter.restore()\n\n if self.hasComponent(QwtAbstractScaleDraw.Ticks):\n painter.save()\n pen = painter.pen()\n pen.setCapStyle(Qt.FlatCap)\n default_color = palette.color(QPalette.WindowText)\n for tickType in range(QwtScaleDiv.NTickTypes):\n tickLen = self.__data.tick_length[tickType]\n if tickLen <= 0.0:\n continue\n factor = self.__data.tick_lighter_factor[tickType]\n pen.setColor(default_color.lighter(factor))\n painter.setPen(pen)\n ticks = self.__data.scaleDiv.ticks(tickType)\n for v in ticks:\n if self.__data.scaleDiv.contains(v):\n self.drawTick(painter, v, tickLen)\n painter.restore()\n\n if self.hasComponent(QwtAbstractScaleDraw.Backbone):\n painter.save()\n pen = painter.pen()\n pen.setColor(palette.color(QPalette.WindowText))\n pen.setCapStyle(Qt.FlatCap)\n painter.setPen(pen)\n self.drawBackbone(painter)\n painter.restore()\n\n painter.restore()
\n\n\n
\n[docs]\n def setSpacing(self, spacing):\n """\n Set the spacing between tick and labels\n\n The spacing is the distance between ticks and labels.\n The default spacing is 4 pixels.\n\n :param float spacing: Spacing\n\n .. seealso::\n\n :py:meth:`spacing()`\n """\n if spacing < 0:\n spacing = 0\n self.__data.spacing = spacing
\n\n\n
\n[docs]\n def spacing(self):\n """\n Get the spacing\n\n The spacing is the distance between ticks and labels.\n The default spacing is 4 pixels.\n\n :return: Spacing\n\n .. seealso::\n\n :py:meth:`setSpacing()`\n """\n return self.__data.spacing
\n\n\n
\n[docs]\n def setMinimumExtent(self, minExtent):\n """\n Set a minimum for the extent\n\n The extent is calculated from the components of the\n scale draw. In situations, where the labels are\n changing and the layout depends on the extent (f.e scrolling\n a scale), setting an upper limit as minimum extent will\n avoid jumps of the layout.\n\n :param float minExtent: Minimum extent\n\n .. seealso::\n\n :py:meth:`extent()`, :py:meth:`minimumExtent()`\n """\n if minExtent < 0.0:\n minExtent = 0.0\n self.__data.minExtent = minExtent
\n\n\n
\n[docs]\n def minimumExtent(self):\n """\n Get the minimum extent\n\n :return: Minimum extent\n\n .. seealso::\n\n :py:meth:`extent()`, :py:meth:`setMinimumExtent()`\n """\n return self.__data.minExtent
\n\n\n
\n[docs]\n def setTickLength(self, tick_type, length):\n """\n Set the length of the ticks\n\n :param int tick_type: Tick type\n :param float length: New length\n\n .. warning::\n\n the length is limited to [0..1000]\n """\n if tick_type not in self.__data.tick_length:\n raise ValueError("Invalid tick type: %r" % tick_type)\n self.__data.tick_length[tick_type] = min([1000.0, max([0.0, length])])
\n\n\n
\n[docs]\n def tickLength(self, tick_type):\n """\n :param int tick_type: Tick type\n :return: Length of the ticks\n\n .. seealso::\n\n :py:meth:`setTickLength()`, :py:meth:`maxTickLength()`\n """\n if tick_type not in self.__data.tick_length:\n raise ValueError("Invalid tick type: %r" % tick_type)\n return self.__data.tick_length[tick_type]
\n\n\n
\n[docs]\n def maxTickLength(self):\n """\n :return: Length of the longest tick\n\n Useful for layout calculations\n\n .. seealso::\n\n :py:meth:`tickLength()`, :py:meth:`setTickLength()`\n """\n return max([0.0] + list(self.__data.tick_length.values()))
\n\n\n
\n[docs]\n def setTickLighterFactor(self, tick_type, factor):\n """\n Set the color lighter factor of the ticks\n\n :param int tick_type: Tick type\n :param int factor: New factor\n """\n if tick_type not in self.__data.tick_length:\n raise ValueError("Invalid tick type: %r" % tick_type)\n self.__data.tick_lighter_factor[tick_type] = min([0, factor])
\n\n\n
\n[docs]\n def tickLighterFactor(self, tick_type):\n """\n :param int tick_type: Tick type\n :return: Color lighter factor of the ticks\n\n .. seealso::\n\n :py:meth:`setTickLighterFactor()`\n """\n if tick_type not in self.__data.tick_length:\n raise ValueError("Invalid tick type: %r" % tick_type)\n return self.__data.tick_lighter_factor[tick_type]
\n\n\n
\n[docs]\n def label(self, value):\n """\n Convert a value into its representing label\n\n The value is converted to a plain text using\n `QLocale().toString(value)`.\n This method is often overloaded by applications to have individual\n labels.\n\n :param float value: Value\n :return: Label string\n """\n # Adding a space before the value is a way to add a margin on the left\n # of the scale. This helps to avoid truncating the first digit of the\n # tick labels while keeping a tight layout.\n return " %g" % value
\n\n\n
\n[docs]\n def tickLabel(self, font, value):\n """\n Convert a value into its representing label and cache it.\n\n The conversion between value and label is called very often\n in the layout and painting code. Unfortunately the\n calculation of the label sizes might be slow (really slow\n for rich text in Qt4), so it's necessary to cache the labels.\n\n :param QFont font: Font\n :param float value: Value\n :return: Tuple (tick label, text size)\n """\n lbl = self.__data.labelCache.get(value)\n if lbl is None:\n lbl = QwtText(self.label(value))\n lbl.setRenderFlags(0)\n lbl.setLayoutAttribute(QwtText.MinimumLayout)\n self.__data.labelCache[value] = lbl\n return lbl, lbl.textSize(font)
\n\n\n
\n[docs]\n def invalidateCache(self):\n """\n Invalidate the cache used by `tickLabel()`\n\n The cache is invalidated, when a new `QwtScaleDiv` is set. If\n the labels need to be changed. while the same `QwtScaleDiv` is set,\n `invalidateCache()` needs to be called manually.\n """\n self.__data.labelCache.clear()
\n
\n\n\n\nclass QwtScaleDraw_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.len = 0\n self.alignment = QwtScaleDraw.BottomScale\n self.labelAlignment = 0\n self.labelRotation = 0.0\n self.labelAutoSize = True\n self.pos = QPointF()\n\n\n
\n[docs]\nclass QwtScaleDraw(QwtAbstractScaleDraw):\n """\n A class for drawing scales\n\n QwtScaleDraw can be used to draw linear or logarithmic scales.\n A scale has a position, an alignment and a length, which can be specified .\n The labels can be rotated and aligned\n to the ticks using `setLabelRotation()` and `setLabelAlignment()`.\n\n After a scale division has been specified as a QwtScaleDiv object\n using `QwtAbstractScaleDraw.setScaleDiv(scaleDiv)`,\n the scale can be drawn with the `QwtAbstractScaleDraw.draw()` member.\n\n Alignment of the scale draw:\n\n * `QwtScaleDraw.BottomScale`: The scale is below\n * `QwtScaleDraw.TopScale`: The scale is above\n * `QwtScaleDraw.LeftScale`: The scale is left\n * `QwtScaleDraw.RightScale`: The scale is right\n\n .. py:class:: QwtScaleDraw()\n\n The range of the scale is initialized to [0, 100],\n The position is at (0, 0) with a length of 100.\n The orientation is `QwtAbstractScaleDraw.Bottom`.\n """\n\n # enum Alignment\n BottomScale, TopScale, LeftScale, RightScale = list(range(4))\n Flags = (\n Qt.AlignHCenter | Qt.AlignBottom, # BottomScale\n Qt.AlignHCenter | Qt.AlignTop, # TopScale\n Qt.AlignLeft | Qt.AlignVCenter, # LeftScale\n Qt.AlignRight | Qt.AlignVCenter, # RightScale\n )\n\n def __init__(self):\n QwtAbstractScaleDraw.__init__(self)\n self.__data = QwtScaleDraw_PrivateData()\n self.setLength(100)\n self._max_label_sizes = {}\n\n
\n[docs]\n def alignment(self):\n """\n :return: Alignment of the scale\n\n .. seealso::\n\n :py:meth:`setAlignment()`\n """\n return self.__data.alignment
\n\n\n
\n[docs]\n def setAlignment(self, align):\n """\n Set the alignment of the scale\n\n :param int align: Alignment of the scale\n\n Alignment of the scale draw:\n\n * `QwtScaleDraw.BottomScale`: The scale is below\n * `QwtScaleDraw.TopScale`: The scale is above\n * `QwtScaleDraw.LeftScale`: The scale is left\n * `QwtScaleDraw.RightScale`: The scale is right\n\n The default alignment is `QwtScaleDraw.BottomScale`\n\n .. seealso::\n\n :py:meth:`alignment()`\n """\n self.__data.alignment = align
\n\n\n
\n[docs]\n def orientation(self):\n """\n Return the orientation\n\n TopScale, BottomScale are horizontal (`Qt.Horizontal`) scales,\n LeftScale, RightScale are vertical (`Qt.Vertical`) scales.\n\n :return: Orientation of the scale\n\n .. seealso::\n\n :py:meth:`alignment()`\n """\n if self.__data.alignment in (self.TopScale, self.BottomScale):\n return Qt.Horizontal\n elif self.__data.alignment in (self.LeftScale, self.RightScale):\n return Qt.Vertical
\n\n\n
\n[docs]\n def getBorderDistHint(self, font):\n """\n Determine the minimum border distance\n\n This member function returns the minimum space\n needed to draw the mark labels at the scale's endpoints.\n\n :param QFont font: Font\n :return: tuple `(start, end)`\n\n Returned tuple:\n\n * start: Start border distance\n * end: End border distance\n """\n start, end = 0, 1.0\n\n if not self.hasComponent(QwtAbstractScaleDraw.Labels):\n return start, end\n\n ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick)\n if len(ticks) == 0:\n return start, end\n\n minTick = ticks[0]\n minPos = self.scaleMap().transform(minTick)\n maxTick = minTick\n maxPos = minPos\n\n for tick in ticks:\n tickPos = self.scaleMap().transform(tick)\n if tickPos < minPos:\n minTick = tick\n minPos = tickPos\n if tickPos > self.scaleMap().transform(maxTick):\n maxTick = tick\n maxPos = tickPos\n\n s = 0.0\n e = 0.0\n if self.orientation() == Qt.Vertical:\n s = -self.labelRect(font, minTick).top()\n s -= abs(minPos - round(self.scaleMap().p2()))\n\n e = self.labelRect(font, maxTick).bottom()\n e -= abs(maxPos - self.scaleMap().p1())\n else:\n s = -self.labelRect(font, minTick).left()\n s -= abs(minPos - self.scaleMap().p1())\n\n e = self.labelRect(font, maxTick).right()\n e -= abs(maxPos - self.scaleMap().p2())\n\n return max(math.ceil(s), 0), max(math.ceil(e), 0)
\n\n\n
\n[docs]\n def minLabelDist(self, font):\n """\n Determine the minimum distance between two labels, that is necessary\n that the texts don't overlap.\n\n :param QFont font: Font\n :return: The maximum width of a label\n\n .. seealso::\n\n :py:meth:`getBorderDistHint()`\n """\n if not self.hasComponent(QwtAbstractScaleDraw.Labels):\n return 0\n\n ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick)\n if not ticks:\n return 0\n\n fm = QFontMetrics(font)\n vertical = self.orientation() == Qt.Vertical\n\n bRect1 = QRectF()\n bRect2 = self.labelRect(font, ticks[0])\n if vertical:\n bRect2.setRect(-bRect2.bottom(), 0.0, bRect2.height(), bRect2.width())\n\n maxDist = 0.0\n\n for tick in ticks:\n bRect1 = bRect2\n bRect2 = self.labelRect(font, tick)\n if vertical:\n bRect2.setRect(-bRect2.bottom(), 0.0, bRect2.height(), bRect2.width())\n\n dist = fm.leading()\n if bRect1.right() > 0:\n dist += bRect1.right()\n if bRect2.left() < 0:\n dist += -bRect2.left()\n\n if dist > maxDist:\n maxDist = dist\n\n angle = qwtRadians(self.labelRotation())\n if vertical:\n angle += math.pi / 2\n\n sinA = math.sin(angle)\n if qFuzzyCompare(sinA + 1.0, 1.0):\n return math.ceil(maxDist)\n\n fmHeight = fm.ascent() - 2\n\n labelDist = fmHeight / math.sin(angle) * math.cos(angle)\n if labelDist < 0:\n labelDist = -labelDist\n\n if labelDist > maxDist:\n labelDist = maxDist\n\n if labelDist < fmHeight:\n labelDist = fmHeight\n\n return math.ceil(labelDist)
\n\n\n
\n[docs]\n def extent(self, font):\n """\n Calculate the width/height that is needed for a\n vertical/horizontal scale.\n\n The extent is calculated from the pen width of the backbone,\n the major tick length, the spacing and the maximum width/height\n of the labels.\n\n :param QFont font: Font used for painting the labels\n :return: Extent\n\n .. seealso::\n\n :py:meth:`minLength()`\n """\n d = 0.0\n if self.hasComponent(QwtAbstractScaleDraw.Labels):\n if self.orientation() == Qt.Vertical:\n d = self.maxLabelWidth(font)\n else:\n d = self.maxLabelHeight(font)\n if d > 0:\n d += self.spacing()\n if self.hasComponent(QwtAbstractScaleDraw.Ticks):\n d += self.maxTickLength()\n if self.hasComponent(QwtAbstractScaleDraw.Backbone):\n pw = max([1, self.penWidth()])\n d += pw\n return max([d, self.minimumExtent()])
\n\n\n
\n[docs]\n def minLength(self, font):\n """\n Calculate the minimum length that is needed to draw the scale\n\n :param QFont font: Font used for painting the labels\n :return: Minimum length that is needed to draw the scale\n\n .. seealso::\n\n :py:meth:`extent()`\n """\n startDist, endDist = self.getBorderDistHint(font)\n sd = self.scaleDiv()\n minorCount = len(sd.ticks(QwtScaleDiv.MinorTick)) + len(\n sd.ticks(QwtScaleDiv.MediumTick)\n )\n majorCount = len(sd.ticks(QwtScaleDiv.MajorTick))\n lengthForLabels = 0\n if self.hasComponent(QwtAbstractScaleDraw.Labels):\n lengthForLabels = self.minLabelDist(font) * majorCount\n lengthForTicks = 0\n if self.hasComponent(QwtAbstractScaleDraw.Ticks):\n pw = max([1, self.penWidth()])\n lengthForTicks = math.ceil((majorCount + minorCount) * (pw + 1.0))\n return startDist + endDist + max([lengthForLabels, lengthForTicks])
\n\n\n
\n[docs]\n def labelPosition(self, value):\n """\n Find the position, where to paint a label\n\n The position has a distance that depends on the length of the ticks\n in direction of the `alignment()`.\n\n :param float value: Value\n :return: Position, where to paint a label\n """\n tval = self.scaleMap().transform(value)\n dist = self.spacing()\n if self.hasComponent(QwtAbstractScaleDraw.Backbone):\n dist += max([1, self.penWidth()])\n if self.hasComponent(QwtAbstractScaleDraw.Ticks):\n dist += self.tickLength(QwtScaleDiv.MajorTick)\n\n px = 0\n py = 0\n if self.alignment() == self.RightScale:\n px = self.__data.pos.x() + dist\n py = tval\n elif self.alignment() == self.LeftScale:\n px = self.__data.pos.x() - dist\n py = tval\n elif self.alignment() == self.BottomScale:\n px = tval\n py = self.__data.pos.y() + dist\n elif self.alignment() == self.TopScale:\n px = tval\n py = self.__data.pos.y() - dist\n\n return QPointF(px, py)
\n\n\n
\n[docs]\n def drawTick(self, painter, value, len_):\n """\n Draw a tick\n\n :param QPainter painter: Painter\n :param float value: Value of the tick\n :param float len: Length of the tick\n\n .. seealso::\n\n :py:meth:`drawBackbone()`, :py:meth:`drawLabel()`\n """\n if len_ <= 0:\n return\n pos = self.__data.pos\n tval = self.scaleMap().transform(value)\n pw = self.penWidth()\n a = 0\n if self.alignment() == self.LeftScale:\n x1 = pos.x() + a\n x2 = pos.x() + a - pw - len_\n painter.drawLine(QLineF(x1, tval, x2, tval))\n elif self.alignment() == self.RightScale:\n x1 = pos.x()\n x2 = pos.x() + pw + len_\n painter.drawLine(QLineF(x1, tval, x2, tval))\n elif self.alignment() == self.BottomScale:\n y1 = pos.y()\n y2 = pos.y() + pw + len_\n painter.drawLine(QLineF(tval, y1, tval, y2))\n elif self.alignment() == self.TopScale:\n y1 = pos.y() + a\n y2 = pos.y() - pw - len_ + a\n painter.drawLine(QLineF(tval, y1, tval, y2))
\n\n\n
\n[docs]\n def drawBackbone(self, painter):\n """\n Draws the baseline of the scale\n\n :param QPainter painter: Painter\n\n .. seealso::\n\n :py:meth:`drawTick()`, :py:meth:`drawLabel()`\n """\n pos = self.__data.pos\n len_ = self.__data.len\n off = 0.5 * self.penWidth()\n if self.alignment() == self.LeftScale:\n x = pos.x() - off\n painter.drawLine(QLineF(x, pos.y(), x, pos.y() + len_))\n elif self.alignment() == self.RightScale:\n x = pos.x() + off\n painter.drawLine(QLineF(x, pos.y(), x, pos.y() + len_))\n elif self.alignment() == self.TopScale:\n y = pos.y() - off\n painter.drawLine(QLineF(pos.x(), y, pos.x() + len_, y))\n elif self.alignment() == self.BottomScale:\n y = pos.y() + off\n painter.drawLine(QLineF(pos.x(), y, pos.x() + len_, y))
\n\n\n
\n[docs]\n def move(self, *args):\n """\n Move the position of the scale\n\n The meaning of the parameter pos depends on the alignment:\n\n * `QwtScaleDraw.LeftScale`:\n\n The origin is the topmost point of the backbone. The backbone is a\n vertical line. Scale marks and labels are drawn at the left of the\n backbone.\n\n * `QwtScaleDraw.RightScale`:\n\n The origin is the topmost point of the backbone. The backbone is a\n vertical line. Scale marks and labels are drawn at the right of\n the backbone.\n\n * `QwtScaleDraw.TopScale`:\n\n The origin is the leftmost point of the backbone. The backbone is\n a horizontal line. Scale marks and labels are drawn above the\n backbone.\n\n * `QwtScaleDraw.BottomScale`:\n\n The origin is the leftmost point of the backbone. The backbone is\n a horizontal line Scale marks and labels are drawn below the\n backbone.\n\n .. py:method:: move(x, y)\n :noindex:\n\n :param float x: X coordinate\n :param float y: Y coordinate\n\n .. py:method:: move(pos)\n :noindex:\n\n :param QPointF pos: position\n\n .. seealso::\n\n :py:meth:`pos()`, :py:meth:`setLength()`\n """\n if len(args) == 2:\n x, y = args\n self.move(QPointF(x, y))\n elif len(args) == 1:\n (pos,) = args\n self.__data.pos = pos\n self.updateMap()\n else:\n raise TypeError(\n "%s().move() takes 1 or 2 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def pos(self):\n """\n :return: Origin of the scale\n\n .. seealso::\n\n :py:meth:`pos()`, :py:meth:`setLength()`\n """\n return self.__data.pos
\n\n\n
\n[docs]\n def setLength(self, length):\n """\n Set the length of the backbone.\n\n The length doesn't include the space needed for overlapping labels.\n\n :param float length: Length of the backbone\n\n .. seealso::\n\n :py:meth:`move()`, :py:meth:`minLabelDist()`\n """\n if length >= 0 and length < 10:\n length = 10\n if length < 0 and length > -10:\n length = -10\n self.__data.len = length\n self.updateMap()
\n\n\n
\n[docs]\n def length(self):\n """\n :return: the length of the backbone\n\n .. seealso::\n\n :py:meth:`setLength()`, :py:meth:`pos()`\n """\n return self.__data.len
\n\n\n
\n[docs]\n def drawLabel(self, painter, value):\n """\n Draws the label for a major scale tick\n\n :param QPainter painter: Painter\n :param float value: Value\n\n .. seealso::\n\n :py:meth:`drawTick()`, :py:meth:`drawBackbone()`,\n :py:meth:`boundingLabelRect()`\n """\n lbl, labelSize = self.tickLabel(painter.font(), value)\n if lbl is None or lbl.isEmpty():\n return\n pos = self.labelPosition(value)\n transform = self.labelTransformation(pos, labelSize)\n painter.save()\n painter.setWorldTransform(transform, True)\n lbl.draw(painter, QRect(QPoint(0, 0), labelSize.toSize()))\n painter.restore()
\n\n\n
\n[docs]\n def boundingLabelRect(self, font, value):\n """\n Find the bounding rectangle for the label.\n\n The coordinates of the rectangle are absolute (calculated from\n `pos()`) in direction of the tick.\n\n :param QFont font: Font used for painting\n :param float value: Value\n :return: Bounding rectangle\n\n .. seealso::\n\n :py:meth:`labelRect()`\n """\n lbl, labelSize = self.tickLabel(font, value)\n if lbl.isEmpty():\n return QRect()\n pos = self.labelPosition(value)\n transform = self.labelTransformation(pos, labelSize)\n return transform.mapRect(QRect(QPoint(0, 0), labelSize.toSize()))
\n\n\n
\n[docs]\n def labelTransformation(self, pos, size):\n """\n Calculate the transformation that is needed to paint a label\n depending on its alignment and rotation.\n\n :param QPointF pos: Position where to paint the label\n :param QSizeF size: Size of the label\n :return: Transformation matrix\n\n .. seealso::\n\n :py:meth:`setLabelAlignment()`, :py:meth:`setLabelRotation()`\n """\n transform = QTransform()\n transform.translate(pos.x(), pos.y())\n transform.rotate(self.labelRotation())\n\n flags = self.labelAlignment()\n if flags == 0:\n flags = self.Flags[self.alignment()]\n\n if flags & Qt.AlignLeft:\n x = -size.width()\n elif flags & Qt.AlignRight:\n x = 0.0\n else:\n x = -(0.5 * size.width())\n\n if flags & Qt.AlignTop:\n y = -size.height()\n elif flags & Qt.AlignBottom:\n y = 0\n else:\n y = -(0.5 * size.height())\n\n transform.translate(x, y)\n\n return transform
\n\n\n
\n[docs]\n def labelRect(self, font, value):\n """\n Find the bounding rectangle for the label. The coordinates of\n the rectangle are relative to spacing + tick length from the backbone\n in direction of the tick.\n\n :param QFont font: Font used for painting\n :param float value: Value\n :return: Bounding rectangle that is needed to draw a label\n """\n lbl, labelSize = self.tickLabel(font, value)\n if not lbl or lbl.isEmpty():\n return QRectF(0.0, 0.0, 0.0, 0.0)\n pos = self.labelPosition(value)\n transform = self.labelTransformation(pos, labelSize)\n br = transform.mapRect(QRectF(QPointF(0, 0), labelSize))\n br.translate(-pos.x(), -pos.y())\n return br
\n\n\n
\n[docs]\n def labelSize(self, font, value):\n """\n Calculate the size that is needed to draw a label\n\n :param QFont font: Label font\n :param float value: Value\n :return: Size that is needed to draw a label\n """\n return self.labelRect(font, value).size()
\n\n\n
\n[docs]\n def setLabelRotation(self, rotation):\n """\n Rotate all labels.\n\n When changing the rotation, it might be necessary to\n adjust the label flags too. Finding a useful combination is\n often the result of try and error.\n\n :param float rotation: Angle in degrees. When changing the label rotation, the\n label flags often needs to be adjusted too.\n\n .. seealso::\n\n :py:meth:`setLabelAlignment()`, :py:meth:`labelRotation()`,\n :py:meth:`labelAlignment()`\n """\n self.__data.labelRotation = rotation
\n\n\n
\n[docs]\n def labelRotation(self):\n """\n :return: the label rotation\n\n .. seealso::\n\n :py:meth:`setLabelRotation()`, :py:meth:`labelAlignment()`\n """\n return self.__data.labelRotation
\n\n\n
\n[docs]\n def setLabelAlignment(self, alignment):\n """\n Change the label flags\n\n Labels are aligned to the point tick length + spacing away from the\n backbone.\n\n The alignment is relative to the orientation of the label text.\n In case of an flags of 0 the label will be aligned\n depending on the orientation of the scale:\n\n * `QwtScaleDraw.TopScale`: `Qt.AlignHCenter | Qt.AlignTop`\n * `QwtScaleDraw.BottomScale`: `Qt.AlignHCenter | Qt.AlignBottom`\n * `QwtScaleDraw.LeftScale`: `Qt.AlignLeft | Qt.AlignVCenter`\n * `QwtScaleDraw.RightScale`: `Qt.AlignRight | Qt.AlignVCenter`\n\n Changing the alignment is often necessary for rotated labels.\n\n :param Qt.Alignment alignment Or'd `Qt.AlignmentFlags`\n\n .. seealso::\n\n :py:meth:`setLabelRotation()`, :py:meth:`labelRotation()`,\n :py:meth:`labelAlignment()`\n\n .. warning::\n\n The various alignments might be confusing. The alignment of the\n label is not the alignment of the scale and is not the alignment\n of the flags (`QwtText.flags()`) returned from\n `QwtAbstractScaleDraw.label()`.\n """\n self.__data.labelAlignment = alignment
\n\n\n
\n[docs]\n def labelAlignment(self):\n """\n :return: the label flags\n\n .. seealso::\n\n :py:meth:`setLabelAlignment()`, :py:meth:`labelRotation()`\n """\n return self.__data.labelAlignment
\n\n\n
\n[docs]\n def setLabelAutoSize(self, state):\n """\n Set label automatic size option state\n\n When drawing text labels, if automatic size mode is enabled (default\n behavior), the axes are drawn in order to optimize layout space and\n depends on text label individual sizes. Otherwise, width and height\n won't change when axis range is changing.\n\n This option is not implemented in Qwt C++ library: this may be used\n either as an optimization (updating plot layout is faster when this\n option is enabled) or as an appearance preference (with Qwt default\n behavior, the size of axes may change when zooming and/or panning\n plot canvas which in some cases may not be desired).\n\n :param bool state: On/off\n\n .. seealso::\n\n :py:meth:`labelAutoSize()`\n """\n self.__data.labelAutoSize = state
\n\n\n
\n[docs]\n def labelAutoSize(self):\n """\n :return: True if automatic size option is enabled for labels\n\n .. seealso::\n\n :py:meth:`setLabelAutoSize()`\n """\n return self.__data.labelAutoSize
\n\n\n def _get_max_label_size(self, font):\n key = (font.toString(), self.labelRotation())\n size = self._max_label_sizes.get(key)\n if size is None:\n size = self.labelSize(font, -999999) # -999999 is the biggest label\n size.setWidth(math.ceil(size.width()))\n size.setHeight(math.ceil(size.height()))\n return self._max_label_sizes.setdefault(key, size)\n else:\n return size\n\n
\n[docs]\n def maxLabelWidth(self, font):\n """\n :param QFont font: Font\n :return: the maximum width of a label\n """\n ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick)\n if not ticks:\n return 0\n if self.labelAutoSize():\n vmax = sorted(\n [v for v in ticks if self.scaleDiv().contains(v)],\n key=lambda obj: len("%g" % obj),\n )[-1]\n return math.ceil(self.labelSize(font, vmax).width())\n ## Original implementation (closer to Qwt's C++ code, but slower):\n # return math.ceil(max([self.labelSize(font, v).width()\n # for v in ticks if self.scaleDiv().contains(v)]))\n else:\n return self._get_max_label_size(font).width()
\n\n\n
\n[docs]\n def maxLabelHeight(self, font):\n """\n :param QFont font: Font\n :return: the maximum height of a label\n """\n ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick)\n if not ticks:\n return 0\n if self.labelAutoSize():\n vmax = sorted(\n [v for v in ticks if self.scaleDiv().contains(v)],\n key=lambda obj: len("%g" % obj),\n )[-1]\n return math.ceil(self.labelSize(font, vmax).height())\n ## Original implementation (closer to Qwt's C++ code, but slower):\n # return math.ceil(max([self.labelSize(font, v).height()\n # for v in ticks if self.scaleDiv().contains(v)]))\n else:\n return self._get_max_label_size(font).height()
\n\n\n def updateMap(self):\n pos = self.__data.pos\n len_ = self.__data.len\n sm = self.scaleMap()\n if self.orientation() == Qt.Vertical:\n sm.setPaintInterval(pos.y() + len_, pos.y())\n else:\n sm.setPaintInterval(pos.x(), pos.x() + len_)
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d68934c0>, 'js_tag': .js_tag at 0x7fc7d68932e0>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/scale_draw', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/scale_draw', 'current_page_name': '_modules/qwt/scale_draw', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ca0cc0>, 'hasdoc': .hasdoc at 0x7f3d39ca2700>, 'toctree': . at 0x7f3d39ca2a20>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.scale_draw', 'body': '

Source code for qwt.scale_draw

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtAbstractScaleDraw\n--------------------\n\n.. autoclass:: QwtAbstractScaleDraw\n   :members:\n\nQwtScaleDraw\n------------\n\n.. autoclass:: QwtScaleDraw\n   :members:\n"""\n\nimport math\n\nfrom qtpy.QtCore import (\n    QLineF,\n    QObject,\n    QPoint,\n    QPointF,\n    QRect,\n    QRectF,\n    Qt,\n    qFuzzyCompare,\n)\nfrom qtpy.QtGui import QFontMetrics, QPalette, QTransform\n\nfrom qwt._math import qwtRadians\nfrom qwt.scale_div import QwtScaleDiv\nfrom qwt.scale_map import QwtScaleMap\nfrom qwt.text import QwtText\n\n\nclass QwtAbstractScaleDraw_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.spacing = 4\n        self.penWidth = 0\n        self.minExtent = 0.0\n\n        self.components = (\n            QwtAbstractScaleDraw.Backbone\n            | QwtAbstractScaleDraw.Ticks\n            | QwtAbstractScaleDraw.Labels\n        )\n        self.tick_length = {\n            QwtScaleDiv.MinorTick: 4.0,\n            QwtScaleDiv.MediumTick: 6.0,\n            QwtScaleDiv.MajorTick: 8.0,\n        }\n        self.tick_lighter_factor = {\n            QwtScaleDiv.MinorTick: 100,\n            QwtScaleDiv.MediumTick: 100,\n            QwtScaleDiv.MajorTick: 100,\n        }\n\n        self.map = QwtScaleMap()\n        self.scaleDiv = QwtScaleDiv()\n\n        self.labelCache = {}\n\n\n
\n[docs]\nclass QwtAbstractScaleDraw(object):\n """\n A abstract base class for drawing scales\n\n `QwtAbstractScaleDraw` can be used to draw linear or logarithmic scales.\n\n After a scale division has been specified as a `QwtScaleDiv` object\n using `setScaleDiv()`, the scale can be drawn with the `draw()` member.\n\n Scale components:\n\n * `QwtAbstractScaleDraw.Backbone`: Backbone = the line where the ticks are located\n * `QwtAbstractScaleDraw.Ticks`: Ticks\n * `QwtAbstractScaleDraw.Labels`: Labels\n\n .. py:class:: QwtAbstractScaleDraw()\n\n The range of the scale is initialized to [0, 100],\n The spacing (distance between ticks and labels) is\n set to 4, the tick lengths are set to 4,6 and 8 pixels\n """\n\n # enum ScaleComponent\n Backbone = 0x01\n Ticks = 0x02\n Labels = 0x04\n\n def __init__(self):\n self.__data = QwtAbstractScaleDraw_PrivateData()\n\n
\n[docs]\n def extent(self, font):\n """\n Calculate the extent\n\n The extent is the distance from the baseline to the outermost\n pixel of the scale draw in opposite to its orientation.\n It is at least minimumExtent() pixels.\n\n :param QFont font: Font used for drawing the tick labels\n :return: Number of pixels\n\n .. seealso::\n\n :py:meth:`setMinimumExtent()`, :py:meth:`minimumExtent()`\n """\n return 0.0
\n\n\n
\n[docs]\n def drawTick(self, painter, value, len_):\n """\n Draw a tick\n\n :param QPainter painter: Painter\n :param float value: Value of the tick\n :param float len: Length of the tick\n\n .. seealso::\n\n :py:meth:`drawBackbone()`, :py:meth:`drawLabel()`\n """\n pass
\n\n\n
\n[docs]\n def drawBackbone(self, painter):\n """\n Draws the baseline of the scale\n\n :param QPainter painter: Painter\n\n .. seealso::\n\n :py:meth:`drawTick()`, :py:meth:`drawLabel()`\n """\n pass
\n\n\n
\n[docs]\n def drawLabel(self, painter, value):\n """\n Draws the label for a major scale tick\n\n :param QPainter painter: Painter\n :param float value: Value\n\n .. seealso::\n\n :py:meth:`drawTick()`, :py:meth:`drawBackbone()`\n """\n pass
\n\n\n
\n[docs]\n def enableComponent(self, component, enable):\n """\n En/Disable a component of the scale\n\n :param int component: Scale component\n :param bool enable: On/Off\n\n .. seealso::\n\n :py:meth:`hasComponent()`\n """\n if enable:\n self.__data.components |= component\n else:\n self.__data.components &= ~component
\n\n\n
\n[docs]\n def hasComponent(self, component):\n """\n Check if a component is enabled\n\n :param int component: Component type\n :return: True, when component is enabled\n\n .. seealso::\n\n :py:meth:`enableComponent()`\n """\n return self.__data.components & component
\n\n\n
\n[docs]\n def setScaleDiv(self, scaleDiv):\n """\n Change the scale division\n\n :param qwt.scale_div.QwtScaleDiv scaleDiv: New scale division\n """\n self.__data.scaleDiv = scaleDiv\n self.__data.map.setScaleInterval(scaleDiv.lowerBound(), scaleDiv.upperBound())\n self.invalidateCache()
\n\n\n
\n[docs]\n def setTransformation(self, transformation):\n """\n Change the transformation of the scale\n\n :param qwt.transform.QwtTransform transformation: New scale transformation\n """\n self.__data.map.setTransformation(transformation)
\n\n\n
\n[docs]\n def scaleMap(self):\n """\n :return: Map how to translate between scale and pixel values\n """\n return self.__data.map
\n\n\n
\n[docs]\n def scaleDiv(self):\n """\n :return: scale division\n """\n return self.__data.scaleDiv
\n\n\n
\n[docs]\n def setPenWidth(self, width):\n """\n Specify the width of the scale pen\n\n :param int width: Pen width\n\n .. seealso::\n\n :py:meth:`penWidth()`\n """\n if width < 0:\n width = 0\n if width != self.__data.penWidth:\n self.__data.penWidth = width
\n\n\n
\n[docs]\n def penWidth(self):\n """\n :return: Scale pen width\n\n .. seealso::\n\n :py:meth:`setPenWidth()`\n """\n return self.__data.penWidth
\n\n\n
\n[docs]\n def draw(self, painter, palette):\n """\n Draw the scale\n\n :param QPainter painter: The painter\n :param QPalette palette: Palette, text color is used for the labels,\n foreground color for ticks and backbone\n """\n painter.save()\n\n pen = painter.pen()\n pen.setWidth(self.__data.penWidth)\n pen.setCosmetic(False)\n painter.setPen(pen)\n\n if self.hasComponent(QwtAbstractScaleDraw.Labels):\n painter.save()\n painter.setPen(palette.color(QPalette.Text))\n majorTicks = self.__data.scaleDiv.ticks(QwtScaleDiv.MajorTick)\n for v in majorTicks:\n if self.__data.scaleDiv.contains(v):\n self.drawLabel(painter, v)\n painter.restore()\n\n if self.hasComponent(QwtAbstractScaleDraw.Ticks):\n painter.save()\n pen = painter.pen()\n pen.setCapStyle(Qt.FlatCap)\n default_color = palette.color(QPalette.WindowText)\n for tickType in range(QwtScaleDiv.NTickTypes):\n tickLen = self.__data.tick_length[tickType]\n if tickLen <= 0.0:\n continue\n factor = self.__data.tick_lighter_factor[tickType]\n pen.setColor(default_color.lighter(factor))\n painter.setPen(pen)\n ticks = self.__data.scaleDiv.ticks(tickType)\n for v in ticks:\n if self.__data.scaleDiv.contains(v):\n self.drawTick(painter, v, tickLen)\n painter.restore()\n\n if self.hasComponent(QwtAbstractScaleDraw.Backbone):\n painter.save()\n pen = painter.pen()\n pen.setColor(palette.color(QPalette.WindowText))\n pen.setCapStyle(Qt.FlatCap)\n painter.setPen(pen)\n self.drawBackbone(painter)\n painter.restore()\n\n painter.restore()
\n\n\n
\n[docs]\n def setSpacing(self, spacing):\n """\n Set the spacing between tick and labels\n\n The spacing is the distance between ticks and labels.\n The default spacing is 4 pixels.\n\n :param float spacing: Spacing\n\n .. seealso::\n\n :py:meth:`spacing()`\n """\n if spacing < 0:\n spacing = 0\n self.__data.spacing = spacing
\n\n\n
\n[docs]\n def spacing(self):\n """\n Get the spacing\n\n The spacing is the distance between ticks and labels.\n The default spacing is 4 pixels.\n\n :return: Spacing\n\n .. seealso::\n\n :py:meth:`setSpacing()`\n """\n return self.__data.spacing
\n\n\n
\n[docs]\n def setMinimumExtent(self, minExtent):\n """\n Set a minimum for the extent\n\n The extent is calculated from the components of the\n scale draw. In situations, where the labels are\n changing and the layout depends on the extent (f.e scrolling\n a scale), setting an upper limit as minimum extent will\n avoid jumps of the layout.\n\n :param float minExtent: Minimum extent\n\n .. seealso::\n\n :py:meth:`extent()`, :py:meth:`minimumExtent()`\n """\n if minExtent < 0.0:\n minExtent = 0.0\n self.__data.minExtent = minExtent
\n\n\n
\n[docs]\n def minimumExtent(self):\n """\n Get the minimum extent\n\n :return: Minimum extent\n\n .. seealso::\n\n :py:meth:`extent()`, :py:meth:`setMinimumExtent()`\n """\n return self.__data.minExtent
\n\n\n
\n[docs]\n def setTickLength(self, tick_type, length):\n """\n Set the length of the ticks\n\n :param int tick_type: Tick type\n :param float length: New length\n\n .. warning::\n\n the length is limited to [0..1000]\n """\n if tick_type not in self.__data.tick_length:\n raise ValueError("Invalid tick type: %r" % tick_type)\n self.__data.tick_length[tick_type] = min([1000.0, max([0.0, length])])
\n\n\n
\n[docs]\n def tickLength(self, tick_type):\n """\n :param int tick_type: Tick type\n :return: Length of the ticks\n\n .. seealso::\n\n :py:meth:`setTickLength()`, :py:meth:`maxTickLength()`\n """\n if tick_type not in self.__data.tick_length:\n raise ValueError("Invalid tick type: %r" % tick_type)\n return self.__data.tick_length[tick_type]
\n\n\n
\n[docs]\n def maxTickLength(self):\n """\n :return: Length of the longest tick\n\n Useful for layout calculations\n\n .. seealso::\n\n :py:meth:`tickLength()`, :py:meth:`setTickLength()`\n """\n return max([0.0] + list(self.__data.tick_length.values()))
\n\n\n
\n[docs]\n def setTickLighterFactor(self, tick_type, factor):\n """\n Set the color lighter factor of the ticks\n\n :param int tick_type: Tick type\n :param int factor: New factor\n """\n if tick_type not in self.__data.tick_length:\n raise ValueError("Invalid tick type: %r" % tick_type)\n self.__data.tick_lighter_factor[tick_type] = min([0, factor])
\n\n\n
\n[docs]\n def tickLighterFactor(self, tick_type):\n """\n :param int tick_type: Tick type\n :return: Color lighter factor of the ticks\n\n .. seealso::\n\n :py:meth:`setTickLighterFactor()`\n """\n if tick_type not in self.__data.tick_length:\n raise ValueError("Invalid tick type: %r" % tick_type)\n return self.__data.tick_lighter_factor[tick_type]
\n\n\n
\n[docs]\n def label(self, value):\n """\n Convert a value into its representing label\n\n The value is converted to a plain text using\n `QLocale().toString(value)`.\n This method is often overloaded by applications to have individual\n labels.\n\n :param float value: Value\n :return: Label string\n """\n # Adding a space before the value is a way to add a margin on the left\n # of the scale. This helps to avoid truncating the first digit of the\n # tick labels while keeping a tight layout.\n return " %g" % value
\n\n\n
\n[docs]\n def tickLabel(self, font, value):\n """\n Convert a value into its representing label and cache it.\n\n The conversion between value and label is called very often\n in the layout and painting code. Unfortunately the\n calculation of the label sizes might be slow (really slow\n for rich text in Qt4), so it's necessary to cache the labels.\n\n :param QFont font: Font\n :param float value: Value\n :return: Tuple (tick label, text size)\n """\n lbl = self.__data.labelCache.get(value)\n if lbl is None:\n lbl = QwtText(self.label(value))\n lbl.setRenderFlags(0)\n lbl.setLayoutAttribute(QwtText.MinimumLayout)\n self.__data.labelCache[value] = lbl\n return lbl, lbl.textSize(font)
\n\n\n
\n[docs]\n def invalidateCache(self):\n """\n Invalidate the cache used by `tickLabel()`\n\n The cache is invalidated, when a new `QwtScaleDiv` is set. If\n the labels need to be changed. while the same `QwtScaleDiv` is set,\n `invalidateCache()` needs to be called manually.\n """\n self.__data.labelCache.clear()
\n
\n\n\n\nclass QwtScaleDraw_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.len = 0\n self.alignment = QwtScaleDraw.BottomScale\n self.labelAlignment = 0\n self.labelRotation = 0.0\n self.labelAutoSize = True\n self.pos = QPointF()\n\n\n
\n[docs]\nclass QwtScaleDraw(QwtAbstractScaleDraw):\n """\n A class for drawing scales\n\n QwtScaleDraw can be used to draw linear or logarithmic scales.\n A scale has a position, an alignment and a length, which can be specified .\n The labels can be rotated and aligned\n to the ticks using `setLabelRotation()` and `setLabelAlignment()`.\n\n After a scale division has been specified as a QwtScaleDiv object\n using `QwtAbstractScaleDraw.setScaleDiv(scaleDiv)`,\n the scale can be drawn with the `QwtAbstractScaleDraw.draw()` member.\n\n Alignment of the scale draw:\n\n * `QwtScaleDraw.BottomScale`: The scale is below\n * `QwtScaleDraw.TopScale`: The scale is above\n * `QwtScaleDraw.LeftScale`: The scale is left\n * `QwtScaleDraw.RightScale`: The scale is right\n\n .. py:class:: QwtScaleDraw()\n\n The range of the scale is initialized to [0, 100],\n The position is at (0, 0) with a length of 100.\n The orientation is `QwtAbstractScaleDraw.Bottom`.\n """\n\n # enum Alignment\n BottomScale, TopScale, LeftScale, RightScale = list(range(4))\n Flags = (\n Qt.AlignHCenter | Qt.AlignBottom, # BottomScale\n Qt.AlignHCenter | Qt.AlignTop, # TopScale\n Qt.AlignLeft | Qt.AlignVCenter, # LeftScale\n Qt.AlignRight | Qt.AlignVCenter, # RightScale\n )\n\n def __init__(self):\n QwtAbstractScaleDraw.__init__(self)\n self.__data = QwtScaleDraw_PrivateData()\n self.setLength(100)\n self._max_label_sizes = {}\n\n
\n[docs]\n def alignment(self):\n """\n :return: Alignment of the scale\n\n .. seealso::\n\n :py:meth:`setAlignment()`\n """\n return self.__data.alignment
\n\n\n
\n[docs]\n def setAlignment(self, align):\n """\n Set the alignment of the scale\n\n :param int align: Alignment of the scale\n\n Alignment of the scale draw:\n\n * `QwtScaleDraw.BottomScale`: The scale is below\n * `QwtScaleDraw.TopScale`: The scale is above\n * `QwtScaleDraw.LeftScale`: The scale is left\n * `QwtScaleDraw.RightScale`: The scale is right\n\n The default alignment is `QwtScaleDraw.BottomScale`\n\n .. seealso::\n\n :py:meth:`alignment()`\n """\n self.__data.alignment = align
\n\n\n
\n[docs]\n def orientation(self):\n """\n Return the orientation\n\n TopScale, BottomScale are horizontal (`Qt.Horizontal`) scales,\n LeftScale, RightScale are vertical (`Qt.Vertical`) scales.\n\n :return: Orientation of the scale\n\n .. seealso::\n\n :py:meth:`alignment()`\n """\n if self.__data.alignment in (self.TopScale, self.BottomScale):\n return Qt.Horizontal\n elif self.__data.alignment in (self.LeftScale, self.RightScale):\n return Qt.Vertical
\n\n\n
\n[docs]\n def getBorderDistHint(self, font):\n """\n Determine the minimum border distance\n\n This member function returns the minimum space\n needed to draw the mark labels at the scale's endpoints.\n\n :param QFont font: Font\n :return: tuple `(start, end)`\n\n Returned tuple:\n\n * start: Start border distance\n * end: End border distance\n """\n start, end = 0, 1.0\n\n if not self.hasComponent(QwtAbstractScaleDraw.Labels):\n return start, end\n\n ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick)\n if len(ticks) == 0:\n return start, end\n\n minTick = ticks[0]\n minPos = self.scaleMap().transform(minTick)\n maxTick = minTick\n maxPos = minPos\n\n for tick in ticks:\n tickPos = self.scaleMap().transform(tick)\n if tickPos < minPos:\n minTick = tick\n minPos = tickPos\n if tickPos > self.scaleMap().transform(maxTick):\n maxTick = tick\n maxPos = tickPos\n\n s = 0.0\n e = 0.0\n if self.orientation() == Qt.Vertical:\n s = -self.labelRect(font, minTick).top()\n s -= abs(minPos - round(self.scaleMap().p2()))\n\n e = self.labelRect(font, maxTick).bottom()\n e -= abs(maxPos - self.scaleMap().p1())\n else:\n s = -self.labelRect(font, minTick).left()\n s -= abs(minPos - self.scaleMap().p1())\n\n e = self.labelRect(font, maxTick).right()\n e -= abs(maxPos - self.scaleMap().p2())\n\n return max(math.ceil(s), 0), max(math.ceil(e), 0)
\n\n\n
\n[docs]\n def minLabelDist(self, font):\n """\n Determine the minimum distance between two labels, that is necessary\n that the texts don't overlap.\n\n :param QFont font: Font\n :return: The maximum width of a label\n\n .. seealso::\n\n :py:meth:`getBorderDistHint()`\n """\n if not self.hasComponent(QwtAbstractScaleDraw.Labels):\n return 0\n\n ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick)\n if not ticks:\n return 0\n\n fm = QFontMetrics(font)\n vertical = self.orientation() == Qt.Vertical\n\n bRect1 = QRectF()\n bRect2 = self.labelRect(font, ticks[0])\n if vertical:\n bRect2.setRect(-bRect2.bottom(), 0.0, bRect2.height(), bRect2.width())\n\n maxDist = 0.0\n\n for tick in ticks:\n bRect1 = bRect2\n bRect2 = self.labelRect(font, tick)\n if vertical:\n bRect2.setRect(-bRect2.bottom(), 0.0, bRect2.height(), bRect2.width())\n\n dist = fm.leading()\n if bRect1.right() > 0:\n dist += bRect1.right()\n if bRect2.left() < 0:\n dist += -bRect2.left()\n\n if dist > maxDist:\n maxDist = dist\n\n angle = qwtRadians(self.labelRotation())\n if vertical:\n angle += math.pi / 2\n\n sinA = math.sin(angle)\n if qFuzzyCompare(sinA + 1.0, 1.0):\n return math.ceil(maxDist)\n\n fmHeight = fm.ascent() - 2\n\n labelDist = fmHeight / math.sin(angle) * math.cos(angle)\n if labelDist < 0:\n labelDist = -labelDist\n\n if labelDist > maxDist:\n labelDist = maxDist\n\n if labelDist < fmHeight:\n labelDist = fmHeight\n\n return math.ceil(labelDist)
\n\n\n
\n[docs]\n def extent(self, font):\n """\n Calculate the width/height that is needed for a\n vertical/horizontal scale.\n\n The extent is calculated from the pen width of the backbone,\n the major tick length, the spacing and the maximum width/height\n of the labels.\n\n :param QFont font: Font used for painting the labels\n :return: Extent\n\n .. seealso::\n\n :py:meth:`minLength()`\n """\n d = 0.0\n if self.hasComponent(QwtAbstractScaleDraw.Labels):\n if self.orientation() == Qt.Vertical:\n d = self.maxLabelWidth(font)\n else:\n d = self.maxLabelHeight(font)\n if d > 0:\n d += self.spacing()\n if self.hasComponent(QwtAbstractScaleDraw.Ticks):\n d += self.maxTickLength()\n if self.hasComponent(QwtAbstractScaleDraw.Backbone):\n pw = max([1, self.penWidth()])\n d += pw\n return max([d, self.minimumExtent()])
\n\n\n
\n[docs]\n def minLength(self, font):\n """\n Calculate the minimum length that is needed to draw the scale\n\n :param QFont font: Font used for painting the labels\n :return: Minimum length that is needed to draw the scale\n\n .. seealso::\n\n :py:meth:`extent()`\n """\n startDist, endDist = self.getBorderDistHint(font)\n sd = self.scaleDiv()\n minorCount = len(sd.ticks(QwtScaleDiv.MinorTick)) + len(\n sd.ticks(QwtScaleDiv.MediumTick)\n )\n majorCount = len(sd.ticks(QwtScaleDiv.MajorTick))\n lengthForLabels = 0\n if self.hasComponent(QwtAbstractScaleDraw.Labels):\n lengthForLabels = self.minLabelDist(font) * majorCount\n lengthForTicks = 0\n if self.hasComponent(QwtAbstractScaleDraw.Ticks):\n pw = max([1, self.penWidth()])\n lengthForTicks = math.ceil((majorCount + minorCount) * (pw + 1.0))\n return startDist + endDist + max([lengthForLabels, lengthForTicks])
\n\n\n
\n[docs]\n def labelPosition(self, value):\n """\n Find the position, where to paint a label\n\n The position has a distance that depends on the length of the ticks\n in direction of the `alignment()`.\n\n :param float value: Value\n :return: Position, where to paint a label\n """\n tval = self.scaleMap().transform(value)\n dist = self.spacing()\n if self.hasComponent(QwtAbstractScaleDraw.Backbone):\n dist += max([1, self.penWidth()])\n if self.hasComponent(QwtAbstractScaleDraw.Ticks):\n dist += self.tickLength(QwtScaleDiv.MajorTick)\n\n px = 0\n py = 0\n if self.alignment() == self.RightScale:\n px = self.__data.pos.x() + dist\n py = tval\n elif self.alignment() == self.LeftScale:\n px = self.__data.pos.x() - dist\n py = tval\n elif self.alignment() == self.BottomScale:\n px = tval\n py = self.__data.pos.y() + dist\n elif self.alignment() == self.TopScale:\n px = tval\n py = self.__data.pos.y() - dist\n\n return QPointF(px, py)
\n\n\n
\n[docs]\n def drawTick(self, painter, value, len_):\n """\n Draw a tick\n\n :param QPainter painter: Painter\n :param float value: Value of the tick\n :param float len: Length of the tick\n\n .. seealso::\n\n :py:meth:`drawBackbone()`, :py:meth:`drawLabel()`\n """\n if len_ <= 0:\n return\n pos = self.__data.pos\n tval = self.scaleMap().transform(value)\n pw = self.penWidth()\n a = 0\n if self.alignment() == self.LeftScale:\n x1 = pos.x() + a\n x2 = pos.x() + a - pw - len_\n painter.drawLine(QLineF(x1, tval, x2, tval))\n elif self.alignment() == self.RightScale:\n x1 = pos.x()\n x2 = pos.x() + pw + len_\n painter.drawLine(QLineF(x1, tval, x2, tval))\n elif self.alignment() == self.BottomScale:\n y1 = pos.y()\n y2 = pos.y() + pw + len_\n painter.drawLine(QLineF(tval, y1, tval, y2))\n elif self.alignment() == self.TopScale:\n y1 = pos.y() + a\n y2 = pos.y() - pw - len_ + a\n painter.drawLine(QLineF(tval, y1, tval, y2))
\n\n\n
\n[docs]\n def drawBackbone(self, painter):\n """\n Draws the baseline of the scale\n\n :param QPainter painter: Painter\n\n .. seealso::\n\n :py:meth:`drawTick()`, :py:meth:`drawLabel()`\n """\n pos = self.__data.pos\n len_ = self.__data.len\n off = 0.5 * self.penWidth()\n if self.alignment() == self.LeftScale:\n x = pos.x() - off\n painter.drawLine(QLineF(x, pos.y(), x, pos.y() + len_))\n elif self.alignment() == self.RightScale:\n x = pos.x() + off\n painter.drawLine(QLineF(x, pos.y(), x, pos.y() + len_))\n elif self.alignment() == self.TopScale:\n y = pos.y() - off\n painter.drawLine(QLineF(pos.x(), y, pos.x() + len_, y))\n elif self.alignment() == self.BottomScale:\n y = pos.y() + off\n painter.drawLine(QLineF(pos.x(), y, pos.x() + len_, y))
\n\n\n
\n[docs]\n def move(self, *args):\n """\n Move the position of the scale\n\n The meaning of the parameter pos depends on the alignment:\n\n * `QwtScaleDraw.LeftScale`:\n\n The origin is the topmost point of the backbone. The backbone is a\n vertical line. Scale marks and labels are drawn at the left of the\n backbone.\n\n * `QwtScaleDraw.RightScale`:\n\n The origin is the topmost point of the backbone. The backbone is a\n vertical line. Scale marks and labels are drawn at the right of\n the backbone.\n\n * `QwtScaleDraw.TopScale`:\n\n The origin is the leftmost point of the backbone. The backbone is\n a horizontal line. Scale marks and labels are drawn above the\n backbone.\n\n * `QwtScaleDraw.BottomScale`:\n\n The origin is the leftmost point of the backbone. The backbone is\n a horizontal line Scale marks and labels are drawn below the\n backbone.\n\n .. py:method:: move(x, y)\n :noindex:\n\n :param float x: X coordinate\n :param float y: Y coordinate\n\n .. py:method:: move(pos)\n :noindex:\n\n :param QPointF pos: position\n\n .. seealso::\n\n :py:meth:`pos()`, :py:meth:`setLength()`\n """\n if len(args) == 2:\n x, y = args\n self.move(QPointF(x, y))\n elif len(args) == 1:\n (pos,) = args\n self.__data.pos = pos\n self.updateMap()\n else:\n raise TypeError(\n "%s().move() takes 1 or 2 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def pos(self):\n """\n :return: Origin of the scale\n\n .. seealso::\n\n :py:meth:`pos()`, :py:meth:`setLength()`\n """\n return self.__data.pos
\n\n\n
\n[docs]\n def setLength(self, length):\n """\n Set the length of the backbone.\n\n The length doesn't include the space needed for overlapping labels.\n\n :param float length: Length of the backbone\n\n .. seealso::\n\n :py:meth:`move()`, :py:meth:`minLabelDist()`\n """\n if length >= 0 and length < 10:\n length = 10\n if length < 0 and length > -10:\n length = -10\n self.__data.len = length\n self.updateMap()
\n\n\n
\n[docs]\n def length(self):\n """\n :return: the length of the backbone\n\n .. seealso::\n\n :py:meth:`setLength()`, :py:meth:`pos()`\n """\n return self.__data.len
\n\n\n
\n[docs]\n def drawLabel(self, painter, value):\n """\n Draws the label for a major scale tick\n\n :param QPainter painter: Painter\n :param float value: Value\n\n .. seealso::\n\n :py:meth:`drawTick()`, :py:meth:`drawBackbone()`,\n :py:meth:`boundingLabelRect()`\n """\n lbl, labelSize = self.tickLabel(painter.font(), value)\n if lbl is None or lbl.isEmpty():\n return\n pos = self.labelPosition(value)\n transform = self.labelTransformation(pos, labelSize)\n painter.save()\n painter.setWorldTransform(transform, True)\n lbl.draw(painter, QRect(QPoint(0, 0), labelSize.toSize()))\n painter.restore()
\n\n\n
\n[docs]\n def boundingLabelRect(self, font, value):\n """\n Find the bounding rectangle for the label.\n\n The coordinates of the rectangle are absolute (calculated from\n `pos()`) in direction of the tick.\n\n :param QFont font: Font used for painting\n :param float value: Value\n :return: Bounding rectangle\n\n .. seealso::\n\n :py:meth:`labelRect()`\n """\n lbl, labelSize = self.tickLabel(font, value)\n if lbl.isEmpty():\n return QRect()\n pos = self.labelPosition(value)\n transform = self.labelTransformation(pos, labelSize)\n return transform.mapRect(QRect(QPoint(0, 0), labelSize.toSize()))
\n\n\n
\n[docs]\n def labelTransformation(self, pos, size):\n """\n Calculate the transformation that is needed to paint a label\n depending on its alignment and rotation.\n\n :param QPointF pos: Position where to paint the label\n :param QSizeF size: Size of the label\n :return: Transformation matrix\n\n .. seealso::\n\n :py:meth:`setLabelAlignment()`, :py:meth:`setLabelRotation()`\n """\n transform = QTransform()\n transform.translate(pos.x(), pos.y())\n transform.rotate(self.labelRotation())\n\n flags = self.labelAlignment()\n if flags == 0:\n flags = self.Flags[self.alignment()]\n\n if flags & Qt.AlignLeft:\n x = -size.width()\n elif flags & Qt.AlignRight:\n x = 0.0\n else:\n x = -(0.5 * size.width())\n\n if flags & Qt.AlignTop:\n y = -size.height()\n elif flags & Qt.AlignBottom:\n y = 0\n else:\n y = -(0.5 * size.height())\n\n transform.translate(x, y)\n\n return transform
\n\n\n
\n[docs]\n def labelRect(self, font, value):\n """\n Find the bounding rectangle for the label. The coordinates of\n the rectangle are relative to spacing + tick length from the backbone\n in direction of the tick.\n\n :param QFont font: Font used for painting\n :param float value: Value\n :return: Bounding rectangle that is needed to draw a label\n """\n lbl, labelSize = self.tickLabel(font, value)\n if not lbl or lbl.isEmpty():\n return QRectF(0.0, 0.0, 0.0, 0.0)\n pos = self.labelPosition(value)\n transform = self.labelTransformation(pos, labelSize)\n br = transform.mapRect(QRectF(QPointF(0, 0), labelSize))\n br.translate(-pos.x(), -pos.y())\n return br
\n\n\n
\n[docs]\n def labelSize(self, font, value):\n """\n Calculate the size that is needed to draw a label\n\n :param QFont font: Label font\n :param float value: Value\n :return: Size that is needed to draw a label\n """\n return self.labelRect(font, value).size()
\n\n\n
\n[docs]\n def setLabelRotation(self, rotation):\n """\n Rotate all labels.\n\n When changing the rotation, it might be necessary to\n adjust the label flags too. Finding a useful combination is\n often the result of try and error.\n\n :param float rotation: Angle in degrees. When changing the label rotation, the\n label flags often needs to be adjusted too.\n\n .. seealso::\n\n :py:meth:`setLabelAlignment()`, :py:meth:`labelRotation()`,\n :py:meth:`labelAlignment()`\n """\n self.__data.labelRotation = rotation
\n\n\n
\n[docs]\n def labelRotation(self):\n """\n :return: the label rotation\n\n .. seealso::\n\n :py:meth:`setLabelRotation()`, :py:meth:`labelAlignment()`\n """\n return self.__data.labelRotation
\n\n\n
\n[docs]\n def setLabelAlignment(self, alignment):\n """\n Change the label flags\n\n Labels are aligned to the point tick length + spacing away from the\n backbone.\n\n The alignment is relative to the orientation of the label text.\n In case of an flags of 0 the label will be aligned\n depending on the orientation of the scale:\n\n * `QwtScaleDraw.TopScale`: `Qt.AlignHCenter | Qt.AlignTop`\n * `QwtScaleDraw.BottomScale`: `Qt.AlignHCenter | Qt.AlignBottom`\n * `QwtScaleDraw.LeftScale`: `Qt.AlignLeft | Qt.AlignVCenter`\n * `QwtScaleDraw.RightScale`: `Qt.AlignRight | Qt.AlignVCenter`\n\n Changing the alignment is often necessary for rotated labels.\n\n :param Qt.Alignment alignment Or'd `Qt.AlignmentFlags`\n\n .. seealso::\n\n :py:meth:`setLabelRotation()`, :py:meth:`labelRotation()`,\n :py:meth:`labelAlignment()`\n\n .. warning::\n\n The various alignments might be confusing. The alignment of the\n label is not the alignment of the scale and is not the alignment\n of the flags (`QwtText.flags()`) returned from\n `QwtAbstractScaleDraw.label()`.\n """\n self.__data.labelAlignment = alignment
\n\n\n
\n[docs]\n def labelAlignment(self):\n """\n :return: the label flags\n\n .. seealso::\n\n :py:meth:`setLabelAlignment()`, :py:meth:`labelRotation()`\n """\n return self.__data.labelAlignment
\n\n\n
\n[docs]\n def setLabelAutoSize(self, state):\n """\n Set label automatic size option state\n\n When drawing text labels, if automatic size mode is enabled (default\n behavior), the axes are drawn in order to optimize layout space and\n depends on text label individual sizes. Otherwise, width and height\n won't change when axis range is changing.\n\n This option is not implemented in Qwt C++ library: this may be used\n either as an optimization (updating plot layout is faster when this\n option is enabled) or as an appearance preference (with Qwt default\n behavior, the size of axes may change when zooming and/or panning\n plot canvas which in some cases may not be desired).\n\n :param bool state: On/off\n\n .. seealso::\n\n :py:meth:`labelAutoSize()`\n """\n self.__data.labelAutoSize = state
\n\n\n
\n[docs]\n def labelAutoSize(self):\n """\n :return: True if automatic size option is enabled for labels\n\n .. seealso::\n\n :py:meth:`setLabelAutoSize()`\n """\n return self.__data.labelAutoSize
\n\n\n def _get_max_label_size(self, font):\n key = (font.toString(), self.labelRotation())\n size = self._max_label_sizes.get(key)\n if size is None:\n size = self.labelSize(font, -999999) # -999999 is the biggest label\n size.setWidth(math.ceil(size.width()))\n size.setHeight(math.ceil(size.height()))\n return self._max_label_sizes.setdefault(key, size)\n else:\n return size\n\n
\n[docs]\n def maxLabelWidth(self, font):\n """\n :param QFont font: Font\n :return: the maximum width of a label\n """\n ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick)\n if not ticks:\n return 0\n if self.labelAutoSize():\n vmax = sorted(\n [v for v in ticks if self.scaleDiv().contains(v)],\n key=lambda obj: len("%g" % obj),\n )[-1]\n return math.ceil(self.labelSize(font, vmax).width())\n ## Original implementation (closer to Qwt's C++ code, but slower):\n # return math.ceil(max([self.labelSize(font, v).width()\n # for v in ticks if self.scaleDiv().contains(v)]))\n else:\n return self._get_max_label_size(font).width()
\n\n\n
\n[docs]\n def maxLabelHeight(self, font):\n """\n :param QFont font: Font\n :return: the maximum height of a label\n """\n ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick)\n if not ticks:\n return 0\n if self.labelAutoSize():\n vmax = sorted(\n [v for v in ticks if self.scaleDiv().contains(v)],\n key=lambda obj: len("%g" % obj),\n )[-1]\n return math.ceil(self.labelSize(font, vmax).height())\n ## Original implementation (closer to Qwt's C++ code, but slower):\n # return math.ceil(max([self.labelSize(font, v).height()\n # for v in ticks if self.scaleDiv().contains(v)]))\n else:\n return self._get_max_label_size(font).height()
\n\n\n def updateMap(self):\n pos = self.__data.pos\n len_ = self.__data.len\n sm = self.scaleMap()\n if self.orientation() == Qt.Vertical:\n sm.setPaintInterval(pos.y() + len_, pos.y())\n else:\n sm.setPaintInterval(pos.x(), pos.x() + len_)
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39ca34c0>, 'js_tag': .js_tag at 0x7f3d39ca32e0>}, None) highlighting module code... [ 75%] qwt.scale_engine [app] emitting event: 'viewcode-find-source'('qwt.scale_engine',) -[app] emitting event: 'html-page-context'('_modules/qwt/scale_engine', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/scale_engine', 'current_page_name': '_modules/qwt/scale_engine', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6891940>, 'hasdoc': .hasdoc at 0x7fc7d68914e0>, 'toctree': . at 0x7fc7d68931a0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.scale_engine', 'body': '

Source code for qwt.scale_engine

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtScaleEngine\n--------------\n\n.. autoclass:: QwtScaleEngine\n   :members:\n\nQwtLinearScaleEngine\n--------------------\n\n.. autoclass:: QwtLinearScaleEngine\n   :members:\n\nQwtLogScaleEngine\n-----------------\n\n.. autoclass:: QwtLogScaleEngine\n   :members:\n"""\n\nimport math\nimport sys\n\nimport numpy as np\nfrom qtpy.QtCore import qFuzzyCompare\n\nfrom qwt._math import qwtFuzzyCompare\nfrom qwt.interval import QwtInterval\nfrom qwt.scale_div import QwtScaleDiv\nfrom qwt.transform import QwtLogTransform, QwtTransform\n\nDBL_MAX = sys.float_info.max\nLOG_MIN = 1.0e-100\nLOG_MAX = 1.0e100\n\n\ndef qwtLogInterval(base, interval):\n    return QwtInterval(\n        math.log(interval.minValue(), base), math.log(interval.maxValue(), base)\n    )\n\n\ndef qwtPowInterval(base, interval):\n    return QwtInterval(\n        math.pow(base, interval.minValue()), math.pow(base, interval.maxValue())\n    )\n\n\ndef qwtStepSize(intervalSize, maxSteps, base):\n    """this version often doesn't find the best ticks: f.e for 15: 5, 10"""\n    minStep = divideInterval(intervalSize, maxSteps, base)\n    if minStep != 0.0:\n        #  # ticks per interval\n        numTicks = math.ceil(abs(intervalSize / minStep)) - 1\n        #  Do the minor steps fit into the interval?\n        if (\n            qwtFuzzyCompare(\n                (numTicks + 1) * abs(minStep), abs(intervalSize), intervalSize\n            )\n            > 0\n        ):\n            #  The minor steps doesn't fit into the interval\n            return 0.5 * intervalSize\n    return minStep\n\n\nEPS = 1.0e-6\n\n\ndef ceilEps(value, intervalSize):\n    """\n    Ceil a value, relative to an interval\n\n    :param float value: Value to be ceiled\n    :param float intervalSize: Interval size\n    :return: Rounded value\n\n    .. seealso::\n\n        :py:func:`qwt.scale_engine.floorEps()`\n    """\n    eps = EPS * intervalSize\n    value = (value - eps) / intervalSize\n    return math.ceil(value) * intervalSize\n\n\ndef floorEps(value, intervalSize):\n    """\n    Floor a value, relative to an interval\n\n    :param float value: Value to be floored\n    :param float intervalSize: Interval size\n    :return: Rounded value\n\n    .. seealso::\n\n        :py:func:`qwt.scale_engine.ceilEps()`\n    """\n    eps = EPS * intervalSize\n    value = (value + eps) / intervalSize\n    return math.floor(value) * intervalSize\n\n\ndef divideEps(intervalSize, numSteps):\n    """\n    Divide an interval into steps\n\n    `stepSize = (intervalSize - intervalSize * 10**-6) / numSteps`\n\n    :param float intervalSize: Interval size\n    :param float numSteps: Number of steps\n    :return: Step size\n    """\n    if numSteps == 0.0 or intervalSize == 0.0:\n        return 0.0\n    return (intervalSize - (EPS * intervalSize)) / numSteps\n\n\ndef divideInterval(intervalSize, numSteps, base):\n    """\n    Calculate a step size for a given interval\n\n    :param float intervalSize: Interval size\n    :param float numSteps: Number of steps\n    :param int base: Base for the division (usually 10)\n    :return: Calculated step size\n    """\n    if numSteps <= 0:\n        return 0.0\n    v = divideEps(intervalSize, numSteps)\n    if v == 0.0:\n        return 0.0\n\n    lx = math.log(abs(v), base)\n    p = math.floor(lx)\n    fraction = math.pow(base, lx - p)\n    n = base\n    while n > 1 and fraction <= n // 2:\n        n //= 2\n\n    stepSize = n * math.pow(base, p)\n    if v < 0:\n        stepSize = -stepSize\n\n    return stepSize\n\n\nclass QwtScaleEngine_PrivateData(object):\n    def __init__(self):\n        self.attributes = QwtScaleEngine.NoAttribute\n        self.lowerMargin = 0.0\n        self.upperMargin = 0.0\n        self.referenceValue = 0.0\n        self.base = 10\n        self.transform = None  # QwtTransform\n\n\n
\n[docs]\nclass QwtScaleEngine(object):\n """\n Base class for scale engines.\n\n A scale engine tries to find "reasonable" ranges and step sizes\n for scales.\n\n The layout of the scale can be varied with `setAttribute()`.\n\n `PythonQwt` offers implementations for logarithmic and linear scales.\n\n Layout attributes:\n\n * `QwtScaleEngine.NoAttribute`: No attributes\n * `QwtScaleEngine.IncludeReference`: Build a scale which includes the\n `reference()` value\n * `QwtScaleEngine.Symmetric`: Build a scale which is symmetric to the\n `reference()` value\n * `QwtScaleEngine.Floating`: The endpoints of the scale are supposed to\n be equal the outmost included values plus the specified margins (see\n `setMargins()`). If this attribute is *not* set, the endpoints of the\n scale will be integer multiples of the step size.\n * `QwtScaleEngine.Inverted`: Turn the scale upside down\n """\n\n # enum Attribute\n NoAttribute = 0x00\n IncludeReference = 0x01\n Symmetric = 0x02\n Floating = 0x04\n Inverted = 0x08\n\n def __init__(self, base=10):\n self.__data = QwtScaleEngine_PrivateData()\n self.setBase(base)\n\n
\n[docs]\n def autoScale(self, maxNumSteps, x1, x2, stepSize):\n """\n Align and divide an interval\n\n :param int maxNumSteps: Max. number of steps\n :param float x1: First limit of the interval (In/Out)\n :param float x2: Second limit of the interval (In/Out)\n :param float stepSize: Step size\n :return: tuple (x1, x2, stepSize)\n """\n pass
\n\n\n
\n[docs]\n def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0):\n """\n Calculate a scale division\n\n :param float x1: First interval limit\n :param float x2: Second interval limit\n :param int maxMajorSteps: Maximum for the number of major steps\n :param int maxMinorSteps: Maximum number of minor steps\n :param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one\n :return: Calculated scale division\n """\n pass
\n\n\n
\n[docs]\n def setTransformation(self, transform):\n """\n Assign a transformation\n\n :param qwt.transform.QwtTransform transform: Transformation\n\n The transformation object is used as factory for clones\n that are returned by `transformation()`\n\n The scale engine takes ownership of the transformation.\n\n .. seealso::\n\n :py:meth:`QwtTransform.copy()`, :py:meth:`transformation()`\n """\n assert transform is None or isinstance(transform, QwtTransform)\n if transform != self.__data.transform:\n self.__data.transform = transform
\n\n\n
\n[docs]\n def transformation(self):\n """\n Create and return a clone of the transformation\n of the engine. When the engine has no special transformation\n None is returned, indicating no transformation.\n\n :return: A clone of the transfomation\n\n .. seealso::\n\n :py:meth:`setTransformation()`\n """\n if self.__data.transform:\n return self.__data.transform.copy()
\n\n\n
\n[docs]\n def lowerMargin(self):\n """\n :return: the margin at the lower end of the scale\n\n The default margin is 0.\n\n .. seealso::\n\n :py:meth:`setMargins()`\n """\n return self.__data.lowerMargin
\n\n\n
\n[docs]\n def upperMargin(self):\n """\n :return: the margin at the upper end of the scale\n\n The default margin is 0.\n\n .. seealso::\n\n :py:meth:`setMargins()`\n """\n return self.__data.upperMargin
\n\n\n
\n[docs]\n def setMargins(self, lower, upper):\n """\n Specify margins at the scale's endpoints\n\n :param float lower: minimum distance between the scale's lower boundary and the smallest enclosed value\n :param float upper: minimum distance between the scale's upper boundary and the greatest enclosed value\n :return: A clone of the transfomation\n\n Margins can be used to leave a minimum amount of space between\n the enclosed intervals and the boundaries of the scale.\n\n .. warning::\n\n `QwtLogScaleEngine` measures the margins in decades.\n\n .. seealso::\n\n :py:meth:`upperMargin()`, :py:meth:`lowerMargin()`\n """\n self.__data.lowerMargin = max([lower, 0.0])\n self.__data.upperMargin = max([upper, 0.0])
\n\n\n
\n[docs]\n def divideInterval(self, intervalSize, numSteps):\n """\n Calculate a step size for a given interval\n\n :param float intervalSize: Interval size\n :param float numSteps: Number of steps\n :return: Step size\n """\n return divideInterval(intervalSize, numSteps, self.__data.base)
\n\n\n
\n[docs]\n def contains(self, interval, value):\n """\n Check if an interval "contains" a value\n\n :param float intervalSize: Interval size\n :param float value: Value\n :return: True, when the value is inside the interval\n """\n if not interval.isValid():\n return False\n eps = abs(1.0e-6 * interval.width())\n if interval.minValue() - value > eps or value - interval.maxValue() > eps:\n return False\n else:\n return True
\n\n\n
\n[docs]\n def strip(self, ticks, interval):\n """\n Remove ticks from a list, that are not inside an interval\n\n :param list ticks: Tick list\n :param qwt.interval.QwtInterval interval: Interval\n :return: Stripped tick list\n """\n if not interval.isValid() or not ticks:\n return []\n if self.contains(interval, ticks[0]) and self.contains(interval, ticks[-1]):\n return ticks\n return [tick for tick in ticks if self.contains(interval, tick)]
\n\n\n
\n[docs]\n def buildInterval(self, value):\n """\n Build an interval around a value\n\n In case of v == 0.0 the interval is [-0.5, 0.5],\n otherwide it is [0.5 * v, 1.5 * v]\n\n :param float value: Initial value\n :return: Calculated interval\n """\n if value == 0.0:\n delta = 0.5\n else:\n delta = abs(0.5 * value)\n if DBL_MAX - delta < value:\n return QwtInterval(DBL_MAX - delta, DBL_MAX)\n if -DBL_MAX + delta > value:\n return QwtInterval(-DBL_MAX, -DBL_MAX + delta)\n return QwtInterval(value - delta, value + delta)
\n\n\n
\n[docs]\n def setAttribute(self, attribute, on=True):\n """\n Change a scale attribute\n\n :param int attribute: Attribute to change\n :param bool on: On/Off\n :return: Calculated interval\n\n .. seealso::\n\n :py:meth:`testAttribute()`\n """\n if on:\n self.__data.attributes |= attribute\n else:\n self.__data.attributes &= ~attribute
\n\n\n
\n[docs]\n def testAttribute(self, attribute):\n """\n :param int attribute: Attribute to be tested\n :return: True, if attribute is enabled\n\n .. seealso::\n\n :py:meth:`setAttribute()`\n """\n return self.__data.attributes & attribute
\n\n\n
\n[docs]\n def setAttributes(self, attributes):\n """\n Change the scale attribute\n\n :param attributes: Set scale attributes\n\n .. seealso::\n\n :py:meth:`attributes()`\n """\n self.__data.attributes = attributes
\n\n\n
\n[docs]\n def attributes(self):\n """\n :return: Scale attributes\n\n .. seealso::\n\n :py:meth:`setAttributes()`, :py:meth:`testAttribute()`\n """\n return self.__data.attributes
\n\n\n
\n[docs]\n def setReference(self, r):\n """\n Specify a reference point\n\n :param float r: new reference value\n\n The reference point is needed if options `IncludeReference` or\n `Symmetric` are active. Its default value is 0.0.\n """\n self.__data.referenceValue = r
\n\n\n
\n[docs]\n def reference(self):\n """\n :return: the reference value\n\n .. seealso::\n\n :py:meth:`setReference()`, :py:meth:`setAttribute()`\n """\n return self.__data.referenceValue
\n\n\n
\n[docs]\n def setBase(self, base):\n """\n Set the base of the scale engine\n\n While a base of 10 is what 99.9% of all applications need\n certain scales might need a different base: f.e 2\n\n The default setting is 10\n\n :param int base: Base of the engine\n\n .. seealso::\n\n :py:meth:`base()`\n """\n self.__data.base = max([base, 2])
\n\n\n
\n[docs]\n def base(self):\n """\n :return: Base of the scale engine\n\n .. seealso::\n\n :py:meth:`setBase()`\n """\n return self.__data.base
\n
\n\n\n\n
\n[docs]\nclass QwtLinearScaleEngine(QwtScaleEngine):\n r"""\n A scale engine for linear scales\n\n The step size will fit into the pattern\n \\f$\\left\\{ 1,2,5\\right\\} \\cdot 10^{n}\\f$, where n is an integer.\n """\n\n def __init__(self, base=10):\n super(QwtLinearScaleEngine, self).__init__(base)\n\n
\n[docs]\n def autoScale(self, maxNumSteps, x1, x2, stepSize):\n """\n Align and divide an interval\n\n :param int maxNumSteps: Max. number of steps\n :param float x1: First limit of the interval (In/Out)\n :param float x2: Second limit of the interval (In/Out)\n :param float stepSize: Step size\n :return: tuple (x1, x2, stepSize)\n\n .. seealso::\n\n :py:meth:`setAttribute()`\n """\n interval = QwtInterval(x1, x2)\n interval = interval.normalized()\n interval.setMinValue(interval.minValue() - self.lowerMargin())\n interval.setMaxValue(interval.maxValue() + self.upperMargin())\n if self.testAttribute(QwtScaleEngine.Symmetric):\n interval = interval.symmetrize(self.reference())\n if self.testAttribute(QwtScaleEngine.IncludeReference):\n interval = interval.extend(self.reference())\n if interval.width() == 0.0:\n interval = self.buildInterval(interval.minValue())\n stepSize = divideInterval(interval.width(), max([maxNumSteps, 1]), self.base())\n if not self.testAttribute(QwtScaleEngine.Floating):\n interval = self.align(interval, stepSize)\n x1 = interval.minValue()\n x2 = interval.maxValue()\n if self.testAttribute(QwtScaleEngine.Inverted):\n x1, x2 = x2, x1\n stepSize = -stepSize\n return x1, x2, stepSize
\n\n\n
\n[docs]\n def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0):\n """\n Calculate a scale division for an interval\n\n :param float x1: First interval limit\n :param float x2: Second interval limit\n :param int maxMajorSteps: Maximum for the number of major steps\n :param int maxMinorSteps: Maximum number of minor steps\n :param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one\n :return: Calculated scale division\n """\n interval = QwtInterval(x1, x2).normalized()\n if interval.width() <= 0:\n return QwtScaleDiv()\n stepSize = abs(stepSize)\n if stepSize == 0.0:\n if maxMajorSteps < 1:\n maxMajorSteps = 1\n stepSize = divideInterval(interval.width(), maxMajorSteps, self.base())\n scaleDiv = QwtScaleDiv()\n if stepSize != 0.0:\n ticks = self.buildTicks(interval, stepSize, maxMinorSteps)\n scaleDiv = QwtScaleDiv(interval, ticks)\n if x1 > x2:\n scaleDiv.invert()\n return scaleDiv
\n\n\n
\n[docs]\n def buildTicks(self, interval, stepSize, maxMinorSteps):\n """\n Calculate ticks for an interval\n\n :param qwt.interval.QwtInterval interval: Interval\n :param float stepSize: Step size\n :param int maxMinorSteps: Maximum number of minor steps\n :return: Calculated ticks\n """\n ticks = [[] for _i in range(QwtScaleDiv.NTickTypes)]\n boundingInterval = self.align(interval, stepSize)\n ticks[QwtScaleDiv.MajorTick] = self.buildMajorTicks(boundingInterval, stepSize)\n if maxMinorSteps > 0:\n self.buildMinorTicks(ticks, maxMinorSteps, stepSize)\n for i in range(QwtScaleDiv.NTickTypes):\n ticks[i] = self.strip(ticks[i], interval)\n for j in range(len(ticks[i])):\n if qwtFuzzyCompare(ticks[i][j], 0.0, stepSize) == 0:\n ticks[i][j] = 0.0\n return ticks
\n\n\n
\n[docs]\n def buildMajorTicks(self, interval, stepSize):\n """\n Calculate major ticks for an interval\n\n :param qwt.interval.QwtInterval interval: Interval\n :param float stepSize: Step size\n :return: Calculated ticks\n """\n numTicks = min([round(interval.width() / stepSize) + 1, 10000])\n if np.isnan(numTicks):\n numTicks = 0\n ticks = [interval.minValue()]\n for i in range(1, int(numTicks - 1)):\n ticks += [interval.minValue() + i * stepSize]\n ticks += [interval.maxValue()]\n return ticks
\n\n\n
\n[docs]\n def buildMinorTicks(self, ticks, maxMinorSteps, stepSize):\n """\n Calculate minor ticks for an interval\n\n :param list ticks: Major ticks (returned)\n :param int maxMinorSteps: Maximum number of minor steps\n :param float stepSize: Step size\n """\n minStep = qwtStepSize(stepSize, maxMinorSteps, self.base())\n if minStep == 0.0:\n return\n numTicks = int(math.ceil(abs(stepSize / minStep)) - 1)\n medIndex = -1\n if numTicks % 2:\n medIndex = numTicks / 2\n for val in ticks[QwtScaleDiv.MajorTick]:\n for k in range(numTicks):\n val += minStep\n alignedValue = val\n if qwtFuzzyCompare(val, 0.0, stepSize) == 0:\n alignedValue = 0.0\n if k == medIndex:\n ticks[QwtScaleDiv.MediumTick] += [alignedValue]\n else:\n ticks[QwtScaleDiv.MinorTick] += [alignedValue]
\n\n\n
\n[docs]\n def align(self, interval, stepSize):\n """\n Align an interval to a step size\n\n The limits of an interval are aligned that both are integer\n multiples of the step size.\n\n :param qwt.interval.QwtInterval interval: Interval\n :param float stepSize: Step size\n :return: Aligned interval\n """\n x1 = interval.minValue()\n x2 = interval.maxValue()\n eps = 0.000000000001\n if -DBL_MAX + stepSize <= x1:\n x = floorEps(x1, stepSize)\n if abs(x) <= eps or not qFuzzyCompare(x1, x):\n x1 = x\n if DBL_MAX - stepSize >= x2:\n x = ceilEps(x2, stepSize)\n if abs(x) <= eps or not qFuzzyCompare(x2, x):\n x2 = x\n return QwtInterval(x1, x2)
\n
\n\n\n\n
\n[docs]\nclass QwtLogScaleEngine(QwtScaleEngine):\n """\n A scale engine for logarithmic scales\n\n The step size is measured in *decades* and the major step size will be\n adjusted to fit the pattern {1,2,3,5}.10**n, where n is a natural number\n including zero.\n\n .. warning::\n\n The step size as well as the margins are measured in *decades*.\n """\n\n def __init__(self, base=10):\n super(QwtLogScaleEngine, self).__init__(base)\n self.setTransformation(QwtLogTransform())\n\n
\n[docs]\n def autoScale(self, maxNumSteps, x1, x2, stepSize):\n """\n Align and divide an interval\n\n :param int maxNumSteps: Max. number of steps\n :param float x1: First limit of the interval (In/Out)\n :param float x2: Second limit of the interval (In/Out)\n :param float stepSize: Step size\n :return: tuple (x1, x2, stepSize)\n\n .. seealso::\n\n :py:meth:`setAttribute()`\n """\n if x1 > x2:\n x1, x2 = x2, x1\n logBase = self.base()\n interval = QwtInterval(\n x1 / math.pow(logBase, self.lowerMargin()),\n x2 * math.pow(logBase, self.upperMargin()),\n )\n interval = interval.limited(LOG_MIN, LOG_MAX)\n if interval.maxValue() / interval.minValue() < logBase:\n linearScaler = QwtLinearScaleEngine()\n linearScaler.setAttributes(self.attributes())\n linearScaler.setReference(self.reference())\n linearScaler.setMargins(self.lowerMargin(), self.upperMargin())\n\n x1, x2, stepSize = linearScaler.autoScale(maxNumSteps, x1, x2, stepSize)\n\n linearInterval = QwtInterval(x1, x2).normalized()\n linearInterval = linearInterval.limited(LOG_MIN, LOG_MAX)\n\n if linearInterval.maxValue() / linearInterval.minValue() < logBase:\n if stepSize < 0.0:\n stepSize = -math.log(abs(stepSize), logBase)\n else:\n stepSize = math.log(stepSize, logBase)\n return x1, x2, stepSize\n\n logRef = 1.0\n if self.reference() > LOG_MIN / 2:\n logRef = min([self.reference(), LOG_MAX / 2])\n\n if self.testAttribute(QwtScaleEngine.Symmetric):\n delta = max([interval.maxValue() / logRef, logRef / interval.minValue()])\n interval.setInterval(logRef / delta, logRef * delta)\n\n if self.testAttribute(QwtScaleEngine.IncludeReference):\n interval = interval.extend(logRef)\n\n interval = interval.limited(LOG_MIN, LOG_MAX)\n\n if interval.width() == 0.0:\n interval = self.buildInterval(interval.minValue())\n\n stepSize = self.divideInterval(\n qwtLogInterval(logBase, interval).width(), max([maxNumSteps, 1])\n )\n if stepSize < 1.0:\n stepSize = 1.0\n\n if not self.testAttribute(QwtScaleEngine.Floating):\n interval = self.align(interval, stepSize)\n\n x1 = interval.minValue()\n x2 = interval.maxValue()\n\n if self.testAttribute(QwtScaleEngine.Inverted):\n x1, x2 = x2, x1\n stepSize = -stepSize\n\n return x1, x2, stepSize
\n\n\n
\n[docs]\n def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0):\n """\n Calculate a scale division for an interval\n\n :param float x1: First interval limit\n :param float x2: Second interval limit\n :param int maxMajorSteps: Maximum for the number of major steps\n :param int maxMinorSteps: Maximum number of minor steps\n :param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one\n :return: Calculated scale division\n """\n interval = QwtInterval(x1, x2).normalized()\n interval = interval.limited(LOG_MIN, LOG_MAX)\n\n if interval.width() <= 0:\n return QwtScaleDiv()\n\n logBase = self.base()\n\n if interval.maxValue() / interval.minValue() < logBase:\n linearScaler = QwtLinearScaleEngine()\n linearScaler.setAttributes(self.attributes())\n linearScaler.setReference(self.reference())\n linearScaler.setMargins(self.lowerMargin(), self.upperMargin())\n return linearScaler.divideScale(\n x1, x2, maxMajorSteps, maxMinorSteps, stepSize\n )\n\n stepSize = abs(stepSize)\n if stepSize == 0.0:\n if maxMajorSteps < 1:\n maxMajorSteps = 1\n stepSize = self.divideInterval(\n qwtLogInterval(logBase, interval).width(), maxMajorSteps\n )\n if stepSize < 1.0:\n stepSize = 1.0\n\n scaleDiv = QwtScaleDiv()\n if stepSize != 0.0:\n ticks = self.buildTicks(interval, stepSize, maxMinorSteps)\n scaleDiv = QwtScaleDiv(interval, ticks)\n\n if x1 > x2:\n scaleDiv.invert()\n\n return scaleDiv
\n\n\n
\n[docs]\n def buildTicks(self, interval, stepSize, maxMinorSteps):\n """\n Calculate ticks for an interval\n\n :param qwt.interval.QwtInterval interval: Interval\n :param float stepSize: Step size\n :param int maxMinorSteps: Maximum number of minor steps\n :return: Calculated ticks\n """\n ticks = [[] for _i in range(QwtScaleDiv.NTickTypes)]\n boundingInterval = self.align(interval, stepSize)\n ticks[QwtScaleDiv.MajorTick] = self.buildMajorTicks(boundingInterval, stepSize)\n if maxMinorSteps > 0:\n self.buildMinorTicks(ticks, maxMinorSteps, stepSize)\n for i in range(QwtScaleDiv.NTickTypes):\n ticks[i] = self.strip(ticks[i], interval)\n return ticks
\n\n\n
\n[docs]\n def buildMajorTicks(self, interval, stepSize):\n """\n Calculate major ticks for an interval\n\n :param qwt.interval.QwtInterval interval: Interval\n :param float stepSize: Step size\n :return: Calculated ticks\n """\n width = qwtLogInterval(self.base(), interval).width()\n numTicks = min([int(round(width / stepSize)) + 1, 10000])\n\n lxmin = math.log(interval.minValue())\n lxmax = math.log(interval.maxValue())\n lstep = (lxmax - lxmin) / float(numTicks - 1)\n\n ticks = [interval.minValue()]\n for i in range(1, numTicks - 1):\n ticks += [math.exp(lxmin + float(i) * lstep)]\n ticks += [interval.maxValue()]\n return ticks
\n\n\n
\n[docs]\n def buildMinorTicks(self, ticks, maxMinorSteps, stepSize):\n """\n Calculate minor ticks for an interval\n\n :param list ticks: Major ticks (returned)\n :param int maxMinorSteps: Maximum number of minor steps\n :param float stepSize: Step size\n """\n logBase = self.base()\n\n if stepSize < 1.1:\n minStep = self.divideInterval(stepSize, maxMinorSteps + 1)\n if minStep == 0.0:\n return\n\n numSteps = int(round(stepSize / minStep))\n\n mediumTickIndex = -1\n if numSteps > 2 and numSteps % 2 == 0:\n mediumTickIndex = numSteps / 2\n\n for v in ticks[QwtScaleDiv.MajorTick]:\n s = logBase / numSteps\n if s >= 1.0:\n if not qFuzzyCompare(s, 1.0):\n ticks[QwtScaleDiv.MinorTick] += [v * s]\n for j in range(2, numSteps):\n ticks[QwtScaleDiv.MinorTick] += [v * j * s]\n else:\n for j in range(1, numSteps):\n tick = v + j * v * (logBase - 1) / numSteps\n if j == mediumTickIndex:\n ticks[QwtScaleDiv.MediumTick] += [tick]\n else:\n ticks[QwtScaleDiv.MinorTick] += [tick]\n\n else:\n minStep = self.divideInterval(stepSize, maxMinorSteps)\n if minStep == 0.0:\n return\n\n if minStep < 1.0:\n minStep = 1.0\n\n numTicks = int(round(stepSize / minStep)) - 1\n\n if qwtFuzzyCompare((numTicks + 1) * minStep, stepSize, stepSize) > 0:\n numTicks = 0\n\n if numTicks < 1:\n return\n\n mediumTickIndex = -1\n if numTicks > 2 and numTicks % 2:\n mediumTickIndex = numTicks / 2\n\n minFactor = max([math.pow(logBase, minStep), float(logBase)])\n\n for tick in ticks[QwtScaleDiv.MajorTick]:\n for j in range(numTicks):\n tick *= minFactor\n if j == mediumTickIndex:\n ticks[QwtScaleDiv.MediumTick] += [tick]\n else:\n ticks[QwtScaleDiv.MinorTick] += [tick]
\n\n\n
\n[docs]\n def align(self, interval, stepSize):\n """\n Align an interval to a step size\n\n The limits of an interval are aligned that both are integer\n multiples of the step size.\n\n :param qwt.interval.QwtInterval interval: Interval\n :param float stepSize: Step size\n :return: Aligned interval\n """\n intv = qwtLogInterval(self.base(), interval)\n\n x1 = floorEps(intv.minValue(), stepSize)\n if qwtFuzzyCompare(interval.minValue(), x1, stepSize) == 0:\n x1 = interval.minValue()\n\n x2 = ceilEps(intv.maxValue(), stepSize)\n if qwtFuzzyCompare(interval.maxValue(), x2, stepSize) == 0:\n x2 = interval.maxValue()\n\n return qwtPowInterval(self.base(), QwtInterval(x1, x2))
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6893100>, 'js_tag': .js_tag at 0x7fc7d6891620>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/scale_engine', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/scale_engine', 'current_page_name': '_modules/qwt/scale_engine', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ca1940>, 'hasdoc': .hasdoc at 0x7f3d39ca14e0>, 'toctree': . at 0x7f3d39ca31a0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.scale_engine', 'body': '

Source code for qwt.scale_engine

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtScaleEngine\n--------------\n\n.. autoclass:: QwtScaleEngine\n   :members:\n\nQwtLinearScaleEngine\n--------------------\n\n.. autoclass:: QwtLinearScaleEngine\n   :members:\n\nQwtLogScaleEngine\n-----------------\n\n.. autoclass:: QwtLogScaleEngine\n   :members:\n"""\n\nimport math\nimport sys\n\nimport numpy as np\nfrom qtpy.QtCore import qFuzzyCompare\n\nfrom qwt._math import qwtFuzzyCompare\nfrom qwt.interval import QwtInterval\nfrom qwt.scale_div import QwtScaleDiv\nfrom qwt.transform import QwtLogTransform, QwtTransform\n\nDBL_MAX = sys.float_info.max\nLOG_MIN = 1.0e-100\nLOG_MAX = 1.0e100\n\n\ndef qwtLogInterval(base, interval):\n    return QwtInterval(\n        math.log(interval.minValue(), base), math.log(interval.maxValue(), base)\n    )\n\n\ndef qwtPowInterval(base, interval):\n    return QwtInterval(\n        math.pow(base, interval.minValue()), math.pow(base, interval.maxValue())\n    )\n\n\ndef qwtStepSize(intervalSize, maxSteps, base):\n    """this version often doesn't find the best ticks: f.e for 15: 5, 10"""\n    minStep = divideInterval(intervalSize, maxSteps, base)\n    if minStep != 0.0:\n        #  # ticks per interval\n        numTicks = math.ceil(abs(intervalSize / minStep)) - 1\n        #  Do the minor steps fit into the interval?\n        if (\n            qwtFuzzyCompare(\n                (numTicks + 1) * abs(minStep), abs(intervalSize), intervalSize\n            )\n            > 0\n        ):\n            #  The minor steps doesn't fit into the interval\n            return 0.5 * intervalSize\n    return minStep\n\n\nEPS = 1.0e-6\n\n\ndef ceilEps(value, intervalSize):\n    """\n    Ceil a value, relative to an interval\n\n    :param float value: Value to be ceiled\n    :param float intervalSize: Interval size\n    :return: Rounded value\n\n    .. seealso::\n\n        :py:func:`qwt.scale_engine.floorEps()`\n    """\n    eps = EPS * intervalSize\n    value = (value - eps) / intervalSize\n    return math.ceil(value) * intervalSize\n\n\ndef floorEps(value, intervalSize):\n    """\n    Floor a value, relative to an interval\n\n    :param float value: Value to be floored\n    :param float intervalSize: Interval size\n    :return: Rounded value\n\n    .. seealso::\n\n        :py:func:`qwt.scale_engine.ceilEps()`\n    """\n    eps = EPS * intervalSize\n    value = (value + eps) / intervalSize\n    return math.floor(value) * intervalSize\n\n\ndef divideEps(intervalSize, numSteps):\n    """\n    Divide an interval into steps\n\n    `stepSize = (intervalSize - intervalSize * 10**-6) / numSteps`\n\n    :param float intervalSize: Interval size\n    :param float numSteps: Number of steps\n    :return: Step size\n    """\n    if numSteps == 0.0 or intervalSize == 0.0:\n        return 0.0\n    return (intervalSize - (EPS * intervalSize)) / numSteps\n\n\ndef divideInterval(intervalSize, numSteps, base):\n    """\n    Calculate a step size for a given interval\n\n    :param float intervalSize: Interval size\n    :param float numSteps: Number of steps\n    :param int base: Base for the division (usually 10)\n    :return: Calculated step size\n    """\n    if numSteps <= 0:\n        return 0.0\n    v = divideEps(intervalSize, numSteps)\n    if v == 0.0:\n        return 0.0\n\n    lx = math.log(abs(v), base)\n    p = math.floor(lx)\n    fraction = math.pow(base, lx - p)\n    n = base\n    while n > 1 and fraction <= n // 2:\n        n //= 2\n\n    stepSize = n * math.pow(base, p)\n    if v < 0:\n        stepSize = -stepSize\n\n    return stepSize\n\n\nclass QwtScaleEngine_PrivateData(object):\n    def __init__(self):\n        self.attributes = QwtScaleEngine.NoAttribute\n        self.lowerMargin = 0.0\n        self.upperMargin = 0.0\n        self.referenceValue = 0.0\n        self.base = 10\n        self.transform = None  # QwtTransform\n\n\n
\n[docs]\nclass QwtScaleEngine(object):\n """\n Base class for scale engines.\n\n A scale engine tries to find "reasonable" ranges and step sizes\n for scales.\n\n The layout of the scale can be varied with `setAttribute()`.\n\n `PythonQwt` offers implementations for logarithmic and linear scales.\n\n Layout attributes:\n\n * `QwtScaleEngine.NoAttribute`: No attributes\n * `QwtScaleEngine.IncludeReference`: Build a scale which includes the\n `reference()` value\n * `QwtScaleEngine.Symmetric`: Build a scale which is symmetric to the\n `reference()` value\n * `QwtScaleEngine.Floating`: The endpoints of the scale are supposed to\n be equal the outmost included values plus the specified margins (see\n `setMargins()`). If this attribute is *not* set, the endpoints of the\n scale will be integer multiples of the step size.\n * `QwtScaleEngine.Inverted`: Turn the scale upside down\n """\n\n # enum Attribute\n NoAttribute = 0x00\n IncludeReference = 0x01\n Symmetric = 0x02\n Floating = 0x04\n Inverted = 0x08\n\n def __init__(self, base=10):\n self.__data = QwtScaleEngine_PrivateData()\n self.setBase(base)\n\n
\n[docs]\n def autoScale(self, maxNumSteps, x1, x2, stepSize):\n """\n Align and divide an interval\n\n :param int maxNumSteps: Max. number of steps\n :param float x1: First limit of the interval (In/Out)\n :param float x2: Second limit of the interval (In/Out)\n :param float stepSize: Step size\n :return: tuple (x1, x2, stepSize)\n """\n pass
\n\n\n
\n[docs]\n def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0):\n """\n Calculate a scale division\n\n :param float x1: First interval limit\n :param float x2: Second interval limit\n :param int maxMajorSteps: Maximum for the number of major steps\n :param int maxMinorSteps: Maximum number of minor steps\n :param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one\n :return: Calculated scale division\n """\n pass
\n\n\n
\n[docs]\n def setTransformation(self, transform):\n """\n Assign a transformation\n\n :param qwt.transform.QwtTransform transform: Transformation\n\n The transformation object is used as factory for clones\n that are returned by `transformation()`\n\n The scale engine takes ownership of the transformation.\n\n .. seealso::\n\n :py:meth:`QwtTransform.copy()`, :py:meth:`transformation()`\n """\n assert transform is None or isinstance(transform, QwtTransform)\n if transform != self.__data.transform:\n self.__data.transform = transform
\n\n\n
\n[docs]\n def transformation(self):\n """\n Create and return a clone of the transformation\n of the engine. When the engine has no special transformation\n None is returned, indicating no transformation.\n\n :return: A clone of the transfomation\n\n .. seealso::\n\n :py:meth:`setTransformation()`\n """\n if self.__data.transform:\n return self.__data.transform.copy()
\n\n\n
\n[docs]\n def lowerMargin(self):\n """\n :return: the margin at the lower end of the scale\n\n The default margin is 0.\n\n .. seealso::\n\n :py:meth:`setMargins()`\n """\n return self.__data.lowerMargin
\n\n\n
\n[docs]\n def upperMargin(self):\n """\n :return: the margin at the upper end of the scale\n\n The default margin is 0.\n\n .. seealso::\n\n :py:meth:`setMargins()`\n """\n return self.__data.upperMargin
\n\n\n
\n[docs]\n def setMargins(self, lower, upper):\n """\n Specify margins at the scale's endpoints\n\n :param float lower: minimum distance between the scale's lower boundary and the smallest enclosed value\n :param float upper: minimum distance between the scale's upper boundary and the greatest enclosed value\n :return: A clone of the transfomation\n\n Margins can be used to leave a minimum amount of space between\n the enclosed intervals and the boundaries of the scale.\n\n .. warning::\n\n `QwtLogScaleEngine` measures the margins in decades.\n\n .. seealso::\n\n :py:meth:`upperMargin()`, :py:meth:`lowerMargin()`\n """\n self.__data.lowerMargin = max([lower, 0.0])\n self.__data.upperMargin = max([upper, 0.0])
\n\n\n
\n[docs]\n def divideInterval(self, intervalSize, numSteps):\n """\n Calculate a step size for a given interval\n\n :param float intervalSize: Interval size\n :param float numSteps: Number of steps\n :return: Step size\n """\n return divideInterval(intervalSize, numSteps, self.__data.base)
\n\n\n
\n[docs]\n def contains(self, interval, value):\n """\n Check if an interval "contains" a value\n\n :param float intervalSize: Interval size\n :param float value: Value\n :return: True, when the value is inside the interval\n """\n if not interval.isValid():\n return False\n eps = abs(1.0e-6 * interval.width())\n if interval.minValue() - value > eps or value - interval.maxValue() > eps:\n return False\n else:\n return True
\n\n\n
\n[docs]\n def strip(self, ticks, interval):\n """\n Remove ticks from a list, that are not inside an interval\n\n :param list ticks: Tick list\n :param qwt.interval.QwtInterval interval: Interval\n :return: Stripped tick list\n """\n if not interval.isValid() or not ticks:\n return []\n if self.contains(interval, ticks[0]) and self.contains(interval, ticks[-1]):\n return ticks\n return [tick for tick in ticks if self.contains(interval, tick)]
\n\n\n
\n[docs]\n def buildInterval(self, value):\n """\n Build an interval around a value\n\n In case of v == 0.0 the interval is [-0.5, 0.5],\n otherwide it is [0.5 * v, 1.5 * v]\n\n :param float value: Initial value\n :return: Calculated interval\n """\n if value == 0.0:\n delta = 0.5\n else:\n delta = abs(0.5 * value)\n if DBL_MAX - delta < value:\n return QwtInterval(DBL_MAX - delta, DBL_MAX)\n if -DBL_MAX + delta > value:\n return QwtInterval(-DBL_MAX, -DBL_MAX + delta)\n return QwtInterval(value - delta, value + delta)
\n\n\n
\n[docs]\n def setAttribute(self, attribute, on=True):\n """\n Change a scale attribute\n\n :param int attribute: Attribute to change\n :param bool on: On/Off\n :return: Calculated interval\n\n .. seealso::\n\n :py:meth:`testAttribute()`\n """\n if on:\n self.__data.attributes |= attribute\n else:\n self.__data.attributes &= ~attribute
\n\n\n
\n[docs]\n def testAttribute(self, attribute):\n """\n :param int attribute: Attribute to be tested\n :return: True, if attribute is enabled\n\n .. seealso::\n\n :py:meth:`setAttribute()`\n """\n return self.__data.attributes & attribute
\n\n\n
\n[docs]\n def setAttributes(self, attributes):\n """\n Change the scale attribute\n\n :param attributes: Set scale attributes\n\n .. seealso::\n\n :py:meth:`attributes()`\n """\n self.__data.attributes = attributes
\n\n\n
\n[docs]\n def attributes(self):\n """\n :return: Scale attributes\n\n .. seealso::\n\n :py:meth:`setAttributes()`, :py:meth:`testAttribute()`\n """\n return self.__data.attributes
\n\n\n
\n[docs]\n def setReference(self, r):\n """\n Specify a reference point\n\n :param float r: new reference value\n\n The reference point is needed if options `IncludeReference` or\n `Symmetric` are active. Its default value is 0.0.\n """\n self.__data.referenceValue = r
\n\n\n
\n[docs]\n def reference(self):\n """\n :return: the reference value\n\n .. seealso::\n\n :py:meth:`setReference()`, :py:meth:`setAttribute()`\n """\n return self.__data.referenceValue
\n\n\n
\n[docs]\n def setBase(self, base):\n """\n Set the base of the scale engine\n\n While a base of 10 is what 99.9% of all applications need\n certain scales might need a different base: f.e 2\n\n The default setting is 10\n\n :param int base: Base of the engine\n\n .. seealso::\n\n :py:meth:`base()`\n """\n self.__data.base = max([base, 2])
\n\n\n
\n[docs]\n def base(self):\n """\n :return: Base of the scale engine\n\n .. seealso::\n\n :py:meth:`setBase()`\n """\n return self.__data.base
\n
\n\n\n\n
\n[docs]\nclass QwtLinearScaleEngine(QwtScaleEngine):\n r"""\n A scale engine for linear scales\n\n The step size will fit into the pattern\n \\f$\\left\\{ 1,2,5\\right\\} \\cdot 10^{n}\\f$, where n is an integer.\n """\n\n def __init__(self, base=10):\n super(QwtLinearScaleEngine, self).__init__(base)\n\n
\n[docs]\n def autoScale(self, maxNumSteps, x1, x2, stepSize):\n """\n Align and divide an interval\n\n :param int maxNumSteps: Max. number of steps\n :param float x1: First limit of the interval (In/Out)\n :param float x2: Second limit of the interval (In/Out)\n :param float stepSize: Step size\n :return: tuple (x1, x2, stepSize)\n\n .. seealso::\n\n :py:meth:`setAttribute()`\n """\n interval = QwtInterval(x1, x2)\n interval = interval.normalized()\n interval.setMinValue(interval.minValue() - self.lowerMargin())\n interval.setMaxValue(interval.maxValue() + self.upperMargin())\n if self.testAttribute(QwtScaleEngine.Symmetric):\n interval = interval.symmetrize(self.reference())\n if self.testAttribute(QwtScaleEngine.IncludeReference):\n interval = interval.extend(self.reference())\n if interval.width() == 0.0:\n interval = self.buildInterval(interval.minValue())\n stepSize = divideInterval(interval.width(), max([maxNumSteps, 1]), self.base())\n if not self.testAttribute(QwtScaleEngine.Floating):\n interval = self.align(interval, stepSize)\n x1 = interval.minValue()\n x2 = interval.maxValue()\n if self.testAttribute(QwtScaleEngine.Inverted):\n x1, x2 = x2, x1\n stepSize = -stepSize\n return x1, x2, stepSize
\n\n\n
\n[docs]\n def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0):\n """\n Calculate a scale division for an interval\n\n :param float x1: First interval limit\n :param float x2: Second interval limit\n :param int maxMajorSteps: Maximum for the number of major steps\n :param int maxMinorSteps: Maximum number of minor steps\n :param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one\n :return: Calculated scale division\n """\n interval = QwtInterval(x1, x2).normalized()\n if interval.width() <= 0:\n return QwtScaleDiv()\n stepSize = abs(stepSize)\n if stepSize == 0.0:\n if maxMajorSteps < 1:\n maxMajorSteps = 1\n stepSize = divideInterval(interval.width(), maxMajorSteps, self.base())\n scaleDiv = QwtScaleDiv()\n if stepSize != 0.0:\n ticks = self.buildTicks(interval, stepSize, maxMinorSteps)\n scaleDiv = QwtScaleDiv(interval, ticks)\n if x1 > x2:\n scaleDiv.invert()\n return scaleDiv
\n\n\n
\n[docs]\n def buildTicks(self, interval, stepSize, maxMinorSteps):\n """\n Calculate ticks for an interval\n\n :param qwt.interval.QwtInterval interval: Interval\n :param float stepSize: Step size\n :param int maxMinorSteps: Maximum number of minor steps\n :return: Calculated ticks\n """\n ticks = [[] for _i in range(QwtScaleDiv.NTickTypes)]\n boundingInterval = self.align(interval, stepSize)\n ticks[QwtScaleDiv.MajorTick] = self.buildMajorTicks(boundingInterval, stepSize)\n if maxMinorSteps > 0:\n self.buildMinorTicks(ticks, maxMinorSteps, stepSize)\n for i in range(QwtScaleDiv.NTickTypes):\n ticks[i] = self.strip(ticks[i], interval)\n for j in range(len(ticks[i])):\n if qwtFuzzyCompare(ticks[i][j], 0.0, stepSize) == 0:\n ticks[i][j] = 0.0\n return ticks
\n\n\n
\n[docs]\n def buildMajorTicks(self, interval, stepSize):\n """\n Calculate major ticks for an interval\n\n :param qwt.interval.QwtInterval interval: Interval\n :param float stepSize: Step size\n :return: Calculated ticks\n """\n numTicks = min([round(interval.width() / stepSize) + 1, 10000])\n if np.isnan(numTicks):\n numTicks = 0\n ticks = [interval.minValue()]\n for i in range(1, int(numTicks - 1)):\n ticks += [interval.minValue() + i * stepSize]\n ticks += [interval.maxValue()]\n return ticks
\n\n\n
\n[docs]\n def buildMinorTicks(self, ticks, maxMinorSteps, stepSize):\n """\n Calculate minor ticks for an interval\n\n :param list ticks: Major ticks (returned)\n :param int maxMinorSteps: Maximum number of minor steps\n :param float stepSize: Step size\n """\n minStep = qwtStepSize(stepSize, maxMinorSteps, self.base())\n if minStep == 0.0:\n return\n numTicks = int(math.ceil(abs(stepSize / minStep)) - 1)\n medIndex = -1\n if numTicks % 2:\n medIndex = numTicks / 2\n for val in ticks[QwtScaleDiv.MajorTick]:\n for k in range(numTicks):\n val += minStep\n alignedValue = val\n if qwtFuzzyCompare(val, 0.0, stepSize) == 0:\n alignedValue = 0.0\n if k == medIndex:\n ticks[QwtScaleDiv.MediumTick] += [alignedValue]\n else:\n ticks[QwtScaleDiv.MinorTick] += [alignedValue]
\n\n\n
\n[docs]\n def align(self, interval, stepSize):\n """\n Align an interval to a step size\n\n The limits of an interval are aligned that both are integer\n multiples of the step size.\n\n :param qwt.interval.QwtInterval interval: Interval\n :param float stepSize: Step size\n :return: Aligned interval\n """\n x1 = interval.minValue()\n x2 = interval.maxValue()\n eps = 0.000000000001\n if -DBL_MAX + stepSize <= x1:\n x = floorEps(x1, stepSize)\n if abs(x) <= eps or not qFuzzyCompare(x1, x):\n x1 = x\n if DBL_MAX - stepSize >= x2:\n x = ceilEps(x2, stepSize)\n if abs(x) <= eps or not qFuzzyCompare(x2, x):\n x2 = x\n return QwtInterval(x1, x2)
\n
\n\n\n\n
\n[docs]\nclass QwtLogScaleEngine(QwtScaleEngine):\n """\n A scale engine for logarithmic scales\n\n The step size is measured in *decades* and the major step size will be\n adjusted to fit the pattern {1,2,3,5}.10**n, where n is a natural number\n including zero.\n\n .. warning::\n\n The step size as well as the margins are measured in *decades*.\n """\n\n def __init__(self, base=10):\n super(QwtLogScaleEngine, self).__init__(base)\n self.setTransformation(QwtLogTransform())\n\n
\n[docs]\n def autoScale(self, maxNumSteps, x1, x2, stepSize):\n """\n Align and divide an interval\n\n :param int maxNumSteps: Max. number of steps\n :param float x1: First limit of the interval (In/Out)\n :param float x2: Second limit of the interval (In/Out)\n :param float stepSize: Step size\n :return: tuple (x1, x2, stepSize)\n\n .. seealso::\n\n :py:meth:`setAttribute()`\n """\n if x1 > x2:\n x1, x2 = x2, x1\n logBase = self.base()\n interval = QwtInterval(\n x1 / math.pow(logBase, self.lowerMargin()),\n x2 * math.pow(logBase, self.upperMargin()),\n )\n interval = interval.limited(LOG_MIN, LOG_MAX)\n if interval.maxValue() / interval.minValue() < logBase:\n linearScaler = QwtLinearScaleEngine()\n linearScaler.setAttributes(self.attributes())\n linearScaler.setReference(self.reference())\n linearScaler.setMargins(self.lowerMargin(), self.upperMargin())\n\n x1, x2, stepSize = linearScaler.autoScale(maxNumSteps, x1, x2, stepSize)\n\n linearInterval = QwtInterval(x1, x2).normalized()\n linearInterval = linearInterval.limited(LOG_MIN, LOG_MAX)\n\n if linearInterval.maxValue() / linearInterval.minValue() < logBase:\n if stepSize < 0.0:\n stepSize = -math.log(abs(stepSize), logBase)\n else:\n stepSize = math.log(stepSize, logBase)\n return x1, x2, stepSize\n\n logRef = 1.0\n if self.reference() > LOG_MIN / 2:\n logRef = min([self.reference(), LOG_MAX / 2])\n\n if self.testAttribute(QwtScaleEngine.Symmetric):\n delta = max([interval.maxValue() / logRef, logRef / interval.minValue()])\n interval.setInterval(logRef / delta, logRef * delta)\n\n if self.testAttribute(QwtScaleEngine.IncludeReference):\n interval = interval.extend(logRef)\n\n interval = interval.limited(LOG_MIN, LOG_MAX)\n\n if interval.width() == 0.0:\n interval = self.buildInterval(interval.minValue())\n\n stepSize = self.divideInterval(\n qwtLogInterval(logBase, interval).width(), max([maxNumSteps, 1])\n )\n if stepSize < 1.0:\n stepSize = 1.0\n\n if not self.testAttribute(QwtScaleEngine.Floating):\n interval = self.align(interval, stepSize)\n\n x1 = interval.minValue()\n x2 = interval.maxValue()\n\n if self.testAttribute(QwtScaleEngine.Inverted):\n x1, x2 = x2, x1\n stepSize = -stepSize\n\n return x1, x2, stepSize
\n\n\n
\n[docs]\n def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0):\n """\n Calculate a scale division for an interval\n\n :param float x1: First interval limit\n :param float x2: Second interval limit\n :param int maxMajorSteps: Maximum for the number of major steps\n :param int maxMinorSteps: Maximum number of minor steps\n :param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one\n :return: Calculated scale division\n """\n interval = QwtInterval(x1, x2).normalized()\n interval = interval.limited(LOG_MIN, LOG_MAX)\n\n if interval.width() <= 0:\n return QwtScaleDiv()\n\n logBase = self.base()\n\n if interval.maxValue() / interval.minValue() < logBase:\n linearScaler = QwtLinearScaleEngine()\n linearScaler.setAttributes(self.attributes())\n linearScaler.setReference(self.reference())\n linearScaler.setMargins(self.lowerMargin(), self.upperMargin())\n return linearScaler.divideScale(\n x1, x2, maxMajorSteps, maxMinorSteps, stepSize\n )\n\n stepSize = abs(stepSize)\n if stepSize == 0.0:\n if maxMajorSteps < 1:\n maxMajorSteps = 1\n stepSize = self.divideInterval(\n qwtLogInterval(logBase, interval).width(), maxMajorSteps\n )\n if stepSize < 1.0:\n stepSize = 1.0\n\n scaleDiv = QwtScaleDiv()\n if stepSize != 0.0:\n ticks = self.buildTicks(interval, stepSize, maxMinorSteps)\n scaleDiv = QwtScaleDiv(interval, ticks)\n\n if x1 > x2:\n scaleDiv.invert()\n\n return scaleDiv
\n\n\n
\n[docs]\n def buildTicks(self, interval, stepSize, maxMinorSteps):\n """\n Calculate ticks for an interval\n\n :param qwt.interval.QwtInterval interval: Interval\n :param float stepSize: Step size\n :param int maxMinorSteps: Maximum number of minor steps\n :return: Calculated ticks\n """\n ticks = [[] for _i in range(QwtScaleDiv.NTickTypes)]\n boundingInterval = self.align(interval, stepSize)\n ticks[QwtScaleDiv.MajorTick] = self.buildMajorTicks(boundingInterval, stepSize)\n if maxMinorSteps > 0:\n self.buildMinorTicks(ticks, maxMinorSteps, stepSize)\n for i in range(QwtScaleDiv.NTickTypes):\n ticks[i] = self.strip(ticks[i], interval)\n return ticks
\n\n\n
\n[docs]\n def buildMajorTicks(self, interval, stepSize):\n """\n Calculate major ticks for an interval\n\n :param qwt.interval.QwtInterval interval: Interval\n :param float stepSize: Step size\n :return: Calculated ticks\n """\n width = qwtLogInterval(self.base(), interval).width()\n numTicks = min([int(round(width / stepSize)) + 1, 10000])\n\n lxmin = math.log(interval.minValue())\n lxmax = math.log(interval.maxValue())\n lstep = (lxmax - lxmin) / float(numTicks - 1)\n\n ticks = [interval.minValue()]\n for i in range(1, numTicks - 1):\n ticks += [math.exp(lxmin + float(i) * lstep)]\n ticks += [interval.maxValue()]\n return ticks
\n\n\n
\n[docs]\n def buildMinorTicks(self, ticks, maxMinorSteps, stepSize):\n """\n Calculate minor ticks for an interval\n\n :param list ticks: Major ticks (returned)\n :param int maxMinorSteps: Maximum number of minor steps\n :param float stepSize: Step size\n """\n logBase = self.base()\n\n if stepSize < 1.1:\n minStep = self.divideInterval(stepSize, maxMinorSteps + 1)\n if minStep == 0.0:\n return\n\n numSteps = int(round(stepSize / minStep))\n\n mediumTickIndex = -1\n if numSteps > 2 and numSteps % 2 == 0:\n mediumTickIndex = numSteps / 2\n\n for v in ticks[QwtScaleDiv.MajorTick]:\n s = logBase / numSteps\n if s >= 1.0:\n if not qFuzzyCompare(s, 1.0):\n ticks[QwtScaleDiv.MinorTick] += [v * s]\n for j in range(2, numSteps):\n ticks[QwtScaleDiv.MinorTick] += [v * j * s]\n else:\n for j in range(1, numSteps):\n tick = v + j * v * (logBase - 1) / numSteps\n if j == mediumTickIndex:\n ticks[QwtScaleDiv.MediumTick] += [tick]\n else:\n ticks[QwtScaleDiv.MinorTick] += [tick]\n\n else:\n minStep = self.divideInterval(stepSize, maxMinorSteps)\n if minStep == 0.0:\n return\n\n if minStep < 1.0:\n minStep = 1.0\n\n numTicks = int(round(stepSize / minStep)) - 1\n\n if qwtFuzzyCompare((numTicks + 1) * minStep, stepSize, stepSize) > 0:\n numTicks = 0\n\n if numTicks < 1:\n return\n\n mediumTickIndex = -1\n if numTicks > 2 and numTicks % 2:\n mediumTickIndex = numTicks / 2\n\n minFactor = max([math.pow(logBase, minStep), float(logBase)])\n\n for tick in ticks[QwtScaleDiv.MajorTick]:\n for j in range(numTicks):\n tick *= minFactor\n if j == mediumTickIndex:\n ticks[QwtScaleDiv.MediumTick] += [tick]\n else:\n ticks[QwtScaleDiv.MinorTick] += [tick]
\n\n\n
\n[docs]\n def align(self, interval, stepSize):\n """\n Align an interval to a step size\n\n The limits of an interval are aligned that both are integer\n multiples of the step size.\n\n :param qwt.interval.QwtInterval interval: Interval\n :param float stepSize: Step size\n :return: Aligned interval\n """\n intv = qwtLogInterval(self.base(), interval)\n\n x1 = floorEps(intv.minValue(), stepSize)\n if qwtFuzzyCompare(interval.minValue(), x1, stepSize) == 0:\n x1 = interval.minValue()\n\n x2 = ceilEps(intv.maxValue(), stepSize)\n if qwtFuzzyCompare(interval.maxValue(), x2, stepSize) == 0:\n x2 = interval.maxValue()\n\n return qwtPowInterval(self.base(), QwtInterval(x1, x2))
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39ca3100>, 'js_tag': .js_tag at 0x7f3d39ca1620>}, None) highlighting module code... [ 79%] qwt.scale_map [app] emitting event: 'viewcode-find-source'('qwt.scale_map',) -[app] emitting event: 'html-page-context'('_modules/qwt/scale_map', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/scale_map', 'current_page_name': '_modules/qwt/scale_map', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6891c60>, 'hasdoc': .hasdoc at 0x7fc7d6891d00>, 'toctree': . at 0x7fc7d68900e0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.scale_map', 'body': '

Source code for qwt.scale_map

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtScaleMap\n-----------\n\n.. autoclass:: QwtScaleMap\n   :members:\n"""\n\nfrom qtpy.QtCore import QPointF, QRectF\n\nfrom qwt._math import qwtFuzzyCompare\n\n\n
\n[docs]\nclass QwtScaleMap(object):\n """\n A scale map\n\n `QwtScaleMap` offers transformations from the coordinate system\n of a scale into the linear coordinate system of a paint device\n and vice versa.\n\n The scale and paint device intervals are both set to [0,1].\n\n .. py:class:: QwtScaleMap([other=None])\n\n Constructor (eventually, copy constructor)\n\n :param qwt.scale_map.QwtScaleMap other: Other scale map\n\n .. py:class:: QwtScaleMap(p1, p2, s1, s2)\n :noindex:\n\n Constructor (was provided by `PyQwt` but not by `Qwt`)\n\n :param int p1: First border of the paint interval\n :param int p2: Second border of the paint interval\n :param float s1: First border of the scale interval\n :param float s2: Second border of the scale interval\n """\n\n def __init__(self, *args):\n self.__transform = None # QwtTransform\n self.__s1 = 0.0\n self.__s2 = 1.0\n self.__p1 = 0.0\n self.__p2 = 1.0\n other = None\n if len(args) == 1:\n (other,) = args\n elif len(args) == 4:\n p1, p2, s1, s2 = args\n self.__s1 = s1\n self.__s2 = s2\n self.__p1 = p1\n self.__p2 = p2\n elif len(args) != 0:\n raise TypeError(\n "%s() takes 0, 1, or 4 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n if other is None:\n self.__cnv = 1.0\n self.__ts1 = 0.0\n else:\n self.__s1 = other.__s1\n self.__s2 = other.__s2\n self.__p1 = other.__p1\n self.__p2 = other.__p2\n self.__cnv = other.__cnv\n self.__ts1 = other.__ts1\n if other.__transform:\n self.__transform = other.__transform.copy()\n\n def __eq__(self, other):\n return (\n self.__s1 == other.__s1\n and self.__s2 == other.__s2\n and self.__p1 == other.__p1\n and self.__p2 == other.__p2\n and self.__cnv == other.__cnv\n and self.__ts1 == other.__ts1\n )\n\n
\n[docs]\n def s1(self):\n """\n :return: First border of the scale interval\n """\n return self.__s1
\n\n\n
\n[docs]\n def s2(self):\n """\n :return: Second border of the scale interval\n """\n return self.__s2
\n\n\n
\n[docs]\n def p1(self):\n """\n :return: First border of the paint interval\n """\n return self.__p1
\n\n\n
\n[docs]\n def p2(self):\n """\n :return: Second border of the paint interval\n """\n return self.__p2
\n\n\n
\n[docs]\n def pDist(self):\n """\n :return: `abs(p2() - p1())`\n """\n return abs(self.__p2 - self.__p1)
\n\n\n
\n[docs]\n def sDist(self):\n """\n :return: `abs(s2() - s1())`\n """\n return abs(self.__s2 - self.__s1)
\n\n\n
\n[docs]\n def transform_scalar(self, s):\n """\n Transform a point related to the scale interval into an point\n related to the interval of the paint device\n\n :param float s: Value relative to the coordinates of the scale\n :return: Transformed value\n\n .. seealso::\n\n :py:meth:`invTransform_scalar()`\n """\n if self.__transform:\n s = self.__transform.transform(s)\n return self.__p1 + (s - self.__ts1) * self.__cnv
\n\n\n
\n[docs]\n def invTransform_scalar(self, p):\n """\n Transform an paint device value into a value in the\n interval of the scale.\n\n :param float p: Value relative to the coordinates of the paint device\n :return: Transformed value\n\n .. seealso::\n\n :py:meth:`transform_scalar()`\n """\n if self.__cnv == 0:\n s = self.__ts1 # avoid divide by zero\n else:\n s = self.__ts1 + (p - self.__p1) / self.__cnv\n if self.__transform:\n s = self.__transform.invTransform(s)\n return s
\n\n\n
\n[docs]\n def isInverting(self):\n """\n :return: True, when ( p1() < p2() ) != ( s1() < s2() )\n """\n return (self.__p1 < self.__p2) != (self.__s1 < self.__s2)
\n\n\n
\n[docs]\n def setTransformation(self, transform):\n """\n Initialize the map with a transformation\n\n :param qwt.transform.QwtTransform transform: Transformation\n """\n if self.__transform != transform:\n self.__transform = transform\n self.setScaleInterval(self.__s1, self.__s2)
\n\n\n
\n[docs]\n def transformation(self):\n """\n :return: the transformation\n """\n return self.__transform
\n\n\n
\n[docs]\n def setScaleInterval(self, s1, s2):\n """\n Specify the borders of the scale interval\n\n :param float s1: first border\n :param float s2: second border\n\n .. warning::\n\n Scales might be aligned to transformation depending boundaries\n """\n self.__s1 = s1\n self.__s2 = s2\n if self.__transform:\n self.__s1 = self.__transform.bounded(self.__s1)\n self.__s2 = self.__transform.bounded(self.__s2)\n self.updateFactor()
\n\n\n
\n[docs]\n def setPaintInterval(self, p1, p2):\n """\n Specify the borders of the paint device interval\n\n :param float p1: first border\n :param float p2: second border\n """\n self.__p1 = p1\n self.__p2 = p2\n self.updateFactor()
\n\n\n def updateFactor(self):\n self.__ts1 = self.__s1\n ts2 = self.__s2\n if self.__transform:\n self.__ts1 = self.__transform.transform(self.__ts1)\n ts2 = self.__transform.transform(ts2)\n self.__cnv = 1.0\n if self.__ts1 != ts2:\n self.__cnv = (self.__p2 - self.__p1) / (ts2 - self.__ts1)\n\n
\n[docs]\n def transform(self, *args):\n """\n Transform a rectangle from scale to paint coordinates.\n\n Transfom a scalar:\n\n :param float scalar: Scalar\n\n Transfom a rectangle:\n\n :param qwt.scale_map.QwtScaleMap xMap: X map\n :param qwt.scale_map.QwtScaleMap yMap: Y map\n :param QRectF rect: Rectangle in paint coordinates\n\n Transfom a point:\n\n :param qwt.scale_map.QwtScaleMap xMap: X map\n :param qwt.scale_map.QwtScaleMap yMap: Y map\n :param QPointF pos: Position in scale coordinates\n\n .. seealso::\n\n :py:meth:`invTransform()`\n """\n if len(args) == 1:\n # Scalar transform\n return self.transform_scalar(args[0])\n elif len(args) == 3 and isinstance(args[2], QPointF):\n xMap, yMap, pos = args\n return QPointF(xMap.transform(pos.x()), yMap.transform(pos.y()))\n elif len(args) == 3 and isinstance(args[2], QRectF):\n xMap, yMap, rect = args\n x1 = xMap.transform(rect.left())\n x2 = xMap.transform(rect.right())\n y1 = yMap.transform(rect.top())\n y2 = yMap.transform(rect.bottom())\n if x2 < x1:\n x1, x2 = x2, x1\n if y2 < y1:\n y1, y2 = y2, y1\n if qwtFuzzyCompare(x1, 0.0, x2 - x1) == 0:\n x1 = 0.0\n if qwtFuzzyCompare(x2, 0.0, x2 - x1) == 0:\n x2 = 0.0\n if qwtFuzzyCompare(y1, 0.0, y2 - y1) == 0:\n y1 = 0.0\n if qwtFuzzyCompare(y2, 0.0, y2 - y1) == 0:\n y2 = 0.0\n return QRectF(x1, y1, x2 - x1 + 1, y2 - y1 + 1)\n else:\n raise TypeError(\n "%s().transform() takes 1 or 3 argument(s) (%s "\n "given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def invTransform(self, *args):\n """Transform from paint to scale coordinates\n\n Scalar: scalemap.invTransform(scalar)\n Point (QPointF): scalemap.invTransform(xMap, yMap, pos)\n Rectangle (QRectF): scalemap.invTransform(xMap, yMap, rect)\n """\n if len(args) == 1:\n # Scalar transform\n return self.invTransform_scalar(args[0])\n elif isinstance(args[2], QPointF):\n xMap, yMap, pos = args\n return QPointF(xMap.invTransform(pos.x()), yMap.invTransform(pos.y()))\n elif isinstance(args[2], QRectF):\n xMap, yMap, rect = args\n x1 = xMap.invTransform(rect.left())\n x2 = xMap.invTransform(rect.right() - 1)\n y1 = yMap.invTransform(rect.top())\n y2 = yMap.invTransform(rect.bottom() - 1)\n r = QRectF(x1, y1, x2 - x1, y2 - y1)\n return r.normalized()
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6890b80>, 'js_tag': .js_tag at 0x7fc7d6892020>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/scale_map', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/scale_map', 'current_page_name': '_modules/qwt/scale_map', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ca1c60>, 'hasdoc': .hasdoc at 0x7f3d39ca1d00>, 'toctree': . at 0x7f3d39ca00e0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.scale_map', 'body': '

Source code for qwt.scale_map

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtScaleMap\n-----------\n\n.. autoclass:: QwtScaleMap\n   :members:\n"""\n\nfrom qtpy.QtCore import QPointF, QRectF\n\nfrom qwt._math import qwtFuzzyCompare\n\n\n
\n[docs]\nclass QwtScaleMap(object):\n """\n A scale map\n\n `QwtScaleMap` offers transformations from the coordinate system\n of a scale into the linear coordinate system of a paint device\n and vice versa.\n\n The scale and paint device intervals are both set to [0,1].\n\n .. py:class:: QwtScaleMap([other=None])\n\n Constructor (eventually, copy constructor)\n\n :param qwt.scale_map.QwtScaleMap other: Other scale map\n\n .. py:class:: QwtScaleMap(p1, p2, s1, s2)\n :noindex:\n\n Constructor (was provided by `PyQwt` but not by `Qwt`)\n\n :param int p1: First border of the paint interval\n :param int p2: Second border of the paint interval\n :param float s1: First border of the scale interval\n :param float s2: Second border of the scale interval\n """\n\n def __init__(self, *args):\n self.__transform = None # QwtTransform\n self.__s1 = 0.0\n self.__s2 = 1.0\n self.__p1 = 0.0\n self.__p2 = 1.0\n other = None\n if len(args) == 1:\n (other,) = args\n elif len(args) == 4:\n p1, p2, s1, s2 = args\n self.__s1 = s1\n self.__s2 = s2\n self.__p1 = p1\n self.__p2 = p2\n elif len(args) != 0:\n raise TypeError(\n "%s() takes 0, 1, or 4 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n if other is None:\n self.__cnv = 1.0\n self.__ts1 = 0.0\n else:\n self.__s1 = other.__s1\n self.__s2 = other.__s2\n self.__p1 = other.__p1\n self.__p2 = other.__p2\n self.__cnv = other.__cnv\n self.__ts1 = other.__ts1\n if other.__transform:\n self.__transform = other.__transform.copy()\n\n def __eq__(self, other):\n return (\n self.__s1 == other.__s1\n and self.__s2 == other.__s2\n and self.__p1 == other.__p1\n and self.__p2 == other.__p2\n and self.__cnv == other.__cnv\n and self.__ts1 == other.__ts1\n )\n\n
\n[docs]\n def s1(self):\n """\n :return: First border of the scale interval\n """\n return self.__s1
\n\n\n
\n[docs]\n def s2(self):\n """\n :return: Second border of the scale interval\n """\n return self.__s2
\n\n\n
\n[docs]\n def p1(self):\n """\n :return: First border of the paint interval\n """\n return self.__p1
\n\n\n
\n[docs]\n def p2(self):\n """\n :return: Second border of the paint interval\n """\n return self.__p2
\n\n\n
\n[docs]\n def pDist(self):\n """\n :return: `abs(p2() - p1())`\n """\n return abs(self.__p2 - self.__p1)
\n\n\n
\n[docs]\n def sDist(self):\n """\n :return: `abs(s2() - s1())`\n """\n return abs(self.__s2 - self.__s1)
\n\n\n
\n[docs]\n def transform_scalar(self, s):\n """\n Transform a point related to the scale interval into an point\n related to the interval of the paint device\n\n :param float s: Value relative to the coordinates of the scale\n :return: Transformed value\n\n .. seealso::\n\n :py:meth:`invTransform_scalar()`\n """\n if self.__transform:\n s = self.__transform.transform(s)\n return self.__p1 + (s - self.__ts1) * self.__cnv
\n\n\n
\n[docs]\n def invTransform_scalar(self, p):\n """\n Transform an paint device value into a value in the\n interval of the scale.\n\n :param float p: Value relative to the coordinates of the paint device\n :return: Transformed value\n\n .. seealso::\n\n :py:meth:`transform_scalar()`\n """\n if self.__cnv == 0:\n s = self.__ts1 # avoid divide by zero\n else:\n s = self.__ts1 + (p - self.__p1) / self.__cnv\n if self.__transform:\n s = self.__transform.invTransform(s)\n return s
\n\n\n
\n[docs]\n def isInverting(self):\n """\n :return: True, when ( p1() < p2() ) != ( s1() < s2() )\n """\n return (self.__p1 < self.__p2) != (self.__s1 < self.__s2)
\n\n\n
\n[docs]\n def setTransformation(self, transform):\n """\n Initialize the map with a transformation\n\n :param qwt.transform.QwtTransform transform: Transformation\n """\n if self.__transform != transform:\n self.__transform = transform\n self.setScaleInterval(self.__s1, self.__s2)
\n\n\n
\n[docs]\n def transformation(self):\n """\n :return: the transformation\n """\n return self.__transform
\n\n\n
\n[docs]\n def setScaleInterval(self, s1, s2):\n """\n Specify the borders of the scale interval\n\n :param float s1: first border\n :param float s2: second border\n\n .. warning::\n\n Scales might be aligned to transformation depending boundaries\n """\n self.__s1 = s1\n self.__s2 = s2\n if self.__transform:\n self.__s1 = self.__transform.bounded(self.__s1)\n self.__s2 = self.__transform.bounded(self.__s2)\n self.updateFactor()
\n\n\n
\n[docs]\n def setPaintInterval(self, p1, p2):\n """\n Specify the borders of the paint device interval\n\n :param float p1: first border\n :param float p2: second border\n """\n self.__p1 = p1\n self.__p2 = p2\n self.updateFactor()
\n\n\n def updateFactor(self):\n self.__ts1 = self.__s1\n ts2 = self.__s2\n if self.__transform:\n self.__ts1 = self.__transform.transform(self.__ts1)\n ts2 = self.__transform.transform(ts2)\n self.__cnv = 1.0\n if self.__ts1 != ts2:\n self.__cnv = (self.__p2 - self.__p1) / (ts2 - self.__ts1)\n\n
\n[docs]\n def transform(self, *args):\n """\n Transform a rectangle from scale to paint coordinates.\n\n Transfom a scalar:\n\n :param float scalar: Scalar\n\n Transfom a rectangle:\n\n :param qwt.scale_map.QwtScaleMap xMap: X map\n :param qwt.scale_map.QwtScaleMap yMap: Y map\n :param QRectF rect: Rectangle in paint coordinates\n\n Transfom a point:\n\n :param qwt.scale_map.QwtScaleMap xMap: X map\n :param qwt.scale_map.QwtScaleMap yMap: Y map\n :param QPointF pos: Position in scale coordinates\n\n .. seealso::\n\n :py:meth:`invTransform()`\n """\n if len(args) == 1:\n # Scalar transform\n return self.transform_scalar(args[0])\n elif len(args) == 3 and isinstance(args[2], QPointF):\n xMap, yMap, pos = args\n return QPointF(xMap.transform(pos.x()), yMap.transform(pos.y()))\n elif len(args) == 3 and isinstance(args[2], QRectF):\n xMap, yMap, rect = args\n x1 = xMap.transform(rect.left())\n x2 = xMap.transform(rect.right())\n y1 = yMap.transform(rect.top())\n y2 = yMap.transform(rect.bottom())\n if x2 < x1:\n x1, x2 = x2, x1\n if y2 < y1:\n y1, y2 = y2, y1\n if qwtFuzzyCompare(x1, 0.0, x2 - x1) == 0:\n x1 = 0.0\n if qwtFuzzyCompare(x2, 0.0, x2 - x1) == 0:\n x2 = 0.0\n if qwtFuzzyCompare(y1, 0.0, y2 - y1) == 0:\n y1 = 0.0\n if qwtFuzzyCompare(y2, 0.0, y2 - y1) == 0:\n y2 = 0.0\n return QRectF(x1, y1, x2 - x1 + 1, y2 - y1 + 1)\n else:\n raise TypeError(\n "%s().transform() takes 1 or 3 argument(s) (%s "\n "given)" % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def invTransform(self, *args):\n """Transform from paint to scale coordinates\n\n Scalar: scalemap.invTransform(scalar)\n Point (QPointF): scalemap.invTransform(xMap, yMap, pos)\n Rectangle (QRectF): scalemap.invTransform(xMap, yMap, rect)\n """\n if len(args) == 1:\n # Scalar transform\n return self.invTransform_scalar(args[0])\n elif isinstance(args[2], QPointF):\n xMap, yMap, pos = args\n return QPointF(xMap.invTransform(pos.x()), yMap.invTransform(pos.y()))\n elif isinstance(args[2], QRectF):\n xMap, yMap, rect = args\n x1 = xMap.invTransform(rect.left())\n x2 = xMap.invTransform(rect.right() - 1)\n y1 = yMap.invTransform(rect.top())\n y2 = yMap.invTransform(rect.bottom() - 1)\n r = QRectF(x1, y1, x2 - x1, y2 - y1)\n return r.normalized()
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39ca0b80>, 'js_tag': .js_tag at 0x7f3d39ca2020>}, None) highlighting module code... [ 83%] qwt.scale_widget [app] emitting event: 'viewcode-find-source'('qwt.scale_widget',) -[app] emitting event: 'html-page-context'('_modules/qwt/scale_widget', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/scale_widget', 'current_page_name': '_modules/qwt/scale_widget', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6890ae0>, 'hasdoc': .hasdoc at 0x7fc7d6890360>, 'toctree': . at 0x7fc7d68904a0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.scale_widget', 'body': '

Source code for qwt.scale_widget

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtScaleWidget\n--------------\n\n.. autoclass:: QwtScaleWidget\n   :members:\n"""\n\nimport math\n\nfrom qtpy.QtCore import QObject, QRectF, QSize, Qt, Signal\nfrom qtpy.QtGui import QPainter, QPalette\nfrom qtpy.QtWidgets import QSizePolicy, QStyle, QStyleOption, QWidget\n\nfrom qwt.color_map import QwtColorMap, QwtLinearColorMap\nfrom qwt.interval import QwtInterval\nfrom qwt.painter import QwtPainter\nfrom qwt.scale_draw import QwtScaleDraw\nfrom qwt.scale_engine import QwtLinearScaleEngine\nfrom qwt.text import QwtText\n\n\nclass ColorBar(object):\n    def __init__(self):\n        self.isEnabled = None\n        self.width = None\n        self.interval = QwtInterval()\n        self.colorMap = QwtColorMap()\n\n\nclass QwtScaleWidget_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.scaleDraw = None\n        self.borderDist = [None] * 2\n        self.minBorderDist = [None] * 2\n        self.scaleLength = None\n        self.margin = None\n        self.titleOffset = None\n        self.spacing = None\n        self.title = QwtText()\n        self.layoutFlags = None\n        self.colorBar = ColorBar()\n\n\n
\n[docs]\nclass QwtScaleWidget(QWidget):\n """\n A Widget which contains a scale\n\n This Widget can be used to decorate composite widgets with\n a scale.\n\n Layout flags:\n\n * `QwtScaleWidget.TitleInverted`: The title of vertical scales is painted from top to bottom. Otherwise it is painted from bottom to top.\n\n .. py:class:: QwtScaleWidget([parent=None])\n\n Alignment default is `QwtScaleDraw.LeftScale`.\n\n :param parent: Parent widget\n :type parent: QWidget or None\n\n .. py:class:: QwtScaleWidget(align, parent)\n :noindex:\n\n :param int align: Alignment\n :param QWidget parent: Parent widget\n """\n\n scaleDivChanged = Signal()\n\n # enum LayoutFlag\n TitleInverted = 1\n\n def __init__(self, *args):\n self.__data = None\n align = QwtScaleDraw.LeftScale\n if len(args) == 0:\n parent = None\n elif len(args) == 1:\n (parent,) = args\n elif len(args) == 2:\n align, parent = args\n else:\n raise TypeError(\n "%s() takes 0, 1 or 2 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n super(QwtScaleWidget, self).__init__(parent)\n self.initScale(align)\n\n
\n[docs]\n def initScale(self, align):\n """\n Initialize the scale\n\n :param int align: Alignment\n """\n self.__data = QwtScaleWidget_PrivateData()\n self.__data.layoutFlags = 0\n if align == QwtScaleDraw.RightScale:\n self.__data.layoutFlags |= self.TitleInverted\n\n self.__data.borderDist = [0, 0]\n self.__data.minBorderDist = [0, 0]\n self.__data.margin = 4\n self.__data.titleOffset = 0\n self.__data.spacing = 2\n\n self.__data.scaleDraw = QwtScaleDraw()\n self.__data.scaleDraw.setAlignment(align)\n self.__data.scaleDraw.setLength(10)\n\n self.__data.scaleDraw.setScaleDiv(\n QwtLinearScaleEngine().divideScale(0.0, 100.0, 10, 5)\n )\n\n self.__data.colorBar.colorMap = QwtLinearColorMap()\n self.__data.colorBar.isEnabled = False\n self.__data.colorBar.width = 10\n\n flags = Qt.AlignmentFlag(Qt.AlignHCenter | Qt.TextExpandTabs | Qt.TextWordWrap)\n self.__data.title.setRenderFlags(flags)\n self.__data.title.setFont(self.font())\n\n policy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed)\n if self.__data.scaleDraw.orientation() == Qt.Vertical:\n policy.transpose()\n\n self.setSizePolicy(policy)\n\n self.setAttribute(Qt.WA_WState_OwnSizePolicy, False)
\n\n\n
\n[docs]\n def setLayoutFlag(self, flag, on=True):\n """\n Toggle an layout flag\n\n :param int flag: Layout flag\n :param bool on: True/False\n\n .. seealso::\n\n :py:meth:`testLayoutFlag()`\n """\n if (self.__data.layoutFlags & flag != 0) != on:\n if on:\n self.__data.layoutFlags |= flag\n else:\n self.__data.layoutFlags &= ~flag\n self.update()
\n\n\n
\n[docs]\n def testLayoutFlag(self, flag):\n """\n Test a layout flag\n\n :param int flag: Layout flag\n :return: True/False\n\n .. seealso::\n\n :py:meth:`setLayoutFlag()`\n """\n return self.__data.layoutFlags & flag
\n\n\n
\n[docs]\n def setTitle(self, title):\n """\n Give title new text contents\n\n :param title: New title\n :type title: qwt.text.QwtText or str\n\n .. seealso::\n\n :py:meth:`title()`\n """\n if isinstance(title, QwtText):\n flags = title.renderFlags() & (~int(Qt.AlignTop | Qt.AlignBottom))\n title.setRenderFlags(flags)\n if title != self.__data.title:\n self.__data.title = title\n self.layoutScale()\n else:\n if self.__data.title.text() != title:\n self.__data.title.setText(title)\n self.layoutScale()
\n\n\n
\n[docs]\n def setAlignment(self, alignment):\n """\n Change the alignment\n\n :param int alignment: New alignment\n\n Valid alignment values: see :py:class:`qwt.scale_draw.QwtScaleDraw`\n\n .. seealso::\n\n :py:meth:`alignment()`\n """\n if self.__data.scaleDraw:\n self.__data.scaleDraw.setAlignment(alignment)\n if not self.testAttribute(Qt.WA_WState_OwnSizePolicy):\n policy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed)\n if self.__data.scaleDraw.orientation() == Qt.Vertical:\n policy.transpose()\n self.setSizePolicy(policy)\n self.setAttribute(Qt.WA_WState_OwnSizePolicy, False)\n self.layoutScale()
\n\n\n
\n[docs]\n def alignment(self):\n """\n :return: position\n\n .. seealso::\n\n :py:meth:`setAlignment()`\n """\n if not self.scaleDraw():\n return QwtScaleDraw.LeftScale\n return self.scaleDraw().alignment()
\n\n\n
\n[docs]\n def setBorderDist(self, dist1, dist2):\n """\n Specify distances of the scale's endpoints from the\n widget's borders. The actual borders will never be less\n than minimum border distance.\n\n :param int dist1: Left or top Distance\n :param int dist2: Right or bottom distance\n\n .. seealso::\n\n :py:meth:`borderDist()`\n """\n if dist1 != self.__data.borderDist[0] or dist2 != self.__data.borderDist[1]:\n self.__data.borderDist = [dist1, dist2]\n self.layoutScale()
\n\n\n
\n[docs]\n def setMargin(self, margin):\n """\n Specify the margin to the colorBar/base line.\n\n :param int margin: Margin\n\n .. seealso::\n\n :py:meth:`margin()`\n """\n margin = max([0, margin])\n if margin != self.__data.margin:\n self.__data.margin = margin\n self.layoutScale()
\n\n\n
\n[docs]\n def setSpacing(self, spacing):\n """\n Specify the distance between color bar, scale and title\n\n :param int spacing: Spacing\n\n .. seealso::\n\n :py:meth:`spacing()`\n """\n spacing = max([0, spacing])\n if spacing != self.__data.spacing:\n self.__data.spacing = spacing\n self.layoutScale()
\n\n\n
\n[docs]\n def setLabelAlignment(self, alignment):\n """\n Change the alignment for the labels.\n\n :param int spacing: Spacing\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()`,\n :py:meth:`setLabelRotation()`\n """\n self.__data.scaleDraw.setLabelAlignment(alignment)\n self.layoutScale()
\n\n\n
\n[docs]\n def setLabelRotation(self, rotation):\n """\n Change the rotation for the labels.\n\n :param float rotation: Rotation\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelRotation()`,\n :py:meth:`setLabelFlags()`\n """\n self.__data.scaleDraw.setLabelRotation(rotation)\n self.layoutScale()
\n\n\n
\n[docs]\n def setLabelAutoSize(self, state):\n """\n Set the automatic size option for labels (default: on).\n\n :param bool state: On/off\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()`\n """\n self.__data.scaleDraw.setLabelAutoSize(state)\n self.layoutScale()
\n\n\n
\n[docs]\n def setScaleDraw(self, scaleDraw):\n """\n Set a scale draw\n\n scaleDraw has to be created with new and will be deleted in\n class destructor or the next call of `setScaleDraw()`.\n scaleDraw will be initialized with the attributes of\n the previous scaleDraw object.\n\n :param qwt.scale_draw.QwtScaleDraw scaleDraw: ScaleDraw object\n\n .. seealso::\n\n :py:meth:`scaleDraw()`\n """\n if scaleDraw is None or scaleDraw == self.__data.scaleDraw:\n return\n sd = self.__data.scaleDraw\n if sd is not None:\n scaleDraw.setAlignment(sd.alignment())\n scaleDraw.setScaleDiv(sd.scaleDiv())\n transform = None\n if sd.scaleMap().transformation():\n transform = sd.scaleMap().transformation().copy()\n scaleDraw.setTransformation(transform)\n self.__data.scaleDraw = scaleDraw\n self.layoutScale()
\n\n\n
\n[docs]\n def scaleDraw(self):\n """\n :return: scaleDraw of this scale\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtScaleDraw.setScaleDraw()`\n """\n return self.__data.scaleDraw
\n\n\n
\n[docs]\n def title(self):\n """\n :return: title\n\n .. seealso::\n\n :py:meth:`setTitle`\n """\n return self.__data.title
\n\n\n
\n[docs]\n def startBorderDist(self):\n """\n :return: start border distance\n\n .. seealso::\n\n :py:meth:`setBorderDist`\n """\n return self.__data.borderDist[0]
\n\n\n
\n[docs]\n def endBorderDist(self):\n """\n :return: end border distance\n\n .. seealso::\n\n :py:meth:`setBorderDist`\n """\n return self.__data.borderDist[1]
\n\n\n
\n[docs]\n def margin(self):\n """\n :return: margin\n\n .. seealso::\n\n :py:meth:`setMargin`\n """\n return self.__data.margin
\n\n\n
\n[docs]\n def spacing(self):\n """\n :return: distance between scale and title\n\n .. seealso::\n\n :py:meth:`setSpacing`\n """\n return self.__data.spacing
\n\n\n
\n[docs]\n def paintEvent(self, event):\n painter = QPainter(self)\n painter.setClipRegion(event.region())\n opt = QStyleOption()\n opt.initFrom(self)\n self.style().drawPrimitive(QStyle.PE_Widget, opt, painter, self)\n self.draw(painter)
\n\n\n
\n[docs]\n def draw(self, painter):\n """\n Draw the scale\n\n :param QPainter painter: Painter\n """\n self.__data.scaleDraw.draw(painter, self.palette())\n if (\n self.__data.colorBar.isEnabled\n and self.__data.colorBar.width > 0\n and self.__data.colorBar.interval.isValid()\n ):\n self.drawColorBar(painter, self.colorBarRect(self.contentsRect()))\n\n r = QRectF(self.contentsRect())\n if self.__data.scaleDraw.orientation() == Qt.Horizontal:\n r.setLeft(r.left() + self.__data.borderDist[0])\n r.setWidth(r.width() - self.__data.borderDist[1])\n else:\n r.setTop(r.top() + self.__data.borderDist[0])\n r.setHeight(r.height() - self.__data.borderDist[1])\n\n if not self.__data.title.isEmpty():\n self.drawTitle(painter, self.__data.scaleDraw.alignment(), r)
\n\n\n
\n[docs]\n def colorBarRect(self, rect):\n """\n Calculate the the rectangle for the color bar\n\n :param QRectF rect: Bounding rectangle for all components of the scale\n :return: Rectangle for the color bar\n """\n cr = QRectF(rect)\n if self.__data.scaleDraw.orientation() == Qt.Horizontal:\n cr.setLeft(cr.left() + self.__data.borderDist[0])\n cr.setWidth(cr.width() - self.__data.borderDist[1] + 1)\n else:\n cr.setTop(cr.top() + self.__data.borderDist[0])\n cr.setHeight(cr.height() - self.__data.borderDist[1] + 1)\n sda = self.__data.scaleDraw.alignment()\n if sda == QwtScaleDraw.LeftScale:\n cr.setLeft(cr.right() - self.__data.margin - self.__data.colorBar.width)\n cr.setWidth(self.__data.colorBar.width)\n elif sda == QwtScaleDraw.RightScale:\n cr.setLeft(cr.left() + self.__data.margin)\n cr.setWidth(self.__data.colorBar.width)\n elif sda == QwtScaleDraw.BottomScale:\n cr.setTop(cr.top() + self.__data.margin)\n cr.setHeight(self.__data.colorBar.width)\n elif sda == QwtScaleDraw.TopScale:\n cr.setTop(cr.bottom() - self.__data.margin - self.__data.colorBar.width)\n cr.setHeight(self.__data.colorBar.width)\n return cr
\n\n\n
\n[docs]\n def resizeEvent(self, event):\n self.layoutScale(False)
\n\n\n
\n[docs]\n def layoutScale(self, update_geometry=True):\n """\n Recalculate the scale's geometry and layout based on\n the current geometry and fonts.\n\n :param bool update_geometry: Notify the layout system and call update to redraw the scale\n """\n bd0, bd1 = self.getBorderDistHint()\n if self.__data.borderDist[0] > bd0:\n bd0 = self.__data.borderDist[0]\n if self.__data.borderDist[1] > bd1:\n bd1 = self.__data.borderDist[1]\n\n colorBarWidth = 0\n if self.__data.colorBar.isEnabled and self.__data.colorBar.interval.isValid():\n colorBarWidth = self.__data.colorBar.width + self.__data.spacing\n\n r = self.contentsRect()\n if self.__data.scaleDraw.orientation() == Qt.Vertical:\n y = r.top() + bd0\n length = r.height() - (bd0 + bd1)\n if self.__data.scaleDraw.alignment() == QwtScaleDraw.LeftScale:\n x = r.right() - 1.0 - self.__data.margin - colorBarWidth\n else:\n x = r.left() + self.__data.margin + colorBarWidth\n else:\n x = r.left() + bd0\n length = r.width() - (bd0 + bd1)\n if self.__data.scaleDraw.alignment() == QwtScaleDraw.BottomScale:\n y = r.top() + self.__data.margin + colorBarWidth\n else:\n y = r.bottom() - 1.0 - self.__data.margin - colorBarWidth\n\n self.__data.scaleDraw.move(x, y)\n self.__data.scaleDraw.setLength(length)\n\n extent = math.ceil(self.__data.scaleDraw.extent(self.font()))\n self.__data.titleOffset = (\n self.__data.margin + self.__data.spacing + colorBarWidth + extent\n )\n\n if update_geometry:\n self.updateGeometry()\n\n # The following was removed because it caused a high CPU usage\n # in guiqwt.ImageWidget. The origin of these lines was an\n # attempt to transpose PythonQwt from Qwt 6.1.2 to Qwt 6.1.5.\n\n # --> Begin of removed lines <--------------------------------------\n # # for some reason updateGeometry does not send a LayoutRequest\n # # event when the parent is not visible and has no layout\n # widget = self.parentWidget()\n # if widget and not widget.isVisible() and widget.layout() is None:\n # if widget.testAttribute(Qt.WA_WState_Polished):\n # QApplication.postEvent(\n # self.parentWidget(), QEvent(QEvent.LayoutRequest)\n # )\n # --> End of removed lines <----------------------------------------\n\n self.update()
\n\n\n
\n[docs]\n def drawColorBar(self, painter, rect):\n """\n Draw the color bar of the scale widget\n\n :param QPainter painter: Painter\n :param QRectF rect: Bounding rectangle for the color bar\n\n .. seealso::\n\n :py:meth:`setColorBarEnabled()`\n """\n if not self.__data.colorBar.interval.isValid():\n return\n sd = self.__data.scaleDraw\n QwtPainter.drawColorBar(\n painter,\n self.__data.colorBar.colorMap,\n self.__data.colorBar.interval.normalized(),\n sd.scaleMap(),\n sd.orientation(),\n rect,\n )
\n\n\n
\n[docs]\n def drawTitle(self, painter, align, rect):\n """\n Rotate and paint a title according to its position into a given rectangle.\n\n :param QPainter painter: Painter\n :param int align: Alignment\n :param QRectF rect: Bounding rectangle\n """\n r = rect\n flags = self.__data.title.renderFlags() & (\n ~int(Qt.AlignTop | Qt.AlignBottom | Qt.AlignVCenter)\n )\n if align == QwtScaleDraw.LeftScale:\n angle = -90.0\n flags |= Qt.AlignTop\n r.setRect(\n r.left(), r.bottom(), r.height(), r.width() - self.__data.titleOffset\n )\n elif align == QwtScaleDraw.RightScale:\n angle = -90.0\n flags |= Qt.AlignTop\n r.setRect(\n r.left() + self.__data.titleOffset,\n r.bottom(),\n r.height(),\n r.width() - self.__data.titleOffset,\n )\n elif align == QwtScaleDraw.BottomScale:\n angle = 0.0\n flags |= Qt.AlignBottom\n r.setTop(r.top() + self.__data.titleOffset)\n else:\n angle = 0.0\n flags |= Qt.AlignTop\n r.setBottom(r.bottom() - self.__data.titleOffset)\n\n if self.__data.layoutFlags & self.TitleInverted:\n if align in (QwtScaleDraw.LeftScale, QwtScaleDraw.RightScale):\n angle = -angle\n r.setRect(r.x() + r.height(), r.y() - r.width(), r.width(), r.height())\n\n painter.save()\n painter.setFont(self.font())\n painter.setPen(self.palette().color(QPalette.Text))\n\n painter.translate(r.x(), r.y())\n if angle != 0.0:\n painter.rotate(angle)\n\n title = self.__data.title\n title.setRenderFlags(flags)\n title.draw(painter, QRectF(0.0, 0.0, r.width(), r.height()))\n\n painter.restore()
\n\n\n
\n[docs]\n def scaleChange(self):\n """\n Notify a change of the scale\n\n This method can be overloaded by derived classes. The default\n implementation updates the geometry and repaints the widget.\n """\n self.layoutScale()
\n\n\n
\n[docs]\n def sizeHint(self):\n return self.minimumSizeHint()
\n\n\n
\n[docs]\n def minimumSizeHint(self):\n o = self.__data.scaleDraw.orientation()\n length = 0\n mbd1, mbd2 = self.getBorderDistHint()\n length += max([0, self.__data.borderDist[0] - mbd1])\n length += max([0, self.__data.borderDist[1] - mbd2])\n length += self.__data.scaleDraw.minLength(self.font())\n\n dim = self.dimForLength(length, self.font())\n if length < dim:\n length = dim\n dim = self.dimForLength(length, self.font())\n\n size = QSize(length + 2, dim)\n if o == Qt.Vertical:\n size.transpose()\n\n if self.layout() is None:\n left, top, right, bottom = 0, 0, 0, 0\n else:\n mgn = self.layout().contentsMargins()\n left, top, right, bottom = (\n mgn.left(),\n mgn.top(),\n mgn.right(),\n mgn.bottom(),\n )\n return size + QSize(left + right, top + bottom)
\n\n\n
\n[docs]\n def titleHeightForWidth(self, width):\n """\n Find the height of the title for a given width.\n\n :param int width: Width\n :return: Height\n """\n return math.ceil(self.__data.title.heightForWidth(width, self.font()))
\n\n\n
\n[docs]\n def dimForLength(self, length, scaleFont):\n """\n Find the minimum dimension for a given length.\n dim is the height, length the width seen in direction of the title.\n\n :param int length: width for horizontal, height for vertical scales\n :param QFont scaleFont: Font of the scale\n :return: height for horizontal, width for vertical scales\n """\n extent = math.ceil(self.__data.scaleDraw.extent(scaleFont))\n dim = self.__data.margin + extent + 1\n if not self.__data.title.isEmpty():\n dim += self.titleHeightForWidth(length) + self.__data.spacing\n if self.__data.colorBar.isEnabled and self.__data.colorBar.interval.isValid():\n dim += self.__data.colorBar.width + self.__data.spacing\n return dim
\n\n\n
\n[docs]\n def getBorderDistHint(self):\n """\n Calculate a hint for the border distances.\n\n This member function calculates the distance\n of the scale's endpoints from the widget borders which\n is required for the mark labels to fit into the widget.\n The maximum of this distance an the minimum border distance\n is returned.\n\n :param int start: Return parameter for the border width at the beginning of the scale\n :param int end: Return parameter for the border width at the end of the scale\n\n .. warning::\n\n The minimum border distance depends on the font.\n\n .. seealso::\n\n :py:meth:`setMinBorderDist()`, :py:meth:`getMinBorderDist()`,\n :py:meth:`setBorderDist()`\n """\n start, end = self.__data.scaleDraw.getBorderDistHint(self.font())\n if start < self.__data.minBorderDist[0]:\n start = self.__data.minBorderDist[0]\n if end < self.__data.minBorderDist[1]:\n end = self.__data.minBorderDist[1]\n return start, end
\n\n\n
\n[docs]\n def setMinBorderDist(self, start, end):\n """\n Set a minimum value for the distances of the scale's endpoints from\n the widget borders. This is useful to avoid that the scales\n are "jumping", when the tick labels or their positions change\n often.\n\n :param int start: Minimum for the start border\n :param int end: Minimum for the end border\n\n .. seealso::\n\n :py:meth:`getMinBorderDist()`, :py:meth:`getBorderDistHint()`\n """\n self.__data.minBorderDist = [start, end]
\n\n\n
\n[docs]\n def getMinBorderDist(self):\n """\n Get the minimum value for the distances of the scale's endpoints from\n the widget borders.\n\n :param int start: Return parameter for the border width at the beginning of the scale\n :param int end: Return parameter for the border width at the end of the scale\n\n .. seealso::\n\n :py:meth:`setMinBorderDist()`, :py:meth:`getBorderDistHint()`\n """\n return self.__data.minBorderDist
\n\n\n
\n[docs]\n def setScaleDiv(self, scaleDiv):\n """\n Assign a scale division\n\n The scale division determines where to set the tick marks.\n\n :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale Division\n\n .. seealso::\n\n For more information about scale divisions,\n see :py:class:`qwt.scale_div.QwtScaleDiv`.\n """\n sd = self.__data.scaleDraw\n if sd.scaleDiv() != scaleDiv:\n sd.setScaleDiv(scaleDiv)\n self.layoutScale()\n self.scaleDivChanged.emit()
\n\n\n
\n[docs]\n def setTransformation(self, transformation):\n """\n Set the transformation\n\n :param qwt.transform.Transform transformation: Transformation\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtAbstractScaleDraw.scaleDraw()`,\n :py:class:`qwt.scale_map.QwtScaleMap`\n """\n self.__data.scaleDraw.setTransformation(transformation)\n self.layoutScale()
\n\n\n
\n[docs]\n def setColorBarEnabled(self, on):\n """\n En/disable a color bar associated to the scale\n\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`isColorBarEnabled()`, :py:meth:`setColorBarWidth()`\n """\n if on != self.__data.colorBar.isEnabled:\n self.__data.colorBar.isEnabled = on\n self.layoutScale()
\n\n\n
\n[docs]\n def isColorBarEnabled(self):\n """\n :return: True, when the color bar is enabled\n\n .. seealso::\n\n :py:meth:`setColorBarEnabled()`, :py:meth:`setColorBarWidth()`\n """\n return self.__data.colorBar.isEnabled
\n\n\n
\n[docs]\n def setColorBarWidth(self, width):\n """\n Set the width of the color bar\n\n :param int width: Width\n\n .. seealso::\n\n :py:meth:`colorBarWidth()`, :py:meth:`setColorBarEnabled()`\n """\n if width != self.__data.colorBar.width:\n self.__data.colorBar.width = width\n if self.isColorBarEnabled():\n self.layoutScale()
\n\n\n
\n[docs]\n def colorBarWidth(self):\n """\n :return: Width of the color bar\n\n .. seealso::\n\n :py:meth:`setColorBarWidth()`, :py:meth:`setColorBarEnabled()`\n """\n return self.__data.colorBar.width
\n\n\n
\n[docs]\n def colorBarInterval(self):\n """\n :return: Value interval for the color bar\n\n .. seealso::\n\n :py:meth:`setColorMap()`, :py:meth:`colorMap()`\n """\n return self.__data.colorBar.interval
\n\n\n
\n[docs]\n def setColorMap(self, interval, colorMap):\n """\n Set the color map and value interval, that are used for displaying\n the color bar.\n\n :param qwt.interval.QwtInterval interval: Value interval\n :param qwt.color_map.QwtColorMap colorMap: Color map\n\n .. seealso::\n\n :py:meth:`colorMap()`, :py:meth:`colorBarInterval()`\n """\n self.__data.colorBar.interval = interval\n if colorMap != self.__data.colorBar.colorMap:\n self.__data.colorBar.colorMap = colorMap\n if self.isColorBarEnabled():\n self.layoutScale()
\n\n\n
\n[docs]\n def colorMap(self):\n """\n :return: Color map\n\n .. seealso::\n\n :py:meth:`setColorMap()`, :py:meth:`colorBarInterval()`\n """\n return self.__data.colorBar.colorMap
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6890fe0>, 'js_tag': .js_tag at 0x7fc7d6890180>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/scale_widget', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/scale_widget', 'current_page_name': '_modules/qwt/scale_widget', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ca0ae0>, 'hasdoc': .hasdoc at 0x7f3d39ca0360>, 'toctree': . at 0x7f3d39ca04a0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.scale_widget', 'body': '

Source code for qwt.scale_widget

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtScaleWidget\n--------------\n\n.. autoclass:: QwtScaleWidget\n   :members:\n"""\n\nimport math\n\nfrom qtpy.QtCore import QObject, QRectF, QSize, Qt, Signal\nfrom qtpy.QtGui import QPainter, QPalette\nfrom qtpy.QtWidgets import QSizePolicy, QStyle, QStyleOption, QWidget\n\nfrom qwt.color_map import QwtColorMap, QwtLinearColorMap\nfrom qwt.interval import QwtInterval\nfrom qwt.painter import QwtPainter\nfrom qwt.scale_draw import QwtScaleDraw\nfrom qwt.scale_engine import QwtLinearScaleEngine\nfrom qwt.text import QwtText\n\n\nclass ColorBar(object):\n    def __init__(self):\n        self.isEnabled = None\n        self.width = None\n        self.interval = QwtInterval()\n        self.colorMap = QwtColorMap()\n\n\nclass QwtScaleWidget_PrivateData(QObject):\n    def __init__(self):\n        QObject.__init__(self)\n\n        self.scaleDraw = None\n        self.borderDist = [None] * 2\n        self.minBorderDist = [None] * 2\n        self.scaleLength = None\n        self.margin = None\n        self.titleOffset = None\n        self.spacing = None\n        self.title = QwtText()\n        self.layoutFlags = None\n        self.colorBar = ColorBar()\n\n\n
\n[docs]\nclass QwtScaleWidget(QWidget):\n """\n A Widget which contains a scale\n\n This Widget can be used to decorate composite widgets with\n a scale.\n\n Layout flags:\n\n * `QwtScaleWidget.TitleInverted`: The title of vertical scales is painted from top to bottom. Otherwise it is painted from bottom to top.\n\n .. py:class:: QwtScaleWidget([parent=None])\n\n Alignment default is `QwtScaleDraw.LeftScale`.\n\n :param parent: Parent widget\n :type parent: QWidget or None\n\n .. py:class:: QwtScaleWidget(align, parent)\n :noindex:\n\n :param int align: Alignment\n :param QWidget parent: Parent widget\n """\n\n scaleDivChanged = Signal()\n\n # enum LayoutFlag\n TitleInverted = 1\n\n def __init__(self, *args):\n self.__data = None\n align = QwtScaleDraw.LeftScale\n if len(args) == 0:\n parent = None\n elif len(args) == 1:\n (parent,) = args\n elif len(args) == 2:\n align, parent = args\n else:\n raise TypeError(\n "%s() takes 0, 1 or 2 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n super(QwtScaleWidget, self).__init__(parent)\n self.initScale(align)\n\n
\n[docs]\n def initScale(self, align):\n """\n Initialize the scale\n\n :param int align: Alignment\n """\n self.__data = QwtScaleWidget_PrivateData()\n self.__data.layoutFlags = 0\n if align == QwtScaleDraw.RightScale:\n self.__data.layoutFlags |= self.TitleInverted\n\n self.__data.borderDist = [0, 0]\n self.__data.minBorderDist = [0, 0]\n self.__data.margin = 4\n self.__data.titleOffset = 0\n self.__data.spacing = 2\n\n self.__data.scaleDraw = QwtScaleDraw()\n self.__data.scaleDraw.setAlignment(align)\n self.__data.scaleDraw.setLength(10)\n\n self.__data.scaleDraw.setScaleDiv(\n QwtLinearScaleEngine().divideScale(0.0, 100.0, 10, 5)\n )\n\n self.__data.colorBar.colorMap = QwtLinearColorMap()\n self.__data.colorBar.isEnabled = False\n self.__data.colorBar.width = 10\n\n flags = Qt.AlignmentFlag(Qt.AlignHCenter | Qt.TextExpandTabs | Qt.TextWordWrap)\n self.__data.title.setRenderFlags(flags)\n self.__data.title.setFont(self.font())\n\n policy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed)\n if self.__data.scaleDraw.orientation() == Qt.Vertical:\n policy.transpose()\n\n self.setSizePolicy(policy)\n\n self.setAttribute(Qt.WA_WState_OwnSizePolicy, False)
\n\n\n
\n[docs]\n def setLayoutFlag(self, flag, on=True):\n """\n Toggle an layout flag\n\n :param int flag: Layout flag\n :param bool on: True/False\n\n .. seealso::\n\n :py:meth:`testLayoutFlag()`\n """\n if (self.__data.layoutFlags & flag != 0) != on:\n if on:\n self.__data.layoutFlags |= flag\n else:\n self.__data.layoutFlags &= ~flag\n self.update()
\n\n\n
\n[docs]\n def testLayoutFlag(self, flag):\n """\n Test a layout flag\n\n :param int flag: Layout flag\n :return: True/False\n\n .. seealso::\n\n :py:meth:`setLayoutFlag()`\n """\n return self.__data.layoutFlags & flag
\n\n\n
\n[docs]\n def setTitle(self, title):\n """\n Give title new text contents\n\n :param title: New title\n :type title: qwt.text.QwtText or str\n\n .. seealso::\n\n :py:meth:`title()`\n """\n if isinstance(title, QwtText):\n flags = title.renderFlags() & (~int(Qt.AlignTop | Qt.AlignBottom))\n title.setRenderFlags(flags)\n if title != self.__data.title:\n self.__data.title = title\n self.layoutScale()\n else:\n if self.__data.title.text() != title:\n self.__data.title.setText(title)\n self.layoutScale()
\n\n\n
\n[docs]\n def setAlignment(self, alignment):\n """\n Change the alignment\n\n :param int alignment: New alignment\n\n Valid alignment values: see :py:class:`qwt.scale_draw.QwtScaleDraw`\n\n .. seealso::\n\n :py:meth:`alignment()`\n """\n if self.__data.scaleDraw:\n self.__data.scaleDraw.setAlignment(alignment)\n if not self.testAttribute(Qt.WA_WState_OwnSizePolicy):\n policy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed)\n if self.__data.scaleDraw.orientation() == Qt.Vertical:\n policy.transpose()\n self.setSizePolicy(policy)\n self.setAttribute(Qt.WA_WState_OwnSizePolicy, False)\n self.layoutScale()
\n\n\n
\n[docs]\n def alignment(self):\n """\n :return: position\n\n .. seealso::\n\n :py:meth:`setAlignment()`\n """\n if not self.scaleDraw():\n return QwtScaleDraw.LeftScale\n return self.scaleDraw().alignment()
\n\n\n
\n[docs]\n def setBorderDist(self, dist1, dist2):\n """\n Specify distances of the scale's endpoints from the\n widget's borders. The actual borders will never be less\n than minimum border distance.\n\n :param int dist1: Left or top Distance\n :param int dist2: Right or bottom distance\n\n .. seealso::\n\n :py:meth:`borderDist()`\n """\n if dist1 != self.__data.borderDist[0] or dist2 != self.__data.borderDist[1]:\n self.__data.borderDist = [dist1, dist2]\n self.layoutScale()
\n\n\n
\n[docs]\n def setMargin(self, margin):\n """\n Specify the margin to the colorBar/base line.\n\n :param int margin: Margin\n\n .. seealso::\n\n :py:meth:`margin()`\n """\n margin = max([0, margin])\n if margin != self.__data.margin:\n self.__data.margin = margin\n self.layoutScale()
\n\n\n
\n[docs]\n def setSpacing(self, spacing):\n """\n Specify the distance between color bar, scale and title\n\n :param int spacing: Spacing\n\n .. seealso::\n\n :py:meth:`spacing()`\n """\n spacing = max([0, spacing])\n if spacing != self.__data.spacing:\n self.__data.spacing = spacing\n self.layoutScale()
\n\n\n
\n[docs]\n def setLabelAlignment(self, alignment):\n """\n Change the alignment for the labels.\n\n :param int spacing: Spacing\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()`,\n :py:meth:`setLabelRotation()`\n """\n self.__data.scaleDraw.setLabelAlignment(alignment)\n self.layoutScale()
\n\n\n
\n[docs]\n def setLabelRotation(self, rotation):\n """\n Change the rotation for the labels.\n\n :param float rotation: Rotation\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelRotation()`,\n :py:meth:`setLabelFlags()`\n """\n self.__data.scaleDraw.setLabelRotation(rotation)\n self.layoutScale()
\n\n\n
\n[docs]\n def setLabelAutoSize(self, state):\n """\n Set the automatic size option for labels (default: on).\n\n :param bool state: On/off\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()`\n """\n self.__data.scaleDraw.setLabelAutoSize(state)\n self.layoutScale()
\n\n\n
\n[docs]\n def setScaleDraw(self, scaleDraw):\n """\n Set a scale draw\n\n scaleDraw has to be created with new and will be deleted in\n class destructor or the next call of `setScaleDraw()`.\n scaleDraw will be initialized with the attributes of\n the previous scaleDraw object.\n\n :param qwt.scale_draw.QwtScaleDraw scaleDraw: ScaleDraw object\n\n .. seealso::\n\n :py:meth:`scaleDraw()`\n """\n if scaleDraw is None or scaleDraw == self.__data.scaleDraw:\n return\n sd = self.__data.scaleDraw\n if sd is not None:\n scaleDraw.setAlignment(sd.alignment())\n scaleDraw.setScaleDiv(sd.scaleDiv())\n transform = None\n if sd.scaleMap().transformation():\n transform = sd.scaleMap().transformation().copy()\n scaleDraw.setTransformation(transform)\n self.__data.scaleDraw = scaleDraw\n self.layoutScale()
\n\n\n
\n[docs]\n def scaleDraw(self):\n """\n :return: scaleDraw of this scale\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtScaleDraw.setScaleDraw()`\n """\n return self.__data.scaleDraw
\n\n\n
\n[docs]\n def title(self):\n """\n :return: title\n\n .. seealso::\n\n :py:meth:`setTitle`\n """\n return self.__data.title
\n\n\n
\n[docs]\n def startBorderDist(self):\n """\n :return: start border distance\n\n .. seealso::\n\n :py:meth:`setBorderDist`\n """\n return self.__data.borderDist[0]
\n\n\n
\n[docs]\n def endBorderDist(self):\n """\n :return: end border distance\n\n .. seealso::\n\n :py:meth:`setBorderDist`\n """\n return self.__data.borderDist[1]
\n\n\n
\n[docs]\n def margin(self):\n """\n :return: margin\n\n .. seealso::\n\n :py:meth:`setMargin`\n """\n return self.__data.margin
\n\n\n
\n[docs]\n def spacing(self):\n """\n :return: distance between scale and title\n\n .. seealso::\n\n :py:meth:`setSpacing`\n """\n return self.__data.spacing
\n\n\n
\n[docs]\n def paintEvent(self, event):\n painter = QPainter(self)\n painter.setClipRegion(event.region())\n opt = QStyleOption()\n opt.initFrom(self)\n self.style().drawPrimitive(QStyle.PE_Widget, opt, painter, self)\n self.draw(painter)
\n\n\n
\n[docs]\n def draw(self, painter):\n """\n Draw the scale\n\n :param QPainter painter: Painter\n """\n self.__data.scaleDraw.draw(painter, self.palette())\n if (\n self.__data.colorBar.isEnabled\n and self.__data.colorBar.width > 0\n and self.__data.colorBar.interval.isValid()\n ):\n self.drawColorBar(painter, self.colorBarRect(self.contentsRect()))\n\n r = QRectF(self.contentsRect())\n if self.__data.scaleDraw.orientation() == Qt.Horizontal:\n r.setLeft(r.left() + self.__data.borderDist[0])\n r.setWidth(r.width() - self.__data.borderDist[1])\n else:\n r.setTop(r.top() + self.__data.borderDist[0])\n r.setHeight(r.height() - self.__data.borderDist[1])\n\n if not self.__data.title.isEmpty():\n self.drawTitle(painter, self.__data.scaleDraw.alignment(), r)
\n\n\n
\n[docs]\n def colorBarRect(self, rect):\n """\n Calculate the the rectangle for the color bar\n\n :param QRectF rect: Bounding rectangle for all components of the scale\n :return: Rectangle for the color bar\n """\n cr = QRectF(rect)\n if self.__data.scaleDraw.orientation() == Qt.Horizontal:\n cr.setLeft(cr.left() + self.__data.borderDist[0])\n cr.setWidth(cr.width() - self.__data.borderDist[1] + 1)\n else:\n cr.setTop(cr.top() + self.__data.borderDist[0])\n cr.setHeight(cr.height() - self.__data.borderDist[1] + 1)\n sda = self.__data.scaleDraw.alignment()\n if sda == QwtScaleDraw.LeftScale:\n cr.setLeft(cr.right() - self.__data.margin - self.__data.colorBar.width)\n cr.setWidth(self.__data.colorBar.width)\n elif sda == QwtScaleDraw.RightScale:\n cr.setLeft(cr.left() + self.__data.margin)\n cr.setWidth(self.__data.colorBar.width)\n elif sda == QwtScaleDraw.BottomScale:\n cr.setTop(cr.top() + self.__data.margin)\n cr.setHeight(self.__data.colorBar.width)\n elif sda == QwtScaleDraw.TopScale:\n cr.setTop(cr.bottom() - self.__data.margin - self.__data.colorBar.width)\n cr.setHeight(self.__data.colorBar.width)\n return cr
\n\n\n
\n[docs]\n def resizeEvent(self, event):\n self.layoutScale(False)
\n\n\n
\n[docs]\n def layoutScale(self, update_geometry=True):\n """\n Recalculate the scale's geometry and layout based on\n the current geometry and fonts.\n\n :param bool update_geometry: Notify the layout system and call update to redraw the scale\n """\n bd0, bd1 = self.getBorderDistHint()\n if self.__data.borderDist[0] > bd0:\n bd0 = self.__data.borderDist[0]\n if self.__data.borderDist[1] > bd1:\n bd1 = self.__data.borderDist[1]\n\n colorBarWidth = 0\n if self.__data.colorBar.isEnabled and self.__data.colorBar.interval.isValid():\n colorBarWidth = self.__data.colorBar.width + self.__data.spacing\n\n r = self.contentsRect()\n if self.__data.scaleDraw.orientation() == Qt.Vertical:\n y = r.top() + bd0\n length = r.height() - (bd0 + bd1)\n if self.__data.scaleDraw.alignment() == QwtScaleDraw.LeftScale:\n x = r.right() - 1.0 - self.__data.margin - colorBarWidth\n else:\n x = r.left() + self.__data.margin + colorBarWidth\n else:\n x = r.left() + bd0\n length = r.width() - (bd0 + bd1)\n if self.__data.scaleDraw.alignment() == QwtScaleDraw.BottomScale:\n y = r.top() + self.__data.margin + colorBarWidth\n else:\n y = r.bottom() - 1.0 - self.__data.margin - colorBarWidth\n\n self.__data.scaleDraw.move(x, y)\n self.__data.scaleDraw.setLength(length)\n\n extent = math.ceil(self.__data.scaleDraw.extent(self.font()))\n self.__data.titleOffset = (\n self.__data.margin + self.__data.spacing + colorBarWidth + extent\n )\n\n if update_geometry:\n self.updateGeometry()\n\n # The following was removed because it caused a high CPU usage\n # in guiqwt.ImageWidget. The origin of these lines was an\n # attempt to transpose PythonQwt from Qwt 6.1.2 to Qwt 6.1.5.\n\n # --> Begin of removed lines <--------------------------------------\n # # for some reason updateGeometry does not send a LayoutRequest\n # # event when the parent is not visible and has no layout\n # widget = self.parentWidget()\n # if widget and not widget.isVisible() and widget.layout() is None:\n # if widget.testAttribute(Qt.WA_WState_Polished):\n # QApplication.postEvent(\n # self.parentWidget(), QEvent(QEvent.LayoutRequest)\n # )\n # --> End of removed lines <----------------------------------------\n\n self.update()
\n\n\n
\n[docs]\n def drawColorBar(self, painter, rect):\n """\n Draw the color bar of the scale widget\n\n :param QPainter painter: Painter\n :param QRectF rect: Bounding rectangle for the color bar\n\n .. seealso::\n\n :py:meth:`setColorBarEnabled()`\n """\n if not self.__data.colorBar.interval.isValid():\n return\n sd = self.__data.scaleDraw\n QwtPainter.drawColorBar(\n painter,\n self.__data.colorBar.colorMap,\n self.__data.colorBar.interval.normalized(),\n sd.scaleMap(),\n sd.orientation(),\n rect,\n )
\n\n\n
\n[docs]\n def drawTitle(self, painter, align, rect):\n """\n Rotate and paint a title according to its position into a given rectangle.\n\n :param QPainter painter: Painter\n :param int align: Alignment\n :param QRectF rect: Bounding rectangle\n """\n r = rect\n flags = self.__data.title.renderFlags() & (\n ~int(Qt.AlignTop | Qt.AlignBottom | Qt.AlignVCenter)\n )\n if align == QwtScaleDraw.LeftScale:\n angle = -90.0\n flags |= Qt.AlignTop\n r.setRect(\n r.left(), r.bottom(), r.height(), r.width() - self.__data.titleOffset\n )\n elif align == QwtScaleDraw.RightScale:\n angle = -90.0\n flags |= Qt.AlignTop\n r.setRect(\n r.left() + self.__data.titleOffset,\n r.bottom(),\n r.height(),\n r.width() - self.__data.titleOffset,\n )\n elif align == QwtScaleDraw.BottomScale:\n angle = 0.0\n flags |= Qt.AlignBottom\n r.setTop(r.top() + self.__data.titleOffset)\n else:\n angle = 0.0\n flags |= Qt.AlignTop\n r.setBottom(r.bottom() - self.__data.titleOffset)\n\n if self.__data.layoutFlags & self.TitleInverted:\n if align in (QwtScaleDraw.LeftScale, QwtScaleDraw.RightScale):\n angle = -angle\n r.setRect(r.x() + r.height(), r.y() - r.width(), r.width(), r.height())\n\n painter.save()\n painter.setFont(self.font())\n painter.setPen(self.palette().color(QPalette.Text))\n\n painter.translate(r.x(), r.y())\n if angle != 0.0:\n painter.rotate(angle)\n\n title = self.__data.title\n title.setRenderFlags(flags)\n title.draw(painter, QRectF(0.0, 0.0, r.width(), r.height()))\n\n painter.restore()
\n\n\n
\n[docs]\n def scaleChange(self):\n """\n Notify a change of the scale\n\n This method can be overloaded by derived classes. The default\n implementation updates the geometry and repaints the widget.\n """\n self.layoutScale()
\n\n\n
\n[docs]\n def sizeHint(self):\n return self.minimumSizeHint()
\n\n\n
\n[docs]\n def minimumSizeHint(self):\n o = self.__data.scaleDraw.orientation()\n length = 0\n mbd1, mbd2 = self.getBorderDistHint()\n length += max([0, self.__data.borderDist[0] - mbd1])\n length += max([0, self.__data.borderDist[1] - mbd2])\n length += self.__data.scaleDraw.minLength(self.font())\n\n dim = self.dimForLength(length, self.font())\n if length < dim:\n length = dim\n dim = self.dimForLength(length, self.font())\n\n size = QSize(length + 2, dim)\n if o == Qt.Vertical:\n size.transpose()\n\n if self.layout() is None:\n left, top, right, bottom = 0, 0, 0, 0\n else:\n mgn = self.layout().contentsMargins()\n left, top, right, bottom = (\n mgn.left(),\n mgn.top(),\n mgn.right(),\n mgn.bottom(),\n )\n return size + QSize(left + right, top + bottom)
\n\n\n
\n[docs]\n def titleHeightForWidth(self, width):\n """\n Find the height of the title for a given width.\n\n :param int width: Width\n :return: Height\n """\n return math.ceil(self.__data.title.heightForWidth(width, self.font()))
\n\n\n
\n[docs]\n def dimForLength(self, length, scaleFont):\n """\n Find the minimum dimension for a given length.\n dim is the height, length the width seen in direction of the title.\n\n :param int length: width for horizontal, height for vertical scales\n :param QFont scaleFont: Font of the scale\n :return: height for horizontal, width for vertical scales\n """\n extent = math.ceil(self.__data.scaleDraw.extent(scaleFont))\n dim = self.__data.margin + extent + 1\n if not self.__data.title.isEmpty():\n dim += self.titleHeightForWidth(length) + self.__data.spacing\n if self.__data.colorBar.isEnabled and self.__data.colorBar.interval.isValid():\n dim += self.__data.colorBar.width + self.__data.spacing\n return dim
\n\n\n
\n[docs]\n def getBorderDistHint(self):\n """\n Calculate a hint for the border distances.\n\n This member function calculates the distance\n of the scale's endpoints from the widget borders which\n is required for the mark labels to fit into the widget.\n The maximum of this distance an the minimum border distance\n is returned.\n\n :param int start: Return parameter for the border width at the beginning of the scale\n :param int end: Return parameter for the border width at the end of the scale\n\n .. warning::\n\n The minimum border distance depends on the font.\n\n .. seealso::\n\n :py:meth:`setMinBorderDist()`, :py:meth:`getMinBorderDist()`,\n :py:meth:`setBorderDist()`\n """\n start, end = self.__data.scaleDraw.getBorderDistHint(self.font())\n if start < self.__data.minBorderDist[0]:\n start = self.__data.minBorderDist[0]\n if end < self.__data.minBorderDist[1]:\n end = self.__data.minBorderDist[1]\n return start, end
\n\n\n
\n[docs]\n def setMinBorderDist(self, start, end):\n """\n Set a minimum value for the distances of the scale's endpoints from\n the widget borders. This is useful to avoid that the scales\n are "jumping", when the tick labels or their positions change\n often.\n\n :param int start: Minimum for the start border\n :param int end: Minimum for the end border\n\n .. seealso::\n\n :py:meth:`getMinBorderDist()`, :py:meth:`getBorderDistHint()`\n """\n self.__data.minBorderDist = [start, end]
\n\n\n
\n[docs]\n def getMinBorderDist(self):\n """\n Get the minimum value for the distances of the scale's endpoints from\n the widget borders.\n\n :param int start: Return parameter for the border width at the beginning of the scale\n :param int end: Return parameter for the border width at the end of the scale\n\n .. seealso::\n\n :py:meth:`setMinBorderDist()`, :py:meth:`getBorderDistHint()`\n """\n return self.__data.minBorderDist
\n\n\n
\n[docs]\n def setScaleDiv(self, scaleDiv):\n """\n Assign a scale division\n\n The scale division determines where to set the tick marks.\n\n :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale Division\n\n .. seealso::\n\n For more information about scale divisions,\n see :py:class:`qwt.scale_div.QwtScaleDiv`.\n """\n sd = self.__data.scaleDraw\n if sd.scaleDiv() != scaleDiv:\n sd.setScaleDiv(scaleDiv)\n self.layoutScale()\n self.scaleDivChanged.emit()
\n\n\n
\n[docs]\n def setTransformation(self, transformation):\n """\n Set the transformation\n\n :param qwt.transform.Transform transformation: Transformation\n\n .. seealso::\n\n :py:meth:`qwt.scale_draw.QwtAbstractScaleDraw.scaleDraw()`,\n :py:class:`qwt.scale_map.QwtScaleMap`\n """\n self.__data.scaleDraw.setTransformation(transformation)\n self.layoutScale()
\n\n\n
\n[docs]\n def setColorBarEnabled(self, on):\n """\n En/disable a color bar associated to the scale\n\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`isColorBarEnabled()`, :py:meth:`setColorBarWidth()`\n """\n if on != self.__data.colorBar.isEnabled:\n self.__data.colorBar.isEnabled = on\n self.layoutScale()
\n\n\n
\n[docs]\n def isColorBarEnabled(self):\n """\n :return: True, when the color bar is enabled\n\n .. seealso::\n\n :py:meth:`setColorBarEnabled()`, :py:meth:`setColorBarWidth()`\n """\n return self.__data.colorBar.isEnabled
\n\n\n
\n[docs]\n def setColorBarWidth(self, width):\n """\n Set the width of the color bar\n\n :param int width: Width\n\n .. seealso::\n\n :py:meth:`colorBarWidth()`, :py:meth:`setColorBarEnabled()`\n """\n if width != self.__data.colorBar.width:\n self.__data.colorBar.width = width\n if self.isColorBarEnabled():\n self.layoutScale()
\n\n\n
\n[docs]\n def colorBarWidth(self):\n """\n :return: Width of the color bar\n\n .. seealso::\n\n :py:meth:`setColorBarWidth()`, :py:meth:`setColorBarEnabled()`\n """\n return self.__data.colorBar.width
\n\n\n
\n[docs]\n def colorBarInterval(self):\n """\n :return: Value interval for the color bar\n\n .. seealso::\n\n :py:meth:`setColorMap()`, :py:meth:`colorMap()`\n """\n return self.__data.colorBar.interval
\n\n\n
\n[docs]\n def setColorMap(self, interval, colorMap):\n """\n Set the color map and value interval, that are used for displaying\n the color bar.\n\n :param qwt.interval.QwtInterval interval: Value interval\n :param qwt.color_map.QwtColorMap colorMap: Color map\n\n .. seealso::\n\n :py:meth:`colorMap()`, :py:meth:`colorBarInterval()`\n """\n self.__data.colorBar.interval = interval\n if colorMap != self.__data.colorBar.colorMap:\n self.__data.colorBar.colorMap = colorMap\n if self.isColorBarEnabled():\n self.layoutScale()
\n\n\n
\n[docs]\n def colorMap(self):\n """\n :return: Color map\n\n .. seealso::\n\n :py:meth:`setColorMap()`, :py:meth:`colorBarInterval()`\n """\n return self.__data.colorBar.colorMap
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39ca0fe0>, 'js_tag': .js_tag at 0x7f3d39ca0180>}, None) highlighting module code... [ 88%] qwt.symbol [app] emitting event: 'viewcode-find-source'('qwt.symbol',) -[app] emitting event: 'html-page-context'('_modules/qwt/symbol', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/symbol', 'current_page_name': '_modules/qwt/symbol', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6890f40>, 'hasdoc': .hasdoc at 0x7fc7d6890220>, 'toctree': . at 0x7fc7d6891ee0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.symbol', 'body': '

Source code for qwt.symbol

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtSymbol\n---------\n\n.. autoclass:: QwtSymbol\n   :members:\n"""\n\nimport math\n\nfrom qtpy.QtCore import (\n    QLineF,\n    QObject,\n    QPoint,\n    QPointF,\n    QRect,\n    QRectF,\n    QSize,\n    QSizeF,\n    Qt,\n)\nfrom qtpy.QtGui import (\n    QBrush,\n    QPainter,\n    QPen,\n    QPixmap,\n    QPolygonF,\n    QTransform,\n)\nfrom qtpy.QtSvg import QSvgRenderer\n\nfrom qwt.graphic import QwtGraphic\n\n\nclass QwtTriangle(object):\n    # enum Type\n    Left, Right, Up, Down = list(range(4))\n\n\ndef qwtPathGraphic(path, pen, brush):\n    graphic = QwtGraphic()\n    graphic.setRenderHint(QwtGraphic.RenderPensUnscaled)\n    painter = QPainter(graphic)\n    painter.setPen(pen)\n    painter.setBrush(brush)\n    painter.drawPath(path)\n    painter.end()\n    return graphic\n\n\ndef qwtScaleBoundingRect(graphic, size):\n    scaledSize = QSize(size)\n    if scaledSize.isEmpty():\n        scaledSize = graphic.defaultSize()\n    sz = graphic.controlPointRect().size()\n    sx = 1.0\n    if sz.width() > 0.0:\n        sx = scaledSize.width() / sz.width()\n    sy = 1.0\n    if sz.height() > 0.0:\n        sy = scaledSize.height() / sz.height()\n    return graphic.scaledBoundingRect(sx, sy)\n\n\ndef qwtDrawPixmapSymbols(painter, points, symbol):\n    size = symbol.size()\n    if size.isEmpty():\n        size = symbol.pixmap().size()\n    transform = QTransform(painter.transform())\n    if transform.isScaling():\n        r = QRect(0, 0, size.width(), size.height())\n        size = transform.mapRect(r).size()\n    pm = QPixmap(symbol.pixmap())\n    if pm.size() != size:\n        pm = pm.scaled(size)\n    pinPoint = QPointF(0.5 * size.width(), 0.5 * size.height())\n    if symbol.isPinPointEnabled():\n        pinPoint = symbol.pinPoint()\n    painter.resetTransform()\n    for pos in points:\n        pos = QPointF(transform.map(pos)) - pinPoint\n        painter.drawPixmap(QRect(pos.toPoint(), pm.size()), pm)\n\n\ndef qwtDrawSvgSymbols(painter, points, renderer, symbol):\n    if renderer is None or not renderer.isValid():\n        return\n    viewBox = QRectF(renderer.viewBoxF())\n    if viewBox.isEmpty():\n        return\n    sz = QSizeF(symbol.size())\n    if not sz.isValid():\n        sz = viewBox.size()\n    sx = sz.width() / viewBox.width()\n    sy = sz.height() / viewBox.height()\n    pinPoint = QPointF(viewBox.center())\n    if symbol.isPinPointEnabled():\n        pinPoint = symbol.pinPoint()\n    dx = sx * (pinPoint.x() - viewBox.left())\n    dy = sy * (pinPoint.y() - viewBox.top())\n    for pos in points:\n        x = pos.x() - dx\n        y = pos.y() - dy\n        renderer.render(painter, QRectF(x, y, sz.width(), sz.height()))\n\n\ndef qwtDrawGraphicSymbols(painter, points, graphic, symbol):\n    pointRect = QRectF(graphic.controlPointRect())\n    if pointRect.isEmpty():\n        return\n    sx = 1.0\n    sy = 1.0\n    sz = symbol.size()\n    if sz.isValid():\n        sx = sz.width() / pointRect.width()\n        sy = sz.height() / pointRect.height()\n    pinPoint = QPointF(pointRect.center())\n    if symbol.isPinPointEnabled():\n        pinPoint = symbol.pinPoint()\n    transform = QTransform(painter.transform())\n    for pos in points:\n        tr = QTransform(transform)\n        tr.translate(pos.x(), pos.y())\n        tr.scale(sx, sy)\n        tr.translate(-pinPoint.x(), -pinPoint.y())\n        painter.setTransform(tr)\n        graphic.render(painter)\n    painter.setTransform(transform)\n\n\ndef qwtDrawEllipseSymbols(painter, points, symbol):\n    painter.setBrush(symbol.brush())\n    painter.setPen(symbol.pen())\n    size = symbol.size()\n    sw = size.width()\n    sh = size.height()\n    sw2 = 0.5 * size.width()\n    sh2 = 0.5 * size.height()\n    for pos in points:\n        x = pos.x()\n        y = pos.y()\n        r = QRectF(x - sw2, y - sh2, sw, sh)\n        painter.drawEllipse(r)\n\n\ndef qwtDrawRectSymbols(painter, points, symbol):\n    size = symbol.size()\n    pen = QPen(symbol.pen())\n    pen.setJoinStyle(Qt.MiterJoin)\n    painter.setPen(pen)\n    painter.setBrush(symbol.brush())\n    painter.setRenderHint(QPainter.Antialiasing, False)\n    sw = size.width()\n    sh = size.height()\n    sw2 = 0.5 * size.width()\n    sh2 = 0.5 * size.height()\n    for pos in points:\n        x = pos.x()\n        y = pos.y()\n        r = QRectF(x - sw2, y - sh2, sw, sh)\n        painter.drawRect(r)\n\n\ndef qwtDrawDiamondSymbols(painter, points, symbol):\n    size = symbol.size()\n    pen = QPen(symbol.pen())\n    pen.setJoinStyle(Qt.MiterJoin)\n    painter.setPen(pen)\n    painter.setBrush(symbol.brush())\n    for pos in points:\n        x1 = pos.x() - 0.5 * size.width()\n        y1 = pos.y() - 0.5 * size.height()\n        x2 = x1 + size.width()\n        y2 = y1 + size.height()\n        polygon = QPolygonF()\n        polygon.append(QPointF(pos.x(), y1))\n        polygon.append(QPointF(x1, pos.y()))\n        polygon.append(QPointF(pos.x(), y2))\n        polygon.append(QPointF(x2, pos.y()))\n        painter.drawPolygon(polygon)\n\n\ndef qwtDrawTriangleSymbols(painter, type, points, symbol):\n    size = symbol.size()\n    pen = QPen(symbol.pen())\n    pen.setJoinStyle(Qt.MiterJoin)\n    painter.setPen(pen)\n    painter.setBrush(symbol.brush())\n    sw2 = 0.5 * size.width()\n    sh2 = 0.5 * size.height()\n    for pos in points:\n        x = pos.x()\n        y = pos.y()\n        x1 = x - sw2\n        x2 = x1 + size.width()\n        y1 = y - sh2\n        y2 = y1 + size.height()\n        if type == QwtTriangle.Left:\n            triangle = [QPointF(x2, y1), QPointF(x1, y), QPointF(x2, y2)]\n        elif type == QwtTriangle.Right:\n            triangle = [QPointF(x1, y1), QPointF(x2, y), QPointF(x1, y2)]\n        elif type == QwtTriangle.Up:\n            triangle = [QPointF(x1, y2), QPointF(x, y1), QPointF(x2, y2)]\n        elif type == QwtTriangle.Down:\n            triangle = [QPointF(x1, y1), QPointF(x, y2), QPointF(x2, y1)]\n        else:\n            raise TypeError("Unknown triangle type %s" % type)\n        painter.drawPolygon(QPolygonF(triangle))\n\n\ndef qwtDrawLineSymbols(painter, orientations, points, symbol):\n    size = symbol.size()\n    pen = QPen(symbol.pen())\n    if pen.width() > 1:\n        pen.setCapStyle(Qt.FlatCap)\n    painter.setPen(pen)\n    painter.setRenderHint(QPainter.Antialiasing, False)\n    sw = size.width()\n    sh = size.height()\n    sw2 = 0.5 * size.width()\n    sh2 = 0.5 * size.height()\n    for pos in points:\n        if orientations & Qt.Horizontal:\n            x = round(pos.x()) - sw2\n            y = round(pos.y())\n            painter.drawLine(QLineF(x, y, x + sw, y))\n        if orientations & Qt.Vertical:\n            x = round(pos.x())\n            y = round(pos.y()) - sh2\n            painter.drawLine(QLineF(x, y, x, y + sh))\n\n\ndef qwtDrawXCrossSymbols(painter, points, symbol):\n    size = symbol.size()\n    pen = QPen(symbol.pen())\n    if pen.width() > 1:\n        pen.setCapStyle(Qt.FlatCap)\n    painter.setPen(pen)\n    sw = size.width()\n    sh = size.height()\n    sw2 = 0.5 * size.width()\n    sh2 = 0.5 * size.height()\n    for pos in points:\n        x1 = pos.x() - sw2\n        x2 = x1 + sw\n        y1 = pos.y() - sh2\n        y2 = y1 + sh\n        painter.drawLine(QLineF(x1, y1, x2, y2))\n        painter.drawLine(QLineF(x2, y1, x1, y2))\n\n\ndef qwtDrawStar1Symbols(painter, points, symbol):\n    size = symbol.size()\n    painter.setPen(symbol.pen())\n    sqrt1_2 = math.sqrt(0.5)\n    r = QRectF(0, 0, size.width(), size.height())\n    for pos in points:\n        r.moveCenter(pos)\n        c = QPointF(r.center())\n        d1 = r.width() / 2.0 * (1.0 - sqrt1_2)\n        painter.drawLine(\n            QLineF(r.left() + d1, r.top() + d1, r.right() - d1, r.bottom() - d1)\n        )\n        painter.drawLine(\n            QLineF(r.left() + d1, r.bottom() - d1, r.right() - d1, r.top() + d1)\n        )\n        painter.drawLine(QLineF(c.x(), r.top(), c.x(), r.bottom()))\n        painter.drawLine(QLineF(r.left(), c.y(), r.right(), c.y()))\n\n\ndef qwtDrawStar2Symbols(painter, points, symbol):\n    pen = QPen(symbol.pen())\n    if pen.width() > 1:\n        pen.setCapStyle(Qt.FlatCap)\n    pen.setJoinStyle(Qt.MiterJoin)\n    painter.setPen(pen)\n    painter.setBrush(symbol.brush())\n    cos30 = math.cos(30 * math.pi / 180.0)\n    dy = 0.25 * symbol.size().height()\n    dx = 0.5 * symbol.size().width() * cos30 / 3.0\n    for pos in points:\n        x = pos.x()\n        y = pos.y()\n        x1 = x - 3 * dx\n        y1 = y - 2 * dy\n        x2 = x1 + 1 * dx\n        x3 = x1 + 2 * dx\n        x4 = x1 + 3 * dx\n        x5 = x1 + 4 * dx\n        x6 = x1 + 5 * dx\n        x7 = x1 + 6 * dx\n        y2 = y1 + 1 * dy\n        y3 = y1 + 2 * dy\n        y4 = y1 + 3 * dy\n        y5 = y1 + 4 * dy\n        star = [\n            QPointF(x4, y1),\n            QPointF(x5, y2),\n            QPointF(x7, y2),\n            QPointF(x6, y3),\n            QPointF(x7, y4),\n            QPointF(x5, y4),\n            QPointF(x4, y5),\n            QPointF(x3, y4),\n            QPointF(x1, y4),\n            QPointF(x2, y3),\n            QPointF(x1, y2),\n            QPointF(x3, y2),\n        ]\n        painter.drawPolygon(QPolygonF(star))\n\n\ndef qwtDrawHexagonSymbols(painter, points, symbol):\n    painter.setBrush(symbol.brush())\n    painter.setPen(symbol.pen())\n    cos30 = math.cos(30 * math.pi / 180.0)\n    dx = 0.5 * (symbol.size().width() - cos30)\n    dy = 0.25 * symbol.size().height()\n    for pos in points:\n        x = pos.x()\n        y = pos.y()\n        x1 = x - dx\n        y1 = y - 2 * dy\n        x2 = x1 + 1 * dx\n        x3 = x1 + 2 * dx\n        y2 = y1 + 1 * dy\n        y3 = y1 + 3 * dy\n        y4 = y1 + 4 * dy\n        hexa = [\n            QPointF(x2, y1),\n            QPointF(x3, y2),\n            QPointF(x3, y3),\n            QPointF(x2, y4),\n            QPointF(x1, y3),\n            QPointF(x1, y2),\n        ]\n        painter.drawPolygon(QPolygonF(hexa))\n\n\nclass QwtSymbol_PrivateData(QObject):\n    def __init__(self, st, br, pn, sz):\n        QObject.__init__(self)\n        self.style = st\n        self.size = sz\n        self.brush = br\n        self.pen = pn\n        self.isPinPointEnabled = False\n        self.pinPoint = None\n\n        class Path(object):\n            def __init__(self):\n                self.path = None  # QPainterPath()\n                self.graphic = QwtGraphic()\n\n        self.path = Path()\n\n        self.pixmap = None\n\n        class Graphic(object):\n            def __init__(self):\n                self.graphic = QwtGraphic()\n\n        self.graphic = Graphic()\n\n        class SVG(object):\n            def __init__(self):\n                self.renderer = QSvgRenderer()\n\n        self.svg = SVG()\n\n        class PaintCache(object):\n            def __init__(self):\n                self.policy = 0\n                self.pixmap = None  # QPixmap()\n\n        self.cache = PaintCache()\n\n\n
\n[docs]\nclass QwtSymbol(object):\n """\n A class for drawing symbols\n\n Symbol styles:\n\n * `QwtSymbol.NoSymbol`: No Style. The symbol cannot be drawn.\n * `QwtSymbol.Ellipse`: Ellipse or circle\n * `QwtSymbol.Rect`: Rectangle\n * `QwtSymbol.Diamond`: Diamond\n * `QwtSymbol.Triangle`: Triangle pointing upwards\n * `QwtSymbol.DTriangle`: Triangle pointing downwards\n * `QwtSymbol.UTriangle`: Triangle pointing upwards\n * `QwtSymbol.LTriangle`: Triangle pointing left\n * `QwtSymbol.RTriangle`: Triangle pointing right\n * `QwtSymbol.Cross`: Cross (+)\n * `QwtSymbol.XCross`: Diagonal cross (X)\n * `QwtSymbol.HLine`: Horizontal line\n * `QwtSymbol.VLine`: Vertical line\n * `QwtSymbol.Star1`: X combined with +\n * `QwtSymbol.Star2`: Six-pointed star\n * `QwtSymbol.Hexagon`: Hexagon\n * `QwtSymbol.Path`: The symbol is represented by a painter path, where\n the origin (0, 0) of the path coordinate system is mapped to the\n position of the symbol\n\n ..seealso::\n\n :py:meth:`setPath()`, :py:meth:`path()`\n * `QwtSymbol.Pixmap`: The symbol is represented by a pixmap.\n The pixmap is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.Graphic`: The symbol is represented by a graphic.\n The graphic is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.SvgDocument`: The symbol is represented by a SVG graphic.\n The graphic is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.UserStyle`: Styles >= `QwtSymbol.UserStyle` are reserved\n for derived classes of `QwtSymbol` that overload `drawSymbols()` with\n additional application specific symbol types.\n\n Cache policies:\n\n Depending on the render engine and the complexity of the\n symbol shape it might be faster to render the symbol\n to a pixmap and to paint this pixmap.\n\n F.e. the raster paint engine is a pure software renderer\n where in cache mode a draw operation usually ends in\n raster operation with the the backing store, that are usually\n faster, than the algorithms for rendering polygons.\n But the opposite can be expected for graphic pipelines\n that can make use of hardware acceleration.\n\n The default setting is AutoCache\n\n ..seealso::\n\n :py:meth:`setCachePolicy()`, :py:meth:`cachePolicy()`\n\n .. note::\n\n The policy has no effect, when the symbol is painted\n to a vector graphics format (PDF, SVG).\n\n .. warning::\n\n Since Qt 4.8 raster is the default backend on X11\n\n Valid cache policies:\n\n * `QwtSymbol.NoCache`: Don't use a pixmap cache\n * `QwtSymbol.Cache`: Always use a pixmap cache\n * `QwtSymbol.AutoCache`: Use a cache when the symbol is rendered\n with the software renderer (`QPaintEngine.Raster`)\n\n .. py:class:: QwtSymbol([style=QwtSymbol.NoSymbol])\n\n The symbol is constructed with gray interior,\n black outline with zero width, no size and style 'NoSymbol'.\n\n :param int style: Symbol Style\n\n .. py:class:: QwtSymbol(style, brush, pen, size)\n :noindex:\n\n :param int style: Symbol Style\n :param QBrush brush: Brush to fill the interior\n :param QPen pen: Outline pen\n :param QSize size: Size\n\n .. py:class:: QwtSymbol(path, brush, pen)\n :noindex:\n\n :param QPainterPath path: Painter path\n :param QBrush brush: Brush to fill the interior\n :param QPen pen: Outline pen\n\n .. seealso::\n\n :py:meth:`setPath()`, :py:meth:`setBrush()`,\n :py:meth:`setPen()`, :py:meth:`setSize()`\n """\n\n # enum Style\n Style = int\n NoSymbol = -1\n (\n Ellipse,\n Rect,\n Diamond,\n Triangle,\n DTriangle,\n UTriangle,\n LTriangle,\n RTriangle,\n Cross,\n XCross,\n HLine,\n VLine,\n Star1,\n Star2,\n Hexagon,\n Path,\n Pixmap,\n Graphic,\n SvgDocument,\n ) = list(range(19))\n UserStyle = 1000\n\n # enum CachePolicy\n NoCache, Cache, AutoCache = list(range(3))\n\n def __init__(self, *args):\n if len(args) in (0, 1):\n if args:\n (style,) = args\n else:\n style = QwtSymbol.NoSymbol\n self.__data = QwtSymbol_PrivateData(\n style, QBrush(Qt.gray), QPen(Qt.black, 0), QSize()\n )\n elif len(args) == 4:\n style, brush, pen, size = args\n self.__data = QwtSymbol_PrivateData(style, brush, pen, size)\n elif len(args) == 3:\n path, brush, pen = args\n self.__data = QwtSymbol_PrivateData(QwtSymbol.Path, brush, pen, QSize())\n self.setPath(path)\n else:\n raise TypeError(\n "%s() takes 1, 3, or 4 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n\n
\n[docs]\n @classmethod\n def make(\n cls,\n style=None,\n brush=None,\n pen=None,\n size=None,\n path=None,\n pixmap=None,\n graphic=None,\n svgdocument=None,\n pinpoint=None,\n ):\n """\n Create and setup a new `QwtSymbol` object (convenience function).\n\n :param style: Symbol Style\n :type style: int or None\n :param brush: Brush to fill the interior\n :type brush: QBrush or None\n :param pen: Outline pen\n :type pen: QPen or None\n :param size: Size\n :type size: QSize or None\n :param path: Painter path\n :type path: QPainterPath or None\n :param path: Painter path\n :type path: QPainterPath or None\n :param pixmap: Pixmap as symbol\n :type pixmap: QPixmap or None\n :param graphic: Graphic\n :type graphic: qwt.graphic.QwtGraphic or None\n :param svgdocument: SVG icon as symbol\n\n .. seealso::\n\n :py:meth:`setPixmap()`, :py:meth:`setGraphic()`, :py:meth:`setPath()`\n """\n style = QwtSymbol.NoSymbol if style is None else style\n brush = QBrush(Qt.gray) if brush is None else QBrush(brush)\n pen = QPen(Qt.black, 0) if pen is None else QPen(pen)\n size = QSize() if size is None else size\n if not isinstance(size, QSize):\n if isinstance(size, tuple) and len(size) == 2:\n size = QSize(size[0], size[1])\n else:\n raise TypeError("Invalid size %r" % size)\n item = cls(style, brush, pen, size)\n if path is not None:\n item.setPath(path)\n elif pixmap is not None:\n item.setPixmap(pixmap)\n elif graphic is not None:\n item.setGraphic(graphic)\n elif svgdocument is not None:\n item.setSvgDocument(svgdocument)\n if pinpoint is not None:\n item.setPinPoint(pinpoint)\n return item
\n\n\n
\n[docs]\n def setCachePolicy(self, policy):\n """\n Change the cache policy\n\n The default policy is AutoCache\n\n :param int policy: Cache policy\n\n .. seealso::\n\n :py:meth:`cachePolicy()`\n """\n if self.__data.cache.policy != policy:\n self.__data.cache.policy = policy\n self.invalidateCache()
\n\n\n
\n[docs]\n def cachePolicy(self):\n """\n :return: Cache policy\n\n .. seealso::\n\n :py:meth:`setCachePolicy()`\n """\n return self.__data.cache.policy
\n\n\n
\n[docs]\n def setPath(self, path):\n """\n Set a painter path as symbol\n\n The symbol is represented by a painter path, where the\n origin (0, 0) of the path coordinate system is mapped to\n the position of the symbol.\n\n When the symbol has valid size the painter path gets scaled\n to fit into the size. Otherwise the symbol size depends on\n the bounding rectangle of the path.\n\n The following code defines a symbol drawing an arrow::\n\n from qtpy.QtGui import QApplication, QPen, QPainterPath, QTransform\n from qtpy.QtCore import Qt, QPointF\n from qwt import QwtPlot, QwtPlotCurve, QwtSymbol\n import numpy as np\n\n app = QApplication([])\n\n # --- Construct custom symbol ---\n\n path = QPainterPath()\n path.moveTo(0, 8)\n path.lineTo(0, 5)\n path.lineTo(-3, 5)\n path.lineTo(0, 0)\n path.lineTo(3, 5)\n path.lineTo(0, 5)\n\n transform = QTransform()\n transform.rotate(-30.0)\n path = transform.map(path)\n\n pen = QPen(Qt.black, 2 );\n pen.setJoinStyle(Qt.MiterJoin)\n\n symbol = QwtSymbol()\n symbol.setPen(pen)\n symbol.setBrush(Qt.red)\n symbol.setPath(path)\n symbol.setPinPoint(QPointF(0., 0.))\n symbol.setSize(10, 14)\n\n # --- Test it within a simple plot ---\n\n curve = QwtPlotCurve()\n curve_pen = QPen(Qt.blue)\n curve_pen.setStyle(Qt.DotLine)\n curve.setPen(curve_pen)\n curve.setSymbol(symbol)\n x = np.linspace(0, 10, 10)\n curve.setData(x, np.sin(x))\n\n plot = QwtPlot()\n curve.attach(plot)\n plot.resize(600, 300)\n plot.replot()\n plot.show()\n\n app.exec_()\n\n .. image:: /_static/symbol_path_example.png\n\n :param QPainterPath path: Painter path\n\n .. seealso::\n\n :py:meth:`path()`, :py:meth:`setSize()`\n """\n self.__data.style = QwtSymbol.Path\n self.__data.path.path = path\n self.__data.path.graphic.reset()
\n\n\n
\n[docs]\n def path(self):\n """\n :return: Painter path for displaying the symbol\n\n .. seealso::\n\n :py:meth:`setPath()`\n """\n return self.__data.path.path
\n\n\n
\n[docs]\n def setPixmap(self, pixmap):\n """\n Set a pixmap as symbol\n\n :param QPixmap pixmap: Pixmap\n\n .. seealso::\n\n :py:meth:`pixmap()`, :py:meth:`setGraphic()`\n\n .. note::\n\n The `style()` is set to `QwtSymbol.Pixmap`\n\n .. note::\n\n `brush()` and `pen()` have no effect\n """\n self.__data.style = QwtSymbol.Pixmap\n self.__data.pixmap = pixmap
\n\n\n
\n[docs]\n def pixmap(self):\n """\n :return: Assigned pixmap\n\n .. seealso::\n\n :py:meth:`setPixmap()`\n """\n if self.__data.pixmap is None:\n return QPixmap()\n return self.__data.pixmap
\n\n\n
\n[docs]\n def setGraphic(self, graphic):\n """\n Set a graphic as symbol\n\n :param qwt.graphic.QwtGraphic graphic: Graphic\n\n .. seealso::\n\n :py:meth:`graphic()`, :py:meth:`setPixmap()`\n\n .. note::\n\n The `style()` is set to `QwtSymbol.Graphic`\n\n .. note::\n\n `brush()` and `pen()` have no effect\n """\n self.__data.style = QwtSymbol.Graphic\n self.__data.graphic.graphic = graphic
\n\n\n
\n[docs]\n def graphic(self):\n """\n :return: Assigned graphic\n\n .. seealso::\n\n :py:meth:`setGraphic()`\n """\n return self.__data.graphic.graphic
\n\n\n
\n[docs]\n def setSvgDocument(self, svgDocument):\n """\n Set a SVG icon as symbol\n\n :param svgDocument: SVG icon\n\n .. seealso::\n\n :py:meth:`setGraphic()`, :py:meth:`setPixmap()`\n\n .. note::\n\n The `style()` is set to `QwtSymbol.SvgDocument`\n\n .. note::\n\n `brush()` and `pen()` have no effect\n """\n self.__data.style = QwtSymbol.SvgDocument\n if self.__data.svg.renderer is None:\n self.__data.svg.renderer = QSvgRenderer()\n self.__data.svg.renderer.load(svgDocument)
\n\n\n
\n[docs]\n def setSize(self, *args):\n """\n Specify the symbol's size\n\n .. py:method:: setSize(width, [height=-1])\n :noindex:\n\n :param int width: Width\n :param int height: Height\n\n .. py:method:: setSize(size)\n :noindex:\n\n :param QSize size: Size\n\n .. seealso::\n\n :py:meth:`size()`\n """\n if len(args) == 2:\n width, height = args\n if width >= 0 and height < 0:\n height = width\n self.setSize(QSize(width, height))\n elif len(args) == 1:\n if isinstance(args[0], QSize):\n (size,) = args\n if size.isValid() and size != self.__data.size:\n self.__data.size = size\n self.invalidateCache()\n else:\n (width,) = args\n self.setSize(width, -1)\n else:\n raise TypeError(\n "%s().setSize() takes 1 or 2 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def size(self):\n """\n :return: Size\n\n .. seealso::\n\n :py:meth:`setSize()`\n """\n return self.__data.size
\n\n\n
\n[docs]\n def setBrush(self, brush):\n """\n Assign a brush\n\n The brush is used to draw the interior of the symbol.\n\n :param QBrush brush: Brush\n\n .. seealso::\n\n :py:meth:`brush()`\n """\n if brush != self.__data.brush:\n self.__data.brush = brush\n self.invalidateCache()\n if self.__data.style == QwtSymbol.Path:\n self.__data.path.graphic.reset()
\n\n\n
\n[docs]\n def brush(self):\n """\n :return: Brush\n\n .. seealso::\n\n :py:meth:`setBrush()`\n """\n return self.__data.brush
\n\n\n
\n[docs]\n def setPen(self, *args):\n """\n Build and/or assign a pen, depending on the arguments.\n\n .. py:method:: setPen(color, width, style)\n :noindex:\n\n Build and assign a pen\n\n In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\n non cosmetic (see `QPen.isCosmetic()`). This method signature has\n been introduced to hide this incompatibility.\n\n :param QColor color: Pen color\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n\n .. py:method:: setPen(pen)\n :noindex:\n\n Assign a pen\n\n :param QPen pen: New pen\n\n .. seealso::\n\n :py:meth:`pen()`, :py:meth:`brush()`\n """\n if len(args) == 3:\n color, width, style = args\n self.setPen(QPen(color, width, style))\n elif len(args) == 1:\n (pen,) = args\n if pen != self.__data.pen:\n self.__data.pen = pen\n self.invalidateCache()\n if self.__data.style == QwtSymbol.Path:\n self.__data.path.graphic.reset()\n else:\n raise TypeError(\n "%s().setPen() takes 1 or 3 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def pen(self):\n """\n :return: Pen\n\n .. seealso::\n\n :py:meth:`setPen()`, :py:meth:`brush()`\n """\n return self.__data.pen
\n\n\n
\n[docs]\n def setColor(self, color):\n """\n Set the color of the symbol\n\n Change the color of the brush for symbol types with a filled area.\n For all other symbol types the color will be assigned to the pen.\n\n :param QColor color: Color\n\n .. seealso::\n\n :py:meth:`setPen()`, :py:meth:`setBrush()`,\n :py:meth:`brush()`, :py:meth:`pen()`\n """\n if self.__data.style in (\n QwtSymbol.Ellipse,\n QwtSymbol.Rect,\n QwtSymbol.Diamond,\n QwtSymbol.Triangle,\n QwtSymbol.UTriangle,\n QwtSymbol.DTriangle,\n QwtSymbol.RTriangle,\n QwtSymbol.LTriangle,\n QwtSymbol.Star2,\n QwtSymbol.Hexagon,\n ):\n if self.__data.brush.color() != color:\n self.__data.brush.setColor(color)\n self.invalidateCache()\n elif self.__data.style in (\n QwtSymbol.Cross,\n QwtSymbol.XCross,\n QwtSymbol.HLine,\n QwtSymbol.VLine,\n QwtSymbol.Star1,\n ):\n if self.__data.pen.color() != color:\n self.__data.pen.setColor(color)\n self.invalidateCache()\n else:\n if self.__data.brush.color() != color or self.__data.pen.color() != color:\n self.invalidateCache()\n self.__data.brush.setColor(color)\n self.__data.pen.setColor(color)
\n\n\n
\n[docs]\n def setPinPoint(self, pos, enable=True):\n """\n Set and enable a pin point\n\n The position of a complex symbol is not always aligned to its center\n ( f.e an arrow, where the peak points to a position ). The pin point\n defines the position inside of a Pixmap, Graphic, SvgDocument\n or PainterPath symbol where the represented point has to\n be aligned to.\n\n :param QPointF pos: Position\n :enable bool enable: En/Disable the pin point alignment\n\n .. seealso::\n\n :py:meth:`pinPoint()`, :py:meth:`setPinPointEnabled()`\n """\n if self.__data.pinPoint != pos:\n self.__data.pinPoint = pos\n if self.__data.isPinPointEnabled:\n self.invalidateCache()\n self.setPinPointEnabled(enable)
\n\n\n
\n[docs]\n def pinPoint(self):\n """\n :return: Pin point\n\n .. seealso::\n\n :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()`\n """\n return self.__data.pinPoint
\n\n\n
\n[docs]\n def setPinPointEnabled(self, on):\n """\n En/Disable the pin point alignment\n\n :param bool on: Enabled, when on is true\n\n .. seealso::\n\n :py:meth:`setPinPoint()`, :py:meth:`isPinPointEnabled()`\n """\n if self.__data.isPinPointEnabled != on:\n self.__data.isPinPointEnabled = on\n self.invalidateCache()
\n\n\n
\n[docs]\n def isPinPointEnabled(self):\n """\n :return: True, when the pin point translation is enabled\n\n .. seealso::\n\n :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()`\n """\n return self.__data.isPinPointEnabled
\n\n\n
\n[docs]\n def drawSymbols(self, painter, points):\n """\n Render an array of symbols\n\n Painting several symbols is more effective than drawing symbols\n one by one, as a couple of layout calculations and setting of pen/brush\n can be done once for the complete array.\n\n :param QPainter painter: Painter\n :param QPolygonF points: Positions of the symbols in screen coordinates\n """\n painter.save()\n self.renderSymbols(painter, points)\n painter.restore()
\n\n\n
\n[docs]\n def drawSymbol(self, painter, point_or_rect):\n """\n Draw the symbol into a rectangle\n\n The symbol is painted centered and scaled into the target rectangle.\n It is always painted uncached and the pin point is ignored.\n\n This method is primarily intended for drawing a symbol to the legend.\n\n :param QPainter painter: Painter\n :param point_or_rect: Position or target rectangle of the symbol in screen coordinates\n :type point_or_rect: QPointF or QPoint or QRectF\n """\n if isinstance(point_or_rect, (QPointF, QPoint)):\n # drawSymbol( QPainter *, const QPointF & )\n self.drawSymbols(painter, [point_or_rect])\n return\n # drawSymbol( QPainter *, const QRectF & )\n rect = point_or_rect\n assert isinstance(rect, QRectF)\n if self.__data.style == QwtSymbol.NoSymbol:\n return\n if self.__data.style == QwtSymbol.Graphic:\n self.__data.graphic.graphic.render(painter, rect, Qt.KeepAspectRatio)\n elif self.__data.style == QwtSymbol.Path:\n if self.__data.path.graphic.isNull():\n self.__data.path.graphic = qwtPathGraphic(\n self.__data.path.path, self.__data.pen, self.__data.brush\n )\n self.__data.path.graphic.render(painter, rect, Qt.KeepAspectRatio)\n return\n elif self.__data.style == QwtSymbol.SvgDocument:\n if self.__data.svg.renderer is not None:\n scaledRect = QRectF()\n sz = QSizeF(self.__data.svg.renderer.viewBoxF().size())\n if not sz.isEmpty():\n sz.scale(rect.size(), Qt.KeepAspectRatio)\n scaledRect.setSize(sz)\n scaledRect.moveCenter(rect.center())\n else:\n scaledRect = rect\n self.__data.svg.renderer.render(painter, scaledRect)\n else:\n br = QRect(self.boundingRect())\n ratio = min([rect.width() / br.width(), rect.height() / br.height()])\n painter.save()\n painter.translate(rect.center())\n painter.scale(ratio, ratio)\n isPinPointEnabled = self.__data.isPinPointEnabled\n self.__data.isPinPointEnabled = False\n pos = QPointF()\n self.renderSymbols(painter, pos, 1)\n self.__data.isPinPointEnabled = isPinPointEnabled\n painter.restore()
\n\n\n
\n[docs]\n def renderSymbols(self, painter, points):\n """\n Render the symbol to series of points\n\n :param QPainter painter: Painter\n :param point_or_rect: Positions of the symbols\n """\n if self.__data.style == QwtSymbol.Ellipse:\n qwtDrawEllipseSymbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Rect:\n qwtDrawRectSymbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Diamond:\n qwtDrawDiamondSymbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Cross:\n qwtDrawLineSymbols(painter, Qt.Horizontal | Qt.Vertical, points, self)\n elif self.__data.style == QwtSymbol.XCross:\n qwtDrawXCrossSymbols(painter, points, self)\n elif self.__data.style in (QwtSymbol.Triangle, QwtSymbol.UTriangle):\n qwtDrawTriangleSymbols(painter, QwtTriangle.Up, points, self)\n elif self.__data.style == QwtSymbol.DTriangle:\n qwtDrawTriangleSymbols(painter, QwtTriangle.Down, points, self)\n elif self.__data.style == QwtSymbol.RTriangle:\n qwtDrawTriangleSymbols(painter, QwtTriangle.Right, points, self)\n elif self.__data.style == QwtSymbol.LTriangle:\n qwtDrawTriangleSymbols(painter, QwtTriangle.Left, points, self)\n elif self.__data.style == QwtSymbol.HLine:\n qwtDrawLineSymbols(painter, Qt.Horizontal, points, self)\n elif self.__data.style == QwtSymbol.VLine:\n qwtDrawLineSymbols(painter, Qt.Vertical, points, self)\n elif self.__data.style == QwtSymbol.Star1:\n qwtDrawStar1Symbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Star2:\n qwtDrawStar2Symbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Hexagon:\n qwtDrawHexagonSymbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Path:\n if self.__data.path.graphic.isNull():\n self.__data.path.graphic = qwtPathGraphic(\n self.__data.path.path, self.__data.pen, self.__data.brush\n )\n qwtDrawGraphicSymbols(painter, points, self.__data.path.graphic, self)\n elif self.__data.style == QwtSymbol.Pixmap:\n qwtDrawPixmapSymbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Graphic:\n qwtDrawGraphicSymbols(painter, points, self.__data.graphic.graphic, self)\n elif self.__data.style == QwtSymbol.SvgDocument:\n qwtDrawSvgSymbols(painter, points, self.__data.svg.renderer, self)
\n\n\n
\n[docs]\n def boundingRect(self):\n """\n Calculate the bounding rectangle for a symbol at position (0,0).\n\n :return: Bounding rectangle\n """\n rect = QRectF()\n pinPointTranslation = False\n if self.__data.style in (QwtSymbol.Ellipse, QwtSymbol.Rect, QwtSymbol.Hexagon):\n pw = 0.0\n if self.__data.pen.style() != Qt.NoPen:\n pw = max([self.__data.pen.widthF(), 1.0])\n rect.setSize(QSizeF(self.__data.size) + QSizeF(pw, pw))\n rect.moveCenter(QPointF(0.0, 0.0))\n elif self.__data.style in (\n QwtSymbol.XCross,\n QwtSymbol.Diamond,\n QwtSymbol.Triangle,\n QwtSymbol.UTriangle,\n QwtSymbol.DTriangle,\n QwtSymbol.RTriangle,\n QwtSymbol.LTriangle,\n QwtSymbol.Star1,\n QwtSymbol.Star2,\n ):\n pw = 0.0\n if self.__data.pen.style() != Qt.NoPen:\n pw = max([self.__data.pen.widthF(), 1.0])\n rect.setSize(QSizeF(self.__data.size) + QSizeF(2 * pw, 2 * pw))\n rect.moveCenter(QPointF(0.0, 0.0))\n elif self.__data.style == QwtSymbol.Path:\n if self.__data.path.graphic.isNull():\n self.__data.path.graphic = qwtPathGraphic(\n self.__data.path.path, self.__data.pen, self.__data.brush\n )\n rect = qwtScaleBoundingRect(self.__data.path.graphic, self.__data.size)\n pinPointTranslation = True\n elif self.__data.style == QwtSymbol.Pixmap:\n if self.__data.size.isEmpty():\n rect.setSize(QSizeF(self.pixmap().size()))\n else:\n rect.setSize(QSizeF(self.__data.size))\n pinPointTranslation = True\n elif self.__data.style == QwtSymbol.Graphic:\n rect = qwtScaleBoundingRect(self.__data.graphic.graphic, self.__data.size)\n pinPointTranslation = True\n elif self.__data.style == QwtSymbol.SvgDocument:\n if self.__data.svg.renderer is not None:\n rect = self.__data.svg.renderer.viewBoxF()\n if self.__data.size.isValid() and not rect.isEmpty():\n sz = QSizeF(rect.size())\n sx = self.__data.size.width() / sz.width()\n sy = self.__data.size.height() / sz.height()\n transform = QTransform()\n transform.scale(sx, sy)\n rect = transform.mapRect(rect)\n pinPointTranslation = True\n else:\n rect.setSize(QSizeF(self.__data.size))\n rect.moveCenter(QPointF(0.0, 0.0))\n if pinPointTranslation:\n pinPoint = QPointF(0.0, 0.0)\n if self.__data.isPinPointEnabled:\n pinPoint = rect.center() - self.__data.pinPoint\n rect.moveCenter(pinPoint)\n r = QRect()\n r.setLeft(math.floor(rect.left()))\n r.setTop(math.floor(rect.top()))\n r.setRight(math.floor(rect.right()))\n r.setBottom(math.floor(rect.bottom()))\n if self.__data.style != QwtSymbol.Pixmap:\n r.adjust(-1, -1, 1, 1)\n return r
\n\n\n
\n[docs]\n def invalidateCache(self):\n """\n Invalidate the cached symbol pixmap\n\n The symbol invalidates its cache, whenever an attribute is changed\n that has an effect ob how to display a symbol. In case of derived\n classes with individual styles (>= `QwtSymbol.UserStyle`) it\n might be necessary to call invalidateCache() for attributes\n that are relevant for this style.\n\n .. seealso::\n\n :py:meth:`setCachePolicy()`, :py:meth:`drawSymbols()`\n """\n if self.__data.cache.pixmap is not None:\n self.__data.cache.pixmap = None
\n\n\n
\n[docs]\n def setStyle(self, style):\n """\n Specify the symbol style\n\n :param int style: Style\n\n .. seealso::\n\n :py:meth:`style()`\n """\n if self.__data.style != style:\n self.__data.style = style\n self.invalidateCache()
\n\n\n
\n[docs]\n def style(self):\n """\n :return: Current symbol style\n\n .. seealso::\n\n :py:meth:`setStyle()`\n """\n return self.__data.style
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6890c20>, 'js_tag': .js_tag at 0x7fc7d6890e00>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/symbol', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/symbol', 'current_page_name': '_modules/qwt/symbol', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ca0f40>, 'hasdoc': .hasdoc at 0x7f3d39ca0220>, 'toctree': . at 0x7f3d39ca1ee0>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.symbol', 'body': '

Source code for qwt.symbol

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nQwtSymbol\n---------\n\n.. autoclass:: QwtSymbol\n   :members:\n"""\n\nimport math\n\nfrom qtpy.QtCore import (\n    QLineF,\n    QObject,\n    QPoint,\n    QPointF,\n    QRect,\n    QRectF,\n    QSize,\n    QSizeF,\n    Qt,\n)\nfrom qtpy.QtGui import (\n    QBrush,\n    QPainter,\n    QPen,\n    QPixmap,\n    QPolygonF,\n    QTransform,\n)\nfrom qtpy.QtSvg import QSvgRenderer\n\nfrom qwt.graphic import QwtGraphic\n\n\nclass QwtTriangle(object):\n    # enum Type\n    Left, Right, Up, Down = list(range(4))\n\n\ndef qwtPathGraphic(path, pen, brush):\n    graphic = QwtGraphic()\n    graphic.setRenderHint(QwtGraphic.RenderPensUnscaled)\n    painter = QPainter(graphic)\n    painter.setPen(pen)\n    painter.setBrush(brush)\n    painter.drawPath(path)\n    painter.end()\n    return graphic\n\n\ndef qwtScaleBoundingRect(graphic, size):\n    scaledSize = QSize(size)\n    if scaledSize.isEmpty():\n        scaledSize = graphic.defaultSize()\n    sz = graphic.controlPointRect().size()\n    sx = 1.0\n    if sz.width() > 0.0:\n        sx = scaledSize.width() / sz.width()\n    sy = 1.0\n    if sz.height() > 0.0:\n        sy = scaledSize.height() / sz.height()\n    return graphic.scaledBoundingRect(sx, sy)\n\n\ndef qwtDrawPixmapSymbols(painter, points, symbol):\n    size = symbol.size()\n    if size.isEmpty():\n        size = symbol.pixmap().size()\n    transform = QTransform(painter.transform())\n    if transform.isScaling():\n        r = QRect(0, 0, size.width(), size.height())\n        size = transform.mapRect(r).size()\n    pm = QPixmap(symbol.pixmap())\n    if pm.size() != size:\n        pm = pm.scaled(size)\n    pinPoint = QPointF(0.5 * size.width(), 0.5 * size.height())\n    if symbol.isPinPointEnabled():\n        pinPoint = symbol.pinPoint()\n    painter.resetTransform()\n    for pos in points:\n        pos = QPointF(transform.map(pos)) - pinPoint\n        painter.drawPixmap(QRect(pos.toPoint(), pm.size()), pm)\n\n\ndef qwtDrawSvgSymbols(painter, points, renderer, symbol):\n    if renderer is None or not renderer.isValid():\n        return\n    viewBox = QRectF(renderer.viewBoxF())\n    if viewBox.isEmpty():\n        return\n    sz = QSizeF(symbol.size())\n    if not sz.isValid():\n        sz = viewBox.size()\n    sx = sz.width() / viewBox.width()\n    sy = sz.height() / viewBox.height()\n    pinPoint = QPointF(viewBox.center())\n    if symbol.isPinPointEnabled():\n        pinPoint = symbol.pinPoint()\n    dx = sx * (pinPoint.x() - viewBox.left())\n    dy = sy * (pinPoint.y() - viewBox.top())\n    for pos in points:\n        x = pos.x() - dx\n        y = pos.y() - dy\n        renderer.render(painter, QRectF(x, y, sz.width(), sz.height()))\n\n\ndef qwtDrawGraphicSymbols(painter, points, graphic, symbol):\n    pointRect = QRectF(graphic.controlPointRect())\n    if pointRect.isEmpty():\n        return\n    sx = 1.0\n    sy = 1.0\n    sz = symbol.size()\n    if sz.isValid():\n        sx = sz.width() / pointRect.width()\n        sy = sz.height() / pointRect.height()\n    pinPoint = QPointF(pointRect.center())\n    if symbol.isPinPointEnabled():\n        pinPoint = symbol.pinPoint()\n    transform = QTransform(painter.transform())\n    for pos in points:\n        tr = QTransform(transform)\n        tr.translate(pos.x(), pos.y())\n        tr.scale(sx, sy)\n        tr.translate(-pinPoint.x(), -pinPoint.y())\n        painter.setTransform(tr)\n        graphic.render(painter)\n    painter.setTransform(transform)\n\n\ndef qwtDrawEllipseSymbols(painter, points, symbol):\n    painter.setBrush(symbol.brush())\n    painter.setPen(symbol.pen())\n    size = symbol.size()\n    sw = size.width()\n    sh = size.height()\n    sw2 = 0.5 * size.width()\n    sh2 = 0.5 * size.height()\n    for pos in points:\n        x = pos.x()\n        y = pos.y()\n        r = QRectF(x - sw2, y - sh2, sw, sh)\n        painter.drawEllipse(r)\n\n\ndef qwtDrawRectSymbols(painter, points, symbol):\n    size = symbol.size()\n    pen = QPen(symbol.pen())\n    pen.setJoinStyle(Qt.MiterJoin)\n    painter.setPen(pen)\n    painter.setBrush(symbol.brush())\n    painter.setRenderHint(QPainter.Antialiasing, False)\n    sw = size.width()\n    sh = size.height()\n    sw2 = 0.5 * size.width()\n    sh2 = 0.5 * size.height()\n    for pos in points:\n        x = pos.x()\n        y = pos.y()\n        r = QRectF(x - sw2, y - sh2, sw, sh)\n        painter.drawRect(r)\n\n\ndef qwtDrawDiamondSymbols(painter, points, symbol):\n    size = symbol.size()\n    pen = QPen(symbol.pen())\n    pen.setJoinStyle(Qt.MiterJoin)\n    painter.setPen(pen)\n    painter.setBrush(symbol.brush())\n    for pos in points:\n        x1 = pos.x() - 0.5 * size.width()\n        y1 = pos.y() - 0.5 * size.height()\n        x2 = x1 + size.width()\n        y2 = y1 + size.height()\n        polygon = QPolygonF()\n        polygon.append(QPointF(pos.x(), y1))\n        polygon.append(QPointF(x1, pos.y()))\n        polygon.append(QPointF(pos.x(), y2))\n        polygon.append(QPointF(x2, pos.y()))\n        painter.drawPolygon(polygon)\n\n\ndef qwtDrawTriangleSymbols(painter, type, points, symbol):\n    size = symbol.size()\n    pen = QPen(symbol.pen())\n    pen.setJoinStyle(Qt.MiterJoin)\n    painter.setPen(pen)\n    painter.setBrush(symbol.brush())\n    sw2 = 0.5 * size.width()\n    sh2 = 0.5 * size.height()\n    for pos in points:\n        x = pos.x()\n        y = pos.y()\n        x1 = x - sw2\n        x2 = x1 + size.width()\n        y1 = y - sh2\n        y2 = y1 + size.height()\n        if type == QwtTriangle.Left:\n            triangle = [QPointF(x2, y1), QPointF(x1, y), QPointF(x2, y2)]\n        elif type == QwtTriangle.Right:\n            triangle = [QPointF(x1, y1), QPointF(x2, y), QPointF(x1, y2)]\n        elif type == QwtTriangle.Up:\n            triangle = [QPointF(x1, y2), QPointF(x, y1), QPointF(x2, y2)]\n        elif type == QwtTriangle.Down:\n            triangle = [QPointF(x1, y1), QPointF(x, y2), QPointF(x2, y1)]\n        else:\n            raise TypeError("Unknown triangle type %s" % type)\n        painter.drawPolygon(QPolygonF(triangle))\n\n\ndef qwtDrawLineSymbols(painter, orientations, points, symbol):\n    size = symbol.size()\n    pen = QPen(symbol.pen())\n    if pen.width() > 1:\n        pen.setCapStyle(Qt.FlatCap)\n    painter.setPen(pen)\n    painter.setRenderHint(QPainter.Antialiasing, False)\n    sw = size.width()\n    sh = size.height()\n    sw2 = 0.5 * size.width()\n    sh2 = 0.5 * size.height()\n    for pos in points:\n        if orientations & Qt.Horizontal:\n            x = round(pos.x()) - sw2\n            y = round(pos.y())\n            painter.drawLine(QLineF(x, y, x + sw, y))\n        if orientations & Qt.Vertical:\n            x = round(pos.x())\n            y = round(pos.y()) - sh2\n            painter.drawLine(QLineF(x, y, x, y + sh))\n\n\ndef qwtDrawXCrossSymbols(painter, points, symbol):\n    size = symbol.size()\n    pen = QPen(symbol.pen())\n    if pen.width() > 1:\n        pen.setCapStyle(Qt.FlatCap)\n    painter.setPen(pen)\n    sw = size.width()\n    sh = size.height()\n    sw2 = 0.5 * size.width()\n    sh2 = 0.5 * size.height()\n    for pos in points:\n        x1 = pos.x() - sw2\n        x2 = x1 + sw\n        y1 = pos.y() - sh2\n        y2 = y1 + sh\n        painter.drawLine(QLineF(x1, y1, x2, y2))\n        painter.drawLine(QLineF(x2, y1, x1, y2))\n\n\ndef qwtDrawStar1Symbols(painter, points, symbol):\n    size = symbol.size()\n    painter.setPen(symbol.pen())\n    sqrt1_2 = math.sqrt(0.5)\n    r = QRectF(0, 0, size.width(), size.height())\n    for pos in points:\n        r.moveCenter(pos)\n        c = QPointF(r.center())\n        d1 = r.width() / 2.0 * (1.0 - sqrt1_2)\n        painter.drawLine(\n            QLineF(r.left() + d1, r.top() + d1, r.right() - d1, r.bottom() - d1)\n        )\n        painter.drawLine(\n            QLineF(r.left() + d1, r.bottom() - d1, r.right() - d1, r.top() + d1)\n        )\n        painter.drawLine(QLineF(c.x(), r.top(), c.x(), r.bottom()))\n        painter.drawLine(QLineF(r.left(), c.y(), r.right(), c.y()))\n\n\ndef qwtDrawStar2Symbols(painter, points, symbol):\n    pen = QPen(symbol.pen())\n    if pen.width() > 1:\n        pen.setCapStyle(Qt.FlatCap)\n    pen.setJoinStyle(Qt.MiterJoin)\n    painter.setPen(pen)\n    painter.setBrush(symbol.brush())\n    cos30 = math.cos(30 * math.pi / 180.0)\n    dy = 0.25 * symbol.size().height()\n    dx = 0.5 * symbol.size().width() * cos30 / 3.0\n    for pos in points:\n        x = pos.x()\n        y = pos.y()\n        x1 = x - 3 * dx\n        y1 = y - 2 * dy\n        x2 = x1 + 1 * dx\n        x3 = x1 + 2 * dx\n        x4 = x1 + 3 * dx\n        x5 = x1 + 4 * dx\n        x6 = x1 + 5 * dx\n        x7 = x1 + 6 * dx\n        y2 = y1 + 1 * dy\n        y3 = y1 + 2 * dy\n        y4 = y1 + 3 * dy\n        y5 = y1 + 4 * dy\n        star = [\n            QPointF(x4, y1),\n            QPointF(x5, y2),\n            QPointF(x7, y2),\n            QPointF(x6, y3),\n            QPointF(x7, y4),\n            QPointF(x5, y4),\n            QPointF(x4, y5),\n            QPointF(x3, y4),\n            QPointF(x1, y4),\n            QPointF(x2, y3),\n            QPointF(x1, y2),\n            QPointF(x3, y2),\n        ]\n        painter.drawPolygon(QPolygonF(star))\n\n\ndef qwtDrawHexagonSymbols(painter, points, symbol):\n    painter.setBrush(symbol.brush())\n    painter.setPen(symbol.pen())\n    cos30 = math.cos(30 * math.pi / 180.0)\n    dx = 0.5 * (symbol.size().width() - cos30)\n    dy = 0.25 * symbol.size().height()\n    for pos in points:\n        x = pos.x()\n        y = pos.y()\n        x1 = x - dx\n        y1 = y - 2 * dy\n        x2 = x1 + 1 * dx\n        x3 = x1 + 2 * dx\n        y2 = y1 + 1 * dy\n        y3 = y1 + 3 * dy\n        y4 = y1 + 4 * dy\n        hexa = [\n            QPointF(x2, y1),\n            QPointF(x3, y2),\n            QPointF(x3, y3),\n            QPointF(x2, y4),\n            QPointF(x1, y3),\n            QPointF(x1, y2),\n        ]\n        painter.drawPolygon(QPolygonF(hexa))\n\n\nclass QwtSymbol_PrivateData(QObject):\n    def __init__(self, st, br, pn, sz):\n        QObject.__init__(self)\n        self.style = st\n        self.size = sz\n        self.brush = br\n        self.pen = pn\n        self.isPinPointEnabled = False\n        self.pinPoint = None\n\n        class Path(object):\n            def __init__(self):\n                self.path = None  # QPainterPath()\n                self.graphic = QwtGraphic()\n\n        self.path = Path()\n\n        self.pixmap = None\n\n        class Graphic(object):\n            def __init__(self):\n                self.graphic = QwtGraphic()\n\n        self.graphic = Graphic()\n\n        class SVG(object):\n            def __init__(self):\n                self.renderer = QSvgRenderer()\n\n        self.svg = SVG()\n\n        class PaintCache(object):\n            def __init__(self):\n                self.policy = 0\n                self.pixmap = None  # QPixmap()\n\n        self.cache = PaintCache()\n\n\n
\n[docs]\nclass QwtSymbol(object):\n """\n A class for drawing symbols\n\n Symbol styles:\n\n * `QwtSymbol.NoSymbol`: No Style. The symbol cannot be drawn.\n * `QwtSymbol.Ellipse`: Ellipse or circle\n * `QwtSymbol.Rect`: Rectangle\n * `QwtSymbol.Diamond`: Diamond\n * `QwtSymbol.Triangle`: Triangle pointing upwards\n * `QwtSymbol.DTriangle`: Triangle pointing downwards\n * `QwtSymbol.UTriangle`: Triangle pointing upwards\n * `QwtSymbol.LTriangle`: Triangle pointing left\n * `QwtSymbol.RTriangle`: Triangle pointing right\n * `QwtSymbol.Cross`: Cross (+)\n * `QwtSymbol.XCross`: Diagonal cross (X)\n * `QwtSymbol.HLine`: Horizontal line\n * `QwtSymbol.VLine`: Vertical line\n * `QwtSymbol.Star1`: X combined with +\n * `QwtSymbol.Star2`: Six-pointed star\n * `QwtSymbol.Hexagon`: Hexagon\n * `QwtSymbol.Path`: The symbol is represented by a painter path, where\n the origin (0, 0) of the path coordinate system is mapped to the\n position of the symbol\n\n ..seealso::\n\n :py:meth:`setPath()`, :py:meth:`path()`\n * `QwtSymbol.Pixmap`: The symbol is represented by a pixmap.\n The pixmap is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.Graphic`: The symbol is represented by a graphic.\n The graphic is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.SvgDocument`: The symbol is represented by a SVG graphic.\n The graphic is centered or aligned to its pin point.\n\n ..seealso::\n\n :py:meth:`setPinPoint()`\n * `QwtSymbol.UserStyle`: Styles >= `QwtSymbol.UserStyle` are reserved\n for derived classes of `QwtSymbol` that overload `drawSymbols()` with\n additional application specific symbol types.\n\n Cache policies:\n\n Depending on the render engine and the complexity of the\n symbol shape it might be faster to render the symbol\n to a pixmap and to paint this pixmap.\n\n F.e. the raster paint engine is a pure software renderer\n where in cache mode a draw operation usually ends in\n raster operation with the the backing store, that are usually\n faster, than the algorithms for rendering polygons.\n But the opposite can be expected for graphic pipelines\n that can make use of hardware acceleration.\n\n The default setting is AutoCache\n\n ..seealso::\n\n :py:meth:`setCachePolicy()`, :py:meth:`cachePolicy()`\n\n .. note::\n\n The policy has no effect, when the symbol is painted\n to a vector graphics format (PDF, SVG).\n\n .. warning::\n\n Since Qt 4.8 raster is the default backend on X11\n\n Valid cache policies:\n\n * `QwtSymbol.NoCache`: Don't use a pixmap cache\n * `QwtSymbol.Cache`: Always use a pixmap cache\n * `QwtSymbol.AutoCache`: Use a cache when the symbol is rendered\n with the software renderer (`QPaintEngine.Raster`)\n\n .. py:class:: QwtSymbol([style=QwtSymbol.NoSymbol])\n\n The symbol is constructed with gray interior,\n black outline with zero width, no size and style 'NoSymbol'.\n\n :param int style: Symbol Style\n\n .. py:class:: QwtSymbol(style, brush, pen, size)\n :noindex:\n\n :param int style: Symbol Style\n :param QBrush brush: Brush to fill the interior\n :param QPen pen: Outline pen\n :param QSize size: Size\n\n .. py:class:: QwtSymbol(path, brush, pen)\n :noindex:\n\n :param QPainterPath path: Painter path\n :param QBrush brush: Brush to fill the interior\n :param QPen pen: Outline pen\n\n .. seealso::\n\n :py:meth:`setPath()`, :py:meth:`setBrush()`,\n :py:meth:`setPen()`, :py:meth:`setSize()`\n """\n\n # enum Style\n Style = int\n NoSymbol = -1\n (\n Ellipse,\n Rect,\n Diamond,\n Triangle,\n DTriangle,\n UTriangle,\n LTriangle,\n RTriangle,\n Cross,\n XCross,\n HLine,\n VLine,\n Star1,\n Star2,\n Hexagon,\n Path,\n Pixmap,\n Graphic,\n SvgDocument,\n ) = list(range(19))\n UserStyle = 1000\n\n # enum CachePolicy\n NoCache, Cache, AutoCache = list(range(3))\n\n def __init__(self, *args):\n if len(args) in (0, 1):\n if args:\n (style,) = args\n else:\n style = QwtSymbol.NoSymbol\n self.__data = QwtSymbol_PrivateData(\n style, QBrush(Qt.gray), QPen(Qt.black, 0), QSize()\n )\n elif len(args) == 4:\n style, brush, pen, size = args\n self.__data = QwtSymbol_PrivateData(style, brush, pen, size)\n elif len(args) == 3:\n path, brush, pen = args\n self.__data = QwtSymbol_PrivateData(QwtSymbol.Path, brush, pen, QSize())\n self.setPath(path)\n else:\n raise TypeError(\n "%s() takes 1, 3, or 4 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n\n
\n[docs]\n @classmethod\n def make(\n cls,\n style=None,\n brush=None,\n pen=None,\n size=None,\n path=None,\n pixmap=None,\n graphic=None,\n svgdocument=None,\n pinpoint=None,\n ):\n """\n Create and setup a new `QwtSymbol` object (convenience function).\n\n :param style: Symbol Style\n :type style: int or None\n :param brush: Brush to fill the interior\n :type brush: QBrush or None\n :param pen: Outline pen\n :type pen: QPen or None\n :param size: Size\n :type size: QSize or None\n :param path: Painter path\n :type path: QPainterPath or None\n :param path: Painter path\n :type path: QPainterPath or None\n :param pixmap: Pixmap as symbol\n :type pixmap: QPixmap or None\n :param graphic: Graphic\n :type graphic: qwt.graphic.QwtGraphic or None\n :param svgdocument: SVG icon as symbol\n\n .. seealso::\n\n :py:meth:`setPixmap()`, :py:meth:`setGraphic()`, :py:meth:`setPath()`\n """\n style = QwtSymbol.NoSymbol if style is None else style\n brush = QBrush(Qt.gray) if brush is None else QBrush(brush)\n pen = QPen(Qt.black, 0) if pen is None else QPen(pen)\n size = QSize() if size is None else size\n if not isinstance(size, QSize):\n if isinstance(size, tuple) and len(size) == 2:\n size = QSize(size[0], size[1])\n else:\n raise TypeError("Invalid size %r" % size)\n item = cls(style, brush, pen, size)\n if path is not None:\n item.setPath(path)\n elif pixmap is not None:\n item.setPixmap(pixmap)\n elif graphic is not None:\n item.setGraphic(graphic)\n elif svgdocument is not None:\n item.setSvgDocument(svgdocument)\n if pinpoint is not None:\n item.setPinPoint(pinpoint)\n return item
\n\n\n
\n[docs]\n def setCachePolicy(self, policy):\n """\n Change the cache policy\n\n The default policy is AutoCache\n\n :param int policy: Cache policy\n\n .. seealso::\n\n :py:meth:`cachePolicy()`\n """\n if self.__data.cache.policy != policy:\n self.__data.cache.policy = policy\n self.invalidateCache()
\n\n\n
\n[docs]\n def cachePolicy(self):\n """\n :return: Cache policy\n\n .. seealso::\n\n :py:meth:`setCachePolicy()`\n """\n return self.__data.cache.policy
\n\n\n
\n[docs]\n def setPath(self, path):\n """\n Set a painter path as symbol\n\n The symbol is represented by a painter path, where the\n origin (0, 0) of the path coordinate system is mapped to\n the position of the symbol.\n\n When the symbol has valid size the painter path gets scaled\n to fit into the size. Otherwise the symbol size depends on\n the bounding rectangle of the path.\n\n The following code defines a symbol drawing an arrow::\n\n from qtpy.QtGui import QApplication, QPen, QPainterPath, QTransform\n from qtpy.QtCore import Qt, QPointF\n from qwt import QwtPlot, QwtPlotCurve, QwtSymbol\n import numpy as np\n\n app = QApplication([])\n\n # --- Construct custom symbol ---\n\n path = QPainterPath()\n path.moveTo(0, 8)\n path.lineTo(0, 5)\n path.lineTo(-3, 5)\n path.lineTo(0, 0)\n path.lineTo(3, 5)\n path.lineTo(0, 5)\n\n transform = QTransform()\n transform.rotate(-30.0)\n path = transform.map(path)\n\n pen = QPen(Qt.black, 2 );\n pen.setJoinStyle(Qt.MiterJoin)\n\n symbol = QwtSymbol()\n symbol.setPen(pen)\n symbol.setBrush(Qt.red)\n symbol.setPath(path)\n symbol.setPinPoint(QPointF(0., 0.))\n symbol.setSize(10, 14)\n\n # --- Test it within a simple plot ---\n\n curve = QwtPlotCurve()\n curve_pen = QPen(Qt.blue)\n curve_pen.setStyle(Qt.DotLine)\n curve.setPen(curve_pen)\n curve.setSymbol(symbol)\n x = np.linspace(0, 10, 10)\n curve.setData(x, np.sin(x))\n\n plot = QwtPlot()\n curve.attach(plot)\n plot.resize(600, 300)\n plot.replot()\n plot.show()\n\n app.exec_()\n\n .. image:: /_static/symbol_path_example.png\n\n :param QPainterPath path: Painter path\n\n .. seealso::\n\n :py:meth:`path()`, :py:meth:`setSize()`\n """\n self.__data.style = QwtSymbol.Path\n self.__data.path.path = path\n self.__data.path.graphic.reset()
\n\n\n
\n[docs]\n def path(self):\n """\n :return: Painter path for displaying the symbol\n\n .. seealso::\n\n :py:meth:`setPath()`\n """\n return self.__data.path.path
\n\n\n
\n[docs]\n def setPixmap(self, pixmap):\n """\n Set a pixmap as symbol\n\n :param QPixmap pixmap: Pixmap\n\n .. seealso::\n\n :py:meth:`pixmap()`, :py:meth:`setGraphic()`\n\n .. note::\n\n The `style()` is set to `QwtSymbol.Pixmap`\n\n .. note::\n\n `brush()` and `pen()` have no effect\n """\n self.__data.style = QwtSymbol.Pixmap\n self.__data.pixmap = pixmap
\n\n\n
\n[docs]\n def pixmap(self):\n """\n :return: Assigned pixmap\n\n .. seealso::\n\n :py:meth:`setPixmap()`\n """\n if self.__data.pixmap is None:\n return QPixmap()\n return self.__data.pixmap
\n\n\n
\n[docs]\n def setGraphic(self, graphic):\n """\n Set a graphic as symbol\n\n :param qwt.graphic.QwtGraphic graphic: Graphic\n\n .. seealso::\n\n :py:meth:`graphic()`, :py:meth:`setPixmap()`\n\n .. note::\n\n The `style()` is set to `QwtSymbol.Graphic`\n\n .. note::\n\n `brush()` and `pen()` have no effect\n """\n self.__data.style = QwtSymbol.Graphic\n self.__data.graphic.graphic = graphic
\n\n\n
\n[docs]\n def graphic(self):\n """\n :return: Assigned graphic\n\n .. seealso::\n\n :py:meth:`setGraphic()`\n """\n return self.__data.graphic.graphic
\n\n\n
\n[docs]\n def setSvgDocument(self, svgDocument):\n """\n Set a SVG icon as symbol\n\n :param svgDocument: SVG icon\n\n .. seealso::\n\n :py:meth:`setGraphic()`, :py:meth:`setPixmap()`\n\n .. note::\n\n The `style()` is set to `QwtSymbol.SvgDocument`\n\n .. note::\n\n `brush()` and `pen()` have no effect\n """\n self.__data.style = QwtSymbol.SvgDocument\n if self.__data.svg.renderer is None:\n self.__data.svg.renderer = QSvgRenderer()\n self.__data.svg.renderer.load(svgDocument)
\n\n\n
\n[docs]\n def setSize(self, *args):\n """\n Specify the symbol's size\n\n .. py:method:: setSize(width, [height=-1])\n :noindex:\n\n :param int width: Width\n :param int height: Height\n\n .. py:method:: setSize(size)\n :noindex:\n\n :param QSize size: Size\n\n .. seealso::\n\n :py:meth:`size()`\n """\n if len(args) == 2:\n width, height = args\n if width >= 0 and height < 0:\n height = width\n self.setSize(QSize(width, height))\n elif len(args) == 1:\n if isinstance(args[0], QSize):\n (size,) = args\n if size.isValid() and size != self.__data.size:\n self.__data.size = size\n self.invalidateCache()\n else:\n (width,) = args\n self.setSize(width, -1)\n else:\n raise TypeError(\n "%s().setSize() takes 1 or 2 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def size(self):\n """\n :return: Size\n\n .. seealso::\n\n :py:meth:`setSize()`\n """\n return self.__data.size
\n\n\n
\n[docs]\n def setBrush(self, brush):\n """\n Assign a brush\n\n The brush is used to draw the interior of the symbol.\n\n :param QBrush brush: Brush\n\n .. seealso::\n\n :py:meth:`brush()`\n """\n if brush != self.__data.brush:\n self.__data.brush = brush\n self.invalidateCache()\n if self.__data.style == QwtSymbol.Path:\n self.__data.path.graphic.reset()
\n\n\n
\n[docs]\n def brush(self):\n """\n :return: Brush\n\n .. seealso::\n\n :py:meth:`setBrush()`\n """\n return self.__data.brush
\n\n\n
\n[docs]\n def setPen(self, *args):\n """\n Build and/or assign a pen, depending on the arguments.\n\n .. py:method:: setPen(color, width, style)\n :noindex:\n\n Build and assign a pen\n\n In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it\n non cosmetic (see `QPen.isCosmetic()`). This method signature has\n been introduced to hide this incompatibility.\n\n :param QColor color: Pen color\n :param float width: Pen width\n :param Qt.PenStyle style: Pen style\n\n .. py:method:: setPen(pen)\n :noindex:\n\n Assign a pen\n\n :param QPen pen: New pen\n\n .. seealso::\n\n :py:meth:`pen()`, :py:meth:`brush()`\n """\n if len(args) == 3:\n color, width, style = args\n self.setPen(QPen(color, width, style))\n elif len(args) == 1:\n (pen,) = args\n if pen != self.__data.pen:\n self.__data.pen = pen\n self.invalidateCache()\n if self.__data.style == QwtSymbol.Path:\n self.__data.path.graphic.reset()\n else:\n raise TypeError(\n "%s().setPen() takes 1 or 3 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )
\n\n\n
\n[docs]\n def pen(self):\n """\n :return: Pen\n\n .. seealso::\n\n :py:meth:`setPen()`, :py:meth:`brush()`\n """\n return self.__data.pen
\n\n\n
\n[docs]\n def setColor(self, color):\n """\n Set the color of the symbol\n\n Change the color of the brush for symbol types with a filled area.\n For all other symbol types the color will be assigned to the pen.\n\n :param QColor color: Color\n\n .. seealso::\n\n :py:meth:`setPen()`, :py:meth:`setBrush()`,\n :py:meth:`brush()`, :py:meth:`pen()`\n """\n if self.__data.style in (\n QwtSymbol.Ellipse,\n QwtSymbol.Rect,\n QwtSymbol.Diamond,\n QwtSymbol.Triangle,\n QwtSymbol.UTriangle,\n QwtSymbol.DTriangle,\n QwtSymbol.RTriangle,\n QwtSymbol.LTriangle,\n QwtSymbol.Star2,\n QwtSymbol.Hexagon,\n ):\n if self.__data.brush.color() != color:\n self.__data.brush.setColor(color)\n self.invalidateCache()\n elif self.__data.style in (\n QwtSymbol.Cross,\n QwtSymbol.XCross,\n QwtSymbol.HLine,\n QwtSymbol.VLine,\n QwtSymbol.Star1,\n ):\n if self.__data.pen.color() != color:\n self.__data.pen.setColor(color)\n self.invalidateCache()\n else:\n if self.__data.brush.color() != color or self.__data.pen.color() != color:\n self.invalidateCache()\n self.__data.brush.setColor(color)\n self.__data.pen.setColor(color)
\n\n\n
\n[docs]\n def setPinPoint(self, pos, enable=True):\n """\n Set and enable a pin point\n\n The position of a complex symbol is not always aligned to its center\n ( f.e an arrow, where the peak points to a position ). The pin point\n defines the position inside of a Pixmap, Graphic, SvgDocument\n or PainterPath symbol where the represented point has to\n be aligned to.\n\n :param QPointF pos: Position\n :enable bool enable: En/Disable the pin point alignment\n\n .. seealso::\n\n :py:meth:`pinPoint()`, :py:meth:`setPinPointEnabled()`\n """\n if self.__data.pinPoint != pos:\n self.__data.pinPoint = pos\n if self.__data.isPinPointEnabled:\n self.invalidateCache()\n self.setPinPointEnabled(enable)
\n\n\n
\n[docs]\n def pinPoint(self):\n """\n :return: Pin point\n\n .. seealso::\n\n :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()`\n """\n return self.__data.pinPoint
\n\n\n
\n[docs]\n def setPinPointEnabled(self, on):\n """\n En/Disable the pin point alignment\n\n :param bool on: Enabled, when on is true\n\n .. seealso::\n\n :py:meth:`setPinPoint()`, :py:meth:`isPinPointEnabled()`\n """\n if self.__data.isPinPointEnabled != on:\n self.__data.isPinPointEnabled = on\n self.invalidateCache()
\n\n\n
\n[docs]\n def isPinPointEnabled(self):\n """\n :return: True, when the pin point translation is enabled\n\n .. seealso::\n\n :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()`\n """\n return self.__data.isPinPointEnabled
\n\n\n
\n[docs]\n def drawSymbols(self, painter, points):\n """\n Render an array of symbols\n\n Painting several symbols is more effective than drawing symbols\n one by one, as a couple of layout calculations and setting of pen/brush\n can be done once for the complete array.\n\n :param QPainter painter: Painter\n :param QPolygonF points: Positions of the symbols in screen coordinates\n """\n painter.save()\n self.renderSymbols(painter, points)\n painter.restore()
\n\n\n
\n[docs]\n def drawSymbol(self, painter, point_or_rect):\n """\n Draw the symbol into a rectangle\n\n The symbol is painted centered and scaled into the target rectangle.\n It is always painted uncached and the pin point is ignored.\n\n This method is primarily intended for drawing a symbol to the legend.\n\n :param QPainter painter: Painter\n :param point_or_rect: Position or target rectangle of the symbol in screen coordinates\n :type point_or_rect: QPointF or QPoint or QRectF\n """\n if isinstance(point_or_rect, (QPointF, QPoint)):\n # drawSymbol( QPainter *, const QPointF & )\n self.drawSymbols(painter, [point_or_rect])\n return\n # drawSymbol( QPainter *, const QRectF & )\n rect = point_or_rect\n assert isinstance(rect, QRectF)\n if self.__data.style == QwtSymbol.NoSymbol:\n return\n if self.__data.style == QwtSymbol.Graphic:\n self.__data.graphic.graphic.render(painter, rect, Qt.KeepAspectRatio)\n elif self.__data.style == QwtSymbol.Path:\n if self.__data.path.graphic.isNull():\n self.__data.path.graphic = qwtPathGraphic(\n self.__data.path.path, self.__data.pen, self.__data.brush\n )\n self.__data.path.graphic.render(painter, rect, Qt.KeepAspectRatio)\n return\n elif self.__data.style == QwtSymbol.SvgDocument:\n if self.__data.svg.renderer is not None:\n scaledRect = QRectF()\n sz = QSizeF(self.__data.svg.renderer.viewBoxF().size())\n if not sz.isEmpty():\n sz.scale(rect.size(), Qt.KeepAspectRatio)\n scaledRect.setSize(sz)\n scaledRect.moveCenter(rect.center())\n else:\n scaledRect = rect\n self.__data.svg.renderer.render(painter, scaledRect)\n else:\n br = QRect(self.boundingRect())\n ratio = min([rect.width() / br.width(), rect.height() / br.height()])\n painter.save()\n painter.translate(rect.center())\n painter.scale(ratio, ratio)\n isPinPointEnabled = self.__data.isPinPointEnabled\n self.__data.isPinPointEnabled = False\n pos = QPointF()\n self.renderSymbols(painter, pos, 1)\n self.__data.isPinPointEnabled = isPinPointEnabled\n painter.restore()
\n\n\n
\n[docs]\n def renderSymbols(self, painter, points):\n """\n Render the symbol to series of points\n\n :param QPainter painter: Painter\n :param point_or_rect: Positions of the symbols\n """\n if self.__data.style == QwtSymbol.Ellipse:\n qwtDrawEllipseSymbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Rect:\n qwtDrawRectSymbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Diamond:\n qwtDrawDiamondSymbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Cross:\n qwtDrawLineSymbols(painter, Qt.Horizontal | Qt.Vertical, points, self)\n elif self.__data.style == QwtSymbol.XCross:\n qwtDrawXCrossSymbols(painter, points, self)\n elif self.__data.style in (QwtSymbol.Triangle, QwtSymbol.UTriangle):\n qwtDrawTriangleSymbols(painter, QwtTriangle.Up, points, self)\n elif self.__data.style == QwtSymbol.DTriangle:\n qwtDrawTriangleSymbols(painter, QwtTriangle.Down, points, self)\n elif self.__data.style == QwtSymbol.RTriangle:\n qwtDrawTriangleSymbols(painter, QwtTriangle.Right, points, self)\n elif self.__data.style == QwtSymbol.LTriangle:\n qwtDrawTriangleSymbols(painter, QwtTriangle.Left, points, self)\n elif self.__data.style == QwtSymbol.HLine:\n qwtDrawLineSymbols(painter, Qt.Horizontal, points, self)\n elif self.__data.style == QwtSymbol.VLine:\n qwtDrawLineSymbols(painter, Qt.Vertical, points, self)\n elif self.__data.style == QwtSymbol.Star1:\n qwtDrawStar1Symbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Star2:\n qwtDrawStar2Symbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Hexagon:\n qwtDrawHexagonSymbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Path:\n if self.__data.path.graphic.isNull():\n self.__data.path.graphic = qwtPathGraphic(\n self.__data.path.path, self.__data.pen, self.__data.brush\n )\n qwtDrawGraphicSymbols(painter, points, self.__data.path.graphic, self)\n elif self.__data.style == QwtSymbol.Pixmap:\n qwtDrawPixmapSymbols(painter, points, self)\n elif self.__data.style == QwtSymbol.Graphic:\n qwtDrawGraphicSymbols(painter, points, self.__data.graphic.graphic, self)\n elif self.__data.style == QwtSymbol.SvgDocument:\n qwtDrawSvgSymbols(painter, points, self.__data.svg.renderer, self)
\n\n\n
\n[docs]\n def boundingRect(self):\n """\n Calculate the bounding rectangle for a symbol at position (0,0).\n\n :return: Bounding rectangle\n """\n rect = QRectF()\n pinPointTranslation = False\n if self.__data.style in (QwtSymbol.Ellipse, QwtSymbol.Rect, QwtSymbol.Hexagon):\n pw = 0.0\n if self.__data.pen.style() != Qt.NoPen:\n pw = max([self.__data.pen.widthF(), 1.0])\n rect.setSize(QSizeF(self.__data.size) + QSizeF(pw, pw))\n rect.moveCenter(QPointF(0.0, 0.0))\n elif self.__data.style in (\n QwtSymbol.XCross,\n QwtSymbol.Diamond,\n QwtSymbol.Triangle,\n QwtSymbol.UTriangle,\n QwtSymbol.DTriangle,\n QwtSymbol.RTriangle,\n QwtSymbol.LTriangle,\n QwtSymbol.Star1,\n QwtSymbol.Star2,\n ):\n pw = 0.0\n if self.__data.pen.style() != Qt.NoPen:\n pw = max([self.__data.pen.widthF(), 1.0])\n rect.setSize(QSizeF(self.__data.size) + QSizeF(2 * pw, 2 * pw))\n rect.moveCenter(QPointF(0.0, 0.0))\n elif self.__data.style == QwtSymbol.Path:\n if self.__data.path.graphic.isNull():\n self.__data.path.graphic = qwtPathGraphic(\n self.__data.path.path, self.__data.pen, self.__data.brush\n )\n rect = qwtScaleBoundingRect(self.__data.path.graphic, self.__data.size)\n pinPointTranslation = True\n elif self.__data.style == QwtSymbol.Pixmap:\n if self.__data.size.isEmpty():\n rect.setSize(QSizeF(self.pixmap().size()))\n else:\n rect.setSize(QSizeF(self.__data.size))\n pinPointTranslation = True\n elif self.__data.style == QwtSymbol.Graphic:\n rect = qwtScaleBoundingRect(self.__data.graphic.graphic, self.__data.size)\n pinPointTranslation = True\n elif self.__data.style == QwtSymbol.SvgDocument:\n if self.__data.svg.renderer is not None:\n rect = self.__data.svg.renderer.viewBoxF()\n if self.__data.size.isValid() and not rect.isEmpty():\n sz = QSizeF(rect.size())\n sx = self.__data.size.width() / sz.width()\n sy = self.__data.size.height() / sz.height()\n transform = QTransform()\n transform.scale(sx, sy)\n rect = transform.mapRect(rect)\n pinPointTranslation = True\n else:\n rect.setSize(QSizeF(self.__data.size))\n rect.moveCenter(QPointF(0.0, 0.0))\n if pinPointTranslation:\n pinPoint = QPointF(0.0, 0.0)\n if self.__data.isPinPointEnabled:\n pinPoint = rect.center() - self.__data.pinPoint\n rect.moveCenter(pinPoint)\n r = QRect()\n r.setLeft(math.floor(rect.left()))\n r.setTop(math.floor(rect.top()))\n r.setRight(math.floor(rect.right()))\n r.setBottom(math.floor(rect.bottom()))\n if self.__data.style != QwtSymbol.Pixmap:\n r.adjust(-1, -1, 1, 1)\n return r
\n\n\n
\n[docs]\n def invalidateCache(self):\n """\n Invalidate the cached symbol pixmap\n\n The symbol invalidates its cache, whenever an attribute is changed\n that has an effect ob how to display a symbol. In case of derived\n classes with individual styles (>= `QwtSymbol.UserStyle`) it\n might be necessary to call invalidateCache() for attributes\n that are relevant for this style.\n\n .. seealso::\n\n :py:meth:`setCachePolicy()`, :py:meth:`drawSymbols()`\n """\n if self.__data.cache.pixmap is not None:\n self.__data.cache.pixmap = None
\n\n\n
\n[docs]\n def setStyle(self, style):\n """\n Specify the symbol style\n\n :param int style: Style\n\n .. seealso::\n\n :py:meth:`style()`\n """\n if self.__data.style != style:\n self.__data.style = style\n self.invalidateCache()
\n\n\n
\n[docs]\n def style(self):\n """\n :return: Current symbol style\n\n .. seealso::\n\n :py:meth:`setStyle()`\n """\n return self.__data.style
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39ca0c20>, 'js_tag': .js_tag at 0x7f3d39ca0e00>}, None) highlighting module code... [ 92%] qwt.text [app] emitting event: 'viewcode-find-source'('qwt.text',) -[app] emitting event: 'html-page-context'('_modules/qwt/text', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/text', 'current_page_name': '_modules/qwt/text', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b22340>, 'hasdoc': .hasdoc at 0x7fc7d6b209a0>, 'toctree': . at 0x7fc7d6b23c40>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.text', 'body': '

Source code for qwt.text

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nText widgets\n------------\n\nQwtText\n~~~~~~~\n\n.. autoclass:: QwtText\n   :members:\n\nQwtTextLabel\n~~~~~~~~~~~~\n\n.. autoclass:: QwtTextLabel\n   :members:\n\nText engines\n------------\n\nQwtTextEngine\n~~~~~~~~~~~~~\n\n.. autoclass:: QwtTextEngine\n   :members:\n\nQwtPlainTextEngine\n~~~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtPlainTextEngine\n   :members:\n\nQwtRichTextEngine\n~~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtRichTextEngine\n   :members:\n"""\n\nimport math\nimport os\nimport struct\n\nfrom qtpy.QtCore import QObject, QRectF, QSize, QSizeF, Qt\nfrom qtpy.QtGui import (\n    QAbstractTextDocumentLayout,\n    QColor,\n    QFont,\n    QFontInfo,\n    QFontMetrics,\n    QFontMetricsF,\n    QPainter,\n    QPalette,\n    QPixmap,\n    QTextDocument,\n    QTextOption,\n    QTransform,\n)\nfrom qtpy.QtWidgets import QApplication, QFrame, QSizePolicy, QWidget\n\nfrom qwt.painter import QwtPainter\nfrom qwt.qthelpers import qcolor_from_str\n\nQWIDGETSIZE_MAX = (1 << 24) - 1\n\nQT_API = os.environ["QT_API"]\n\n\ndef taggedRichText(text, flags):\n    richText = text\n    if flags & Qt.AlignJustify:\n        richText = '<div align="justify">' + richText + "</div>"\n    elif flags & Qt.AlignRight:\n        richText = '<div align="right">' + richText + "</div>"\n    elif flags & Qt.AlignHCenter:\n        richText = '<div align="center">' + richText + "</div>"\n    return richText\n\n\nclass QwtRichTextDocument(QTextDocument):\n    def __init__(self, text, flags, font):\n        super(QwtRichTextDocument, self).__init__(None)\n        self.setUndoRedoEnabled(False)\n        self.setDefaultFont(font)\n        self.setHtml(text)\n\n        option = self.defaultTextOption()\n        if flags & Qt.TextWordWrap:\n            option.setWrapMode(QTextOption.WordWrap)\n        else:\n            option.setWrapMode(QTextOption.NoWrap)\n\n        option.setAlignment(flags)\n        self.setDefaultTextOption(option)\n\n        root = self.rootFrame()\n        fm = root.frameFormat()\n        fm.setBorder(0)\n        fm.setMargin(0)\n        fm.setPadding(0)\n        fm.setBottomMargin(0)\n        fm.setLeftMargin(0)\n        root.setFrameFormat(fm)\n\n        self.adjustSize()\n\n\n
\n[docs]\nclass QwtTextEngine(object):\n """\n Abstract base class for rendering text strings\n\n A text engine is responsible for rendering texts for a\n specific text format. They are used by `QwtText` to render a text.\n\n `QwtPlainTextEngine` and `QwtRichTextEngine` are part of the\n `PythonQwt` library.\n\n .. seealso::\n\n :py:meth:`qwt.text.QwtText.setTextEngine()`\n """\n\n def __init__(self):\n pass\n\n
\n[docs]\n def heightForWidth(self, font, flags, text, width):\n """\n Find the height for a given width\n\n :param QFont font: Font of the text\n :param int flags: Bitwise OR of the flags used like in QPainter::drawText\n :param str text: Text to be rendered\n :param float width: Width\n :return: Calculated height\n """\n pass
\n\n\n
\n[docs]\n def textSize(self, font, flags, text):\n """\n Returns the size, that is needed to render text\n\n :param QFont font: Font of the text\n :param int flags: Bitwise OR of the flags like in for QPainter::drawText\n :param str text: Text to be rendered\n :return: Calculated size\n """\n pass
\n\n\n
\n[docs]\n def mightRender(self, text):\n """\n Test if a string can be rendered by this text engine\n\n :param str text: Text to be tested\n :return: True, if it can be rendered\n """\n pass
\n\n\n
\n[docs]\n def textMargins(self, font):\n """\n Return margins around the texts\n\n The textSize might include margins around the\n text, like QFontMetrics::descent(). In situations\n where texts need to be aligned in detail, knowing\n these margins might improve the layout calculations.\n\n :param QFont font: Font of the text\n :return: tuple (left, right, top, bottom) representing margins\n """\n pass
\n\n\n
\n[docs]\n def draw(self, painter, rect, flags, text):\n """\n Draw the text in a clipping rectangle\n\n :param QPainter painter: Painter\n :param QRectF rect: Clipping rectangle\n :param int flags: Bitwise OR of the flags like in for QPainter::drawText()\n :param str text: Text to be rendered\n """\n pass
\n
\n\n\n\nASCENTCACHE = {}\n\n\ndef get_screen_resolution():\n """Return screen resolution: tuple of floats (DPIx, DPIy)"""\n try:\n desktop = QApplication.desktop()\n return (desktop.logicalDpiX(), desktop.logicalDpiY())\n except AttributeError:\n screen = QApplication.primaryScreen()\n return (screen.logicalDotsPerInchX(), screen.logicalDotsPerInchY())\n\n\ndef qwtUnscaleFont(painter):\n if painter.font().pixelSize() >= 0:\n return\n dpix, dpiy = get_screen_resolution()\n pd = painter.device()\n if pd.logicalDpiX() != dpix or pd.logicalDpiY() != dpiy:\n try:\n pixelFont = QFont(painter.font(), QApplication.desktop())\n except AttributeError:\n pixelFont = QFont(painter.font())\n pixelFont.setPixelSize(QFontInfo(pixelFont).pixelSize())\n painter.setFont(pixelFont)\n\n\n
\n[docs]\nclass QwtPlainTextEngine(QwtTextEngine):\n """\n A text engine for plain texts\n\n `QwtPlainTextEngine` renders texts using the basic `Qt` classes\n `QPainter` and `QFontMetrics`.\n """\n\n def __init__(self):\n self.qrectf_max = QRectF(0, 0, QWIDGETSIZE_MAX, QWIDGETSIZE_MAX)\n self._fm_cache = {}\n self._fm_cache_f = {}\n\n def fontmetrics(self, font):\n fid = font.toString()\n try:\n return self._fm_cache[fid]\n except KeyError:\n return self._fm_cache.setdefault(fid, QFontMetrics(font))\n\n def fontmetrics_f(self, font):\n fid = font.toString()\n try:\n return self._fm_cache_f[fid]\n except KeyError:\n return self._fm_cache_f.setdefault(fid, QFontMetricsF(font))\n\n
\n[docs]\n def heightForWidth(self, font, flags, text, width):\n """\n Find the height for a given width\n\n :param QFont font: Font of the text\n :param int flags: Bitwise OR of the flags used like in QPainter::drawText\n :param str text: Text to be rendered\n :param float width: Width\n :return: Calculated height\n """\n fm = self.fontmetrics_f(font)\n rect = fm.boundingRect(QRectF(0, 0, width, QWIDGETSIZE_MAX), flags, text)\n return rect.height()
\n\n\n
\n[docs]\n def textSize(self, font, flags, text):\n """\n Returns the size, that is needed to render text\n\n :param QFont font: Font of the text\n :param int flags: Bitwise OR of the flags like in for QPainter::drawText\n :param str text: Text to be rendered\n :return: Calculated size\n """\n fm = self.fontmetrics_f(font)\n rect = fm.boundingRect(self.qrectf_max, flags, text)\n return rect.size()
\n\n\n def effectiveAscent(self, font):\n global ASCENTCACHE\n fontKey = font.key()\n ascent = ASCENTCACHE.get(fontKey)\n if ascent is not None:\n return ascent\n return ASCENTCACHE.setdefault(fontKey, self.findAscent(font))\n\n def findAscent(self, font):\n dummy = "E"\n white = QColor(Qt.white)\n\n fm = self.fontmetrics(font)\n boundingr = fm.boundingRect(dummy)\n pm = QPixmap(boundingr.width(), boundingr.height())\n pm.fill(white)\n\n p = QPainter(pm)\n p.setFont(font)\n p.drawText(0, 0, pm.width(), pm.height(), 0, dummy)\n p.end()\n\n img = pm.toImage()\n\n w = pm.width()\n linebytes = w * 4\n for row in range(img.height()):\n if QT_API.startswith("pyside"):\n line = bytes(img.scanLine(row))\n else:\n line = img.scanLine(row).asstring(linebytes)\n for col in range(w):\n color = struct.unpack("I", line[col * 4 : (col + 1) * 4])[0]\n if color != white.rgb():\n return fm.ascent() - row + 1\n return fm.ascent()\n\n
\n[docs]\n def textMargins(self, font):\n """\n Return margins around the texts\n\n The textSize might include margins around the\n text, like QFontMetrics::descent(). In situations\n where texts need to be aligned in detail, knowing\n these margins might improve the layout calculations.\n\n :param QFont font: Font of the text\n :return: tuple (left, right, top, bottom) representing margins\n """\n left = right = 0\n fm = self.fontmetrics(font)\n top = fm.ascent() - self.effectiveAscent(font)\n bottom = fm.descent()\n return left, right, top, bottom
\n\n\n
\n[docs]\n def draw(self, painter, rect, flags, text):\n """\n Draw the text in a clipping rectangle\n\n :param QPainter painter: Painter\n :param QRectF rect: Clipping rectangle\n :param int flags: Bitwise OR of the flags like in for QPainter::drawText()\n :param str text: Text to be rendered\n """\n painter.save()\n qwtUnscaleFont(painter)\n painter.drawText(rect, flags, text)\n painter.restore()
\n\n\n
\n[docs]\n def mightRender(self, text):\n """\n Test if a string can be rendered by this text engine\n\n :param str text: Text to be tested\n :return: True, if it can be rendered\n """\n return True
\n
\n\n\n\n
\n[docs]\nclass QwtRichTextEngine(QwtTextEngine):\n """\n A text engine for `Qt` rich texts\n\n `QwtRichTextEngine` renders `Qt` rich texts using the classes\n of the Scribe framework of `Qt`.\n """\n\n def __init__(self):\n pass\n\n
\n[docs]\n def heightForWidth(self, font, flags, text, width):\n """\n Find the height for a given width\n\n :param QFont font: Font of the text\n :param int flags: Bitwise OR of the flags used like in QPainter::drawText\n :param str text: Text to be rendered\n :param float width: Width\n :return: Calculated height\n """\n doc = QwtRichTextDocument(text, flags, font)\n doc.setPageSize(QSizeF(width, QWIDGETSIZE_MAX))\n return doc.documentLayout().documentSize().height()
\n\n\n
\n[docs]\n def textSize(self, font, flags, text):\n """\n Returns the size, that is needed to render text\n\n :param QFont font: Font of the text\n :param int flags: Bitwise OR of the flags like in for QPainter::drawText\n :param str text: Text to be rendered\n :return: Calculated size\n """\n doc = QwtRichTextDocument(text, flags, font)\n option = doc.defaultTextOption()\n if option.wrapMode() != QTextOption.NoWrap:\n option.setWrapMode(QTextOption.NoWrap)\n doc.setDefaultTextOption(option)\n doc.adjustSize()\n return doc.size()
\n\n\n
\n[docs]\n def draw(self, painter, rect, flags, text):\n """\n Draw the text in a clipping rectangle\n\n :param QPainter painter: Painter\n :param QRectF rect: Clipping rectangle\n :param int flags: Bitwise OR of the flags like in for QPainter::drawText()\n :param str text: Text to be rendered\n """\n txt = QwtRichTextDocument(text, flags, painter.font())\n painter.save()\n unscaledRect = QRectF(rect)\n if painter.font().pixelSize() < 0:\n dpix, dpiy = get_screen_resolution()\n pd = painter.device()\n if pd.logicalDpiX() != dpix or pd.logicalDpiY() != dpiy:\n transform = QTransform()\n transform.scale(\n dpix / float(pd.logicalDpiX()), dpiy / float(pd.logicalDpiY())\n )\n painter.setWorldTransform(transform, True)\n invtrans, _ok = transform.inverted()\n unscaledRect = invtrans.mapRect(rect)\n txt.setDefaultFont(painter.font())\n txt.setPageSize(QSizeF(unscaledRect.width(), QWIDGETSIZE_MAX))\n layout = txt.documentLayout()\n height = layout.documentSize().height()\n y = unscaledRect.y()\n if flags & Qt.AlignBottom:\n y += unscaledRect.height() - height\n elif flags & Qt.AlignVCenter:\n y += (unscaledRect.height() - height) / 2\n context = QAbstractTextDocumentLayout.PaintContext()\n context.palette.setColor(QPalette.Text, painter.pen().color())\n painter.translate(unscaledRect.x(), y)\n layout.draw(painter, context)\n painter.restore()
\n\n\n def taggedText(self, text, flags):\n return taggedRichText(text, flags)\n\n
\n[docs]\n def mightRender(self, text):\n """\n Test if a string can be rendered by this text engine\n\n :param str text: Text to be tested\n :return: True, if it can be rendered\n """\n try:\n return Qt.mightBeRichText(text)\n except AttributeError:\n return True
\n\n\n
\n[docs]\n def textMargins(self, font):\n """\n Return margins around the texts\n\n The textSize might include margins around the\n text, like QFontMetrics::descent(). In situations\n where texts need to be aligned in detail, knowing\n these margins might improve the layout calculations.\n\n :param QFont font: Font of the text\n :return: tuple (left, right, top, bottom) representing margins\n """\n return 0, 0, 0, 0
\n
\n\n\n\nclass QwtText_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.renderFlags = Qt.AlignCenter\n self.borderRadius = 0\n self.borderPen = Qt.NoPen\n self.backgroundBrush = Qt.NoBrush\n self.paintAttributes = 0\n self.layoutAttributes = 0\n self.textEngine = None\n\n self.text = None\n self.font = None\n self.color = None\n\n\nclass QwtText_LayoutCache(object):\n def __init__(self):\n self.textSize = None\n self.font = None\n\n def invalidate(self):\n self.textSize = None\n\n\n
\n[docs]\nclass QwtText(object):\n """\n A class representing a text\n\n A `QwtText` is a text including a set of attributes how to render it.\n\n - Format:\n\n A text might include control sequences (f.e tags) describing\n how to render it. Each format (f.e MathML, TeX, Qt Rich Text)\n has its own set of control sequences, that can be handles by\n a special `QwtTextEngine` for this format.\n\n - Background:\n\n A text might have a background, defined by a `QPen` and `QBrush`\n to improve its visibility. The corners of the background might\n be rounded.\n\n - Font:\n\n A text might have an individual font.\n\n - Color\n\n A text might have an individual color.\n\n - Render Flags\n\n Flags from `Qt.AlignmentFlag` and `Qt.TextFlag` used like in\n `QPainter.drawText()`.\n\n ..seealso::\n\n :py:meth:`qwt.text.QwtTextEngine`,\n :py:meth:`qwt.text.QwtTextLabel`\n\n Text formats:\n\n * `QwtText.AutoText`:\n\n The text format is determined using `QwtTextEngine.mightRender()` for\n all available text engines in increasing order > PlainText.\n If none of the text engines can render the text is rendered\n like `QwtText.PlainText`.\n\n * `QwtText.PlainText`:\n\n Draw the text as it is, using a QwtPlainTextEngine.\n\n * `QwtText.RichText`:\n\n Use the Scribe framework (Qt Rich Text) to render the text.\n\n * `QwtText.OtherFormat`:\n\n The number of text formats can be extended using `setTextEngine`.\n Formats >= `QwtText.OtherFormat` are not used by Qwt.\n\n Paint attributes:\n\n * `QwtText.PaintUsingTextFont`: The text has an individual font.\n * `QwtText.PaintUsingTextColor`: The text has an individual color.\n * `QwtText.PaintBackground`: The text has an individual background.\n\n Layout attributes:\n\n * `QwtText.MinimumLayout`:\n\n Layout the text without its margins. This mode is useful if a\n text needs to be aligned accurately, like the tick labels of a scale.\n If `QwtTextEngine.textMargins` is not implemented for the format\n of the text, `MinimumLayout` has no effect.\n\n .. py:class:: QwtText([text=None], [textFormat=None], [other=None])\n\n :param str text: Text content\n :param int textFormat: Text format\n :param qwt.text.QwtText other: Object to copy (text and textFormat arguments are ignored)\n """\n\n # enum TextFormat\n AutoText, PlainText, RichText = list(range(3))\n OtherFormat = 100\n\n # enum PaintAttribute\n PaintUsingTextFont = 0x01\n PaintUsingTextColor = 0x02\n PaintBackground = 0x04\n\n # enum LayoutAttribute\n MinimumLayout = 0x01\n\n # Optimization: a single text engine for all QwtText objects\n # (this is not how it's implemented in Qwt6 C++ library)\n __map = {PlainText: QwtPlainTextEngine(), RichText: QwtRichTextEngine()}\n\n def __init__(self, text=None, textFormat=None, other=None):\n if text is None:\n text = ""\n if textFormat is None:\n textFormat = self.AutoText\n if other is not None:\n text = other\n if isinstance(text, QwtText):\n self.__data = text.__data\n self.__layoutCache = text.__layoutCache\n else:\n self.__data = QwtText_PrivateData()\n self.__data.text = text\n self.__data.textEngine = self.textEngine(text, textFormat)\n self.__layoutCache = QwtText_LayoutCache()\n\n
\n[docs]\n @classmethod\n def make(\n cls,\n text=None,\n textformat=None,\n renderflags=None,\n font=None,\n family=None,\n pointsize=None,\n weight=None,\n color=None,\n borderradius=None,\n borderpen=None,\n brush=None,\n ):\n """\n Create and setup a new `QwtText` object (convenience function).\n\n :param str text: Text content\n :param int textformat: Text format\n :param int renderflags: Flags from `Qt.AlignmentFlag` and `Qt.TextFlag`\n :param font: Font\n :type font: QFont or None\n :param family: Font family (default: Helvetica)\n :type family: str or None\n :param pointsize: Font point size (default: 10)\n :type pointsize: int or None\n :param weight: Font weight (default: QFont.Normal)\n :type weight: int or None\n :param color: Pen color\n :type color: QColor or str or None\n :param borderradius: Radius for the corners of the border frame\n :type borderradius: float or None\n :param borderpen: Background pen\n :type borderpen: QPen or None\n :param brush: Background brush\n :type brush: QBrush or None\n\n .. seealso::\n\n :py:meth:`setText()`\n """\n item = cls(text=text, textFormat=textformat)\n if renderflags is not None:\n item.setRenderFlags(renderflags)\n if font is not None:\n item.setFont(font)\n elif family is not None or pointsize is not None or weight is not None:\n family = "Helvetica" if family is None else family\n pointsize = 10 if pointsize is None else pointsize\n weight = QFont.Normal if weight is None else weight\n item.setFont(QFont(family, pointsize, weight))\n if color is not None:\n item.setColor(qcolor_from_str(color, Qt.black))\n if borderradius is not None:\n item.setBorderRadius(borderradius)\n if borderpen is not None:\n item.setBorderPen(borderpen)\n if brush is not None:\n item.setBackgroundBrush(brush)\n return item
\n\n\n def __eq__(self, other):\n return (\n self.__data.renderFlags == other.__data.renderFlags\n and self.__data.text == other.__data.text\n and self.__data.font == other.__data.font\n and self.__data.color == other.__data.color\n and self.__data.borderRadius == other.__data.borderRadius\n and self.__data.borderPen == other.__data.borderPen\n and self.__data.backgroundBrush == other.__data.backgroundBrush\n and self.__data.paintAttributes == other.__data.paintAttributes\n and self.__data.textEngine == other.__data.textEngine\n )\n\n def __ne__(self, other):\n return not self.__eq__(other)\n\n
\n[docs]\n def isEmpty(self):\n """\n :return: True if text is empty\n """\n return len(self.text()) == 0
\n\n\n
\n[docs]\n def setText(self, text, textFormat=None):\n """\n Assign a new text content\n\n :param str text: Text content\n :param int textFormat: Text format\n\n .. seealso::\n\n :py:meth:`text()`\n """\n if textFormat is None:\n textFormat = self.AutoText\n self.__data.text = text\n self.__data.textEngine = self.textEngine(text, textFormat)\n self.__layoutCache.invalidate()
\n\n\n
\n[docs]\n def text(self):\n """\n :return: Text content\n\n .. seealso::\n\n :py:meth:`setText()`\n """\n return self.__data.text
\n\n\n
\n[docs]\n def setRenderFlags(self, renderFlags):\n """\n Change the render flags\n\n The default setting is `Qt.AlignCenter`\n\n :param int renderFlags: Bitwise OR of the flags used like in `QPainter.drawText()`\n\n .. seealso::\n\n :py:meth:`renderFlags()`,\n :py:meth:`qwt.text.QwtTextEngine.draw()`\n """\n renderFlags = Qt.AlignmentFlag(renderFlags)\n if renderFlags != self.__data.renderFlags:\n self.__data.renderFlags = renderFlags\n self.__layoutCache.invalidate()
\n\n\n
\n[docs]\n def renderFlags(self):\n """\n :return: Render flags\n\n .. seealso::\n\n :py:meth:`setRenderFlags()`\n """\n return self.__data.renderFlags
\n\n\n
\n[docs]\n def setFont(self, font):\n """\n Set the font.\n\n :param QFont font: Font\n\n .. note::\n\n Setting the font might have no effect, when\n the text contains control sequences for setting fonts.\n\n .. seealso::\n\n :py:meth:`font()`, :py:meth:`usedFont()`\n """\n self.__data.font = font\n self.setPaintAttribute(self.PaintUsingTextFont)
\n\n\n
\n[docs]\n def font(self):\n """\n :return: Return the font\n\n .. seealso::\n\n :py:meth:`setFont()`, :py:meth:`usedFont()`\n """\n return self.__data.font
\n\n\n
\n[docs]\n def usedFont(self, defaultFont):\n """\n Return the font of the text, if it has one.\n Otherwise return defaultFont.\n\n :param QFont defaultFont: Default font\n :return: Font used for drawing the text\n\n .. seealso::\n\n :py:meth:`setFont()`, :py:meth:`font()`\n """\n if self.__data.paintAttributes & self.PaintUsingTextFont:\n return self.__data.font\n return defaultFont
\n\n\n
\n[docs]\n def setColor(self, color):\n """\n Set the pen color used for drawing the text.\n\n :param QColor color: Color\n\n .. note::\n\n Setting the color might have no effect, when\n the text contains control sequences for setting colors.\n\n .. seealso::\n\n :py:meth:`color()`, :py:meth:`usedColor()`\n """\n self.__data.color = QColor(color)\n self.setPaintAttribute(self.PaintUsingTextColor)
\n\n\n
\n[docs]\n def color(self):\n """\n :return: Return the pen color, used for painting the text\n\n .. seealso::\n\n :py:meth:`setColor()`, :py:meth:`usedColor()`\n """\n return self.__data.color
\n\n\n
\n[docs]\n def usedColor(self, defaultColor):\n """\n Return the color of the text, if it has one.\n Otherwise return defaultColor.\n\n :param QColor defaultColor: Default color\n :return: Color used for drawing the text\n\n .. seealso::\n\n :py:meth:`setColor()`, :py:meth:`color()`\n """\n if self.__data.paintAttributes & self.PaintUsingTextColor:\n return self.__data.color\n return defaultColor
\n\n\n
\n[docs]\n def setBorderRadius(self, radius):\n """\n Set the radius for the corners of the border frame\n\n :param float radius: Radius of a rounded corner\n\n .. seealso::\n\n :py:meth:`borderRadius()`, :py:meth:`setBorderPen()`,\n :py:meth:`setBackgroundBrush()`\n """\n self.__data.borderRadius = max([0.0, radius])
\n\n\n
\n[docs]\n def borderRadius(self):\n """\n :return: Radius for the corners of the border frame\n\n .. seealso::\n\n :py:meth:`setBorderRadius()`, :py:meth:`borderPen()`,\n :py:meth:`backgroundBrush()`\n """\n return self.__data.borderRadius
\n\n\n
\n[docs]\n def setBorderPen(self, pen):\n """\n Set the background pen\n\n :param QPen pen: Background pen\n\n .. seealso::\n\n :py:meth:`borderPen()`, :py:meth:`setBackgroundBrush()`\n """\n self.__data.borderPen = pen\n self.setPaintAttribute(self.PaintBackground)
\n\n\n
\n[docs]\n def borderPen(self):\n """\n :return: Background pen\n\n .. seealso::\n\n :py:meth:`setBorderPen()`, :py:meth:`backgroundBrush()`\n """\n return self.__data.borderPen
\n\n\n
\n[docs]\n def setBackgroundBrush(self, brush):\n """\n Set the background brush\n\n :param QBrush brush: Background brush\n\n .. seealso::\n\n :py:meth:`backgroundBrush()`, :py:meth:`setBorderPen()`\n """\n self.__data.backgroundBrush = brush\n self.setPaintAttribute(self.PaintBackground)
\n\n\n
\n[docs]\n def backgroundBrush(self):\n """\n :return: Background brush\n\n .. seealso::\n\n :py:meth:`setBackgroundBrush()`, :py:meth:`borderPen()`\n """\n return self.__data.backgroundBrush
\n\n\n
\n[docs]\n def setPaintAttribute(self, attribute, on=True):\n """\n Change a paint attribute\n\n :param int attribute: Paint attribute\n :param bool on: On/Off\n\n .. note::\n\n Used by `setFont()`, `setColor()`, `setBorderPen()`\n and `setBackgroundBrush()`\n\n .. seealso::\n\n :py:meth:`testPaintAttribute()`\n """\n if on:\n self.__data.paintAttributes |= attribute\n else:\n self.__data.paintAttributes &= ~attribute
\n\n\n
\n[docs]\n def testPaintAttribute(self, attribute):\n """\n Test a paint attribute\n\n :param int attribute: Paint attribute\n :return: True, if attribute is enabled\n\n .. seealso::\n\n :py:meth:`setPaintAttribute()`\n """\n return self.__data.paintAttributes & attribute
\n\n\n
\n[docs]\n def setLayoutAttribute(self, attribute, on=True):\n """\n Change a layout attribute\n\n :param int attribute: Layout attribute\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`testLayoutAttribute()`\n """\n if on:\n self.__data.layoutAttributes |= attribute\n else:\n self.__data.layoutAttributes &= ~attribute
\n\n\n
\n[docs]\n def testLayoutAttribute(self, attribute):\n """\n Test a layout attribute\n\n :param int attribute: Layout attribute\n :return: True, if attribute is enabled\n\n .. seealso::\n\n :py:meth:`setLayoutAttribute()`\n """\n return self.__data.layoutAttributes & attribute
\n\n\n
\n[docs]\n def heightForWidth(self, width, defaultFont=None):\n """\n Find the height for a given width\n\n :param float width: Width\n :param QFont defaultFont: Font, used for the calculation if the text has no font\n :return: Calculated height\n """\n if defaultFont is None:\n defaultFont = QFont()\n font = QFont(self.usedFont(defaultFont))\n h = 0\n if self.__data.layoutAttributes & self.MinimumLayout:\n (left, right, top, bottom) = self.__data.textEngine.textMargins(font)\n h = self.__data.textEngine.heightForWidth(\n font, self.__data.renderFlags, self.__data.text, width + left + right\n )\n h -= top + bottom\n else:\n h = self.__data.textEngine.heightForWidth(\n font, self.__data.renderFlags, self.__data.text, width\n )\n return h
\n\n\n
\n[docs]\n def textSize(self, defaultFont):\n """\n Returns the size, that is needed to render text\n\n :param QFont defaultFont Font, used for the calculation if the text has no font\n :return: Caluclated size\n """\n font = QFont(self.usedFont(defaultFont))\n if (\n self.__layoutCache.textSize is None\n or not self.__layoutCache.textSize.isValid()\n or self.__layoutCache.font is not font\n ):\n self.__layoutCache.textSize = self.__data.textEngine.textSize(\n font, self.__data.renderFlags, self.__data.text\n )\n self.__layoutCache.font = font\n sz = self.__layoutCache.textSize\n if self.__data.layoutAttributes & self.MinimumLayout:\n (left, right, top, bottom) = self.__data.textEngine.textMargins(font)\n sz -= QSizeF(left + right, top + bottom)\n return sz
\n\n\n
\n[docs]\n def draw(self, painter, rect):\n """\n Draw a text into a rectangle\n\n :param QPainter painter: Painter\n :param QRectF rect: Rectangle\n """\n if self.__data.paintAttributes & self.PaintBackground:\n if (\n self.__data.borderPen != Qt.NoPen\n or self.__data.backgroundBrush != Qt.NoBrush\n ):\n painter.save()\n painter.setPen(self.__data.borderPen)\n painter.setBrush(self.__data.backgroundBrush)\n if self.__data.borderRadius == 0:\n painter.drawRect(rect)\n else:\n painter.setRenderHint(QPainter.Antialiasing, True)\n painter.drawRoundedRect(\n rect, self.__data.borderRadius, self.__data.borderRadius\n )\n painter.restore()\n painter.save()\n if self.__data.paintAttributes & self.PaintUsingTextFont:\n painter.setFont(self.__data.font)\n if self.__data.paintAttributes & self.PaintUsingTextColor:\n if self.__data.color.isValid():\n painter.setPen(self.__data.color)\n expandedRect = rect\n if self.__data.layoutAttributes & self.MinimumLayout:\n font = QFont(painter.font())\n (left, right, top, bottom) = self.__data.textEngine.textMargins(font)\n expandedRect.setTop(rect.top() - top)\n expandedRect.setBottom(rect.bottom() + bottom)\n expandedRect.setLeft(rect.left() - left)\n expandedRect.setRight(rect.right() + right)\n self.__data.textEngine.draw(\n painter, expandedRect, self.__data.renderFlags, self.__data.text\n )\n painter.restore()
\n\n\n
\n[docs]\n def textEngine(self, text=None, format_=None):\n """\n Find the text engine for a text format\n\n In case of `QwtText.AutoText` the first text engine\n (beside `QwtPlainTextEngine`) is returned, where\n `QwtTextEngine.mightRender` returns true.\n If there is none `QwtPlainTextEngine` is returned.\n\n If no text engine is registered for the format `QwtPlainTextEngine`\n is returned.\n\n :param str text: Text, needed in case of AutoText\n :param int format: Text format\n :return: Corresponding text engine\n """\n if text is None:\n return self.__map.get(format_)\n elif format_ is not None:\n if format_ == QwtText.AutoText:\n for key, engine in list(self.__map.items()):\n if key != QwtText.PlainText:\n if engine and engine.mightRender(text):\n return engine\n engine = self.__map.get(format_)\n if engine is not None:\n return engine\n return self.__map[QwtText.PlainText]\n else:\n raise TypeError(\n "%s().textEngine() takes 1 or 2 argument(s) (none"\n " given)" % self.__class__.__name__\n )
\n\n\n
\n[docs]\n def setTextEngine(self, format_, engine):\n """\n Assign/Replace a text engine for a text format\n\n With setTextEngine it is possible to extend `PythonQwt` with\n other types of text formats.\n\n For `QwtText.PlainText` it is not allowed to assign a engine to None.\n\n :param int format_: Text format\n :param qwt.text.QwtTextEngine engine: Text engine\n\n .. seealso::\n\n :py:meth:`setPaintAttribute()`\n\n .. warning::\n\n Using `QwtText.AutoText` does nothing.\n """\n if format_ == QwtText.AutoText:\n return\n if format_ == QwtText.PlainText and engine is None:\n return\n self.__map.setdefault(format_, engine)
\n
\n\n\n\nclass QwtTextLabel_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.indent = 4\n self.margin = 0\n self.text = QwtText()\n\n\n
\n[docs]\nclass QwtTextLabel(QFrame):\n """\n A Widget which displays a QwtText\n\n .. py:class:: QwtTextLabel(parent)\n\n :param QWidget parent: Parent widget\n\n .. py:class:: QwtTextLabel([text=None], [parent=None])\n :noindex:\n\n :param str text: Text\n :param QWidget parent: Parent widget\n """\n\n def __init__(self, *args):\n if len(args) == 0:\n text, parent = None, None\n elif len(args) == 1:\n if isinstance(args[0], QWidget):\n text = None\n (parent,) = args\n else:\n parent = None\n (text,) = args\n elif len(args) == 2:\n text, parent = args\n else:\n raise TypeError(\n "%s() takes 0, 1 or 2 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n super(QwtTextLabel, self).__init__(parent)\n self.init()\n if text is not None:\n self.__data.text = text\n\n def init(self):\n self.__data = QwtTextLabel_PrivateData()\n self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)\n\n
\n[docs]\n def setPlainText(self, text):\n """\n Interface for the designer plugin - does the same as setText()\n\n :param str text: Text\n\n .. seealso::\n\n :py:meth:`plainText()`\n """\n self.setText(QwtText(text))
\n\n\n
\n[docs]\n def plainText(self):\n """\n Interface for the designer plugin\n\n :return: Text as plain text\n\n .. seealso::\n\n :py:meth:`setPlainText()`\n """\n return self.__data.text.text()
\n\n\n
\n[docs]\n def setText(self, text, textFormat=QwtText.AutoText):\n """\n Change the label's text, keeping all other QwtText attributes\n\n :param text: New text\n :type text: qwt.text.QwtText or str\n :param int textFormat: Format of text\n\n .. seealso::\n\n :py:meth:`text()`\n """\n if isinstance(text, QwtText):\n self.__data.text = text\n else:\n self.__data.text.setText(text, textFormat)\n self.update()\n self.updateGeometry()
\n\n\n
\n[docs]\n def text(self):\n """\n :return: Return the text\n\n .. seealso::\n\n :py:meth:`setText()`\n """\n return self.__data.text
\n\n\n
\n[docs]\n def clear(self):\n """\n Clear the text and all `QwtText` attributes\n """\n self.__data.text = QwtText()\n self.update()\n self.updateGeometry()
\n\n\n
\n[docs]\n def indent(self):\n """\n :return: Label's text indent in pixels\n\n .. seealso::\n\n :py:meth:`setIndent()`\n """\n return self.__data.indent
\n\n\n
\n[docs]\n def setIndent(self, indent):\n """\n Set label's text indent in pixels\n\n :param int indent: Indentation in pixels\n\n .. seealso::\n\n :py:meth:`indent()`\n """\n if indent < 0:\n indent = 0\n self.__data.indent = indent\n self.update()\n self.updateGeometry()
\n\n\n
\n[docs]\n def margin(self):\n """\n :return: Label's text indent in pixels\n\n .. seealso::\n\n :py:meth:`setMargin()`\n """\n return self.__data.margin
\n\n\n
\n[docs]\n def setMargin(self, margin):\n """\n Set label's margin in pixels\n\n :param int margin: Margin in pixels\n\n .. seealso::\n\n :py:meth:`margin()`\n """\n self.__data.margin = margin\n self.update()\n self.updateGeometry()
\n\n\n
\n[docs]\n def sizeHint(self):\n """\n Return a size hint\n """\n return self.minimumSizeHint()
\n\n\n
\n[docs]\n def minimumSizeHint(self):\n """\n Return a minimum size hint\n """\n sz = self.__data.text.textSize(self.font())\n mw = 2 * (self.frameWidth() + self.__data.margin)\n mh = mw\n indent = self.__data.indent\n if indent <= 0:\n indent = self.defaultIndent()\n if indent > 0:\n align = self.__data.text.renderFlags()\n if align & Qt.AlignLeft or align & Qt.AlignRight:\n mw += self.__data.indent\n elif align & Qt.AlignTop or align & Qt.AlignBottom:\n mh += self.__data.indent\n sz += QSizeF(mw, mh)\n return QSize(math.ceil(sz.width()), math.ceil(sz.height()))
\n\n\n
\n[docs]\n def heightForWidth(self, width):\n """\n :param int width: Width\n :return: Preferred height for this widget, given the width.\n """\n renderFlags = self.__data.text.renderFlags()\n indent = self.__data.indent\n if indent <= 0:\n indent = self.defaultIndent()\n width -= 2 * self.frameWidth()\n if renderFlags & Qt.AlignLeft or renderFlags & Qt.AlignRight:\n width -= indent\n height = math.ceil(self.__data.text.heightForWidth(width, self.font()))\n if renderFlags & Qt.AlignTop or renderFlags & Qt.AlignBottom:\n height += indent\n height += 2 * self.frameWidth()\n return height
\n\n\n
\n[docs]\n def paintEvent(self, event):\n painter = QPainter(self)\n if not self.contentsRect().contains(event.rect()):\n painter.save()\n painter.setClipRegion(event.region() & self.frameRect())\n self.drawFrame(painter)\n painter.restore()\n painter.setClipRegion(event.region() & self.contentsRect())\n self.drawContents(painter)
\n\n\n
\n[docs]\n def drawContents(self, painter):\n """\n Redraw the text and focus indicator\n\n :param QPainter painter: Painter\n """\n r = self.textRect()\n if r.isEmpty():\n return\n painter.setFont(self.font())\n painter.setPen(self.palette().color(QPalette.Active, QPalette.Text))\n self.drawText(painter, QRectF(r))\n if self.hasFocus():\n m = 2\n focusRect = self.contentsRect().adjusted(m, m, -m + 1, -m + 1)\n QwtPainter.drawFocusRect(painter, self, focusRect)
\n\n\n
\n[docs]\n def drawText(self, painter, textRect):\n """\n Redraw the text\n\n :param QPainter painter: Painter\n :param QRectF textRect: Text rectangle\n """\n self.__data.text.draw(painter, textRect)
\n\n\n
\n[docs]\n def textRect(self):\n """\n Calculate geometry for the text in widget coordinates\n\n :return: Geometry for the text\n """\n r = self.contentsRect()\n if not r.isEmpty() and self.__data.margin > 0:\n r.setRect(\n r.x() + self.__data.margin,\n r.y() + self.__data.margin,\n r.width() - 2 * self.__data.margin,\n r.height() - 2 * self.__data.margin,\n )\n if not r.isEmpty():\n indent = self.__data.indent\n if indent <= 0:\n indent = self.defaultIndent()\n if indent > 0:\n renderFlags = self.__data.text.renderFlags()\n if renderFlags & Qt.AlignLeft:\n r.setX(r.x() + indent)\n elif renderFlags & Qt.AlignRight:\n r.setWidth(r.width() - indent)\n elif renderFlags & Qt.AlignTop:\n r.setY(r.y() + indent)\n elif renderFlags & Qt.AlignBottom:\n r.setHeight(r.height() - indent)\n return r
\n\n\n def defaultIndent(self):\n if self.frameWidth() <= 0:\n return 0\n if self.__data.text.testPaintAttribute(QwtText.PaintUsingTextFont):\n fnt = self.__data.text.font()\n else:\n fnt = self.font()\n return QFontMetrics(fnt).boundingRect("x").width() / 2
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6b21300>, 'js_tag': .js_tag at 0x7fc7d6b202c0>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/text', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/text', 'current_page_name': '_modules/qwt/text', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f6a340>, 'hasdoc': .hasdoc at 0x7f3d39f689a0>, 'toctree': . at 0x7f3d39f6bc40>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.text', 'body': '

Source code for qwt.text

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nText widgets\n------------\n\nQwtText\n~~~~~~~\n\n.. autoclass:: QwtText\n   :members:\n\nQwtTextLabel\n~~~~~~~~~~~~\n\n.. autoclass:: QwtTextLabel\n   :members:\n\nText engines\n------------\n\nQwtTextEngine\n~~~~~~~~~~~~~\n\n.. autoclass:: QwtTextEngine\n   :members:\n\nQwtPlainTextEngine\n~~~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtPlainTextEngine\n   :members:\n\nQwtRichTextEngine\n~~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtRichTextEngine\n   :members:\n"""\n\nimport math\nimport os\nimport struct\n\nfrom qtpy.QtCore import QObject, QRectF, QSize, QSizeF, Qt\nfrom qtpy.QtGui import (\n    QAbstractTextDocumentLayout,\n    QColor,\n    QFont,\n    QFontInfo,\n    QFontMetrics,\n    QFontMetricsF,\n    QPainter,\n    QPalette,\n    QPixmap,\n    QTextDocument,\n    QTextOption,\n    QTransform,\n)\nfrom qtpy.QtWidgets import QApplication, QFrame, QSizePolicy, QWidget\n\nfrom qwt.painter import QwtPainter\nfrom qwt.qthelpers import qcolor_from_str\n\nQWIDGETSIZE_MAX = (1 << 24) - 1\n\nQT_API = os.environ["QT_API"]\n\n\ndef taggedRichText(text, flags):\n    richText = text\n    if flags & Qt.AlignJustify:\n        richText = '<div align="justify">' + richText + "</div>"\n    elif flags & Qt.AlignRight:\n        richText = '<div align="right">' + richText + "</div>"\n    elif flags & Qt.AlignHCenter:\n        richText = '<div align="center">' + richText + "</div>"\n    return richText\n\n\nclass QwtRichTextDocument(QTextDocument):\n    def __init__(self, text, flags, font):\n        super(QwtRichTextDocument, self).__init__(None)\n        self.setUndoRedoEnabled(False)\n        self.setDefaultFont(font)\n        self.setHtml(text)\n\n        option = self.defaultTextOption()\n        if flags & Qt.TextWordWrap:\n            option.setWrapMode(QTextOption.WordWrap)\n        else:\n            option.setWrapMode(QTextOption.NoWrap)\n\n        option.setAlignment(flags)\n        self.setDefaultTextOption(option)\n\n        root = self.rootFrame()\n        fm = root.frameFormat()\n        fm.setBorder(0)\n        fm.setMargin(0)\n        fm.setPadding(0)\n        fm.setBottomMargin(0)\n        fm.setLeftMargin(0)\n        root.setFrameFormat(fm)\n\n        self.adjustSize()\n\n\n
\n[docs]\nclass QwtTextEngine(object):\n """\n Abstract base class for rendering text strings\n\n A text engine is responsible for rendering texts for a\n specific text format. They are used by `QwtText` to render a text.\n\n `QwtPlainTextEngine` and `QwtRichTextEngine` are part of the\n `PythonQwt` library.\n\n .. seealso::\n\n :py:meth:`qwt.text.QwtText.setTextEngine()`\n """\n\n def __init__(self):\n pass\n\n
\n[docs]\n def heightForWidth(self, font, flags, text, width):\n """\n Find the height for a given width\n\n :param QFont font: Font of the text\n :param int flags: Bitwise OR of the flags used like in QPainter::drawText\n :param str text: Text to be rendered\n :param float width: Width\n :return: Calculated height\n """\n pass
\n\n\n
\n[docs]\n def textSize(self, font, flags, text):\n """\n Returns the size, that is needed to render text\n\n :param QFont font: Font of the text\n :param int flags: Bitwise OR of the flags like in for QPainter::drawText\n :param str text: Text to be rendered\n :return: Calculated size\n """\n pass
\n\n\n
\n[docs]\n def mightRender(self, text):\n """\n Test if a string can be rendered by this text engine\n\n :param str text: Text to be tested\n :return: True, if it can be rendered\n """\n pass
\n\n\n
\n[docs]\n def textMargins(self, font):\n """\n Return margins around the texts\n\n The textSize might include margins around the\n text, like QFontMetrics::descent(). In situations\n where texts need to be aligned in detail, knowing\n these margins might improve the layout calculations.\n\n :param QFont font: Font of the text\n :return: tuple (left, right, top, bottom) representing margins\n """\n pass
\n\n\n
\n[docs]\n def draw(self, painter, rect, flags, text):\n """\n Draw the text in a clipping rectangle\n\n :param QPainter painter: Painter\n :param QRectF rect: Clipping rectangle\n :param int flags: Bitwise OR of the flags like in for QPainter::drawText()\n :param str text: Text to be rendered\n """\n pass
\n
\n\n\n\nASCENTCACHE = {}\n\n\ndef get_screen_resolution():\n """Return screen resolution: tuple of floats (DPIx, DPIy)"""\n try:\n desktop = QApplication.desktop()\n return (desktop.logicalDpiX(), desktop.logicalDpiY())\n except AttributeError:\n screen = QApplication.primaryScreen()\n return (screen.logicalDotsPerInchX(), screen.logicalDotsPerInchY())\n\n\ndef qwtUnscaleFont(painter):\n if painter.font().pixelSize() >= 0:\n return\n dpix, dpiy = get_screen_resolution()\n pd = painter.device()\n if pd.logicalDpiX() != dpix or pd.logicalDpiY() != dpiy:\n try:\n pixelFont = QFont(painter.font(), QApplication.desktop())\n except AttributeError:\n pixelFont = QFont(painter.font())\n pixelFont.setPixelSize(QFontInfo(pixelFont).pixelSize())\n painter.setFont(pixelFont)\n\n\n
\n[docs]\nclass QwtPlainTextEngine(QwtTextEngine):\n """\n A text engine for plain texts\n\n `QwtPlainTextEngine` renders texts using the basic `Qt` classes\n `QPainter` and `QFontMetrics`.\n """\n\n def __init__(self):\n self.qrectf_max = QRectF(0, 0, QWIDGETSIZE_MAX, QWIDGETSIZE_MAX)\n self._fm_cache = {}\n self._fm_cache_f = {}\n\n def fontmetrics(self, font):\n fid = font.toString()\n try:\n return self._fm_cache[fid]\n except KeyError:\n return self._fm_cache.setdefault(fid, QFontMetrics(font))\n\n def fontmetrics_f(self, font):\n fid = font.toString()\n try:\n return self._fm_cache_f[fid]\n except KeyError:\n return self._fm_cache_f.setdefault(fid, QFontMetricsF(font))\n\n
\n[docs]\n def heightForWidth(self, font, flags, text, width):\n """\n Find the height for a given width\n\n :param QFont font: Font of the text\n :param int flags: Bitwise OR of the flags used like in QPainter::drawText\n :param str text: Text to be rendered\n :param float width: Width\n :return: Calculated height\n """\n fm = self.fontmetrics_f(font)\n rect = fm.boundingRect(QRectF(0, 0, width, QWIDGETSIZE_MAX), flags, text)\n return rect.height()
\n\n\n
\n[docs]\n def textSize(self, font, flags, text):\n """\n Returns the size, that is needed to render text\n\n :param QFont font: Font of the text\n :param int flags: Bitwise OR of the flags like in for QPainter::drawText\n :param str text: Text to be rendered\n :return: Calculated size\n """\n fm = self.fontmetrics_f(font)\n rect = fm.boundingRect(self.qrectf_max, flags, text)\n return rect.size()
\n\n\n def effectiveAscent(self, font):\n global ASCENTCACHE\n fontKey = font.key()\n ascent = ASCENTCACHE.get(fontKey)\n if ascent is not None:\n return ascent\n return ASCENTCACHE.setdefault(fontKey, self.findAscent(font))\n\n def findAscent(self, font):\n dummy = "E"\n white = QColor(Qt.white)\n\n fm = self.fontmetrics(font)\n boundingr = fm.boundingRect(dummy)\n pm = QPixmap(boundingr.width(), boundingr.height())\n pm.fill(white)\n\n p = QPainter(pm)\n p.setFont(font)\n p.drawText(0, 0, pm.width(), pm.height(), 0, dummy)\n p.end()\n\n img = pm.toImage()\n\n w = pm.width()\n linebytes = w * 4\n for row in range(img.height()):\n if QT_API.startswith("pyside"):\n line = bytes(img.scanLine(row))\n else:\n line = img.scanLine(row).asstring(linebytes)\n for col in range(w):\n color = struct.unpack("I", line[col * 4 : (col + 1) * 4])[0]\n if color != white.rgb():\n return fm.ascent() - row + 1\n return fm.ascent()\n\n
\n[docs]\n def textMargins(self, font):\n """\n Return margins around the texts\n\n The textSize might include margins around the\n text, like QFontMetrics::descent(). In situations\n where texts need to be aligned in detail, knowing\n these margins might improve the layout calculations.\n\n :param QFont font: Font of the text\n :return: tuple (left, right, top, bottom) representing margins\n """\n left = right = 0\n fm = self.fontmetrics(font)\n top = fm.ascent() - self.effectiveAscent(font)\n bottom = fm.descent()\n return left, right, top, bottom
\n\n\n
\n[docs]\n def draw(self, painter, rect, flags, text):\n """\n Draw the text in a clipping rectangle\n\n :param QPainter painter: Painter\n :param QRectF rect: Clipping rectangle\n :param int flags: Bitwise OR of the flags like in for QPainter::drawText()\n :param str text: Text to be rendered\n """\n painter.save()\n qwtUnscaleFont(painter)\n painter.drawText(rect, flags, text)\n painter.restore()
\n\n\n
\n[docs]\n def mightRender(self, text):\n """\n Test if a string can be rendered by this text engine\n\n :param str text: Text to be tested\n :return: True, if it can be rendered\n """\n return True
\n
\n\n\n\n
\n[docs]\nclass QwtRichTextEngine(QwtTextEngine):\n """\n A text engine for `Qt` rich texts\n\n `QwtRichTextEngine` renders `Qt` rich texts using the classes\n of the Scribe framework of `Qt`.\n """\n\n def __init__(self):\n pass\n\n
\n[docs]\n def heightForWidth(self, font, flags, text, width):\n """\n Find the height for a given width\n\n :param QFont font: Font of the text\n :param int flags: Bitwise OR of the flags used like in QPainter::drawText\n :param str text: Text to be rendered\n :param float width: Width\n :return: Calculated height\n """\n doc = QwtRichTextDocument(text, flags, font)\n doc.setPageSize(QSizeF(width, QWIDGETSIZE_MAX))\n return doc.documentLayout().documentSize().height()
\n\n\n
\n[docs]\n def textSize(self, font, flags, text):\n """\n Returns the size, that is needed to render text\n\n :param QFont font: Font of the text\n :param int flags: Bitwise OR of the flags like in for QPainter::drawText\n :param str text: Text to be rendered\n :return: Calculated size\n """\n doc = QwtRichTextDocument(text, flags, font)\n option = doc.defaultTextOption()\n if option.wrapMode() != QTextOption.NoWrap:\n option.setWrapMode(QTextOption.NoWrap)\n doc.setDefaultTextOption(option)\n doc.adjustSize()\n return doc.size()
\n\n\n
\n[docs]\n def draw(self, painter, rect, flags, text):\n """\n Draw the text in a clipping rectangle\n\n :param QPainter painter: Painter\n :param QRectF rect: Clipping rectangle\n :param int flags: Bitwise OR of the flags like in for QPainter::drawText()\n :param str text: Text to be rendered\n """\n txt = QwtRichTextDocument(text, flags, painter.font())\n painter.save()\n unscaledRect = QRectF(rect)\n if painter.font().pixelSize() < 0:\n dpix, dpiy = get_screen_resolution()\n pd = painter.device()\n if pd.logicalDpiX() != dpix or pd.logicalDpiY() != dpiy:\n transform = QTransform()\n transform.scale(\n dpix / float(pd.logicalDpiX()), dpiy / float(pd.logicalDpiY())\n )\n painter.setWorldTransform(transform, True)\n invtrans, _ok = transform.inverted()\n unscaledRect = invtrans.mapRect(rect)\n txt.setDefaultFont(painter.font())\n txt.setPageSize(QSizeF(unscaledRect.width(), QWIDGETSIZE_MAX))\n layout = txt.documentLayout()\n height = layout.documentSize().height()\n y = unscaledRect.y()\n if flags & Qt.AlignBottom:\n y += unscaledRect.height() - height\n elif flags & Qt.AlignVCenter:\n y += (unscaledRect.height() - height) / 2\n context = QAbstractTextDocumentLayout.PaintContext()\n context.palette.setColor(QPalette.Text, painter.pen().color())\n painter.translate(unscaledRect.x(), y)\n layout.draw(painter, context)\n painter.restore()
\n\n\n def taggedText(self, text, flags):\n return taggedRichText(text, flags)\n\n
\n[docs]\n def mightRender(self, text):\n """\n Test if a string can be rendered by this text engine\n\n :param str text: Text to be tested\n :return: True, if it can be rendered\n """\n try:\n return Qt.mightBeRichText(text)\n except AttributeError:\n return True
\n\n\n
\n[docs]\n def textMargins(self, font):\n """\n Return margins around the texts\n\n The textSize might include margins around the\n text, like QFontMetrics::descent(). In situations\n where texts need to be aligned in detail, knowing\n these margins might improve the layout calculations.\n\n :param QFont font: Font of the text\n :return: tuple (left, right, top, bottom) representing margins\n """\n return 0, 0, 0, 0
\n
\n\n\n\nclass QwtText_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.renderFlags = Qt.AlignCenter\n self.borderRadius = 0\n self.borderPen = Qt.NoPen\n self.backgroundBrush = Qt.NoBrush\n self.paintAttributes = 0\n self.layoutAttributes = 0\n self.textEngine = None\n\n self.text = None\n self.font = None\n self.color = None\n\n\nclass QwtText_LayoutCache(object):\n def __init__(self):\n self.textSize = None\n self.font = None\n\n def invalidate(self):\n self.textSize = None\n\n\n
\n[docs]\nclass QwtText(object):\n """\n A class representing a text\n\n A `QwtText` is a text including a set of attributes how to render it.\n\n - Format:\n\n A text might include control sequences (f.e tags) describing\n how to render it. Each format (f.e MathML, TeX, Qt Rich Text)\n has its own set of control sequences, that can be handles by\n a special `QwtTextEngine` for this format.\n\n - Background:\n\n A text might have a background, defined by a `QPen` and `QBrush`\n to improve its visibility. The corners of the background might\n be rounded.\n\n - Font:\n\n A text might have an individual font.\n\n - Color\n\n A text might have an individual color.\n\n - Render Flags\n\n Flags from `Qt.AlignmentFlag` and `Qt.TextFlag` used like in\n `QPainter.drawText()`.\n\n ..seealso::\n\n :py:meth:`qwt.text.QwtTextEngine`,\n :py:meth:`qwt.text.QwtTextLabel`\n\n Text formats:\n\n * `QwtText.AutoText`:\n\n The text format is determined using `QwtTextEngine.mightRender()` for\n all available text engines in increasing order > PlainText.\n If none of the text engines can render the text is rendered\n like `QwtText.PlainText`.\n\n * `QwtText.PlainText`:\n\n Draw the text as it is, using a QwtPlainTextEngine.\n\n * `QwtText.RichText`:\n\n Use the Scribe framework (Qt Rich Text) to render the text.\n\n * `QwtText.OtherFormat`:\n\n The number of text formats can be extended using `setTextEngine`.\n Formats >= `QwtText.OtherFormat` are not used by Qwt.\n\n Paint attributes:\n\n * `QwtText.PaintUsingTextFont`: The text has an individual font.\n * `QwtText.PaintUsingTextColor`: The text has an individual color.\n * `QwtText.PaintBackground`: The text has an individual background.\n\n Layout attributes:\n\n * `QwtText.MinimumLayout`:\n\n Layout the text without its margins. This mode is useful if a\n text needs to be aligned accurately, like the tick labels of a scale.\n If `QwtTextEngine.textMargins` is not implemented for the format\n of the text, `MinimumLayout` has no effect.\n\n .. py:class:: QwtText([text=None], [textFormat=None], [other=None])\n\n :param str text: Text content\n :param int textFormat: Text format\n :param qwt.text.QwtText other: Object to copy (text and textFormat arguments are ignored)\n """\n\n # enum TextFormat\n AutoText, PlainText, RichText = list(range(3))\n OtherFormat = 100\n\n # enum PaintAttribute\n PaintUsingTextFont = 0x01\n PaintUsingTextColor = 0x02\n PaintBackground = 0x04\n\n # enum LayoutAttribute\n MinimumLayout = 0x01\n\n # Optimization: a single text engine for all QwtText objects\n # (this is not how it's implemented in Qwt6 C++ library)\n __map = {PlainText: QwtPlainTextEngine(), RichText: QwtRichTextEngine()}\n\n def __init__(self, text=None, textFormat=None, other=None):\n if text is None:\n text = ""\n if textFormat is None:\n textFormat = self.AutoText\n if other is not None:\n text = other\n if isinstance(text, QwtText):\n self.__data = text.__data\n self.__layoutCache = text.__layoutCache\n else:\n self.__data = QwtText_PrivateData()\n self.__data.text = text\n self.__data.textEngine = self.textEngine(text, textFormat)\n self.__layoutCache = QwtText_LayoutCache()\n\n
\n[docs]\n @classmethod\n def make(\n cls,\n text=None,\n textformat=None,\n renderflags=None,\n font=None,\n family=None,\n pointsize=None,\n weight=None,\n color=None,\n borderradius=None,\n borderpen=None,\n brush=None,\n ):\n """\n Create and setup a new `QwtText` object (convenience function).\n\n :param str text: Text content\n :param int textformat: Text format\n :param int renderflags: Flags from `Qt.AlignmentFlag` and `Qt.TextFlag`\n :param font: Font\n :type font: QFont or None\n :param family: Font family (default: Helvetica)\n :type family: str or None\n :param pointsize: Font point size (default: 10)\n :type pointsize: int or None\n :param weight: Font weight (default: QFont.Normal)\n :type weight: int or None\n :param color: Pen color\n :type color: QColor or str or None\n :param borderradius: Radius for the corners of the border frame\n :type borderradius: float or None\n :param borderpen: Background pen\n :type borderpen: QPen or None\n :param brush: Background brush\n :type brush: QBrush or None\n\n .. seealso::\n\n :py:meth:`setText()`\n """\n item = cls(text=text, textFormat=textformat)\n if renderflags is not None:\n item.setRenderFlags(renderflags)\n if font is not None:\n item.setFont(font)\n elif family is not None or pointsize is not None or weight is not None:\n family = "Helvetica" if family is None else family\n pointsize = 10 if pointsize is None else pointsize\n weight = QFont.Normal if weight is None else weight\n item.setFont(QFont(family, pointsize, weight))\n if color is not None:\n item.setColor(qcolor_from_str(color, Qt.black))\n if borderradius is not None:\n item.setBorderRadius(borderradius)\n if borderpen is not None:\n item.setBorderPen(borderpen)\n if brush is not None:\n item.setBackgroundBrush(brush)\n return item
\n\n\n def __eq__(self, other):\n return (\n self.__data.renderFlags == other.__data.renderFlags\n and self.__data.text == other.__data.text\n and self.__data.font == other.__data.font\n and self.__data.color == other.__data.color\n and self.__data.borderRadius == other.__data.borderRadius\n and self.__data.borderPen == other.__data.borderPen\n and self.__data.backgroundBrush == other.__data.backgroundBrush\n and self.__data.paintAttributes == other.__data.paintAttributes\n and self.__data.textEngine == other.__data.textEngine\n )\n\n def __ne__(self, other):\n return not self.__eq__(other)\n\n
\n[docs]\n def isEmpty(self):\n """\n :return: True if text is empty\n """\n return len(self.text()) == 0
\n\n\n
\n[docs]\n def setText(self, text, textFormat=None):\n """\n Assign a new text content\n\n :param str text: Text content\n :param int textFormat: Text format\n\n .. seealso::\n\n :py:meth:`text()`\n """\n if textFormat is None:\n textFormat = self.AutoText\n self.__data.text = text\n self.__data.textEngine = self.textEngine(text, textFormat)\n self.__layoutCache.invalidate()
\n\n\n
\n[docs]\n def text(self):\n """\n :return: Text content\n\n .. seealso::\n\n :py:meth:`setText()`\n """\n return self.__data.text
\n\n\n
\n[docs]\n def setRenderFlags(self, renderFlags):\n """\n Change the render flags\n\n The default setting is `Qt.AlignCenter`\n\n :param int renderFlags: Bitwise OR of the flags used like in `QPainter.drawText()`\n\n .. seealso::\n\n :py:meth:`renderFlags()`,\n :py:meth:`qwt.text.QwtTextEngine.draw()`\n """\n renderFlags = Qt.AlignmentFlag(renderFlags)\n if renderFlags != self.__data.renderFlags:\n self.__data.renderFlags = renderFlags\n self.__layoutCache.invalidate()
\n\n\n
\n[docs]\n def renderFlags(self):\n """\n :return: Render flags\n\n .. seealso::\n\n :py:meth:`setRenderFlags()`\n """\n return self.__data.renderFlags
\n\n\n
\n[docs]\n def setFont(self, font):\n """\n Set the font.\n\n :param QFont font: Font\n\n .. note::\n\n Setting the font might have no effect, when\n the text contains control sequences for setting fonts.\n\n .. seealso::\n\n :py:meth:`font()`, :py:meth:`usedFont()`\n """\n self.__data.font = font\n self.setPaintAttribute(self.PaintUsingTextFont)
\n\n\n
\n[docs]\n def font(self):\n """\n :return: Return the font\n\n .. seealso::\n\n :py:meth:`setFont()`, :py:meth:`usedFont()`\n """\n return self.__data.font
\n\n\n
\n[docs]\n def usedFont(self, defaultFont):\n """\n Return the font of the text, if it has one.\n Otherwise return defaultFont.\n\n :param QFont defaultFont: Default font\n :return: Font used for drawing the text\n\n .. seealso::\n\n :py:meth:`setFont()`, :py:meth:`font()`\n """\n if self.__data.paintAttributes & self.PaintUsingTextFont:\n return self.__data.font\n return defaultFont
\n\n\n
\n[docs]\n def setColor(self, color):\n """\n Set the pen color used for drawing the text.\n\n :param QColor color: Color\n\n .. note::\n\n Setting the color might have no effect, when\n the text contains control sequences for setting colors.\n\n .. seealso::\n\n :py:meth:`color()`, :py:meth:`usedColor()`\n """\n self.__data.color = QColor(color)\n self.setPaintAttribute(self.PaintUsingTextColor)
\n\n\n
\n[docs]\n def color(self):\n """\n :return: Return the pen color, used for painting the text\n\n .. seealso::\n\n :py:meth:`setColor()`, :py:meth:`usedColor()`\n """\n return self.__data.color
\n\n\n
\n[docs]\n def usedColor(self, defaultColor):\n """\n Return the color of the text, if it has one.\n Otherwise return defaultColor.\n\n :param QColor defaultColor: Default color\n :return: Color used for drawing the text\n\n .. seealso::\n\n :py:meth:`setColor()`, :py:meth:`color()`\n """\n if self.__data.paintAttributes & self.PaintUsingTextColor:\n return self.__data.color\n return defaultColor
\n\n\n
\n[docs]\n def setBorderRadius(self, radius):\n """\n Set the radius for the corners of the border frame\n\n :param float radius: Radius of a rounded corner\n\n .. seealso::\n\n :py:meth:`borderRadius()`, :py:meth:`setBorderPen()`,\n :py:meth:`setBackgroundBrush()`\n """\n self.__data.borderRadius = max([0.0, radius])
\n\n\n
\n[docs]\n def borderRadius(self):\n """\n :return: Radius for the corners of the border frame\n\n .. seealso::\n\n :py:meth:`setBorderRadius()`, :py:meth:`borderPen()`,\n :py:meth:`backgroundBrush()`\n """\n return self.__data.borderRadius
\n\n\n
\n[docs]\n def setBorderPen(self, pen):\n """\n Set the background pen\n\n :param QPen pen: Background pen\n\n .. seealso::\n\n :py:meth:`borderPen()`, :py:meth:`setBackgroundBrush()`\n """\n self.__data.borderPen = pen\n self.setPaintAttribute(self.PaintBackground)
\n\n\n
\n[docs]\n def borderPen(self):\n """\n :return: Background pen\n\n .. seealso::\n\n :py:meth:`setBorderPen()`, :py:meth:`backgroundBrush()`\n """\n return self.__data.borderPen
\n\n\n
\n[docs]\n def setBackgroundBrush(self, brush):\n """\n Set the background brush\n\n :param QBrush brush: Background brush\n\n .. seealso::\n\n :py:meth:`backgroundBrush()`, :py:meth:`setBorderPen()`\n """\n self.__data.backgroundBrush = brush\n self.setPaintAttribute(self.PaintBackground)
\n\n\n
\n[docs]\n def backgroundBrush(self):\n """\n :return: Background brush\n\n .. seealso::\n\n :py:meth:`setBackgroundBrush()`, :py:meth:`borderPen()`\n """\n return self.__data.backgroundBrush
\n\n\n
\n[docs]\n def setPaintAttribute(self, attribute, on=True):\n """\n Change a paint attribute\n\n :param int attribute: Paint attribute\n :param bool on: On/Off\n\n .. note::\n\n Used by `setFont()`, `setColor()`, `setBorderPen()`\n and `setBackgroundBrush()`\n\n .. seealso::\n\n :py:meth:`testPaintAttribute()`\n """\n if on:\n self.__data.paintAttributes |= attribute\n else:\n self.__data.paintAttributes &= ~attribute
\n\n\n
\n[docs]\n def testPaintAttribute(self, attribute):\n """\n Test a paint attribute\n\n :param int attribute: Paint attribute\n :return: True, if attribute is enabled\n\n .. seealso::\n\n :py:meth:`setPaintAttribute()`\n """\n return self.__data.paintAttributes & attribute
\n\n\n
\n[docs]\n def setLayoutAttribute(self, attribute, on=True):\n """\n Change a layout attribute\n\n :param int attribute: Layout attribute\n :param bool on: On/Off\n\n .. seealso::\n\n :py:meth:`testLayoutAttribute()`\n """\n if on:\n self.__data.layoutAttributes |= attribute\n else:\n self.__data.layoutAttributes &= ~attribute
\n\n\n
\n[docs]\n def testLayoutAttribute(self, attribute):\n """\n Test a layout attribute\n\n :param int attribute: Layout attribute\n :return: True, if attribute is enabled\n\n .. seealso::\n\n :py:meth:`setLayoutAttribute()`\n """\n return self.__data.layoutAttributes & attribute
\n\n\n
\n[docs]\n def heightForWidth(self, width, defaultFont=None):\n """\n Find the height for a given width\n\n :param float width: Width\n :param QFont defaultFont: Font, used for the calculation if the text has no font\n :return: Calculated height\n """\n if defaultFont is None:\n defaultFont = QFont()\n font = QFont(self.usedFont(defaultFont))\n h = 0\n if self.__data.layoutAttributes & self.MinimumLayout:\n (left, right, top, bottom) = self.__data.textEngine.textMargins(font)\n h = self.__data.textEngine.heightForWidth(\n font, self.__data.renderFlags, self.__data.text, width + left + right\n )\n h -= top + bottom\n else:\n h = self.__data.textEngine.heightForWidth(\n font, self.__data.renderFlags, self.__data.text, width\n )\n return h
\n\n\n
\n[docs]\n def textSize(self, defaultFont):\n """\n Returns the size, that is needed to render text\n\n :param QFont defaultFont Font, used for the calculation if the text has no font\n :return: Caluclated size\n """\n font = QFont(self.usedFont(defaultFont))\n if (\n self.__layoutCache.textSize is None\n or not self.__layoutCache.textSize.isValid()\n or self.__layoutCache.font is not font\n ):\n self.__layoutCache.textSize = self.__data.textEngine.textSize(\n font, self.__data.renderFlags, self.__data.text\n )\n self.__layoutCache.font = font\n sz = self.__layoutCache.textSize\n if self.__data.layoutAttributes & self.MinimumLayout:\n (left, right, top, bottom) = self.__data.textEngine.textMargins(font)\n sz -= QSizeF(left + right, top + bottom)\n return sz
\n\n\n
\n[docs]\n def draw(self, painter, rect):\n """\n Draw a text into a rectangle\n\n :param QPainter painter: Painter\n :param QRectF rect: Rectangle\n """\n if self.__data.paintAttributes & self.PaintBackground:\n if (\n self.__data.borderPen != Qt.NoPen\n or self.__data.backgroundBrush != Qt.NoBrush\n ):\n painter.save()\n painter.setPen(self.__data.borderPen)\n painter.setBrush(self.__data.backgroundBrush)\n if self.__data.borderRadius == 0:\n painter.drawRect(rect)\n else:\n painter.setRenderHint(QPainter.Antialiasing, True)\n painter.drawRoundedRect(\n rect, self.__data.borderRadius, self.__data.borderRadius\n )\n painter.restore()\n painter.save()\n if self.__data.paintAttributes & self.PaintUsingTextFont:\n painter.setFont(self.__data.font)\n if self.__data.paintAttributes & self.PaintUsingTextColor:\n if self.__data.color.isValid():\n painter.setPen(self.__data.color)\n expandedRect = rect\n if self.__data.layoutAttributes & self.MinimumLayout:\n font = QFont(painter.font())\n (left, right, top, bottom) = self.__data.textEngine.textMargins(font)\n expandedRect.setTop(rect.top() - top)\n expandedRect.setBottom(rect.bottom() + bottom)\n expandedRect.setLeft(rect.left() - left)\n expandedRect.setRight(rect.right() + right)\n self.__data.textEngine.draw(\n painter, expandedRect, self.__data.renderFlags, self.__data.text\n )\n painter.restore()
\n\n\n
\n[docs]\n def textEngine(self, text=None, format_=None):\n """\n Find the text engine for a text format\n\n In case of `QwtText.AutoText` the first text engine\n (beside `QwtPlainTextEngine`) is returned, where\n `QwtTextEngine.mightRender` returns true.\n If there is none `QwtPlainTextEngine` is returned.\n\n If no text engine is registered for the format `QwtPlainTextEngine`\n is returned.\n\n :param str text: Text, needed in case of AutoText\n :param int format: Text format\n :return: Corresponding text engine\n """\n if text is None:\n return self.__map.get(format_)\n elif format_ is not None:\n if format_ == QwtText.AutoText:\n for key, engine in list(self.__map.items()):\n if key != QwtText.PlainText:\n if engine and engine.mightRender(text):\n return engine\n engine = self.__map.get(format_)\n if engine is not None:\n return engine\n return self.__map[QwtText.PlainText]\n else:\n raise TypeError(\n "%s().textEngine() takes 1 or 2 argument(s) (none"\n " given)" % self.__class__.__name__\n )
\n\n\n
\n[docs]\n def setTextEngine(self, format_, engine):\n """\n Assign/Replace a text engine for a text format\n\n With setTextEngine it is possible to extend `PythonQwt` with\n other types of text formats.\n\n For `QwtText.PlainText` it is not allowed to assign a engine to None.\n\n :param int format_: Text format\n :param qwt.text.QwtTextEngine engine: Text engine\n\n .. seealso::\n\n :py:meth:`setPaintAttribute()`\n\n .. warning::\n\n Using `QwtText.AutoText` does nothing.\n """\n if format_ == QwtText.AutoText:\n return\n if format_ == QwtText.PlainText and engine is None:\n return\n self.__map.setdefault(format_, engine)
\n
\n\n\n\nclass QwtTextLabel_PrivateData(QObject):\n def __init__(self):\n QObject.__init__(self)\n\n self.indent = 4\n self.margin = 0\n self.text = QwtText()\n\n\n
\n[docs]\nclass QwtTextLabel(QFrame):\n """\n A Widget which displays a QwtText\n\n .. py:class:: QwtTextLabel(parent)\n\n :param QWidget parent: Parent widget\n\n .. py:class:: QwtTextLabel([text=None], [parent=None])\n :noindex:\n\n :param str text: Text\n :param QWidget parent: Parent widget\n """\n\n def __init__(self, *args):\n if len(args) == 0:\n text, parent = None, None\n elif len(args) == 1:\n if isinstance(args[0], QWidget):\n text = None\n (parent,) = args\n else:\n parent = None\n (text,) = args\n elif len(args) == 2:\n text, parent = args\n else:\n raise TypeError(\n "%s() takes 0, 1 or 2 argument(s) (%s given)"\n % (self.__class__.__name__, len(args))\n )\n super(QwtTextLabel, self).__init__(parent)\n self.init()\n if text is not None:\n self.__data.text = text\n\n def init(self):\n self.__data = QwtTextLabel_PrivateData()\n self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)\n\n
\n[docs]\n def setPlainText(self, text):\n """\n Interface for the designer plugin - does the same as setText()\n\n :param str text: Text\n\n .. seealso::\n\n :py:meth:`plainText()`\n """\n self.setText(QwtText(text))
\n\n\n
\n[docs]\n def plainText(self):\n """\n Interface for the designer plugin\n\n :return: Text as plain text\n\n .. seealso::\n\n :py:meth:`setPlainText()`\n """\n return self.__data.text.text()
\n\n\n
\n[docs]\n def setText(self, text, textFormat=QwtText.AutoText):\n """\n Change the label's text, keeping all other QwtText attributes\n\n :param text: New text\n :type text: qwt.text.QwtText or str\n :param int textFormat: Format of text\n\n .. seealso::\n\n :py:meth:`text()`\n """\n if isinstance(text, QwtText):\n self.__data.text = text\n else:\n self.__data.text.setText(text, textFormat)\n self.update()\n self.updateGeometry()
\n\n\n
\n[docs]\n def text(self):\n """\n :return: Return the text\n\n .. seealso::\n\n :py:meth:`setText()`\n """\n return self.__data.text
\n\n\n
\n[docs]\n def clear(self):\n """\n Clear the text and all `QwtText` attributes\n """\n self.__data.text = QwtText()\n self.update()\n self.updateGeometry()
\n\n\n
\n[docs]\n def indent(self):\n """\n :return: Label's text indent in pixels\n\n .. seealso::\n\n :py:meth:`setIndent()`\n """\n return self.__data.indent
\n\n\n
\n[docs]\n def setIndent(self, indent):\n """\n Set label's text indent in pixels\n\n :param int indent: Indentation in pixels\n\n .. seealso::\n\n :py:meth:`indent()`\n """\n if indent < 0:\n indent = 0\n self.__data.indent = indent\n self.update()\n self.updateGeometry()
\n\n\n
\n[docs]\n def margin(self):\n """\n :return: Label's text indent in pixels\n\n .. seealso::\n\n :py:meth:`setMargin()`\n """\n return self.__data.margin
\n\n\n
\n[docs]\n def setMargin(self, margin):\n """\n Set label's margin in pixels\n\n :param int margin: Margin in pixels\n\n .. seealso::\n\n :py:meth:`margin()`\n """\n self.__data.margin = margin\n self.update()\n self.updateGeometry()
\n\n\n
\n[docs]\n def sizeHint(self):\n """\n Return a size hint\n """\n return self.minimumSizeHint()
\n\n\n
\n[docs]\n def minimumSizeHint(self):\n """\n Return a minimum size hint\n """\n sz = self.__data.text.textSize(self.font())\n mw = 2 * (self.frameWidth() + self.__data.margin)\n mh = mw\n indent = self.__data.indent\n if indent <= 0:\n indent = self.defaultIndent()\n if indent > 0:\n align = self.__data.text.renderFlags()\n if align & Qt.AlignLeft or align & Qt.AlignRight:\n mw += self.__data.indent\n elif align & Qt.AlignTop or align & Qt.AlignBottom:\n mh += self.__data.indent\n sz += QSizeF(mw, mh)\n return QSize(math.ceil(sz.width()), math.ceil(sz.height()))
\n\n\n
\n[docs]\n def heightForWidth(self, width):\n """\n :param int width: Width\n :return: Preferred height for this widget, given the width.\n """\n renderFlags = self.__data.text.renderFlags()\n indent = self.__data.indent\n if indent <= 0:\n indent = self.defaultIndent()\n width -= 2 * self.frameWidth()\n if renderFlags & Qt.AlignLeft or renderFlags & Qt.AlignRight:\n width -= indent\n height = math.ceil(self.__data.text.heightForWidth(width, self.font()))\n if renderFlags & Qt.AlignTop or renderFlags & Qt.AlignBottom:\n height += indent\n height += 2 * self.frameWidth()\n return height
\n\n\n
\n[docs]\n def paintEvent(self, event):\n painter = QPainter(self)\n if not self.contentsRect().contains(event.rect()):\n painter.save()\n painter.setClipRegion(event.region() & self.frameRect())\n self.drawFrame(painter)\n painter.restore()\n painter.setClipRegion(event.region() & self.contentsRect())\n self.drawContents(painter)
\n\n\n
\n[docs]\n def drawContents(self, painter):\n """\n Redraw the text and focus indicator\n\n :param QPainter painter: Painter\n """\n r = self.textRect()\n if r.isEmpty():\n return\n painter.setFont(self.font())\n painter.setPen(self.palette().color(QPalette.Active, QPalette.Text))\n self.drawText(painter, QRectF(r))\n if self.hasFocus():\n m = 2\n focusRect = self.contentsRect().adjusted(m, m, -m + 1, -m + 1)\n QwtPainter.drawFocusRect(painter, self, focusRect)
\n\n\n
\n[docs]\n def drawText(self, painter, textRect):\n """\n Redraw the text\n\n :param QPainter painter: Painter\n :param QRectF textRect: Text rectangle\n """\n self.__data.text.draw(painter, textRect)
\n\n\n
\n[docs]\n def textRect(self):\n """\n Calculate geometry for the text in widget coordinates\n\n :return: Geometry for the text\n """\n r = self.contentsRect()\n if not r.isEmpty() and self.__data.margin > 0:\n r.setRect(\n r.x() + self.__data.margin,\n r.y() + self.__data.margin,\n r.width() - 2 * self.__data.margin,\n r.height() - 2 * self.__data.margin,\n )\n if not r.isEmpty():\n indent = self.__data.indent\n if indent <= 0:\n indent = self.defaultIndent()\n if indent > 0:\n renderFlags = self.__data.text.renderFlags()\n if renderFlags & Qt.AlignLeft:\n r.setX(r.x() + indent)\n elif renderFlags & Qt.AlignRight:\n r.setWidth(r.width() - indent)\n elif renderFlags & Qt.AlignTop:\n r.setY(r.y() + indent)\n elif renderFlags & Qt.AlignBottom:\n r.setHeight(r.height() - indent)\n return r
\n\n\n def defaultIndent(self):\n if self.frameWidth() <= 0:\n return 0\n if self.__data.text.testPaintAttribute(QwtText.PaintUsingTextFont):\n fnt = self.__data.text.font()\n else:\n fnt = self.font()\n return QFontMetrics(fnt).boundingRect("x").width() / 2
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39f69300>, 'js_tag': .js_tag at 0x7f3d39f682c0>}, None) highlighting module code... [ 96%] qwt.toqimage [app] emitting event: 'viewcode-find-source'('qwt.toqimage',) -[app] emitting event: 'html-page-context'('_modules/qwt/toqimage', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/toqimage', 'current_page_name': '_modules/qwt/toqimage', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6891260>, 'hasdoc': .hasdoc at 0x7fc7d6b23b00>, 'toctree': . at 0x7fc7d6b20680>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.toqimage', 'body': '

Source code for qwt.toqimage

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the MIT License\n# (see LICENSE file for more details)\n\n"""\nNumPy array to QImage\n---------------------\n\n.. autofunction:: array_to_qimage\n"""\n\nimport numpy as np\nfrom qtpy.QtGui import QImage\n\n\n
\n[docs]\ndef array_to_qimage(arr, copy=False):\n """\n Convert NumPy array to QImage object\n\n :param numpy.array arr: NumPy array\n :param bool copy: if True, make a copy of the array\n :return: QImage object\n """\n # https://gist.githubusercontent.com/smex/5287589/raw/toQImage.py\n if arr is None:\n return QImage()\n if len(arr.shape) not in (2, 3):\n raise NotImplementedError("Unsupported array shape %r" % arr.shape)\n data = arr.data\n ny, nx = arr.shape[:2]\n stride = arr.strides[0] # bytes per line\n color_dim = None\n if len(arr.shape) == 3:\n color_dim = arr.shape[2]\n if arr.dtype == np.uint8:\n if color_dim is None:\n qimage = QImage(data, nx, ny, stride, QImage.Format_Indexed8)\n # qimage.setColorTable([qRgb(i, i, i) for i in range(256)])\n qimage.setColorCount(256)\n elif color_dim == 3:\n qimage = QImage(data, nx, ny, stride, QImage.Format_RGB888)\n elif color_dim == 4:\n qimage = QImage(data, nx, ny, stride, QImage.Format_ARGB32)\n else:\n raise TypeError("Invalid third axis dimension (%r)" % color_dim)\n elif arr.dtype == np.uint32:\n qimage = QImage(data, nx, ny, stride, QImage.Format_ARGB32)\n else:\n raise NotImplementedError("Unsupported array data type %r" % arr.dtype)\n if copy:\n return qimage.copy()\n return qimage
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6b214e0>, 'js_tag': .js_tag at 0x7fc7d6b23ec0>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/toqimage', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/toqimage', 'current_page_name': '_modules/qwt/toqimage', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39ca1260>, 'hasdoc': .hasdoc at 0x7f3d39f6bb00>, 'toctree': . at 0x7f3d39f68680>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.toqimage', 'body': '

Source code for qwt.toqimage

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the MIT License\n# (see LICENSE file for more details)\n\n"""\nNumPy array to QImage\n---------------------\n\n.. autofunction:: array_to_qimage\n"""\n\nimport numpy as np\nfrom qtpy.QtGui import QImage\n\n\n
\n[docs]\ndef array_to_qimage(arr, copy=False):\n """\n Convert NumPy array to QImage object\n\n :param numpy.array arr: NumPy array\n :param bool copy: if True, make a copy of the array\n :return: QImage object\n """\n # https://gist.githubusercontent.com/smex/5287589/raw/toQImage.py\n if arr is None:\n return QImage()\n if len(arr.shape) not in (2, 3):\n raise NotImplementedError("Unsupported array shape %r" % arr.shape)\n data = arr.data\n ny, nx = arr.shape[:2]\n stride = arr.strides[0] # bytes per line\n color_dim = None\n if len(arr.shape) == 3:\n color_dim = arr.shape[2]\n if arr.dtype == np.uint8:\n if color_dim is None:\n qimage = QImage(data, nx, ny, stride, QImage.Format_Indexed8)\n # qimage.setColorTable([qRgb(i, i, i) for i in range(256)])\n qimage.setColorCount(256)\n elif color_dim == 3:\n qimage = QImage(data, nx, ny, stride, QImage.Format_RGB888)\n elif color_dim == 4:\n qimage = QImage(data, nx, ny, stride, QImage.Format_ARGB32)\n else:\n raise TypeError("Invalid third axis dimension (%r)" % color_dim)\n elif arr.dtype == np.uint32:\n qimage = QImage(data, nx, ny, stride, QImage.Format_ARGB32)\n else:\n raise NotImplementedError("Unsupported array data type %r" % arr.dtype)\n if copy:\n return qimage.copy()\n return qimage
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39f694e0>, 'js_tag': .js_tag at 0x7f3d39f6bec0>}, None) highlighting module code... [100%] qwt.transform [app] emitting event: 'viewcode-find-source'('qwt.transform',) -[app] emitting event: 'html-page-context'('_modules/qwt/transform', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/transform', 'current_page_name': '_modules/qwt/transform', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b23420>, 'hasdoc': .hasdoc at 0x7fc7d6b223e0>, 'toctree': . at 0x7fc7d6b23d80>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.transform', 'body': '

Source code for qwt.transform

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nCoordinate tranformations\n-------------------------\n\nQwtTransform\n~~~~~~~~~~~~\n\n.. autoclass:: QwtTransform\n   :members:\n\nQwtNullTransform\n~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtNullTransform\n   :members:\n\nQwtLogTransform\n~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtLogTransform\n   :members:\n\nQwtPowerTransform\n~~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtPowerTransform\n   :members:\n"""\n\nimport numpy as np\n\n\n
\n[docs]\nclass QwtTransform(object):\n """\n A transformation between coordinate systems\n\n QwtTransform manipulates values, when being mapped between\n the scale and the paint device coordinate system.\n\n A transformation consists of 2 methods:\n\n - transform\n - invTransform\n\n where one is is the inverse function of the other.\n\n When p1, p2 are the boundaries of the paint device coordinates\n and s1, s2 the boundaries of the scale, QwtScaleMap uses the\n following calculations::\n\n p = p1 + (p2 - p1) * ( T(s) - T(s1) / (T(s2) - T(s1)) )\n s = invT( T(s1) + ( T(s2) - T(s1) ) * (p - p1) / (p2 - p1) )\n """\n\n def __init__(self):\n pass\n\n
\n[docs]\n def bounded(self, value):\n """\n Modify value to be a valid value for the transformation.\n The default implementation does nothing.\n """\n return value
\n\n\n
\n[docs]\n def transform(self, value):\n """\n Transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`invTransform()`\n """\n raise NotImplementedError
\n\n\n
\n[docs]\n def invTransform(self, value):\n """\n Inverse transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`transform()`\n """\n raise NotImplementedError
\n\n\n
\n[docs]\n def copy(self):\n """\n :return: Clone of the transformation\n\n The default implementation does nothing.\n """\n raise NotImplementedError
\n
\n\n\n\n
\n[docs]\nclass QwtNullTransform(QwtTransform):\n
\n[docs]\n def transform(self, value):\n """\n Transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`invTransform()`\n """\n return value
\n\n\n
\n[docs]\n def invTransform(self, value):\n """\n Inverse transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`transform()`\n """\n return value
\n\n\n
\n[docs]\n def copy(self):\n """\n :return: Clone of the transformation\n """\n return QwtNullTransform()
\n
\n\n\n\n
\n[docs]\nclass QwtLogTransform(QwtTransform):\n """\n Logarithmic transformation\n\n `QwtLogTransform` modifies the values using `numpy.log()` and\n `numpy.exp()`.\n\n .. note::\n\n In the calculations of `QwtScaleMap` the base of the log function\n has no effect on the mapping. So `QwtLogTransform` can be used\n for logarithmic scale in base 2 or base 10 or any other base.\n\n Extremum values:\n\n * `QwtLogTransform.LogMin`: Smallest allowed value for logarithmic\n scales: 1.0e-150\n * `QwtLogTransform.LogMax`: Largest allowed value for logarithmic\n scales: 1.0e150\n """\n\n LogMin = 1.0e-150\n LogMax = 1.0e150\n\n
\n[docs]\n def bounded(self, value):\n """\n Modify value to be a valid value for the transformation.\n\n :param float value: Value to be bounded\n :return: Value modified\n """\n return np.clip(value, self.LogMin, self.LogMax)
\n\n\n
\n[docs]\n def transform(self, value):\n """\n Transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`invTransform()`\n """\n return np.log(self.bounded(value))
\n\n\n
\n[docs]\n def invTransform(self, value):\n """\n Inverse transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`transform()`\n """\n return np.exp(value)
\n\n\n
\n[docs]\n def copy(self):\n """\n :return: Clone of the transformation\n """\n return QwtLogTransform()
\n
\n\n\n\n
\n[docs]\nclass QwtPowerTransform(QwtTransform):\n """\n A transformation using `numpy.pow()`\n\n `QwtPowerTransform` preserves the sign of a value.\n F.e. a transformation with a factor of 2\n transforms a value of -3 to -9 and v.v. Thus `QwtPowerTransform`\n can be used for scales including negative values.\n """\n\n def __init__(self, exponent):\n self.__exponent = exponent\n super(QwtPowerTransform, self).__init__()\n\n
\n[docs]\n def transform(self, value):\n """\n Transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`invTransform()`\n """\n if value < 0.0:\n return -np.pow(-value, 1.0 / self.__exponent)\n else:\n return np.pow(value, 1.0 / self.__exponent)
\n\n\n
\n[docs]\n def invTransform(self, value):\n """\n Inverse transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`transform()`\n """\n if value < 0.0:\n return -np.pow(-value, self.__exponent)\n else:\n return np.pow(value, self.__exponent)
\n\n\n
\n[docs]\n def copy(self):\n """\n :return: Clone of the transformation\n """\n return QwtPowerTransform(self.__exponent)
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7fc7d6b23600>, 'js_tag': .js_tag at 0x7fc7d6b232e0>}, None) +[app] emitting event: 'html-page-context'('_modules/qwt/transform', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [{'link': '../index.html', 'title': 'Module code'}], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/qwt/transform', 'current_page_name': '_modules/qwt/transform', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f6b420>, 'hasdoc': .hasdoc at 0x7f3d39f6a3e0>, 'toctree': . at 0x7f3d39f6bd80>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'qwt.transform', 'body': '

Source code for qwt.transform

\n# -*- coding: utf-8 -*-\n#\n# Licensed under the terms of the Qwt License\n# Copyright (c) 2002 Uwe Rathmann, for the original C++ code\n# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization\n# (see LICENSE file for more details)\n\n"""\nCoordinate tranformations\n-------------------------\n\nQwtTransform\n~~~~~~~~~~~~\n\n.. autoclass:: QwtTransform\n   :members:\n\nQwtNullTransform\n~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtNullTransform\n   :members:\n\nQwtLogTransform\n~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtLogTransform\n   :members:\n\nQwtPowerTransform\n~~~~~~~~~~~~~~~~~\n\n.. autoclass:: QwtPowerTransform\n   :members:\n"""\n\nimport numpy as np\n\n\n
\n[docs]\nclass QwtTransform(object):\n """\n A transformation between coordinate systems\n\n QwtTransform manipulates values, when being mapped between\n the scale and the paint device coordinate system.\n\n A transformation consists of 2 methods:\n\n - transform\n - invTransform\n\n where one is is the inverse function of the other.\n\n When p1, p2 are the boundaries of the paint device coordinates\n and s1, s2 the boundaries of the scale, QwtScaleMap uses the\n following calculations::\n\n p = p1 + (p2 - p1) * ( T(s) - T(s1) / (T(s2) - T(s1)) )\n s = invT( T(s1) + ( T(s2) - T(s1) ) * (p - p1) / (p2 - p1) )\n """\n\n def __init__(self):\n pass\n\n
\n[docs]\n def bounded(self, value):\n """\n Modify value to be a valid value for the transformation.\n The default implementation does nothing.\n """\n return value
\n\n\n
\n[docs]\n def transform(self, value):\n """\n Transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`invTransform()`\n """\n raise NotImplementedError
\n\n\n
\n[docs]\n def invTransform(self, value):\n """\n Inverse transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`transform()`\n """\n raise NotImplementedError
\n\n\n
\n[docs]\n def copy(self):\n """\n :return: Clone of the transformation\n\n The default implementation does nothing.\n """\n raise NotImplementedError
\n
\n\n\n\n
\n[docs]\nclass QwtNullTransform(QwtTransform):\n
\n[docs]\n def transform(self, value):\n """\n Transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`invTransform()`\n """\n return value
\n\n\n
\n[docs]\n def invTransform(self, value):\n """\n Inverse transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`transform()`\n """\n return value
\n\n\n
\n[docs]\n def copy(self):\n """\n :return: Clone of the transformation\n """\n return QwtNullTransform()
\n
\n\n\n\n
\n[docs]\nclass QwtLogTransform(QwtTransform):\n """\n Logarithmic transformation\n\n `QwtLogTransform` modifies the values using `numpy.log()` and\n `numpy.exp()`.\n\n .. note::\n\n In the calculations of `QwtScaleMap` the base of the log function\n has no effect on the mapping. So `QwtLogTransform` can be used\n for logarithmic scale in base 2 or base 10 or any other base.\n\n Extremum values:\n\n * `QwtLogTransform.LogMin`: Smallest allowed value for logarithmic\n scales: 1.0e-150\n * `QwtLogTransform.LogMax`: Largest allowed value for logarithmic\n scales: 1.0e150\n """\n\n LogMin = 1.0e-150\n LogMax = 1.0e150\n\n
\n[docs]\n def bounded(self, value):\n """\n Modify value to be a valid value for the transformation.\n\n :param float value: Value to be bounded\n :return: Value modified\n """\n return np.clip(value, self.LogMin, self.LogMax)
\n\n\n
\n[docs]\n def transform(self, value):\n """\n Transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`invTransform()`\n """\n return np.log(self.bounded(value))
\n\n\n
\n[docs]\n def invTransform(self, value):\n """\n Inverse transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`transform()`\n """\n return np.exp(value)
\n\n\n
\n[docs]\n def copy(self):\n """\n :return: Clone of the transformation\n """\n return QwtLogTransform()
\n
\n\n\n\n
\n[docs]\nclass QwtPowerTransform(QwtTransform):\n """\n A transformation using `numpy.pow()`\n\n `QwtPowerTransform` preserves the sign of a value.\n F.e. a transformation with a factor of 2\n transforms a value of -3 to -9 and v.v. Thus `QwtPowerTransform`\n can be used for scales including negative values.\n """\n\n def __init__(self, exponent):\n self.__exponent = exponent\n super(QwtPowerTransform, self).__init__()\n\n
\n[docs]\n def transform(self, value):\n """\n Transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`invTransform()`\n """\n if value < 0.0:\n return -np.pow(-value, 1.0 / self.__exponent)\n else:\n return np.pow(value, 1.0 / self.__exponent)
\n\n\n
\n[docs]\n def invTransform(self, value):\n """\n Inverse transformation function\n\n :param float value: Value\n :return: Modified value\n\n .. seealso::\n\n :py:meth:`transform()`\n """\n if value < 0.0:\n return -np.pow(-value, self.__exponent)\n else:\n return np.pow(value, self.__exponent)
\n\n\n
\n[docs]\n def copy(self):\n """\n :return: Clone of the transformation\n """\n return QwtPowerTransform(self.__exponent)
\n
\n\n
', 'content_root': '../../', 'css_tag': .css_tag at 0x7f3d39f6b600>, 'js_tag': .js_tag at 0x7f3d39f6b2e0>}, None) -[app] emitting event: 'html-page-context'('_modules/index', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/index', 'current_page_name': '_modules/index', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b22520>, 'hasdoc': .hasdoc at 0x7fc7d6b21da0>, 'toctree': . at 0x7fc7d6b21760>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'Overview: module code', 'body': '

All modules for which code is available

\n', 'content_root': '../', 'css_tag': .css_tag at 0x7fc7d6b20c20>, 'js_tag': .js_tag at 0x7fc7d6b218a0>}, None) -writing additional pages... search [app] emitting event: 'html-page-context'('search', 'search.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'search', 'current_page_name': 'search', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7fc7d6b222a0>, 'hasdoc': .hasdoc at 0x7fc7d6b23e20>, 'toctree': . at 0x7fc7d6b23100>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'content_root': './', 'css_tag': .css_tag at 0x7fc7d6c56de0>, 'js_tag': .js_tag at 0x7fc7d6c56ca0>}, None) +[app] emitting event: 'html-page-context'('_modules/index', 'page.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': '_modules/index', 'current_page_name': '_modules/index', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f6a520>, 'hasdoc': .hasdoc at 0x7f3d39f69da0>, 'toctree': . at 0x7f3d39f69760>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'title': 'Overview: module code', 'body': '

All modules for which code is available

\n', 'content_root': '../', 'css_tag': .css_tag at 0x7f3d39f68c20>, 'js_tag': .js_tag at 0x7f3d39f698a0>}, None) +writing additional pages... search [app] emitting event: 'html-page-context'('search', 'search.html', {'embedded': False, 'project': 'PythonQwt', 'release': '0.12.7', 'version': '0.12', 'last_updated': None, 'copyright': '2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)', 'master_doc': 'index', 'root_doc': 'index', 'use_opensearch': '', 'docstitle': 'PythonQwt 0.12 Manual', 'shorttitle': 'PythonQwt 0.12 Manual', 'show_copyright': True, 'show_search_summary': True, 'show_sphinx': True, 'has_source': True, 'show_source': True, 'sourcelink_suffix': '.txt', 'file_suffix': '.html', 'link_suffix': '.html', 'script_files': [, , ], 'language': 'en', 'css_files': [, ], 'sphinx_version': '8.1.3', 'sphinx_version_tuple': (8, 1, 3, 'final', 0), 'docutils_version_info': (0, 21, 2, 'final', 0), 'styles': ['classic.css'], 'rellinks': [('genindex', 'General Index', 'I', 'index'), ('py-modindex', 'Python Module Index', '', 'modules')], 'builder': 'html', 'parents': [], 'logo_url': 'PythonQwt_logo.png', 'logo_alt': 'Logo of PythonQwt', 'favicon_url': '', 'html5_doctype': True, 'theme_nosidebar': 'false', 'theme_sidebarwidth': '230', 'theme_body_min_width': '360', 'theme_body_max_width': '800', 'theme_navigation_with_keys': 'False', 'theme_enable_search_shortcuts': 'True', 'theme_globaltoc_collapse': 'true', 'theme_globaltoc_includehidden': 'false', 'theme_globaltoc_maxdepth': '', 'theme_rightsidebar': 'false', 'theme_stickysidebar': 'false', 'theme_collapsiblesidebar': 'false', 'theme_externalrefs': 'false', 'theme_footerbgcolor': '#11303d', 'theme_footertextcolor': '#ffffff', 'theme_sidebarbgcolor': '#1c4e63', 'theme_sidebarbtncolor': '#3c6e83', 'theme_sidebartextcolor': '#ffffff', 'theme_sidebarlinkcolor': '#98dbcc', 'theme_relbarbgcolor': '#133f52', 'theme_relbartextcolor': '#ffffff', 'theme_relbarlinkcolor': '#ffffff', 'theme_bgcolor': '#ffffff', 'theme_textcolor': '#000000', 'theme_headbgcolor': '#f2f2f2', 'theme_headtextcolor': '#20435c', 'theme_headlinkcolor': '#c60f0f', 'theme_linkcolor': '#355f7c', 'theme_visitedlinkcolor': '#551a8b', 'theme_codebgcolor': 'unset', 'theme_codetextcolor': 'unset', 'theme_bodyfont': 'sans-serif', 'theme_headfont': "'Trebuchet MS', sans-serif", 'pagename': 'search', 'current_page_name': 'search', 'encoding': 'utf-8', 'pageurl': None, 'pathto': .pathto at 0x7f3d39f6a2a0>, 'hasdoc': .hasdoc at 0x7f3d39f6be20>, 'toctree': . at 0x7f3d39f6b100>, 'sidebars': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'], 'content_root': './', 'css_tag': .css_tag at 0x7f3d39ebede0>, 'js_tag': .js_tag at 0x7f3d39ebeca0>}, None) done copying images... [ 5%] ../qwt/tests/data/bodedemo.png copying images... [ 11%] ../qwt/tests/data/cartesian.png @@ -23571,12 +23607,12 @@ pybuild --test --test-pytest -i python{version} -p "3.12 3.13" -s custom "--test-args=xvfb-run -a --server-args=\"-screen 0 1024x768x24\" {interpreter} -m qwt.tests.__init__" I: pybuild base:311: xvfb-run -a --server-args="-screen 0 1024x768x24" python3.12 -m qwt.tests.__init__ QPainter::begin(): Returned false -[Python 3.12.8, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 394 ms -[Python 3.12.8, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 1260 ms -[Python 3.12.8, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 735 ms -[Python 3.12.8, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 5284 ms -[Python 3.12.8, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 2582 ms -[Python 3.12.8, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 6630 ms +[Python 3.12.8, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 58 ms +[Python 3.12.8, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 144 ms +[Python 3.12.8, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 134 ms +[Python 3.12.8, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 767 ms +[Python 3.12.8, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 314 ms +[Python 3.12.8, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 750 ms Running PythonQwt tests in unattended mode: /usr/bin/python3.12 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_bodedemo.py" /usr/bin/python3.12 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_cartesian.py" @@ -23600,12 +23636,12 @@ /usr/bin/python3.12 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_vertical.py" I: pybuild base:311: xvfb-run -a --server-args="-screen 0 1024x768x24" python3.13 -m qwt.tests.__init__ QPainter::begin(): Returned false -[Python 3.13.1, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 531 ms -[Python 3.13.1, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 589 ms -[Python 3.13.1, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 557 ms -[Python 3.13.1, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 3422 ms -[Python 3.13.1, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 2586 ms -[Python 3.13.1, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 4807 ms +[Python 3.13.1, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 58 ms +[Python 3.13.1, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 133 ms +[Python 3.13.1, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 114 ms +[Python 3.13.1, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 759 ms +[Python 3.13.1, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 257 ms +[Python 3.13.1, Qt 5.15.15, PyQt v5.15.11 on Linux] Elapsed time: 716 ms Running PythonQwt tests in unattended mode: /usr/bin/python3.13 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_bodedemo.py" /usr/bin/python3.13 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_cartesian.py" @@ -23627,7 +23663,7 @@ /usr/bin/python3.13 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_stylesheet.py" /usr/bin/python3.13 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_symbols.py" /usr/bin/python3.13 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_vertical.py" - rm -fr -- /tmp/dh-xdg-rundir-QYcEDix8 + rm -fr -- /tmp/dh-xdg-rundir-AeyxQdcT ################# pyqt6 TEST ################## pybuild --test --test-pytest -i python{version} -p "3.12 3.13" -s custom "--test-args=xvfb-run -a --server-args=\"-screen 0 1024x768x24\" {interpreter} -m qwt.tests.__init__" I: pybuild base:311: xvfb-run -a --server-args="-screen 0 1024x768x24" python3.12 -m qwt.tests.__init__ @@ -23652,15 +23688,15 @@ Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. -[Python 3.12.8, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 790 ms +[Python 3.12.8, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 70 ms Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. -[Python 3.12.8, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 1244 ms -[Python 3.12.8, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 1725 ms -[Python 3.12.8, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 7178 ms -[Python 3.12.8, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 3372 ms +[Python 3.12.8, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 158 ms +[Python 3.12.8, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 147 ms +[Python 3.12.8, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 742 ms +[Python 3.12.8, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 292 ms Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual @@ -23693,7 +23729,7 @@ Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. -[Python 3.12.8, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 7535 ms +[Python 3.12.8, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 969 ms Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual @@ -23765,15 +23801,15 @@ Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. -[Python 3.13.1, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 715 ms +[Python 3.13.1, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 73 ms Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. -[Python 3.13.1, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 1137 ms -[Python 3.13.1, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 1189 ms -[Python 3.13.1, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 5081 ms -[Python 3.13.1, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 2884 ms +[Python 3.13.1, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 154 ms +[Python 3.13.1, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 140 ms +[Python 3.13.1, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 756 ms +[Python 3.13.1, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 285 ms Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual @@ -23806,7 +23842,7 @@ Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. -[Python 3.13.1, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 6660 ms +[Python 3.13.1, Qt 6.7.2, PyQt v6.8.0 on Linux] Elapsed time: 887 ms Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual @@ -23856,7 +23892,7 @@ /usr/bin/python3.13 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_stylesheet.py" /usr/bin/python3.13 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_symbols.py" /usr/bin/python3.13 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_vertical.py" - rm -fr -- /tmp/dh-xdg-rundir-7b4KW19V + rm -fr -- /tmp/dh-xdg-rundir-xqILtd3t ################# pyside6 TEST ################## pybuild --test --test-pytest -i python{version} -p "3.12 3.13" -s custom "--test-args=xvfb-run -a --server-args=\"-screen 0 1024x768x24\" {interpreter} -m qwt.tests.__init__" I: pybuild base:311: xvfb-run -a --server-args="-screen 0 1024x768x24" python3.12 -m qwt.tests.__init__ @@ -23871,7 +23907,6 @@ QPainter::begin(): Returned false QGuiApplication::font(): no QGuiApplication instance and no application font set. QGuiApplication::font(): no QGuiApplication instance and no application font set. -Segmentation fault Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual @@ -23884,15 +23919,15 @@ Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. -[Python 3.12.8, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 684 ms +[Python 3.12.8, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 98 ms Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. -[Python 3.12.8, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 1528 ms -[Python 3.12.8, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 1752 ms -[Python 3.12.8, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 7723 ms -[Python 3.12.8, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 4772 ms +[Python 3.12.8, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 213 ms +[Python 3.12.8, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 235 ms +[Python 3.12.8, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 858 ms +[Python 3.12.8, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 411 ms Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual @@ -23925,7 +23960,7 @@ Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. -[Python 3.12.8, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 8812 ms +[Python 3.12.8, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 1372 ms Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual @@ -23987,7 +24022,6 @@ QPainter::begin(): Returned false QGuiApplication::font(): no QGuiApplication instance and no application font set. QGuiApplication::font(): no QGuiApplication instance and no application font set. -Segmentation fault Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual @@ -24000,15 +24034,15 @@ Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. -[Python 3.13.1, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 656 ms +[Python 3.13.1, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 96 ms Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. -[Python 3.13.1, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 1067 ms -[Python 3.13.1, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 1142 ms -[Python 3.13.1, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 4960 ms -[Python 3.13.1, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 3598 ms +[Python 3.13.1, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 209 ms +[Python 3.13.1, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 195 ms +[Python 3.13.1, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 817 ms +[Python 3.13.1, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 382 ms Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual @@ -24041,7 +24075,7 @@ Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. -[Python 3.13.1, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 10176 ms +[Python 3.13.1, Qt 6.7.2, PySide v6.7.3 on Linux] Elapsed time: 1290 ms Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual @@ -24091,7 +24125,7 @@ /usr/bin/python3.13 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_stylesheet.py" /usr/bin/python3.13 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_symbols.py" /usr/bin/python3.13 "/build/reproducible-path/python-qwt-0.12.7/qwt/tests/test_vertical.py" - rm -fr -- /tmp/dh-xdg-rundir-7RraPYTv + rm -fr -- /tmp/dh-xdg-rundir-ZpCUjQYt make[1]: Leaving directory '/build/reproducible-path/python-qwt-0.12.7' create-stamp debian/debhelper-build-stamp dh_testroot -O--buildsystem=pybuild @@ -24115,11 +24149,11 @@ install -m0755 -d debian/python-qwt-doc/usr/share/doc-base/ install -p -m0644 debian/python-qwt-doc.doc-base debian/python-qwt-doc/usr/share/doc-base/python-qwt-doc.python-qwt-manual dh_sphinxdoc -O--buildsystem=pybuild - ln -sf ../../../../javascript/sphinxdoc/1.0/language_data.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/language_data.js - ln -sf ../../../../javascript/sphinxdoc/1.0/sidebar.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/sidebar.js ln -sf ../../../../javascript/sphinxdoc/1.0/searchtools.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/searchtools.js - ln -sf ../../../../javascript/sphinxdoc/1.0/doctools.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/doctools.js ln -sf ../../../../javascript/sphinxdoc/1.0/sphinx_highlight.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/sphinx_highlight.js + ln -sf ../../../../javascript/sphinxdoc/1.0/doctools.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/doctools.js + ln -sf ../../../../javascript/sphinxdoc/1.0/language_data.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/language_data.js + ln -sf ../../../../javascript/sphinxdoc/1.0/sidebar.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/sidebar.js rm -rf debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/.doctrees rm -f debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/.buildinfo mv debian/python-qwt-doc.substvars.new debian/python-qwt-doc.substvars @@ -24159,70 +24193,70 @@ dh_installsystemduser -O--buildsystem=pybuild dh_perl -O--buildsystem=pybuild dh_link -O--buildsystem=pybuild - rm -f debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/searchtools.js - ln -s ../../../../javascript/sphinxdoc/1.0/searchtools.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/searchtools.js - rm -f debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/sphinx_highlight.js - ln -s ../../../../javascript/sphinxdoc/1.0/sphinx_highlight.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/sphinx_highlight.js rm -f debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/doctools.js ln -s ../../../../javascript/sphinxdoc/1.0/doctools.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/doctools.js - rm -f debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/language_data.js - ln -s ../../../../javascript/sphinxdoc/1.0/language_data.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/language_data.js + rm -f debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/sphinx_highlight.js + ln -s ../../../../javascript/sphinxdoc/1.0/sphinx_highlight.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/sphinx_highlight.js + rm -f debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/searchtools.js + ln -s ../../../../javascript/sphinxdoc/1.0/searchtools.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/searchtools.js rm -f debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/sidebar.js ln -s ../../../../javascript/sphinxdoc/1.0/sidebar.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/sidebar.js + rm -f debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/language_data.js + ln -s ../../../../javascript/sphinxdoc/1.0/language_data.js debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/language_data.js dh_strip_nondeterminism -O--buildsystem=pybuild Using 1737312131 as canonical time - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/mapdemo.png using File::StripNondeterminism::handlers::png - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/multidemo.png using File::StripNondeterminism::handlers::png - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/cartesian.png using File::StripNondeterminism::handlers::png Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/eventfilter.png using File::StripNondeterminism::handlers::png - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/bodedemo.png using File::StripNondeterminism::handlers::png - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/curvebenchmark2.png using File::StripNondeterminism::handlers::png - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/cpudemo.png using File::StripNondeterminism::handlers::png - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/stylesheet.png using File::StripNondeterminism::handlers::png - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/simple.png using File::StripNondeterminism::handlers::png - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/image.png using File::StripNondeterminism::handlers::png - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/logcurve.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/curvebenchmark1.png using File::StripNondeterminism::handlers::png Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/symbols.png using File::StripNondeterminism::handlers::png - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/curvedemo1.png using File::StripNondeterminism::handlers::png - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/errorbar.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/cartesian.png using File::StripNondeterminism::handlers::png Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/data.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/cpudemo.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/image.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/stylesheet.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/curvedemo2.png using File::StripNondeterminism::handlers::png Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/loadtest.png using File::StripNondeterminism::handlers::png Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/testlauncher.png using File::StripNondeterminism::handlers::png - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/curvedemo2.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/mapdemo.png using File::StripNondeterminism::handlers::png Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/vertical.png using File::StripNondeterminism::handlers::png - Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/curvebenchmark1.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/bodedemo.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/multidemo.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/simple.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/curvedemo1.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/errorbar.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/logcurve.png using File::StripNondeterminism::handlers::png + Normalizing debian/python3-qwt/usr/lib/python3/dist-packages/qwt/tests/data/curvebenchmark2.png using File::StripNondeterminism::handlers::png Using 1737312131 as canonical time - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/symbol_path_example.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/file.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/PythonQwt_logo.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/plus.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/panorama.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/mapdemo.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/QwtPlot_example.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/minus.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/multidemo.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/eventfilter.png using File::StripNondeterminism::handlers::png Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/symbol_path_example.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/curvebenchmark1.png using File::StripNondeterminism::handlers::png Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/cartesian.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/bodedemo.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/cpudemo.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/QwtPlot_example.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/errorbar.png using File::StripNondeterminism::handlers::png Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/data.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/cpudemo.png using File::StripNondeterminism::handlers::png Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/image.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/curvedemo1.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/eventfilter.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/curvebenchmark2.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/QwtPlot_example.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/curvedemo2.png using File::StripNondeterminism::handlers::png Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/testlauncher.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/mapdemo.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/bodedemo.png using File::StripNondeterminism::handlers::png Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/vertical.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/multidemo.png using File::StripNondeterminism::handlers::png Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/simple.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/curvedemo1.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/errorbar.png using File::StripNondeterminism::handlers::png Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/logcurve.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/curvedemo2.png using File::StripNondeterminism::handlers::png - Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/curvebenchmark1.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_images/curvebenchmark2.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/plus.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/symbol_path_example.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/panorama.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/QwtPlot_example.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/PythonQwt_logo.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/file.png using File::StripNondeterminism::handlers::png + Normalizing debian/python-qwt-doc/usr/share/doc/python-qwt-doc/html/_static/minus.png using File::StripNondeterminism::handlers::png dh_compress -O--buildsystem=pybuild - cd debian/python-qwt-doc cd debian/python3-qwt - chmod a-x usr/share/doc/python-qwt-doc/changelog usr/share/doc/python-qwt-doc/changelog.Debian + cd debian/python-qwt-doc chmod a-x usr/share/doc/python3-qwt/changelog usr/share/doc/python3-qwt/changelog.Debian + chmod a-x usr/share/doc/python-qwt-doc/changelog usr/share/doc/python-qwt-doc/changelog.Debian gzip -9nf usr/share/doc/python3-qwt/changelog usr/share/doc/python3-qwt/changelog.Debian gzip -9nf usr/share/doc/python-qwt-doc/changelog usr/share/doc/python-qwt-doc/changelog.Debian cd '/build/reproducible-path/python-qwt-0.12.7' @@ -24259,24 +24293,24 @@ echo misc:Depends= >> debian/python-qwt-doc.substvars echo misc:Pre-Depends= >> debian/python-qwt-doc.substvars dpkg-gencontrol -ppython-qwt-doc -ldebian/changelog -Tdebian/python-qwt-doc.substvars -cdebian/control -Pdebian/python-qwt-doc -dpkg-gencontrol: warning: package python-qwt-doc: substitution variable ${python3:Depends} unused, but is defined -dpkg-gencontrol: warning: package python-qwt-doc: substitution variable ${sphinxdoc:Built-Using} unused, but is defined - chmod 0644 -- debian/python-qwt-doc/DEBIAN/control dpkg-gencontrol: warning: Breaks field of package python3-qwt: substitution variable ${python3:Breaks} used, but is not defined dpkg-gencontrol: warning: Provides field of package python3-qwt: substitution variable ${python3:Provides} used, but is not defined chmod 0644 -- debian/python3-qwt/DEBIAN/control +dpkg-gencontrol: warning: package python-qwt-doc: substitution variable ${python3:Depends} unused, but is defined +dpkg-gencontrol: warning: package python-qwt-doc: substitution variable ${sphinxdoc:Built-Using} unused, but is defined + chmod 0644 -- debian/python-qwt-doc/DEBIAN/control dh_md5sums -O--buildsystem=pybuild install -m0755 -d debian/python3-qwt/DEBIAN install -m0755 -d debian/python-qwt-doc/DEBIAN cd debian/python3-qwt >/dev/null && xargs -r0 md5sum | perl -pe 'if (s@^\\@@) { s/\\\\/\\/g; }' > DEBIAN/md5sums cd debian/python-qwt-doc >/dev/null && xargs -r0 md5sum | perl -pe 'if (s@^\\@@) { s/\\\\/\\/g; }' > DEBIAN/md5sums - chmod 0644 -- debian/python-qwt-doc/DEBIAN/md5sums chmod 0644 -- debian/python3-qwt/DEBIAN/md5sums + chmod 0644 -- debian/python-qwt-doc/DEBIAN/md5sums dh_builddeb -O--buildsystem=pybuild dpkg-deb --root-owner-group --build debian/python3-qwt .. dpkg-deb --root-owner-group --build debian/python-qwt-doc .. -dpkg-deb: building package 'python-qwt-doc' in '../python-qwt-doc_0.12.7-3_all.deb'. dpkg-deb: building package 'python3-qwt' in '../python3-qwt_0.12.7-3_all.deb'. +dpkg-deb: building package 'python-qwt-doc' in '../python-qwt-doc_0.12.7-3_all.deb'. dpkg-genbuildinfo --build=binary -O../python-qwt_0.12.7-3_amd64.buildinfo dpkg-genchanges --build=binary -O../python-qwt_0.12.7-3_amd64.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -24284,12 +24318,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/2843525/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2843525/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/882674 and its subdirectories -I: Current time: Sun Jan 19 17:46:42 -12 2025 -I: pbuilder-time-stamp: 1737352002 +I: removing directory /srv/workspace/pbuilder/2843525 and its subdirectories +I: Current time: Mon Feb 23 02:16:51 +14 2026 +I: pbuilder-time-stamp: 1771762611