我是Kivy的新手,我正在努力更好地处理事件,以及框架的一些基础知识.
为此,任何人都可以提供在Kivy中实现的简单时钟的代码,它显示当前时间,并每秒更新一次?
我有一个问题,下面的行self.tableView.set??????????(df)应该在PyQt5中显示数据帧.我放 ???那里我错过了我需要的代码.
def btn_clk(self):
path = self.lineEdit.text()
df = pd.read_csv(path)
self.tableView.set??????????(df)
Run Code Online (Sandbox Code Playgroud)
其余的代码可以工作,因为如果我print(df)在上面的代码中使用,数据框就会在IPython控制台中打印出来.所以,Pandas读取CSV并打印出来.
但是,我尝试了很多东西让它在PyQt5中显示出来并且没有任何效果.我对PyQt不太熟悉,刚刚开始玩它而且我被困在这里.
这是我的代码:
from PyQt5 import QtCore, QtGui, QtWidgets
import pandas as pd
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(662, 512)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
self.horizontalLayout.setObjectName("horizontalLayout")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setObjectName("lineEdit")
self.verticalLayout.addWidget(self.lineEdit)
self.tableView = QtWidgets.QTableView(self.centralwidget)
self.tableView.setObjectName("tableView")
self.verticalLayout.addWidget(self.tableView)
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setObjectName("pushButton")
self.verticalLayout.addWidget(self.pushButton)
self.horizontalLayout.addLayout(self.verticalLayout)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 662, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow) …Run Code Online (Sandbox Code Playgroud) 我正在使用google_images_download库下载关键字的前 20 个图像。当我最后几天使用它时,它工作得很好。代码如下。
from google_images_download import google_images_download
response = google_images_download.googleimagesdownload()
arguments = {"keywords":keyword,"limit":10,"print_urls":True}
paths = response.download(arguments)
Run Code Online (Sandbox Code Playgroud)
现在它给出了以下错误。
Evaluating...
Starting Download...
Unfortunately all 10 could not be downloaded because some images were not downloadable. 0 is all we got for this search filter!
Errors: 0
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误。
我正在阅读有关如何用 Python 编写国际象棋程序的教程。
它使用python-chess引擎。该引擎的函数显然会返回 SVG 数据,可用于显示棋盘。
import chess
import chess.svg
from IPython.display import SVG
board = chess.Board()
SVG(chess.svg.board(board=board,size=400))
Run Code Online (Sandbox Code Playgroud)
但是当我运行该代码时,我看到的只是终端中的一行,没有图像。
<IPython.core.display.SVG object>
本教程简要介绍了 Jupyter Notebooks 以及如何使用它们来显示 SVG 图像。我没有使用 Jupyter Notebooks 的经验,尽管我从 pip 安装了这个包并且稍微了解了如何使用它,但我在解决原来的棋盘问题上并没有取得太大进展。但我确实拥有使用 C++ 进行 Qt 开发的经验,并且由于 Qt 具有 Python 绑定,因此我决定使用这些绑定。
这是我写的:
import sys
import chess
import chess.svg
from PyQt5 import QtGui, QtSvg
from PyQt5.QtWidgets import QApplication
from IPython.display import SVG, display
app = QApplication(sys.argv);
board = chess.Board();
svgWidget = QtSvg.QSvgWidget(chess.svg.board(board=board, size=400));
#svgWidget.setGeometry(50,50,759,668)
svgWidget.show()
sys.exit(app.exec_()) …Run Code Online (Sandbox Code Playgroud) 升级您的操作系统总是有风险的。您很可能会遇到一些兼容性问题。我冒险将我的 macOS 从 Catalina 升级到最新的 Big Sur。之后,新操作系统中的显示看起来很漂亮,但是我所有的 PyQt5 应用程序都无法在这个新操作系统中启动。GUI 窗口没有像往常一样弹出,终端中也没有显示错误信息。我花了一整天的时间试图找出导致这个问题的原因。我找到了解决方案,但以一种奇怪的方式让我感到困惑。
事实证明,在我在主脚本中添加以下三行后,应用程序恢复正常。
import matplotlib
import matplotlib.pyplot as plt
matplotlib.use('TkAgg')
Run Code Online (Sandbox Code Playgroud)
在我看来,新操作系统与 Qt5Agg 后端存在一些兼容性问题。但奇怪的是,这个解决方案也适用于 Pyqt5 应用程序之一,我根本不使用 matplotlib。
我用的Python版本是3.8.4,我手上的PyQt5版本是5.15.1。
我希望有人可以向我解释使该解决方案起作用的幕后情况。我也希望这个临时解决方案可以帮助遇到同样问题的人。
我是Python的新手,我正在尝试使用Tkinter创建一个简单的GUI.
因此,在许多用户界面中,按Tab键按钮会将焦点从一个Text小部件更改为另一个.每当我在Text小部件中时,tab只会缩进文本光标.
有谁知道这是否可配置?
在我正在做的项目中,我必须从结构化文件(xml)中获取用户输入.该文件包含区域的道路数据,我必须将其绘制到matplotlib画布上.问题是,除了道路,我还必须渲染道路名称,大多数道路都是弯曲的.我知道如何以一个角度渲染文本.但我想知道是否有可能在字符串中途改变文字角度?
这样的事情:在弯曲的路径上绘制旋转的文本
但是使用matplotlib.
例如,这有效:
import QtQuick 2.5
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtQuick.Layouts 1.2
ApplicationWindow
{
visible: true
width: 640
height: 480
title: qsTr("Hello World")
function thingWidth()
{
return width*80/100
}
Column
{
spacing: 10;
anchors.horizontalCenter: parent.horizontalCenter
Thing { color: "red"; width: thingWidth(); }
Thing { color: "yellow"; width: thingWidth(); }
Thing { color: "green"; width: thingWidth(); }
}
}
Run Code Online (Sandbox Code Playgroud)
但Column改为ColumnLayout,它没有(调整窗口大小会导致布局出错).
任何帮助,谢谢.
编辑1:
这也是Thing.qml按要求,
import QtQuick 2.0
Item {
property alias color: rectangle.color
width: 50; …Run Code Online (Sandbox Code Playgroud) 我有此python代码,可用于将写在图片中的文本转换为字符串,它确实适用于某些字符较大的图像,但不适用于我现在尝试的仅包含数字的图像。
有我的代码:
from PIL import Image
img = Image.open('img.png')
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'
result = pytesseract.image_to_string(img)
print (result)
Run Code Online (Sandbox Code Playgroud)
为什么无法识别此特定图像,我该如何解决此问题?谢谢。
有图片:
python ×8
pyqt5 ×3
matplotlib ×2
pyqt ×2
.net ×1
kivy ×1
ocr ×1
pandas ×1
python-3.x ×1
python-chess ×1
qml ×1
qt ×1
qt5 ×1
qtableview ×1
shadow-copy ×1
svg ×1
tkinter ×1