仅在运行应用程序时,我在屏幕上的QPlainTextEdit区域获得了正确的结果:
但是当单击按钮开始模拟
并使用QPlainTextEdit.toPlainText()
恢复输入时,输出无效:
def handle_first_input_text(self):
textEdit = self.textEditWidget1.toPlainText()
print( "%s", textEdit )
此外,当试图从图像中检索Delta
δ时,会抛出此错误:
Traceback (most recent call last):
File "main.py", line 57, in handle_first_input_text
print( "%s", textEdit )
File "F:\Python\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u03b4' in position 11: character maps to <undefined>
如何从QPlainTextEdit
中正确检索输入?这是错误的最小代码,只需点击Start Simulation
并查找控制台输出。
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt5 import QtGui
from PyQt5 import QtWidgets
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
def main():
app = QtWidgets.QApplication(sys.argv)
programWindow = ProgramWindow()
programWindow.show()
sys.exit(app.exec_())
class ProgramWindow(QtWidgets.QMainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
self.setup_main_window()
self.first_input_text()
self.set_window_layout()
def setup_main_window(self):
self.resize( 800, 600 )
self.centralwidget = QWidget()
self.setCentralWidget( self.centralwidget )
def first_input_text(self):
self.textEditWidget1 = QPlainTextEdit( self )
self.startSimulationButton1 = QPushButton( "Start Simulation" )
self.textEditWidget1.document().setPlainText( " # Writing δ some ç é ã õ")
self.startSimulationButton1.clicked.connect( self.handle_first_input_text )
verticalInnerLayout = QVBoxLayout()
verticalInnerLayout.addWidget( self.startSimulationButton1 )
horizontalInnerLayout = QHBoxLayout()
horizontalInnerLayout.addLayout( verticalInnerLayout )
horizontalInnerLayout.addWidget( self.textEditWidget1 )
self.groupBox1 = QGroupBox( "First Group" )
self.groupBox1.setLayout( horizontalInnerLayout )
def set_window_layout(self):
main_vertical_layout = QVBoxLayout( self.centralwidget )
main_vertical_layout.addWidget( self.groupBox1 )
def handle_first_input_text(self):
textEdit = self.textEditWidget1.toPlainText()
print( "%s", textEdit )
if __name__ == "__main__":
main()
此问题与UnicodeEncodeError不同:“charmap”编解码器无法对字符进行编码
此外,下面这些答案都不是这个问题的答案。
为了解决这个问题,我需要添加
.encode("utf-8").decode('cp1252')
不仅如此
.encode("utf-8")
这是固定版本:
def handle_first_input_text(self):
textEdit = self.textEditWidget1.toPlainText().encode("utf-8").decode('cp1252')
print( "%s", textEdit )
完整代码:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt5 import QtGui
from PyQt5 import QtWidgets
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
def main():
app = QtWidgets.QApplication(sys.argv)
programWindow = ProgramWindow()
programWindow.show()
sys.exit(app.exec_())
class ProgramWindow(QtWidgets.QMainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
self.setup_main_window()
self.first_input_text()
self.set_window_layout()
def setup_main_window(self):
self.resize( 800, 600 )
self.centralwidget = QWidget()
self.setCentralWidget( self.centralwidget )
def first_input_text(self):
self.textEditWidget1 = QPlainTextEdit( self )
self.startSimulationButton1 = QPushButton( "Start Simulation" )
self.textEditWidget1.document().setPlainText( " # Writing δ some ç é ã õ")
self.startSimulationButton1.clicked.connect( self.handle_first_input_text )
verticalInnerLayout = QVBoxLayout()
verticalInnerLayout.addWidget( self.startSimulationButton1 )
horizontalInnerLayout = QHBoxLayout()
horizontalInnerLayout.addLayout( verticalInnerLayout )
horizontalInnerLayout.addWidget( self.textEditWidget1 )
self.groupBox1 = QGroupBox( "First Group" )
self.groupBox1.setLayout( horizontalInnerLayout )
def set_window_layout(self):
main_vertical_layout = QVBoxLayout( self.centralwidget )
main_vertical_layout.addWidget( self.groupBox1 )
def handle_first_input_text(self):
textEdit = self.textEditWidget1.toPlainText().encode("utf-8").decode('cp1252')
print( "%s", textEdit )
if __name__ == "__main__":
main()
在handle_first_input_text
函数中:
>
将print("%s",文本编辑)
行更改为print("{0: s}"。格式(文本编辑))
这使用了Python3的。格式
Mini语言。链接到文档
最终代码:
def handle_first_input_text(self):
textEdit = self.textEditWidget1.toPlainText()
print( "{0:s}".format(textEdit))
试试看:
import sys
import os
from PyQt5 import QtGui
from PyQt5 import QtWidgets
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
def main():
app = QtWidgets.QApplication(sys.argv)
programWindow = ProgramWindow()
programWindow.show()
sys.exit(app.exec_())
class ProgramWindow(QtWidgets.QMainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
self.setup_main_window()
self.first_input_text()
self.set_window_layout()
def setup_main_window(self):
self.resize( 800, 600 )
self.centralwidget = QWidget()
self.setCentralWidget( self.centralwidget )
def first_input_text(self):
self.textEditWidget1 = QPlainTextEdit( self )
self.startSimulationButton1 = QPushButton( "Start Simulation" )
self.textEditWidget1.document().setPlainText( " # Writing δ some ç é ã õ")
self.startSimulationButton1.clicked.connect( self.handle_first_input_text )
verticalInnerLayout = QVBoxLayout()
verticalInnerLayout.addWidget( self.startSimulationButton1 )
horizontalInnerLayout = QHBoxLayout()
horizontalInnerLayout.addLayout( verticalInnerLayout )
horizontalInnerLayout.addWidget( self.textEditWidget1 )
self.groupBox1 = QGroupBox( "First Group" )
self.groupBox1.setLayout( horizontalInnerLayout )
def set_window_layout(self):
main_vertical_layout = QVBoxLayout( self.centralwidget )
main_vertical_layout.addWidget( self.groupBox1 )
def handle_first_input_text(self):
textEdit = self.textEditWidget1.toPlainText()
#print( "%s" % textEdit)
os.system('echo ' + textEdit)
if __name__ == "__main__":
main()
问题内容: 在某些情况下,我必须从标记中获取文本,例如- 输入标签中的文本是一些说 但是当我使用时,它什么也不会返回。 无论如何,我可以从标签中获取文本吗? 问题答案: 您可以使用以下任何一种: 让我知道这是否没有帮助。
所以我的问题很简单。 如何从表单中获取用户输入并将其放入变量中? 我想用香草JS和没有库来做这件事。 多谢了。
我发现其他人也有同样的问题,他们的问题通过在InputStreamReader构造函数中指定UTF-8来解决: 以UTF-8形式读取InputStream 这对我不起作用,我也不知道为什么。无论我尝试什么,我总是得到转义的unicode值(斜杠-U+十六进制),而不是实际的语言字符。我在这里做错了什么?提前道谢! 请注意:这不是字体问题。我之所以知道这一点,是因为如果我对同一个文件使用Resour
我对编程比较陌生,尤其是Python。我被要求创建一个for循环,打印用户给出的10个数字。我知道如何接受输入以及如何创建for循环。困扰我的是,在我的程序中,我依靠用户插入10个数字。我如何让程序控制插入多少数字?这是我尝试的:
问题内容: 如何从用户进行pygame打印输入: 我试图让用户键入一些内容,然后pygame将其打印在屏幕上。 这是我当前的程序: 我想要这样,当用户点击Enter时,它将清空屏幕。 帮我! 问题答案: 这是一个示例脚本,可将输入切换到屏幕。它显示了如何在遍历pygame事件队列时修改字符串。每帧都将清除屏幕,并重建名称表面并使其变白。 这是要点版本
我在使用org.apache.commons.io.FileUtils从img目录删除文件时遇到问题。我正在使用以下代码: 实际上,该代码是用来替换img目录中已有的图像文件。我需要删除所有以前存在的文件,名称是n.*,与新文件,例如n.png。如果我试图删除图像文件,我会得到变量成功的false值,并且文件不会被删除。但不包括图像文件,例如*.abc;*.ACD;*.ACDC等被成功删除。这个问
我不知道如何从文件中获取特定的文本行。假设文本文件是: 文本文件(标记)的第二行怎么弄?我只需要读就行了,不是编辑就行了。
我试图在我的项目中做一些设置。我在将文本文件中的值输入JFrame时遇到问题。更具体地说,我有一个JFrame。从这个JFrame中,我打开另一个名为的JFrame,其中是文本文件中带有值“”的JTextField。当我将值更改为“”并点击保存按钮时,它会将文本文件重写为“”并处理JFrame。直到现在一切都很好。 当我想再次打开JFrame时,它用旧值""打开它。但是当我关闭两个JFrames并