PySide,QTextEdit追加添加空行
问题描述:
我有这个简单的代码:基本上是一个工具来发送一些命令到CMD,并显示在QTextEdit cmd的输出。 基本上,它的工作原理。 我唯一的问题是,每次点击发送(有或没有新命令)时,文本都被追加了,但奇怪的空白行出现在QTextEdit的末尾。即使我清除“控制台”,仍然有这些线。 也许它与我称之为过程的方式有关,因此我不知道需要帮助。PySide,QTextEdit追加添加空行
from PySide.QtCore import *
from PySide.QtGui import *
import sys
class MyWindow(QDialog):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.setWindowTitle("Send to CMD")
self.check1 = QCheckBox("Activate Variable")
self.variable = QLineEdit()
self.finalcommand = QLineEdit()
self.clearCommand = QPushButton("Clear")
self.sendCommand = QPushButton("Send")
self.clearOnSend = QCheckBox("Clear on Send")
self.process = QProcess()
self.console = QTextEdit(self)
layout = QVBoxLayout()
layout.addWidget(self.check1)
layout.addWidget(self.variable)
layout.addWidget(self.finalcommand)
layout.addWidget(self.clearOnSend)
layout.addWidget(self.clearCommand)
layout.addWidget(self.sendCommand)
layout.addWidget(self.console)
self.setLayout(layout)
self.connect(self.check1, SIGNAL("clicked()"), self.appendText)
self.variable.textChanged.connect(self.appendText)
self.clearCommand.clicked.connect(self.Clear)
self.sendCommand.clicked.connect(self.Send)
def appendText(self):
if self.check1.isChecked():
TEXT1 = "Dir" + ' ' + str(self.variable.text())
else:
TEXT1 = ""
self.finalcommand.setText(str(TEXT1))
def Clear(self):
if self.clearCommand.isEnabled():
self.console.clear()
def Send(self):
if self.clearOnSend.isChecked():
self.console.clear()
FCTS = "cmd.exe /c" + " " + str(self.finalcommand.text())
self.process.readyReadStandardOutput.connect(self.readConsole)
self.process.start(FCTS)
if not self.process.waitForStarted(0):
return False
if not self.process.waitForFinished(0):
return False
def readConsole(self):
#self.console.setText(str(self.process.readAllStandardOutput()))
self.console.append(str(self.process.readAllStandardOutput()))
app = QApplication(sys.argv)
form = MyWindow()
form.show()
app.exec_()
答
你可能想使用string.rstrip()函数,而不是string.strip()
+0
也无法正常工作。我认为问题不在于剥离字符,而在于读取和写入过程的方式。 无论如何感谢 – Abe 2013-03-17 11:26:09
答
如果你改变
self.console.append(str(self.process.readAllStandardOutput()))
到
self.console.append(str([self.process.readAllStandardOutput()]))
可以看看发生了什么,希望这可以帮助
也许tr Ÿ 高清readConsole(个体经营): BA = self.process.readAllStandardOutput() QString的S =巴 self.console.append(S) – Saurabh7 2013-03-10 06:54:41
感谢提供帮助但您的解决方案不会返回同样的问题 – Abe 2013-03-10 11:56:15
也许有垃圾值与字符串,尝试使用内置的string.strip()功能 – Saurabh7 2013-03-11 06:57:25