- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码,我尝试了很多方法来更改 QLineEdit 的输入,但没有任何效果,我唯一得到的是
TypeError: '>' not supported between instances of 'QLineEdit' and '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)
。
关于python - 如何从 QLineEdit() 获取 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59778930/
我在配置小部件上有多个 QLineEdit 小部件。 当配置文本更改时,我想存储更新后的值(其中有几个,所以我不想在最后的一个函数调用中传递它们)。 我正在考虑将它们连接到一个插槽或通过 QSigna
我有一个 QLineEdit我已经将图像设置为 QStackedWidget .现在我想更改 QLineEdit 中文本的字体颜色.怎么做? QLineEdit *line1 = new QLineE
我正在尝试编写一个简单的 Qt 程序,该程序在 QLineEdit 中获取文本,并在按下返回键时将其附加到 QTextEdit 对象中。 这是我的程序的代码: #include #include
我有一个QLineEdit,其中包含文本“搜索内容...”。 我希望当 QLineEdit 获得焦点或当光标进入文本内部时,文本被设置为空字符串。 [这有效:我没问题,我使用了 QLineEdit 的
如何在QMenu中将QLineEdit用作菜单项?有解决方案吗? 只是要做这样的事情(请看头像下方的编辑框): 最佳答案 您可以使用QWidgetAction来包含您的QLineEdit。它继承了QA
我引入了一个特定的自定义快捷键,允许从当前文本光标位置开始删除 QLineEdit 中接下来的 10 个字符。但我想让这个不可撤销。不幸的是,QLineEdit 不提供 QTextDocument 或
我有一个带有 QDoubleValidator 的 QLineEdit,调用 QDoubleValidator::setRange 不会验证 QLineEdit top() ) {
如何在 QLineEdit 上设置输入验证器以将其限制为有效的 IP 地址?即 x.x.x.x,其中 x 必须在 0 到 255 之间。并且 x 不能为空 最佳答案 您正在寻找QRegExp和 QVa
如果用户在 QLineEdit 中键入文本并离开 QLineEdit 输入字段,我想执行一些操作。 关于focusInEvent 的解释不多。我正在使用 Python 和 PySide2。但所有信息都
我正在使用 Qt 样式表创建一个自定义 QLineEdit,当它有焦点时,它周围有一个浅蓝色边框。这是样式表: this->setStyleSheet(" QLineEdit { "
我正在尝试制作一个带有行编辑和按钮的小部件。如果单击该按钮,它应该打开一个文件对话框,我可以在其中选择一个文件。文件名应该显示在行编辑中。这是我到目前为止得到的: #include "widget_o
我正在 python 上使用 PyQt5 制作一个登录 GUI 程序,在这个程序中我在此布局上创建了一个键盘。我的问题是,我无法使用我所做的键盘在 QLineEdit 上插入文本。我应该做什么来修复它
我想在某些条件下,不可能编辑 QLineEdit 小部件。理想情况下,它看起来像: QLE_On = QCheckBox("Non-editable?") generic = QLineEdit()
我正在从行编辑中获取用户输入并将其显示在 QMessageBox 上,但由于某种原因它不会显示。我想也许我根本没有从 QLineEdit 获取输入,但是当我尝试在终端上打印它时(顺便说一句,它仍然不会
是否可以在输入时使用 QValidator 设置 QLineEdit 的文本?如果是这样,有人可以插入如何实现这一目标的正确方向吗?谢谢。 最佳答案 您只需覆盖验证方法: from PyQt5 imp
我使用pyqt开发一个对话框,和一个LineEidt有些像下面这样,但我无法从 lineEdit1 获取任何内容: lineEdit1 = QtGui.QLineEdit() lineEdit1.se
我有一个(希望如此)简单的问题: 我创建了一个具有表单 (form.ui) 的新类。在这种形式中,我想构建某些 lineEdits。我想通过编码而不是拖放来做到这一点。我可以想到两种不同的方法来做到这
我想让 QLineEdit 看起来像 QLabel 如果它处于非事件状态则带有粗体文本,如果它像 QLineEdit 如果处于事件状态则具有正常粗细。在我的理解中,“事件”= 当显示文本光标并且用户可
QLineEdit 在 .clear() 或 .setText() 方法上触发信号。因此,每次使用这些方法来阻止 LineEdit 发出信号时,我都需要 .blockSignals(True) 然后是
我使用 QT Designer 绘制了一个 UI,但发现没有参数可让我将 QLineEdit 输入设置为大写。 在网上搜索了一些之后,我只看到了极少数满足我需要的结果,但是都是用 Qt 编码的。例如,
我是一名优秀的程序员,十分优秀!