我想问你如何在QTextEdit或QPlainTextEdit中打印结果, 我从这里和其他一些站点尝试了一些组合,但没有任何效果, 如果有人能帮助我修复它,我会很高兴
那是我的代码:
from PySide2 import QtCore, QtWidgets
from PySide2.QtWidgets import QMainWindow, QWidget, QLabel, QLineEdit,QPlainTextEdit, QTextEdit, QMessageBox, QApplication
from PySide2.QtWidgets import QPushButton
from PySide2.QtCore import QSize
#from PySide2.QtGui import *
import sys
class Cam_Ext(QMainWindow):
def __init__(self, Custom):
QMainWindow.__init__(self, Custom)
self.setMinimumSize(QSize(700, 900))
self.setWindowTitle("Print groupes seletionner")
###btn1
self.btn = QtWidgets.QPushButton('Print groupes' , self)
self.btn.move(180, 100)
self.btn.resize(350, 40)
self.btn.setStyleSheet("background-color: rgb(255, 255, 255); font-family: arial; font-size: 17px; font-weight: bold;")
self.btn.clicked.connect(self.Renommer)
self.line = QPlainTextEdit(self)
self.line.setStyleSheet("font-size: 12px; font-weight: bold; ")
self.line.move(100, 170)
self.line.resize(500, 400)
self.line.setText(self.Renommer)
#self.line.setPlaceholderText(self.Renommer)
self.show()
def Renommer(self):
# -*- coding: utf-8 -*-
import PhotoScan
import os
doc = PhotoScan.app.document
pr_name = doc.path
project_name = os.path.split(pr_name)[-1]
print(project_name)
groups = doc.chunk.camera_groups
# print(groups)
#x = 0
seg = "SEG01"
for group in groups:
# print(group)
if group.selected:
print(project_name, "-",group, "-", seg, ";")
#x += 1
def main():
global doc
doc = PhotoScan.app.document
global app
app = QtWidgets.QApplication.instance()
Custom = app.activeWindow()
dlg = Cam_Ext(Custom)
PhotoScan.app.addMenuItem("Pp/Print groupes seletionner", main)
我必须使用lambda吗?我不知道如何从函数打印结果 在我的文本窗口内,在模式添加下,我想将我的文本保留在其中,并在每次单击QPushButton时在下面添加新内容,请在此窗口中为我提供帮助,我需要更改什么?
如果可以的话,那就是我的印刷品:
2018-08-09 14:29:54 Error: 'PySide2.QtWidgets.QTextEdit.insertPlainText' called with wrong argument types:
2018-08-09 14:29:54 PySide2.QtWidgets.QTextEdit.insertPlainText(PySide2.QtWidgets.QHBoxLayout)
2018-08-09 14:29:54 Supported signatures:
2018-08-09 14:29:54 PySide2.QtWidgets.QTextEdit.insertPlainText(unicode)
答案 0 :(得分:1)
您必须使用appendPlainText()
在循环中添加文本。
class Cam_Ext(QMainWindow):
def __init__(self, Custom):
QMainWindow.__init__(self, Custom)
...
self.btn.clicked.connect(self.Renommer)
self.line = QPlainTextEdit(self)
self.line.setStyleSheet("font-size: 12px; font-weight: bold; ")
self.line.move(100, 170)
self.line.resize(500, 400)
self.show()
def Renommer(self):
...
# uncomment if you want to clean the previous text
# self.line.clear()
for group in groups:
# print(group)
if group.selected:
self.line.appendPlainText("{}-{}-{};".format(project_name, group, seg))