小编Bil*_*oom的帖子

如何使用 Qthread 通过 PyQt 更新 Matplotlib 图?

我真的很难理解如何在 PyQt 中使用线程。我做了一个简单的例子来说明我想在用户界面中做什么。在下面的代码中,我希望用户输入股票行情(例如,您可以输入“bby”、“goog”或“v”)并绘制特定时期内股票的价值。问题是在更复杂的用户界面中,或者在很长一段时间内,用户界面在绘图更新时冻结。所以我制作了一个“绘图仪”类,当它收到某个信号时更新绘图(覆盖 Qthread.run 显然不是你做错的正确方法)。我想让这个“绘图仪”在主线程之外的另一个线程中运行。

一旦我取消注释线程,程序就会停止工作。我尝试移动新线程的启动以及“连接”,但没有任何效果。我认为即使在阅读了文档并查看了 Qt 网站上的示例之后,我仍然不太理解 Qthread 的工作原理。

如果您知道如何做到这一点,那将会有很大帮助!(我正在使用 Python 3.5 和 PyQt5)

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from matplotlib.axes._subplots import Axes
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
import sys
from datetime import datetime, timedelta
import time
import quandl


class MyMplCanvas(FigureCanvas):
    """Ultimately, this is a QWidget (as well as a FigureCanvasAgg, etc.)."""
    send_fig = pyqtSignal(Axes, str, name="send_fig")

    def __init__(self, parent=None):
        self.fig = Figure()
        self.axes = self.fig.add_subplot(111)

        # …
Run Code Online (Sandbox Code Playgroud)

python pyqt matplotlib qthread

5
推荐指数
1
解决办法
5219
查看次数

PyQt5:当您单击QHeaderView的标题时,如何对QTableView进行排序?

当我单击QHeaderView的标题时,我想对QTableView进行排序。我在互联网上找到了几个这样的代码示例:在pyqt5中对QTableView进行排序, 但对我而言不起作用。我也看过Summerfield的Rapid Gui编程书,但我还是可以找到可行的方法。

在这个快速示例中,如何按名称或年龄对表格进行排序?

这是我的代码:

from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import pandas as pd
import operator

# This class was generated from the Qt Creator
class Ui_tableView_ex(object):
    def setupUi(self, tableView_ex):
        tableView_ex.setObjectName("tableView_ex")
        tableView_ex.resize(800, 600)
        self.centralwidget = QWidget(tableView_ex)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.myTable = QTableView(self.centralwidget)
        self.myTable.setObjectName("monTablo")
        self.gridLayout.addWidget(self.myTable, 0, 0, 1, 1)
        tableView_ex.setCentralWidget(self.centralwidget)

        self.retranslateUi(tableView_ex)
        QMetaObject.connectSlotsByName(tableView_ex)

    def retranslateUi(self, tableView_ex):
        _translate = QCoreApplication.translate
        tableView_ex.setWindowTitle(_translate("tableView_ex", "MainWindow"))


class TableTest(QMainWindow, Ui_tableView_ex):
    def __init__(self, parent=None):
        super(TableTest, self).__init__(parent)
        self.setupUi(self)

        self.model = …
Run Code Online (Sandbox Code Playgroud)

python sorting qtableview qheaderview pyqt5

4
推荐指数
1
解决办法
3821
查看次数

标签 统计

python ×2

matplotlib ×1

pyqt ×1

pyqt5 ×1

qheaderview ×1

qtableview ×1

qthread ×1

sorting ×1