- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图制作一个带有嵌入式 matplotlib 小部件的 GUI。我只需要 FigureCanvas 完全填充图形,我已经尝试了大约 100 种不同的东西,但没有一点改变 Canvas 的大小。我在“#useless”表示的代码中留下了一些我的尝试,让您知道我已经尝试过了,但没有任何影响。请帮忙。
import sys
from PyQt4 import QtGui
from matplotlib import pyplot as plt
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
class Terminal(QtGui.QDialog):
def __init__(self, parent=None):
try:
super(Terminal, self).__init__(parent)
self.resize(1000,800)
self.figure = plt.figure(facecolor='black')
self.canvas = FigureCanvas(self.figure)
self.canvas.autoFillBackground()#useless
self.myComboBox = QtGui.QComboBox()
self.plotButton = QtGui.QPushButton('Plot')
self.xMplWidget = MatplotlibWidget(self.canvas)
self.plotButton.clicked.connect(self.plotCircles)
layout = QtGui.QVBoxLayout()
layout.addWidget(self.canvas)
layout.addWidget(self.myComboBox)
layout.addWidget(self.plotButton)
policy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding)#useless
self.canvas.setSizePolicy = policy#useless
layout.setStretchFactor(self.canvas, 1)#useless
self.setLayout(layout)
self.canvas.autoFillBackground()#useless
except Exception as err:
print("Error in Terminal.init: Other - ", err)
def createDashboard(self,oDashboard):
print("DoStuff")
def plotCircles(self):
print("DoStuff")
class MatplotlibWidget(FigureCanvas):
def __init__(self, parent=None, title='Title', xlabel='x label', ylabel='y label', dpi=100, hold=False):
super(MatplotlibWidget, self).__init__(Figure())
self.setParent(parent)
self.figure = Figure(dpi=dpi)
self.canvas = FigureCanvas(self.figure)
self.theplot = self.figure.add_subplot(111)
self.theplot.set_title(title)
self.theplot.set_xlabel(xlabel)
self.theplot.set_ylabel(ylabel)
def plotChart(self,oOxyName):
print("DoStuff")
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
main = Terminal()
main.show()
app.exec_()
最佳答案
我继续研究后想通了。我在项目的早期就把事情搞得一团糟,并且在更改初始设计时没有仔细阅读我的代码。问题是我正在创建 Canvas 小部件并将该小部件传递给 MplWidget。 MplWidget 正确地拥有自己的 Canvas ,因此不需要额外的 Canvas 传递给它。本质上,我是在 Canvas 小部件中制作 MplWidget,而不是在主窗体中制作 MplWidget。
这里是更正后的代码以及更正的注释。
import sys
from PyQt4 import QtGui
from PyQt4.QtCore import Qt
from matplotlib import pyplot as plt
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import (
FigureCanvasQTAgg as FigureCanvas)
class Terminal(QtGui.QDialog):
def __init__(self, parent=None):
try:
super(Terminal, self).__init__(parent)
self.resize(1000,800)
self.figure = plt.figure(facecolor='black')
#This was creating a canvas which I was adding my widget to (bad idea)
# self.canvas = FigureCanvas(self.figure)
self.myComboBox = QtGui.QComboBox()
self.plotButton = QtGui.QPushButton('Plot')
self.xMplWidget = MatplotlibWidget()
self.plotButton.clicked.connect(self.plotCircles)
layout = QtGui.QVBoxLayout()
#Needed to add my MatplotlibWidget, not a canvas widget, because the MPLWidget has its own canvas
#layout.addWidget(self.canvas)
layout.addWidget(self.xMplWidget) #This was added
layout.addWidget(self.myComboBox)
layout.addWidget(self.plotButton)
self.setLayout(layout)
except Exception as err:
print("Error in Terminal.init: Other - ", err)
def createDashboard(self,oDashboard):
print("DoStuff")
def plotCircles(self):
print("DoStuff")
class MatplotlibWidget(FigureCanvas):
def __init__(self, parent=None, title='Title', xlabel='x label', ylabel='y label', dpi=100, hold=False):
super(MatplotlibWidget, self).__init__(Figure())
self.setParent(parent)
self.figure = Figure(dpi=dpi)
self.canvas = FigureCanvas(self.figure)
self.theplot = self.figure.add_subplot(111)
self.theplot.set_title(title)
self.theplot.set_xlabel(xlabel)
self.theplot.set_ylabel(ylabel)
def plotChart(self,oOxyName):
print("DoStuff")
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
main = Terminal()
main.show()
app.exec_()
关于python - 如何使 FigureCanvas 填充嵌入在 pyqt GUI 中的 matplotlib 小部件中的整个图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39650940/
我正在开发一个小型 Web 应用程序,其中有一个 object 元素(包含一个 embed),用于显示小型文档。 文档可以是 PDF 或纯文本文件 (.txt),我以 base64 字符串的形式从 W
我有一种小型语言,它基本上是 OCaml 的扩展(实际上它是 OCaml 子集的扩展,但这并不重要)。为了简化事情,我有一个“转义”表达式,可以将 OCaml 文字传输到我的语言中(因此您可以将任意
据我所知,我知道 embed tag用于嵌入来自 youtube 等网站的视频,object tag用于 Flash 视频和 video tags下HTML5 .但我很好奇这些标签的深入细节以及作为开
我假设您可以将 WebKit 嵌入到另一个桌面应用程序中并向其发送一个字符串,例如: Hello world! 它将显示在窗口内。 我的问题是,如果我将其压缩表示(JPEG 转储)加载到内存中,我该如
有没有一种可能的方式,我可以从youtube检索我的最新视频的列表(带有缩略图),使用cron作业将嵌入的代码存储在数据库中,这样我就可以在单独的页面上显示视频,而不是将用户引向youtube观看视频
最近我发现我的网站上嵌入的 YouTube 视频存在问题 - 全屏按钮不再起作用。确实有过一次。该按钮是可见的,但单击时没有任何反应。 我正在使用 Youtube Javascript API 将视频
在 Keras 内置函数中嵌入使用哪种算法?Word2vec?手套?其他? https://keras.io/layers/embeddings/ 最佳答案 简短的回答是都不是。本质上,GloVe 的
在 LSTM 上用于建模 IMDB 序列数据 ( https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py ) 的 ker
在机器学习中,通常用 one-hot-encoding 表示分类(特别是:名义)特征。 .我正在尝试学习如何使用 tensorflow 的嵌入层来表示分类问题中的分类特征。我有 tensorflow
我有一个使用 Storyboard的应用程序,我想在我的主视图中有一个 View ,并让它在场景中的不同 View 之间切换。 所以目前我有“容器对象”,我可以在其中嵌入另一个 viewControl
在我的项目中我遇到了这样的情况。 function fonsubmit() { alert('Out side PHP'); //Here the php code starts
我正在尝试添加一个JFileChooser,它选择父目录并允许用户输入文件名称。我知道 showSaveDialog 和 showOpenDialog 方法,但我不想创建新窗口。 这是我到目前为止所拥
我注意到我的网站创建了这样的链接:www.domain.com/post-name/embed/ 恐怕这可能会影响 SEO。是否可以禁用此功能? 最佳答案 显然这是默认的 WordPress 行为。此
我试图从 C 代码调用 python 函数,我遵循了 here 中的示例 我也有正确的包含文件目录、库目录和链接 python32.lib(我使用 python 32)但是错误是 python/C A
我正在使用基于云的 EDR 平台来监控客户端受损网络上发生的进程。我最近经常看到的是使用选项“-Embedding”调用的 msiexec.exe C:\Windows\System32\MsiExe
我有一个列表,其中包含数百万个需要嵌入的句子。我正在使用 Flair以此目的。这个问题似乎应该是并行的。但是,当我尝试优化时,我的性能要么没有提高,要么只是停滞不前。 我将我的句子定义为一个简单的字符
我想在我的应用程序中添加嵌入的 YouTube 视频:我该怎么做?我有这个 import 'package:youtube_player/youtube_player.dart'; import 'p
我有 json 看起来像: myjson = {"queries":{"F.SP": 27}} 所以与 queryResults = JObject.Parse(jsonString) 我可以 fir
我在 html 文档中嵌入 highcharts 饼图时遇到问题。具体来说,我无法在不更改图表大小的情况下调整图表容器的大小。有谁知道您是否可以在不缩小图表的情况下减少默认填充?或者,您可以在不增加容
我不太确定这在 MediaWiki 中是否可行。 我有几个类别,每个类别包含几页。如果您打开一个类别页面,您将看到该类别的内容,通常由以下三个部分组成: 用户定义的文本(可以使用编辑链接进行编辑)。
我是一名优秀的程序员,十分优秀!