Python can';t更改Pyqt5中qtextedit的Background边框,有什么建议吗?

Python can';t更改Pyqt5中qtextedit的Background边框,有什么建议吗?,python,python-3.x,pyqt5,Python,Python 3.x,Pyqt5,我无法更改文本的背景形状。我是否有可能或者应该尝试另一种方法来解决这个问题。谢谢这就是我目前所拥有的。我试图在qtextedit中将broder radius添加到html中,但无论何时尝试,QtCreator都不接受我所做的操作,并将代码重置为我现在共享的当前html font = QtGui.QFont() font.setFamily("MS Shell Dlg 2") font.setPointSize(8) font.setStrikeOut(False) self

我无法更改文本的背景形状。我是否有可能或者应该尝试另一种方法来解决这个问题。谢谢这就是我目前所拥有的。我试图在qtextedit中将broder radius添加到html中,但无论何时尝试,QtCreator都不接受我所做的操作,并将代码重置为我现在共享的当前html

font = QtGui.QFont()
font.setFamily("MS Shell Dlg 2")
font.setPointSize(8)
font.setStrikeOut(False)
self.ui.textEdit.setTextBackgroundColor(QtGui.QColor(143,188,143))
self.ui.textEdit.setAlignment(QtCore.Qt.AlignRight)
self.ui.textEdit.append("Here is the background i want to change. Iwant it to be round instead of a corner.")
self.ui.textEdit.setLineWrapMode(self.ui.textEdit_2.LineWrapMode(3))        
self.ui.textEdit.setLineWrapColumnOrWidth(40)
self.ui.textEdit.setWordWrapMode(1)
self.ui.textEdit.append("")
self.ui.textEdit.setFont(font)



self.textEdit_2.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Mit der Nutzung Des Chatbots stimmen Sie der Nutzung unserer AGB zu.</p></body></html>"))
font=QtGui.QFont()
font.setFamily(“MS Shell Dlg 2”)
font.setPointSize(8)
font.SetTrikeout(假)
self.ui.textEdit.setTextBackgroundColor(QtGui.QColor(143188143))
self.ui.textEdit.setAlignment(QtCore.Qt.AlignRight)
self.ui.textEdit.append(“这是我想改变的背景,我希望它是圆形的,而不是角形的。”)
self.ui.textEdit.setLineWrapMode(self.ui.textEdit_2.LineWrapMode(3))
self.ui.textEdit.setLineWrapColumnOrWidth(40)
self.ui.textEdit.setWordWrapMode(1)
self.ui.textEdit.append(“”)
self.ui.textEdit.setFont(字体)
self.textEdit_2.setHtml(_translate(“主窗口”),“\n”
“\n”
p,li{空白:预换行;}\n
“\n”
“

我添加了Whatsapp的屏幕截图。正如你所看到的,文字背后是一个特定的背景颜色和形状。因此,有可能区分发送方和接收方。在我的代码中,我可以添加颜色,但无法专门化形状

以下是我试图运行的全部代码。由于任何原因,它没有显示纯文本,这给了我一个错误:

QPainter::setPen: Painter not active
QPainter::setBrush: Painter not active
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::setPen: Painter not active
QPainter::setBrush: Painter not active
    

    # -*- coding: utf-8 -*-
    import sys, random
    from PyQt5 import QtWidgets, QtGui, QtCore
    from untitled3.mainwindow import Ui_MainWindow
    import json
    import requests

    app = QtWidgets.QApplication(sys.argv)

    class MainWindow(QtWidgets.QMainWindow):
        def __init__(self, parent = None):              
            super().__init__(parent)
            self.ui = Ui_MainWindow()
            self.ui.setupUi(self)
            #self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
            #self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
            self.willkommen()
        

    def willkommen(self, parent = None):
        font = QtGui.QFont()
        font.setFamily("MS Shell Dlg 2")
        font.setPointSize(8)
        font.setStrikeOut(False)
        self.ui.textEdit.setLineWrapMode(self.ui.textEdit.LineWrapMode(3))        
        self.ui.textEdit.setLineWrapColumnOrWidth(40)
        self.ui.textEdit.setWordWrapMode(1)
        self.ui.textEdit.setFont(font)
        self.ui.textEdit.setPlainText("Willkommen. Ich bin Evossistant und beantworte Ihre Fragen.\
Bitte lesen Sie die AGB, bevor Sie den Chatbot nutzen.")
        self.ui.textEdit.append("")
        self.ui.textEdit.setAlignment(QtCore.Qt.AlignRight)
        self.ui.lineEdit.returnPressed.connect(self.ui.pushButton.click)
        self.ui.pushButton.clicked.connect(self.nutzereingabe)
        self.ui.textEdit.moveCursor(QtGui.QTextCursor.End)
        self.ui.textEdit.paintEvent = self.paintEvent(None)
        

    def paintEvent(self, event):        
        painter = QtGui.QPainter(self.ui.textEdit.viewport())    
        pen = QtGui.QPen(QtGui.QColor(143, 188, 143, 50))
        pen.setStyle(QtCore.Qt.SolidLine)
        pen.setCapStyle(QtCore.Qt.RoundCap)
        brush = QtGui.QBrush(QtGui.QColor(143, 188, 143, 50))
        painter.setPen(pen)
        painter.setBrush(brush)
        painter.setRenderHint(QtGui.QPainter.Antialiasing)
        doc = self.ui.textEdit.document()
        margin = doc.documentMargin()
        rightAlignmentStart = self.ui.textEdit.size().width()
        natruralTextWidth = 0
        unitedBlockRect = QtCore.QRectF()
        for b in range(doc.blockCount()):
            block = doc.findBlockByNumber(b)
            blockRect = doc.documentLayout().blockBoundingRect(block)
            layout = block.layout()           
            lineRect = QtCore.QRectF()
            for k in range(layout.lineCount()):
                line = layout.lineAt(k)
                linerect = line.rect()
                naturalTextWidth = max(line.naturalTextWidth(), natruralTextWidth)
                #if self.ui.textEdit.alignment() == QtCore.Qt.AlignRight:         
                rightAlignmentStart = min(rightAlignmentStart, self.ui.textEdit.size().width() - naturalTextWidth - margin) 
                lineRect = lineRect.united(linerect)
            unitedBlockRect = blockRect.united(lineRect)    
        unitedBlockRect.setX(rightAlignmentStart - 20)       
        #I think it is better you keep a extra width.
        unitedBlockRect.setWidth(unitedBlockRect.width() )
        painter.drawRoundedRect(unitedBlockRect, 10, 10)        
        #return QtWidgets.QTextEdit.paintEvent(self, event)

    
    def nutzereingabe(self):
        text = self.ui.lineEdit.text()
        self.ui.lineEdit.clear()
        #self.ui.textEdit.setTextBackgroundColor(QtGui.QColor(176, 224, 230))
        self.ui.textEdit.setAlignment(QtCore.Qt.AlignLeft)
        self.ui.textEdit.append(text)
        self.ui.textEdit.append("")
        Dict_to_send = {"sender": "user_name", "message": text}
        print(Dict_to_send)
        self.request(Dict_to_send)

    
    def request(self,Dict_to_send):
    
        Url = "http://127.0.0.1:5005/webhooks/rest/webhook"
        r = requests.post(Url, json = Dict_to_send)
        print(r.text)
        b = r.text       
        if "text" in b:
            a = (b.strip('"]}').split(":")[2])
            message = a.replace('"', "")
            self.botausgabe(message)
        else:
            message = "keine Antwort"
            self.botausgabe(message)

    def botausgabe(self, message):       
        #self.ui.textEdit.setTextBackgroundColor(QtGui.QColor(143,188,143))
        self.ui.textEdit.setAlignment(QtCore.Qt.AlignRight)
        self.ui.textEdit.append(message)
        self.ui.textEdit.append("")
       
window = MainWindow()
window.show()
sys.exit(app.exec_())

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'C:/Users/Polat/Desktop/ChatGUI/untitled3\mainwindow.ui'
#
# Created by: PyQt5 UI code generator 5.15.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setWindowModality(QtCore.Qt.NonModal)
        MainWindow.setEnabled(True)
        MainWindow.resize(500, 600)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setMinimumSize(QtCore.QSize(300, 300))
        MainWindow.setMaximumSize(QtCore.QSize(700, 16777215))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(14)
        font.setStrikeOut(False)
        MainWindow.setFont(font)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("../../Desktop/ChatbotProgrammierung/evocenta.jpg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        MainWindow.setWindowOpacity(255.0)
        MainWindow.setAutoFillBackground(False)
        MainWindow.setStyleSheet("QMainWindow {    \n"
"    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 255), stop:1 rgba(255, 255, 255, 200));\n"
"}\n"
"\n"
"QTabWidget {    \n"
"    \n"
"    border:None;\n"
"}\n"
"\n"
"QTabWidget::pane {  \n"
"border: 0;    \n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"QWidget {    \n"
"background-color: qlineargradient(spread:reflect, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 100), stop:0.88 rgba(255, 255, 255, 255), stop:0.92 rgba(75, 111, 180, 150), stop:0.96 rgba(148, 27, 128, 150), stop:1 rgba(231, 170, 0, 150));\n"
"\n"
"    Border:none;\n"
"    \n"
"}\n"
"QFrame{    \n"
"    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 255), stop:1 rgba(255, 255, 255, 255));\n"
"    Border-radius: 10px;\n"
"}\n"
"QPushButton{\n"
"Border-radius: 10px;}\n"
"QLineEdit{\n"
"Border-radius: 10px;}")
        MainWindow.setInputMethodHints(QtCore.Qt.ImhNone)
        MainWindow.setIconSize(QtCore.QSize(30, 30))
        MainWindow.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        MainWindow.setDockOptions(QtWidgets.QMainWindow.AllowTabbedDocks|QtWidgets.QMainWindow.AnimatedDocks)
        self.widget = QtWidgets.QWidget(MainWindow)
        self.widget.setEnabled(True)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth())
        self.widget.setSizePolicy(sizePolicy)
        self.widget.setMinimumSize(QtCore.QSize(300, 300))
        self.widget.setStyleSheet("")
        self.widget.setObjectName("widget")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.widget)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.frame = QtWidgets.QFrame(self.widget)
        self.frame.setEnabled(True)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
        self.frame.setSizePolicy(sizePolicy)
        self.frame.setAutoFillBackground(False)
        self.frame.setStyleSheet("")
        self.frame.setInputMethodHints(QtCore.Qt.ImhNone)
        self.frame.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.frame.setObjectName("frame")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.frame)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.tabWidget = QtWidgets.QTabWidget(self.frame)
        self.tabWidget.setAutoFillBackground(False)
        self.tabWidget.setStyleSheet("QTabBar::tab{    \n"
"background: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 255), stop:1 rgba(255, 255, 255, 255));\n"
"    border-top-left-radius: 5px;\n"
"    border-top-right-radius: 5px;\n"
"    border-bottom-left-radius: 5px;\n"
"    border-bottom-right-radius: 5px;\n"
"    min-width: 14ex;\n"
"    padding: 2px;\n"
"}\n"
"\n"
"QTabBar::tab:selected, QTabBar::tab:hover {\n"
"    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\n"
"                                stop: 0 #fafafa, stop: 0.4 #f4f4f4,\n"
"                                stop: 0.5 #e7e7e7, stop: 1.0 #fafafa);\n"
"}\n"
"")
        self.tabWidget.setTabPosition(QtWidgets.QTabWidget.North)
        self.tabWidget.setTabShape(QtWidgets.QTabWidget.Rounded)
        self.tabWidget.setElideMode(QtCore.Qt.ElideNone)
        self.tabWidget.setUsesScrollButtons(True)
        self.tabWidget.setTabsClosable(False)
        self.tabWidget.setMovable(False)
        self.tabWidget.setTabBarAutoHide(False)
        self.tabWidget.setObjectName("tabWidget")
        self.tab = QtWidgets.QWidget()
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.tab.sizePolicy().hasHeightForWidth())
        self.tab.setSizePolicy(sizePolicy)
        self.tab.setAutoFillBackground(False)
        self.tab.setStyleSheet("QWidget{    \n"
"    background-color: rgba(255, 255, 255, 50);\n"
"    Border-radius: 10px;\n"
"}")
        self.tab.setObjectName("tab")
        self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.tab)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.frame_chat1 = QtWidgets.QFrame(self.tab)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.frame_chat1.sizePolicy().hasHeightForWidth())
        self.frame_chat1.setSizePolicy(sizePolicy)
        self.frame_chat1.setStyleSheet("QFrame{    \n"
"    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 255), stop:1 rgba(255, 255, 255, 255));\n"
"    Border-radius: 10px;\n"
"}")
        self.frame_chat1.setFrameShape(QtWidgets.QFrame.Box)
        self.frame_chat1.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_chat1.setObjectName("frame_chat1")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.frame_chat1)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.textEdit = QtWidgets.QTextEdit(self.frame_chat1)
        self.textEdit.setStyleSheet("QTextEdit {\n"
"    background-color: rgba(255, 255, 255, 100);\n"
"    border-color: rgb(105, 210, 255);\n"
"    border-radius: 10px;\n"
"}\n"
"")
        self.textEdit.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.textEdit.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustIgnored)
        self.textEdit.setReadOnly(True)
        self.textEdit.setMarkdown("")
        self.textEdit.setObjectName("textEdit")
        self.horizontalLayout_2.addWidget(self.textEdit)
        self.verticalLayout_2.addWidget(self.frame_chat1)
        self.frame_chat2 = QtWidgets.QFrame(self.tab)
        self.frame_chat2.setMinimumSize(QtCore.QSize(0, 0))
        self.frame_chat2.setMaximumSize(QtCore.QSize(16777215, 50))
        self.frame_chat2.setStyleSheet("QFrame{    \n"
"    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 255), stop:1 rgba(255, 255, 255, 255));\n"
"    Border-radius: 10px;\n"
"}\n"
"\n"
"")
        self.frame_chat2.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame_chat2.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_chat2.setObjectName("frame_chat2")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.frame_chat2)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.lineEdit = QtWidgets.QLineEdit(self.frame_chat2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.lineEdit.sizePolicy().hasHeightForWidth())
        self.lineEdit.setSizePolicy(sizePolicy)
        self.lineEdit.setMinimumSize(QtCore.QSize(0, 30))
        self.lineEdit.setStyleSheet("QLineEdit {\n"
"    background-color: rgba(255, 255, 255, 100);\n"
"    \n"
"}")
        self.lineEdit.setObjectName("lineEdit")
        self.horizontalLayout.addWidget(self.lineEdit)
        self.pushButton = QtWidgets.QPushButton(self.frame_chat2)
        self.pushButton.setMinimumSize(QtCore.QSize(70, 30))
        self.pushButton.setStyleSheet("QPushButton {\n"
"    background-color: rgba(115, 174, 76, 100);\n"
"    \n"
"}")
        self.pushButton.setObjectName("pushButton")
        self.horizontalLayout.addWidget(self.pushButton)
        self.verticalLayout_2.addWidget(self.frame_chat2)
        self.verticalLayout_5.addLayout(self.verticalLayout_2)
        self.tabWidget.addTab(self.tab, "")
        self.tab_2 = QtWidgets.QWidget()
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.tab_2.sizePolicy().hasHeightForWidth())
        self.tab_2.setSizePolicy(sizePolicy)
        self.tab_2.setAutoFillBackground(False)
        self.tab_2.setStyleSheet("QWidget{    \n"
"    background-color: rgba(255, 255, 255, 50);\n"
"    Border-radius: 10px;\n"
"}")
        self.tab_2.setObjectName("tab_2")
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.tab_2)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.frame_agb = QtWidgets.QFrame(self.tab_2)
        self.frame_agb.setStyleSheet("QFrame{    \n"
"    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 255), stop:1 rgba(255, 255, 255, 255));\n"
"    Border-radius: 10px;\n"
"}")
        self.frame_agb.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame_agb.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_agb.setObjectName("frame_agb")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.frame_agb)
        self.verticalLayout.setObjectName("verticalLayout")
        self.textEdit_2 = QtWidgets.QTextEdit(self.frame_agb)
        self.textEdit_2.setAutoFillBackground(False)
        self.textEdit_2.setStyleSheet("QTextEdit {\n"
"    background-color: rgba(255, 255, 255, 100);\n"
"    border-color: rgb(105, 210, 255);\n"
"    border-radius: 10px;\n"
"}")
        self.textEdit_2.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.textEdit_2.setReadOnly(True)
        self.textEdit_2.setObjectName("textEdit_2")
        self.verticalLayout.addWidget(self.textEdit_2)
        self.horizontalLayout_5.addWidget(self.frame_agb)
        self.tabWidget.addTab(self.tab_2, "")
        self.horizontalLayout_4.addWidget(self.tabWidget)
        self.horizontalLayout_3.addWidget(self.frame)
        MainWindow.setCentralWidget(self.widget)

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Evosisstant - Your Digital Guide"))
        self.textEdit.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:400; font-style:normal;\">\n"
"<h1 style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:xx-large; font-weight:600;\"><br /></h1></body></html>"))
        self.lineEdit.setPlaceholderText(_translate("MainWindow", "Schreiben Sie hier..."))
        self.pushButton.setText(_translate("MainWindow", "Senden"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Chat"))
        self.textEdit_2.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Mit der Nutzung Des Chatbots stimmen Sie der Nutzung unserer AGB zu.</p></body></html>"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Nutzungsbedingungen"))
QPainter::setPen:画师未激活
QPaint::setBrush:绘制程序未激活
QWidget::paintEngine:不应再被调用
QPaint::begin:绘制设备返回的引擎==0,类型:1
QPaint::setPen:画师未激活
QPaint::setBrush:绘制程序未激活
#-*-编码:utf-8-*-
导入系统,随机
从PyQt5导入QtWidgets、QtGui、QtCore
从untitled3.main窗口导入Ui\u main窗口
导入json
导入请求
app=qtwidts.QApplication(sys.argv)
类MainWindow(QtWidgets.QMainWindow):
def uuu init uuu(self,parent=None):
super()。\uuuu init\uuuu(父级)
self.ui=ui\u主窗口()
self.ui.setupUi(self)
#self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
#self.setAttribute(QtCore.Qt.WA_半透明背景)
任性
def willkommen(自我,父母=无):
font=QtGui.QFont()
font.setFamily(“MS Shell Dlg 2”)
font.setPointSize(8)
font.SetTrikeout(假)
self.ui.textEdit.setLineWrapMode(self.ui.textEdit.LineWrapMode(3))
self.ui.textEdit.setLineWrapColumnOrWidth(40)
self.ui.textEdit.setWordWrapMode(1)
self.ui.textEdit.setFont(字体)
self.ui.textEdit.setPlainText(“Willkommen.Ich bin evosistant and beantworte iher Fragen\
“我是阿格,我是查博特·纳森。”)
self.ui.textEdit.append(“”)
self.ui.textEdit.setAlignment(QtCore.Qt.AlignRight)
self.ui.lineEdit.returnPressed.connect(self.ui.button.click)
self.ui.butdown.clicked.connect(self.nutzereingabe)
self.ui.textEdit.moveCursor(QtGui.QTextCursor.End)
self.ui.textEdit.paintEvent=self.paintEvent(无)
def paintEvent(自身,事件):
painter=QtGui.QPainter(self.ui.textEdit.viewport())
pen=QtGui.QPen(QtGui.QColor(14318814350))
笔设置样式(QtCore.Qt.SolidLine)
pen.setCapStyle(QtCore.Qt.RoundCap)
brush=QtGui.QBrush(QtGui.QColor(14318814350))
画师:画笔
画师:画笔(画笔)
painter.setRenderHint(QtGui.QPainter.Antialiasing)
doc=self.ui.textEdit.document()
保证金=单据单据保证金()
rightAlignmentStart=self.ui.textEdit.size().width()
NaturalTextWidth=0
unitedBlockRect=QtCore.QRectF()
对于范围内的b(doc.blockCount()):
block=文件findBlockByNumber(b)
blockRect=doc.documentLayout().blockBoundingRect(块)
layout=block.layout()
lineRect=QtCore.QRectF()
对于范围内的k(layout.lineCount()):
直线=布局。直线(k)
linerect=line.rect()
naturalTextWidth=max(line.naturalTextWidth(),naturalTextWidth)
#如果self.ui.textEdit.alignment()==QtCore.Qt.AlignRight:
rightAlignmentStart=min(rightAlignmentStart,self.ui.textEdit.size().width()-naturalTextWidth-margin)
lineRect=lineRect.united(lineRect)
unitedBlockRect=blockRect.united(lineRect)
unitedBlockRect.setX(rightAlignmentStart-20)
#我认为你最好多留一点宽度。
unitedBlockRect.setWidth(unitedBlockRect.width())
油漆工.drawRoundedRect(unitedBlockRect,10,10)
#返回QtWidgets.QTextEdit.paintEvent(self,event)
def nutzereingabe(自):
text=self.ui.lineEdit.text()
self.ui.lineEdit.clear()
#self.ui.textEdit.setTextBackgroundColor(QtGui.QColor(176224230))
self.ui.textEdit.setAlignment(QtCore.Qt.AlignLeft)
self.ui.textEdit.append(文本)
self.ui.textEdit.append(“”)
Dict_to_send={“发件人”:“用户名”,“消息”:text}
打印(口述发送)
自我请求(口述发送)
def请求(自我、口述发送):
Url=”http://127.0.0.1:5005/webhooks/rest/webhook"
r=requests.post(Url,json=Dict\u to\u send)
打印(右文本)
b=r.text
如果b中的“文本”:
a=(b.strip(“]}”).split(“:”[2])
message=a.replace(“,”)
self.botausgabe(消息)
其他:
# -*- coding: utf-8 -*-
import sys, random
from PyQt5 import QtWidgets, QtGui, QtCore
import json
import requests




#we can override if this setting is !
class TextEdit(QtWidgets.QTextEdit):
    def __init__(self, parent=None):
        super(TextEdit, self).__init__(parent)
    def paintEvent(self, event):
        painter = QtGui.QPainter(self.viewport())    
        pen = QtGui.QPen(QtGui.QColor(143, 188, 143, 255))
        pen.setStyle(QtCore.Qt.SolidLine)
        pen.setCapStyle(QtCore.Qt.RoundCap)
        brush = QtGui.QBrush(QtGui.QColor(143, 188, 143, 255))
        painter.setPen(pen)
        painter.setBrush(brush)
        painter.setRenderHint(QtGui.QPainter.Antialiasing)
        doc = self.document()
        margin = doc.documentMargin()
        rightAlignmentStart = self.size().width()
        natruralTextWidth = 0
        unitedBlockRect = QtCore.QRectF()
        for b in range(doc.blockCount()):
            block = doc.findBlockByNumber(b)
            blockRect = doc.documentLayout().blockBoundingRect(block)
            layout = block.layout()           
            lineRect = QtCore.QRectF()
            for k in range(layout.lineCount()):
                line = layout.lineAt(k)
                linerect = line.rect()
                naturalTextWidth = max(line.naturalTextWidth(), natruralTextWidth)
                #if self.ui.textEdit.alignment() == QtCore.Qt.AlignRight:         
                rightAlignmentStart = min(rightAlignmentStart, self.size().width() - naturalTextWidth - margin) 
                lineRect = lineRect.united(linerect)
            unitedBlockRect = blockRect.united(lineRect)    
        unitedBlockRect.setX(rightAlignmentStart - 20)       
        #I think it is better you keep a extra width.
        unitedBlockRect.setWidth(unitedBlockRect.width() )
        painter.drawRoundedRect(unitedBlockRect, 10, 10)    
        return QtWidgets.QTextEdit.paintEvent(self, event)
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setWindowModality(QtCore.Qt.NonModal)
        MainWindow.setEnabled(True)
        MainWindow.resize(500, 600)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setMinimumSize(QtCore.QSize(300, 300))
        MainWindow.setMaximumSize(QtCore.QSize(700, 16777215))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(14)
        font.setStrikeOut(False)
        MainWindow.setFont(font)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("../../Desktop/ChatbotProgrammierung/evocenta.jpg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        MainWindow.setWindowOpacity(255.0)
        MainWindow.setAutoFillBackground(False)
        MainWindow.setStyleSheet("QMainWindow {    \n"
"    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 255), stop:1 rgba(255, 255, 255, 200));\n"
"}\n"
"\n"
"QTabWidget {    \n"
"    \n"
"    border:None;\n"
"}\n"
"\n"
"QTabWidget::pane {  \n"
"border: 0;    \n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"QWidget {    \n"
"background-color: qlineargradient(spread:reflect, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 100), stop:0.88 rgba(255, 255, 255, 255), stop:0.92 rgba(75, 111, 180, 150), stop:0.96 rgba(148, 27, 128, 150), stop:1 rgba(231, 170, 0, 150));\n"
"\n"
"    Border:none;\n"
"    \n"
"}\n"
"QFrame{    \n"
"    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 255), stop:1 rgba(255, 255, 255, 255));\n"
"    Border-radius: 10px;\n"
"}\n"
"QPushButton{\n"
"Border-radius: 10px;}\n"
"QLineEdit{\n"
"Border-radius: 10px;}")
        MainWindow.setInputMethodHints(QtCore.Qt.ImhNone)
        MainWindow.setIconSize(QtCore.QSize(30, 30))
        MainWindow.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        MainWindow.setDockOptions(QtWidgets.QMainWindow.AllowTabbedDocks|QtWidgets.QMainWindow.AnimatedDocks)
        self.widget = QtWidgets.QWidget(MainWindow)
        self.widget.setEnabled(True)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth())
        self.widget.setSizePolicy(sizePolicy)
        self.widget.setMinimumSize(QtCore.QSize(300, 300))
        self.widget.setStyleSheet("")
        self.widget.setObjectName("widget")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.widget)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.frame = QtWidgets.QFrame(self.widget)
        self.frame.setEnabled(True)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
        self.frame.setSizePolicy(sizePolicy)
        self.frame.setAutoFillBackground(False)
        self.frame.setStyleSheet("")
        self.frame.setInputMethodHints(QtCore.Qt.ImhNone)
        self.frame.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.frame.setObjectName("frame")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.frame)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.tabWidget = QtWidgets.QTabWidget(self.frame)
        self.tabWidget.setAutoFillBackground(False)
        self.tabWidget.setStyleSheet("QTabBar::tab{    \n"
"background: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 255), stop:1 rgba(255, 255, 255, 255));\n"
"    border-top-left-radius: 5px;\n"
"    border-top-right-radius: 5px;\n"
"    border-bottom-left-radius: 5px;\n"
"    border-bottom-right-radius: 5px;\n"
"    min-width: 14ex;\n"
"    padding: 2px;\n"
"}\n"
"\n"
"QTabBar::tab:selected, QTabBar::tab:hover {\n"
"    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\n"
"                                stop: 0 #fafafa, stop: 0.4 #f4f4f4,\n"
"                                stop: 0.5 #e7e7e7, stop: 1.0 #fafafa);\n"
"}\n"
"")
        self.tabWidget.setTabPosition(QtWidgets.QTabWidget.North)
        self.tabWidget.setTabShape(QtWidgets.QTabWidget.Rounded)
        self.tabWidget.setElideMode(QtCore.Qt.ElideNone)
        self.tabWidget.setUsesScrollButtons(True)
        self.tabWidget.setTabsClosable(False)
        self.tabWidget.setMovable(False)
        self.tabWidget.setTabBarAutoHide(False)
        self.tabWidget.setObjectName("tabWidget")
        self.tab = QtWidgets.QWidget()
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.tab.sizePolicy().hasHeightForWidth())
        self.tab.setSizePolicy(sizePolicy)
        self.tab.setAutoFillBackground(False)
        self.tab.setStyleSheet("QWidget{    \n"
"    background-color: rgba(255, 255, 255, 50);\n"
"    Border-radius: 10px;\n"
"}")
        self.tab.setObjectName("tab")
        self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.tab)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.frame_chat1 = QtWidgets.QFrame(self.tab)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.frame_chat1.sizePolicy().hasHeightForWidth())
        self.frame_chat1.setSizePolicy(sizePolicy)
        self.frame_chat1.setStyleSheet("QFrame{    \n"
"    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 255), stop:1 rgba(255, 255, 255, 255));\n"
"    Border-radius: 10px;\n"
"}")
        self.frame_chat1.setFrameShape(QtWidgets.QFrame.Box)
        self.frame_chat1.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_chat1.setObjectName("frame_chat1")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.frame_chat1)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.textEdit = TextEdit(self.frame_chat1)
        self.textEdit.setStyleSheet("QTextEdit {\n"
"    background-color: rgba(255, 255, 255, 100);\n"
"    border-color: rgb(105, 210, 255);\n"
"    border-radius: 10px;\n"
"}\n"
"")
        self.textEdit.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.textEdit.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustIgnored)
        self.textEdit.setReadOnly(True)
        self.textEdit.setMarkdown("")
        self.textEdit.setObjectName("textEdit")
        self.horizontalLayout_2.addWidget(self.textEdit)
        self.verticalLayout_2.addWidget(self.frame_chat1)
        self.frame_chat2 = QtWidgets.QFrame(self.tab)
        self.frame_chat2.setMinimumSize(QtCore.QSize(0, 0))
        self.frame_chat2.setMaximumSize(QtCore.QSize(16777215, 50))
        self.frame_chat2.setStyleSheet("QFrame{    \n"
"    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 255), stop:1 rgba(255, 255, 255, 255));\n"
"    Border-radius: 10px;\n"
"}\n"
"\n"
"")
        self.frame_chat2.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame_chat2.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_chat2.setObjectName("frame_chat2")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.frame_chat2)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.lineEdit = QtWidgets.QLineEdit(self.frame_chat2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.lineEdit.sizePolicy().hasHeightForWidth())
        self.lineEdit.setSizePolicy(sizePolicy)
        self.lineEdit.setMinimumSize(QtCore.QSize(0, 30))
        self.lineEdit.setStyleSheet("QLineEdit {\n"
"    background-color: rgba(255, 255, 255, 100);\n"
"    \n"
"}")
        self.lineEdit.setObjectName("lineEdit")
        self.horizontalLayout.addWidget(self.lineEdit)
        self.pushButton = QtWidgets.QPushButton(self.frame_chat2)
        self.pushButton.setMinimumSize(QtCore.QSize(70, 30))
        self.pushButton.setStyleSheet("QPushButton {\n"
"    background-color: rgba(115, 174, 76, 100);\n"
"    \n"
"}")
        self.pushButton.setObjectName("pushButton")
        self.horizontalLayout.addWidget(self.pushButton)
        self.verticalLayout_2.addWidget(self.frame_chat2)
        self.verticalLayout_5.addLayout(self.verticalLayout_2)
        self.tabWidget.addTab(self.tab, "")
        self.tab_2 = QtWidgets.QWidget()
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.tab_2.sizePolicy().hasHeightForWidth())
        self.tab_2.setSizePolicy(sizePolicy)
        self.tab_2.setAutoFillBackground(False)
        self.tab_2.setStyleSheet("QWidget{    \n"
"    background-color: rgba(255, 255, 255, 50);\n"
"    Border-radius: 10px;\n"
"}")
        self.tab_2.setObjectName("tab_2")
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.tab_2)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.frame_agb = QtWidgets.QFrame(self.tab_2)
        self.frame_agb.setStyleSheet("QFrame{    \n"
"    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(115, 174, 76, 255), stop:1 rgba(255, 255, 255, 255));\n"
"    Border-radius: 10px;\n"
"}")
        self.frame_agb.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame_agb.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_agb.setObjectName("frame_agb")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.frame_agb)
        self.verticalLayout.setObjectName("verticalLayout")
        self.textEdit_2 = QtWidgets.QTextEdit(self.frame_agb)
        self.textEdit_2.setAutoFillBackground(False)
        self.textEdit_2.setStyleSheet("QTextEdit {\n"
"    background-color: rgba(255, 255, 255, 100);\n"
"    border-color: rgb(105, 210, 255);\n"
"    border-radius: 10px;\n"
"}")
        self.textEdit_2.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.textEdit_2.setReadOnly(True)
        self.textEdit_2.setObjectName("textEdit_2")
        self.verticalLayout.addWidget(self.textEdit_2)
        self.horizontalLayout_5.addWidget(self.frame_agb)
        self.tabWidget.addTab(self.tab_2, "")
        self.horizontalLayout_4.addWidget(self.tabWidget)
        self.horizontalLayout_3.addWidget(self.frame)
        MainWindow.setCentralWidget(self.widget)

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Evosisstant - Your Digital Guide"))
        self.textEdit.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:400; font-style:normal;\">\n"
"<h1 style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:xx-large; font-weight:600;\"><br /></h1></body></html>"))
        self.lineEdit.setPlaceholderText(_translate("MainWindow", "Schreiben Sie hier..."))
        self.pushButton.setText(_translate("MainWindow", "Senden"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Chat"))
        self.textEdit_2.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Mit der Nutzung Des Chatbots stimmen Sie der Nutzung unserer AGB zu.</p></body></html>"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Nutzungsbedingungen"))
        
class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent = None):              
        super().__init__(parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        #self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        #self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
        self.willkommen()
        

    def willkommen(self, parent = None):
        font = QtGui.QFont()
        font.setFamily("MS Shell Dlg 2")
        font.setPointSize(8)
        font.setStrikeOut(False)
        self.ui.textEdit.setLineWrapMode(self.ui.textEdit.LineWrapMode(3))        
        self.ui.textEdit.setLineWrapColumnOrWidth(40)
        self.ui.textEdit.setWordWrapMode(1)
        self.ui.textEdit.setFont(font)
        self.ui.textEdit.setPlainText("Willkommen. Ich bin Evossistant und beantworte Ihre Fragen.\
    Bitte lesen Sie die AGB, bevor Sie den Chatbot nutzen.")
        self.ui.textEdit.append("")
        self.ui.textEdit.setAlignment(QtCore.Qt.AlignRight)
        self.ui.lineEdit.returnPressed.connect(self.ui.pushButton.click)
        self.ui.pushButton.clicked.connect(self.nutzereingabe)
        self.ui.textEdit.moveCursor(QtGui.QTextCursor.End)
    
        
 
    
    def nutzereingabe(self):
        text = self.ui.lineEdit.text()
        self.ui.lineEdit.clear()
        #self.ui.textEdit.setTextBackgroundColor(QtGui.QColor(176, 224, 230))
        self.ui.textEdit.setAlignment(QtCore.Qt.AlignLeft)
        self.ui.textEdit.append(text)
        self.ui.textEdit.append("")
        Dict_to_send = {"sender": "user_name", "message": text}
        print(Dict_to_send)
        self.request(Dict_to_send)
    
    
    def request(self,Dict_to_send):
    
        Url = "http://127.0.0.1:5005/webhooks/rest/webhook"
        r = requests.post(Url, json = Dict_to_send)
        print(r.text)
        b = r.text       
        if "text" in b:
            a = (b.strip('"]}').split(":")[2])
            message = a.replace('"', "")
            self.botausgabe(message)
        else:
            message = "keine Antwort"
            self.botausgabe(message)
    
    def botausgabe(self, message):       
        #self.ui.textEdit.setTextBackgroundColor(QtGui.QColor(143,188,143))
        self.ui.textEdit.setAlignment(QtCore.Qt.AlignRight)
        self.ui.textEdit.append(message)
        self.ui.textEdit.append("")

def main():
    app = QtWidgets.QApplication(sys.argv) if QtWidgets.QApplication.instance() is None else QtWidgets.QApplication.instance()
    mainwindow = MainWindow()
    mainwindow.show()
    sys.exit(app.exec_())
if __name__ == "__main__":
    main()
#it may be necessary to call repaint() at an appropriate time.
def paintEvent(self, event):        
        painter = QtGui.QPainter(self.viewport())    
        pen = QtGui.QPen(QtGui.QColor(143, 188, 143))
        pen.setStyle(QtCore.Qt.SolidLine)
        pen.setCapStyle(QtCore.Qt.RoundCap)
        brush = QtGui.QBrush(QtGui.QColor(143, 188, 143))
        painter.setPen(pen)
        painter.setBrush(brush)
        painter.setRenderHint(QtGui.QPainter.Antialiasing)
        doc = self.document()
        margin = doc.documentMargin()
        rightAlignmentStart = self.size().width()
        natruralTextWidth = 0
        unitedBlockRect = QtCore.QRectF()
        for b in range(doc.blockCount()):
            block = doc.findBlockByNumber(b)
            blockRect = doc.documentLayout().blockBoundingRect(block)
            layout = block.layout()           
            lineRect = QtCore.QRectF()
            for k in range(layout.lineCount()):
                line = layout.lineAt(k)
                linerect = line.rect()
                naturalTextWidth = max(line.naturalTextWidth(), natruralTextWidth)
                if self.alignment() == QtCore.Qt.AlignRight:         
                    rightAlignmentStart = min(rightAlignmentStart, self.size().width() - naturalTextWidth - margin) 
                lineRect = lineRect.united(linerect)
            unitedBlockRect = blockRect.united(lineRect)    
        unitedBlockRect.setX(rightAlignmentStart - 20)       
        #I think it is better you keep a extra width.
        unitedBlockRect.setWidth(unitedBlockRect.width() )
        painter.drawRoundedRect(unitedBlockRect, 10, 10)        
        return QtWidgets.QTextEdit.paintEvent(self, event)
  # -*- coding: utf-8 -*-
"""
Created on Sat Jan  2 12:26:06 2021

@author: Haru
"""
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class MyEdit(QtWidgets.QTextEdit):
    def __init__(self, parent=None):
        super(MyEdit, self).__init__(parent)
        font = QtGui.QFont()
        font.setFamily("MS Shell Dlg 2")
        font.setPointSize(8)
        font.setStrikeOut(False)
        #You don't use setBackgroundColor()
        self.setLineWrapMode(self.LineWrapMode(3))        
        self.setLineWrapColumnOrWidth(40)
        self.setWordWrapMode(1)
        self.append("")
        self.setFont(font)
        self.setPlainText( "Here is the background i want to change. Iwant it to be round instead of a corner.")
        self.setAlignment(QtCore.Qt.AlignRight)
        
    def paintEvent(self, event):        
        painter = QtGui.QPainter(self.viewport())
        pen = QtGui.QPen(QtGui.QColor(143, 188, 143))
        pen.setStyle(QtCore.Qt.SolidLine)
        pen.setCapStyle(QtCore.Qt.RoundCap)
        brush = QtGui.QBrush(QtGui.QColor(143, 188, 143))
        painter.setPen(pen)
        painter.setBrush(brush)
        painter.setRenderHint(QtGui.QPainter.Antialiasing)
        doc = self.document()
        margin = doc.documentMargin()
        for b in range(doc.blockCount()):
            block = doc.findBlockByNumber(b)
            blockRect = doc.documentLayout().blockBoundingRect(block)
            layout = block.layout()           
            for k in range(layout.lineCount()):
                line = layout.lineAt(k)
                lineRect = line.rect()
                lineRect.setWidth(line.naturalTextWidth())
                lineRect.translate(blockRect.x(), blockRect.y())
                if self.alignment() == QtCore.Qt.AlignRight:                    
                    lineRect.setX(self.size().width() - line.naturalTextWidth() - margin)
                    lineRect.setWidth(line.naturalTextWidth())
                painter.drawRoundedRect(lineRect, 2, 2)  
        return QtWidgets.QTextEdit.paintEvent(self, event)
self.ui.textEdit.installEventFilter(self)

def eventFilter(self, obj, event):
    if event.type() == QtCore.QEvent.Paint:
        if obj is self.ui.textEdit:
            painter = QtGui.QPainter(obj.viewport())
            pen = QtGui.QPen(QtGui.QColor(143, 188, 143))
            pen.setCapStyle(QtCore.Qt.RoundCap)
            brush = QtGui.QBrush(QtGui.QColor(143, 188, 143))
            painter.setPen(pen)
            painter.setBrush(brush)
            painter.setRenderHint(QtGui.QPainter.Antialiasing)
            doc = obj.document()
            margin = doc.documentMargin()
            for b in range(doc.blockCount()):
                block = doc.findBlockByNumber(b)
                blockRect = doc.documentLayout().blockBoundingRect(block)
                layout = block.layout()           
                for k in range(layout.lineCount()):
                    line = layout.lineAt(k)
                    lineRect = line.rect()
                    lineRect.setWidth(line.naturalTextWidth())
                    lineRect.translate(blockRect.x(), blockRect.y())
                    if self.alignment() == QtCore.Qt.AlignRight:                    
                        lineRect.setX(obj.size().width() - line.naturalTextWidth() - margin)
                        lineRect.setWidth(line.naturalTextWidth())
                    painter.drawRoundedRect(lineRect, 2, 2)  
             return True
    return  **ThisClassName**.eventFilter(self, obj, event)