FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
matplotlib/examples/user_interfaces/embedding_in_qt4.py at master · dashed/matplotlib · GitHub
dashed
matplotlib
Repository navigation
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
matplotlib
/
examples
/
user_interfaces
/
embedding_in_qt4.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
executable file
·
139 lines (102 loc) · 4.11 KB
Breadcrumbs
matplotlib
/
examples
/
user_interfaces
/
embedding_in_qt4.py
Copy path
File metadata and controls
executable file
·
139 lines (102 loc) · 4.11 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#!/usr/bin/env python
# embedding_in_qt4.py --- Simple Qt4 application embedding matplotlib canvases
#
# Copyright (C) 2005 Florent Rougon
# 2006 Darren Dale
#
# This file is an example program for matplotlib. It may be used and
# modified with no restriction; raw copies as well as modified versions
# may be distributed without limitation.
from
__future__
import
unicode_literals
import
sys
import
os
import
random
from
matplotlib
.
backends
import
qt_compat
use_pyside
=
qt_compat
.
QT_API
==
qt_compat
.
QT_API_PYSIDE
if
use_pyside
:
from
PySide
import
QtGui
,
QtCore
else
:
from
PyQt4
import
QtGui
,
QtCore
from
numpy
import
arange
,
sin
,
pi
from
matplotlib
.
backends
.
backend_qt4agg
import
FigureCanvasQTAgg
as
FigureCanvas
from
matplotlib
.
figure
import
Figure
progname
=
os
.
path
.
basename
(
sys
.
argv
[
0
])
progversion
=
"0.1"
class
MyMplCanvas
(
FigureCanvas
):
"""Ultimately, this is a QWidget (as well as a FigureCanvasAgg, etc.)."""
def
__init__
(
self
,
parent
=
None
,
width
=
5
,
height
=
4
,
dpi
=
100
):
fig
=
Figure
(
figsize
=
(
width
,
height
),
dpi
=
dpi
)
self
.
axes
=
fig
.
add_subplot
(
111
)
# We want the axes cleared every time plot() is called
self
.
axes
.
hold
(
False
)
self
.
compute_initial_figure
()
#
FigureCanvas
.
__init__
(
self
,
fig
)
self
.
setParent
(
parent
)
FigureCanvas
.
setSizePolicy
(
self
,
QtGui
.
QSizePolicy
.
Expanding
,
QtGui
.
QSizePolicy
.
Expanding
)
FigureCanvas
.
updateGeometry
(
self
)
def
compute_initial_figure
(
self
):
pass
class
MyStaticMplCanvas
(
MyMplCanvas
):
"""Simple canvas with a sine plot."""
def
compute_initial_figure
(
self
):
t
=
arange
(
0.0
,
3.0
,
0.01
)
s
=
sin
(
2
*
pi
*
t
)
self
.
axes
.
plot
(
t
,
s
)
class
MyDynamicMplCanvas
(
MyMplCanvas
):
"""A canvas that updates itself every second with a new plot."""
def
__init__
(
self
,
*
args
,
**
kwargs
):
MyMplCanvas
.
__init__
(
self
,
*
args
,
**
kwargs
)
timer
=
QtCore
.
QTimer
(
self
)
timer
.
timeout
.
connect
(
self
.
update_figure
)
timer
.
start
(
1000
)
def
compute_initial_figure
(
self
):
self
.
axes
.
plot
([
0
,
1
,
2
,
3
], [
1
,
2
,
0
,
4
],
'r'
)
def
update_figure
(
self
):
# Build a list of 4 random integers between 0 and 10 (both inclusive)
l
=
[
random
.
randint
(
0
,
10
)
for
i
in
range
(
4
)]
self
.
axes
.
plot
([
0
,
1
,
2
,
3
],
l
,
'r'
)
self
.
draw
()
class
ApplicationWindow
(
QtGui
.
QMainWindow
):
def
__init__
(
self
):
QtGui
.
QMainWindow
.
__init__
(
self
)
self
.
setAttribute
(
QtCore
.
Qt
.
WA_DeleteOnClose
)
self
.
setWindowTitle
(
"application main window"
)
self
.
file_menu
=
QtGui
.
QMenu
(
'&File'
,
self
)
self
.
file_menu
.
addAction
(
'&Quit'
,
self
.
fileQuit
,
QtCore
.
Qt
.
CTRL
+
QtCore
.
Qt
.
Key_Q
)
self
.
menuBar
().
addMenu
(
self
.
file_menu
)
self
.
help_menu
=
QtGui
.
QMenu
(
'&Help'
,
self
)
self
.
menuBar
().
addSeparator
()
self
.
menuBar
().
addMenu
(
self
.
help_menu
)
self
.
help_menu
.
addAction
(
'&About'
,
self
.
about
)
self
.
main_widget
=
QtGui
.
QWidget
(
self
)
l
=
QtGui
.
QVBoxLayout
(
self
.
main_widget
)
sc
=
MyStaticMplCanvas
(
self
.
main_widget
,
width
=
5
,
height
=
4
,
dpi
=
100
)
dc
=
MyDynamicMplCanvas
(
self
.
main_widget
,
width
=
5
,
height
=
4
,
dpi
=
100
)
l
.
addWidget
(
sc
)
l
.
addWidget
(
dc
)
self
.
main_widget
.
setFocus
()
self
.
setCentralWidget
(
self
.
main_widget
)
self
.
statusBar
().
showMessage
(
"All hail matplotlib!"
,
2000
)
def
fileQuit
(
self
):
self
.
close
()
def
closeEvent
(
self
,
ce
):
self
.
fileQuit
()
def
about
(
self
):
QtGui
.
QMessageBox
.
about
(
self
,
"About"
,
"""embedding_in_qt4.py example
Copyright 2005 Florent Rougon, 2006 Darren Dale
This program is a simple example of a Qt4 application embedding matplotlib
canvases.
It may be used and modified with no restriction; raw copies as well as
modified versions may be distributed without limitation."""
)
qApp
=
QtGui
.
QApplication
(
sys
.
argv
)
aw
=
ApplicationWindow
()
aw
.
setWindowTitle
(
"%s"
%
progname
)
aw
.
show
()
sys
.
exit
(
qApp
.
exec_
())
#qApp.exec_()
Back
|
FazBrowse Home
|
New Git URL