如何从 QLineEdit() 获取 int?

2023-12-09

所以这是我的代码,我尝试了很多方法来更改 QLineEdit 的输入,但没有任何效果,我唯一得到的是

类型错误:“QLineEdit”和“QLineEdit”实例之间不支持“>”

from matplotlib import pyplot
import numpy as np
from PyQt5.QtWidgets import (QWidget, QPushButton,
                             QLabel, QGridLayout,
                             QLineEdit, QApplication,
                             QListWidget, QListWidgetItem)
from PyQt5.QtGui import QIntValidator, QRegExpValidator

import sys


class Program(QWidget):

    def __init__(self):
        super().__init__()

        self.x_pts = []
        self.y_pts = []

        self.fig, self.ax = pyplot.subplots()
        self.points, = self.ax.plot(self.x_pts, self.y_pts, marker="o", linestyle="")

        self.label1 = QLabel('Rozpocznij wyznaczanie' + 2*'')
        self.button1 = QPushButton('Start')
        self.label2 = QLabel('Wprowadź zakres x')
        self.label3 = QLabel('Wprowadź zakres y')
        self.label4 = QLabel('Od')
        self.label5 = QLabel('Do')
        self.label6 = QLabel('Od')
        self.label7 = QLabel('Do')
        self.range_from1 = QLineEdit()
        self.range_to1 = QLineEdit()
        self.range_from2 = QLineEdit()
        self.range_to2 = QLineEdit()
        self.onlyInt = QIntValidator(-100, 100)
        self.range_from1.setValidator(QRegExpValidator(
            QRegExp('^(-(100|([1-9]{1}[0-9]{1})|[1-9]{1}))|(0)$')))
        self.range_from2.setValidator(self.onlyInt)
        self.range_to1.setValidator(QRegExpValidator(
            QRegExp('^(-(100|([1-9]{1}[0-9]{1})|[1-9]{1}))|(0)$')))
        self.range_to2.setValidator(self.onlyInt)

        self.ax.set_ylim(self.range_from2, self.range_to2)

        siatka = QGridLayout()
        siatka.setSpacing(10)

        siatka.addWidget(self.label1, 0, 0)
        siatka.addWidget(self.label2, 1, 0)
        siatka.addWidget(self.label4, 2, 0)
        siatka.addWidget(self.range_from1, 2, 1)
        siatka.addWidget(self.label5, 3, 0)
        siatka.addWidget(self.range_to1, 3, 1)
        siatka.addWidget(self.label3, 4, 0)
        siatka.addWidget(self.label6, 5, 0)
        siatka.addWidget(self.range_from2, 5, 1)
        siatka.addWidget(self.label7, 6, 0)
        siatka.addWidget(self.range_to2, 6, 1)
        siatka.addWidget(self.button1, 7, 0)

        self.setLayout(siatka)

        self.button1.clicked.connect(self.showing_canvas)

        self.show()

    def wyznaczanie(self, event):
        m_x, m_y = event.x, event.y
        x, y = self.ax.transData.inverted().transform([m_x, m_y])
        self.x_pts.append(x)
        self.y_pts.append(y)
        self.points.set_xdata(self.x_pts)
        self.points.set_ydata(self.y_pts)
        self.fig.canvas.draw()

    def showing_canvas(self):
        self.fig.canvas.mpl_connect('button_press_event', self.wyznaczanie)
        pyplot.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Program()
    sys.exit(app.exec_())

我想按照用户的意愿设置轴限制,但我不知道发生了什么。我尝试的是 QRegValidator,通过使用 int 函数、float 函数以及设置轴限制的不同方式,但总是出现此错误。


您不应使用 QInEdit 来获取数字,而应使用通过 text 方法获取的 QLineEdit 中包含的文本。然后使用 int 或 float 方法将其转换为数字。将字符串转换为数字可能会引发错误,例如,如果文本为空,则无法将其转换为数字,等等其他情况,但是当您使用验证器时,这会消除除空字符串之外的所有情况,因此它转换前必须进行验证。

另一方面,您不应该在构造函数中执行此操作,因为此时 QLineEdit 为空。

def showing_canvas(self):
    text1 = self.range_from2.text().replace(",", ".")
    text2 = self.range_to2.text().replace(",", ".")
    y1 = float(text1) if text1 else 0
    y2 = float(text2) if text2 else 0
    self.ax.set_ylim(y1, y2)
    self.fig.canvas.mpl_connect('button_press_event', self.wyznaczanie)
    pyplot.show()

注意:删除self.ax.set_ylim(self.range_from2, self.range_to2).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 QLineEdit() 获取 int? 的相关文章

  • 计算温度的偏导数(温度的水平平流)

    我想知道哪种方法计算x和y方向温度的偏导数 温度的水平平流 最正确 第二个代码使用温度 纬向风和经向风的数据矩阵 提取温度 T 纬向风分量 u 和经向风分量 v 的数据 import matplotlib pyplot as plt imp
  • Python中使用cv2获取当前视频播放位置

    我正在尝试使用 CV2 和 Python 从播放视频中获取当前播放时间位置 如果可能 以毫秒为单位 目前我正在使用此示例代码来播放视频文件 import cv2 import numpy as np file name 2 mp4 wind
  • 地图与星图的性能?

    我试图对两个序列进行纯Python 没有外部依赖 逐元素比较 我的第一个解决方案是 list map operator eq seq1 seq2 然后我发现starmap函数来自itertools 这看起来和我很相似 但事实证明 在最坏的情
  • Accel 无法在 gedit 3 插件中工作

    我试图为 Gedit 3 编写一个使用 GObject 自省的小插件 下面显示的代码的相关部分只是为了建立一个环境 然后我可以将函数放入按钮的回调中 但是 该按钮的加速器不起作用 这段代码有什么问题 我正在使用教程here http www
  • Weasyprint 在调用 write_pdf 时获得未定义的属性:“AttributeError:‘PosixPath’对象没有属性‘read_text’”

    我正在 ubuntu 18 04 上运行 weasyprint 项目 并尝试创建一个 pdf 当我尝试设置页脚图像时 问题就开始了 我正在 python 3 6 7 上运行 这是我调用 weasyprint 的代码 import sys i
  • 更改Python pylab玫瑰/极坐标图中图例标题的字体大小

    我正在尝试更改玫瑰图或 极地 图上现有图例标题的字体大小 大部分代码是由不在的其他人编写的 我已经添加 ax legend title legend title setp l get title fontsize 8 添加标题 legend
  • 如何最好地将包含列表或元组的 Pandas 列提取到多个列中[重复]

    这个问题在这里已经有答案了 我不小心用错误重复的链接关闭了这个问题 这是正确的 Pandas 将列表的列拆分为多列 https stackoverflow com questions 35491274 pandas split column
  • 字母表中的加密和解密 - Python GCSE

    我目前正在尝试为学校编写一个程序 以便加密和解密输入的消息 我需要加密或解密的消息仅在字母表中 没有其他符号或密钥 例如 使用消息车加密输入的偏移量为 5 我希望它输出 afs 有人可以帮忙吗 这是我目前的代码 def find offse
  • PyPI 项目页面中的“Py 版本”是什么意思?这有关系吗?

    我注意到 大多数在 PyPI 上发布的项目在其项目页面中都包含 Py 版本 元数据 但它们的值各不相同 如果包不是通用包或不是纯 python 包 那么它们的值是不同的 这是可以理解的 以便表示它们的目标平台 例如鼻页 https pypi
  • 在 Ubuntu 上使用 Python 获取显示器分辨率

    对于 Ubuntu win32api 中是否有与 GetSystemMetrics 相当的代码 我需要获取显示器的宽度和高度 以像素为单位 我可以建议一些可以使用的方法 不过我还没有使用过 xlib 版本 1 xlib Python 程序的
  • Python argparse store_true 并将可选选项存储在一个参数中[重复]

    这个问题在这里已经有答案了 我需要识别是否单独给出参数或带有可选字符串或两者都没有 parser add argument options parser parse args so prog py arg 应该存储 进入选项 arg pro
  • 图像堆栈的最大强度投影

    我正在尝试重新创建该功能 max array 3 来自 MatLab 它可以获取 N 个图像的 300x300px 图像堆栈 我在这里说 图像 因为我正在处理图像 实际上这只是一个大的双数组 300x300xN 并创建一个 300x300
  • 尝试修复我的功能

    我正在开发一个函数 我必须返回一个元组 其中第一个参数是最大数字的 str 第二个参数是 int 列表 这是示例以及我为该函数编写的内容 投票 G G N G C G 1 3 0 1 您必须将最大值的位置映射到正确的一方 parties N
  • 多线程写入文件

    前几天刚开始使用 python 对多线程的整个概念还很陌生 我在多线程时写入文件时遇到问题 如果我按照常规方式执行此操作 它会不断覆盖正在写入的内容 使用 5 个线程写入文件的正确方法是什么 不降低性能的最佳方法是在所有线程之间使用队列 每
  • Python unittest - 与assertRaises相反?

    我想编写一个测试来确定在给定情况下不会引发异常 测试是否有异常很简单is上调 sInvalidPath AlwaysSuppliesAnInvalidPath self assertRaises PathIsNotAValidOne MyO
  • 从 sublime_plugin.WindowCommand 获取当前文件名

    我开发插件sublime text 3 并想要获取当前打开的文件路径 absolute1 self window view file name 在哪里self is sublime plugin WindowCommand 但失败了 Att
  • 检测图像是否损坏或损坏

    我需要以编程方式检查用户在我的应用程序上选择作为壁纸的图像是否已损坏或损坏 基本上我为用户提供了选择自己的图像作为壁纸的选项 现在 当图像加载时 我只想检查它是否已损坏 如果您正在寻找 PHP 解决方案而不是 javascript 解决方案
  • Networkx 中 Louvain 分区的可视化

    请帮助我更改 Louvain 聚类算法结果的可视化 我从网站上获取了代码https github com taynaud python louvain https github com taynaud python louvain我可以重写
  • Python请求401错误但url在浏览器中打开

    我正在尝试从这个位置提取 json https www nseindia com api option chain indices symbol BANKNIFTY https www nseindia com api option cha
  • python pandas如何在多个条件下过滤字符串

    我有以下数据框 import pandas as pd data 5Star FiveStar five star fiv estar data pd DataFrame data columns columnName 当我尝试用一 种条件

随机推荐

  • 仅为我的 Web 应用程序配置 Azure SQL 数据库防火墙

    We use Azure 网络应用程序 with Azure SQL并希望通过配置使此设置更加安全数据库防火墙只允许来自特定网络应用程序的连接 而不是Azure 中的任何服务 如何限制仅连接到我的 Azure 服务 假设您有一个 IP 地址
  • 错误消息:模型未选择特定于语言的资源文件

    我想用西班牙语显示模型错误消息 并且我已在资源文件中定义了这些字符串 我使用 razor 语法对页面上的其他字符串执行了相同的操作 但未选取 ViewModel 注释中的字符串 它实际上是选择默认值 英语 所以我的猜测是可能未检测到语言 文
  • Hibernate 复合密钥 ID 生成器

    我的实体如下 我的数据模型强制执行以下操作 并且我无法更改引用完整性 所以我被复合键困住了 我想自动生成 使用一些生成器来生成 orderId 是的 我已阅读以下内容 http docs jboss org hibernate annota
  • PHP 中判断 URL 是否存在的最快方法是什么?

    我需要创建一个函数 该函数返回 URL 是否可访问或有效 我目前正在使用类似以下内容来确定有效的网址 static public function urlExists url fp fopen url r if fp return true
  • Mysql 5.7.20:无法从字符集“二进制”的字符串创建 JSON 值

    当我导入带有 JSON 列的表的 SQL 文件时 我遇到了这个问题 数据库有 编码 utf8mb4 整理 utf8mb4 unicode ci 这是带有 json 列的表 CREATE TABLE tracking data id int
  • 如何使用 strtotime 和 date 获取相对于今天的上个月和上一年?

    我需要获取相对于当前日期的上个月和上一年 但是 请参阅以下示例 Today is 2011 03 30 echo date Y m d strtotime last month Output 2011 03 02 这种行为是可以理解的 在某
  • Python/PyQt4:如何找到显示器的尺寸(以英寸为单位)?

    我试图找到显示器的水平宽度 以英寸或厘米为单位 不是像素 来制作一个小型 标尺 程序 DPI 也可以工作 我正在使用 PyQt4 尝试使用 QDesktopWidget 的 width 和 height 分别获取宽度和高度 类参考位于QDe
  • jQuery 冒号选择器

    在 jQuery 中有一些冒号选择器 例如 上一个 下一个 最后一个 我的问题是 它们真的是 jQuery 的一部分吗 因为它们实际上用在 DOM 元素上 我们似乎在 jQuery 中也有等效的方法prev next last 有两种不同方
  • JavaFX - 通过 GridPane 上的 OnClick 获取索引行和索引列 [重复]

    这个问题在这里已经有答案了 我需要获取名为 myGrid 的 GridPane 上指定点击的索引 如果我从我的坐标中放置一块 如下所示 它就会起作用 例如 myGrid add new ImageView othello images wh
  • 如何动态传递if语句的条件

    我遇到的情况是 我将在变量中获取比较字符串 并且我想在 IF 中使用该变量 xyz abc lt 200 Dummy Dynamic Text if xyz It should execute like if abc lt 200 echo
  • 谷歌应用程序中的rmi错误

    当我使用以下行时 我没有收到错误 FileItemIterator it servletFileUpload getItemIterator request 当我使用以下行时我得到它 List fileItemsList servletFi
  • IIS 中的应用程序池标识和 SQL Server 的集成安全性

    如果我有一个使用模拟的 ASP NET Web 应用程序和一个集成安全性 true 的 SQL Server 连接字符串 那么该应用程序的 IIS 应用程序池的标识是否起作用 是否需要将身份设置为某个特定用户 本地系统 网络服务或域用户 这
  • 禁用 ASP.net 树视图复选框

    你们如何有条件地禁用 ASP 树视图中的复选框 例如 如果应用程序用户没有特定权限 请禁用权限树视图中的该权限条目复选框 这就是我正在寻找的内容 这是 winform 应用程序中的等效项 文本灰显的复选框被禁用 我看到了其他解决方案 其中复
  • 当达到最大并发 HTTP 请求限制时,浏览器级别会发生什么?

    我知道不同的浏览器可以处理相同主机名的并发连接数不同 但是当达到该限制时 新请求到底会发生什么 它会自动等待并稍后重试 还是我需要做一些事情来帮助完成此过程 具体来说 如果这是一个XMLHttpRequest通过 JavaScript 执行
  • 熊猫数据框来字典,同时保留重复的行

    我有一个如下所示的数据框 kenteken status code 0 XYZ A 123 1 XYZ B 456 2 ABC C 789 我想将它转换为字典中的字典 如下所示 XYZ code 123 status A code 456
  • JavaScript 最终方法

    javascript中的方法可以是final的吗 如何避免它被子类覆盖 从传统意义上讲 不 您不能拥有私有 受保护的方法或阻止它们被覆盖 然而 您可以做的是将方法封装在一个范围内 然后简单地不公开它们 function foo functi
  • 没有布局模板或 JSON 视图的 Meteor Iron-Router

    使用 Meteor Iron Router 我怎样才能either将数据呈现为 JSON 或只是将其显示为 原始 没有布局模板 本质上我希望能够做类似的事情 this route rawdata path raw collection la
  • Microsoft Face API 中“解码错误,图像格式不受支持”

    我正在尝试使用 Microsoft Face API 为此 我有 Microsoft 提供的以下代码作为示例 在本页末尾 https dev projectoxford ai docs services 563879b61984550e40
  • 如何使用preg_match提取数据?

    我对 preg match 的使用还很陌生 在发布这个问题之前搜索了很多答案 找到了很多帖子来根据 youtube ID 等获取数据 但没有任何符合我的需要 如果这是一个愚蠢的问题 请原谅我 我需要使用 preg match 从字符串中获取
  • 如何从 QLineEdit() 获取 int?

    所以这是我的代码 我尝试了很多方法来更改 QLineEdit 的输入 但没有任何效果 我唯一得到的是 类型错误 QLineEdit 和 QLineEdit 实例之间不支持 gt from matplotlib import pyplot i