关于#python#的问题:或者是我换其他什么模块可以解决这个问题图如下:

问题:目前想使用pyqt,通过控制combobox在plainTextEdi上显示文本,这个已经实现,

现在我单纯地只想在_**_下方加入下滑线,但是plainTextEdi它的font是设置全部下滑线。

如下方的02时,或者是我换其他什么模块可以解决这个问题
图如下:

img


第一个py文件:

import sys
from untitled9 import Ui_MainWindow
import pkgutil
from PyQt5 import QtWidgets
import PyQt5.sip
class mywindow(QtWidgets.QWidget, Ui_MainWindow):  # 这个地方要注意Ui_MainWindow

    def __init__(self):

        super(mywindow, self).__init__()

        self.setupUi(self)

if __name__=="__main__":

    app=QtWidgets.QApplication(sys.argv)

    myshow=mywindow()

    myshow.show()#显示

    sys.exit(app.exec_())



第二个


```python

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setEnabled(True)
        MainWindow.resize(1354, 942)
        font = QtGui.QFont()
        font.setFamily("仿宋_GB2312")
        font.setPointSize(16)
        font.setUnderline(False)
        MainWindow.setFont(font)
        #icon = QtGui.QIcon.fromTheme("按时")
       # MainWindow.setWindowIcon(icon)
        #MainWindow.setLayoutDirection(QtCore.Qt.LeftToRight)
        #MainWindow.setAutoFillBackground(True)
        #MainWindow.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
        #MainWindow.setAnimated(False)
        #MainWindow.setDocumentMode(False)
        #MainWindow.setDockNestingEnabled(False)
        #MainWindow.setUnifiedTitleAndToolBarOnMac(False)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setEnabled(True)
        font = QtGui.QFont()
        font.setFamily("黑体")
        font.setPointSize(20)
        font.setUnderline(False)
        self.centralwidget.setFont(font)
        self.centralwidget.setMouseTracking(False)
        self.centralwidget.setTabletTracking(False)
        self.centralwidget.setObjectName("centralwidget")
        self.comboBox_5 = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox_5.setGeometry(QtCore.QRect(220, 656, 331, 39))
        font = QtGui.QFont()
        font.setFamily("黑体")
        font.setPointSize(20)
        font.setItalic(False)
        font.setUnderline(False)
        self.comboBox_5.setFont(font)
        self.comboBox_5.setFocusPolicy(QtCore.Qt.NoFocus)
        self.comboBox_5.setEditable(True)
        self.comboBox_5.setObjectName("comboBox_5")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_6.setGeometry(QtCore.QRect(0, 730, 551, 50))
        self.pushButton_6.setFocusPolicy(QtCore.Qt.NoFocus)
        self.pushButton_6.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        self.pushButton_6.setAcceptDrops(False)
        self.pushButton_6.setAutoDefault(False)
        self.pushButton_6.setDefault(False)
        self.pushButton_6.setObjectName("pushButton_6")
        self.comboBox = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox.setGeometry(QtCore.QRect(220, 280, 331, 39))
        self.comboBox.setFocusPolicy(QtCore.Qt.NoFocus)
        self.comboBox.setEditable(True)
        self.comboBox.setObjectName("comboBox")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox_3 = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox_3.setGeometry(QtCore.QRect(220, 410, 331, 39))
        self.comboBox_3.setFocusPolicy(QtCore.Qt.NoFocus)
        self.comboBox_3.setEditable(True)
        self.comboBox_3.setObjectName("comboBox_3")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_4 = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox_4.setEnabled(True)
        self.comboBox_4.setGeometry(QtCore.QRect(220, 110, 140, 39))
        self.comboBox_4.setFocusPolicy(QtCore.Qt.NoFocus)
        self.comboBox_4.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        self.comboBox_4.setAcceptDrops(False)
        self.comboBox_4.setToolTip("")
        self.comboBox_4.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.comboBox_4.setEditable(True)
        self.comboBox_4.setObjectName("comboBox_4")
        self.comboBox_4.addItem("")
        self.comboBox_4.addItem("")
        self.comboBox_2 = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox_2.setEnabled(True)
        self.comboBox_2.setGeometry(QtCore.QRect(379, 110, 171, 39))
        self.comboBox_2.setFocusPolicy(QtCore.Qt.NoFocus)
        self.comboBox_2.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        self.comboBox_2.setEditable(True)
        self.comboBox_2.setObjectName("comboBox_2")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_5.setGeometry(QtCore.QRect(0, 140, 160, 50))
        self.pushButton_5.setObjectName("pushButton_5")
        self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_3.setGeometry(QtCore.QRect(0, 270, 160, 50))
        self.pushButton_3.setObjectName("pushButton_3")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(0, 410, 160, 50))
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_4.setGeometry(QtCore.QRect(0, 650, 160, 50))
        self.pushButton_4.setAutoDefault(False)
        self.pushButton_4.setObjectName("pushButton_4")
        self.plainTextEdit = QtWidgets.QPlainTextEdit(self.centralwidget)
        self.plainTextEdit.setGeometry(QtCore.QRect(580, 110, 711, 701))
        font = QtGui.QFont()
        font.setFamily("黑体")
        font.setPointSize(20)
        font.setUnderline(False)
        self.plainTextEdit.setFont(font)
        self.plainTextEdit.setPlainText("")
        self.plainTextEdit.setObjectName("plainTextEdit")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(0, 810, 551, 50))
        self.pushButton.setObjectName("pushButton")
        self.comboBox.raise_()
        self.comboBox_3.raise_()
        self.comboBox_4.raise_()
        self.comboBox_2.raise_()
        self.comboBox_5.raise_()
        self.pushButton_6.raise_()
        self.pushButton_5.raise_()
        self.pushButton_3.raise_()
        self.pushButton_2.raise_()
        self.pushButton_4.raise_()
        self.plainTextEdit.raise_()
        self.pushButton.raise_()
        #MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1354, 33))
        self.menubar.setDefaultUp(True)
        self.menubar.setObjectName("menubar")
        #MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setSizeGripEnabled(True)
        self.statusbar.setObjectName("statusbar")
        #MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        self.comboBox_4.activated['QString'].connect(self.plainTextEdit.insertPlainText) # type: ignore
        self.comboBox_2.activated['QString'].connect(self.plainTextEdit.insertPlainText) # type: ignore
        self.comboBox.activated['QString'].connect(self.plainTextEdit.insertPlainText) # type: ignore
        self.comboBox_3.activated['QString'].connect(self.plainTextEdit.insertPlainText) # type: ignore
        self.comboBox_5.activated['QString'].connect(self.plainTextEdit.insertPlainText) # type: ignore
        self.pushButton_6.clicked.connect(self.plainTextEdit.undo) # type: ignore
        self.pushButton.clicked.connect(self.plainTextEdit.clear) # type: ignore
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "ss"))
        self.comboBox_5.setItemText(0, _translate("MainWindow", "01时"))
        self.comboBox_5.setItemText(1, _translate("MainWindow", "02时"))
        self.comboBox_5.setItemText(2, _translate("MainWindow", "03时"))
        self.comboBox_5.setItemText(3, _translate("MainWindow", "04时"))
        self.comboBox_5.setItemText(4, _translate("MainWindow", "05时"))
        self.pushButton_6.setText(_translate("MainWindow", "删除此行"))
        self.comboBox.setItemText(0, _translate("MainWindow", "hai"))
        self.comboBox.setItemText(1, _translate("MainWindow", "lei"))
        self.comboBox_3.setItemText(0, _translate("MainWindow", "尽快"))
        self.comboBox_3.setItemText(1, _translate("MainWindow", "好的"))
        self.comboBox_4.setItemText(0, _translate("MainWindow", "谢谢"))
        self.comboBox_4.setItemText(1, _translate("MainWindow", "NIH"))
        self.comboBox_2.setItemText(0, _translate("MainWindow", "12113"))
        self.comboBox_2.setItemText(1, _translate("MainWindow", "5123"))
        self.pushButton_5.setText(_translate("MainWindow", "A"))
        self.pushButton_3.setText(_translate("MainWindow", "B"))
        self.pushButton_2.setText(_translate("MainWindow", "C"))
        self.pushButton_4.setText(_translate("MainWindow", "E"))
        self.pushButton.setText(_translate("MainWindow", "清空内容"))


```

有点没明白

你想在plainTextEdit中文本设置下划线?

可以实现指定文本区间的文本 设置下划线:参考(七 美化-3)PyQT5 文本高亮与下划线:https://www.jianshu.com/p/67202e8c0811

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:

你可以使用 Qt 的 QTextCharFormat 类来实现部分文本下划线的效果。首先,你需要获取到 plainTextEdit 中要加下划线的文本的 QTextCursor 对象,然后使用 QTextCursor.setCharFormat() 方法设置该文本的格式。

以下是一个示例代码,它会在 plainTextEdit 中的 "02" 文本下方添加下划线:

from PyQt5.QtGui import QTextCharFormat, QFont, QPalette, QColor
from PyQt5.QtCore import Qt

# 获取 QTextCursor 对象
cursor = plainTextEdit.textCursor()
cursor.movePosition(QTextCursor.Start)
cursor.movePosition(QTextCursor.Right, QTextCursor.KeepAnchor, 2)

# 创建 QTextCharFormat 对象并设置下划线
format = QTextCharFormat()
format.setFontUnderline(True)
format.setUnderlineColor(QColor(Qt.red))
cursor.setCharFormat(format)

# 设置字体和颜色
font = QFont()
font.setPointSize(16)
palette = QPalette()
palette.setColor(QPalette.Text, QColor(Qt.black))
cursor.mergeCharFormat(format)
cursor.setCharFormat(format)
cursor.insertText(" ", format)

在上面的代码中,我们首先获取到 plainTextEdit 的 QTextCursor 对象,并使用 movePosition() 方法将光标移动到 "02" 文本的开始处。然后,我们创建了一个 QTextCharFormat 对象,并使用 setFontUnderline() 方法将它的下划线设置为 True。接着,我们使用 setUnderlineColor() 方法设置下划线的颜色为红色。

最后,我们使用 mergeCharFormat() 方法将字体和颜色的设置应用到下划线上,使用 setCharFormat() 方法将下划线应用到 "02" 文本上,并使用 insertText() 方法插入一个空格,以便在 "02" 和后面的文本之间留出一些空隙。

你可以根据自己的实际情况,调整下划线的颜色、字体等属性。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

根据您的描述,您想要在特定条件下将下划线添加到plainTextEdit组件中。根据提供的代码,我注意到您使用了QPlainTextEdit组件来显示文本,并且希望在选择特定时间时添加下划线。

要实现这个功能,您可以按照以下步骤进行操作:

  1. Ui_MainWindow类中,找到comboBox_5组件的槽函数连接语句,将其连接到一个新的自定义槽函数,用于处理时间选择事件。
    self.comboBox_5.activated['QString'].connect(self.handleTimeSelection)
     
  2. Ui_MainWindow类中,添加一个名为handleTimeSelection的槽函数,用于在选择特定时间时将下划线添加到文本框中。
    def handleTimeSelection(self, selectedTime):
         if selectedTime == "02时":
             cursor = self.plainTextEdit.textCursor()
             cursor.movePosition(QtGui.QTextCursor.StartOfLine)
             cursor.movePosition(QtGui.QTextCursor.EndOfLine, QtGui.QTextCursor.KeepAnchor)
             cursor.setCharFormat(QtGui.QTextCharFormat())
             cursor.setUnderlineStyle(QtGui.QTextCharFormat.SingleUnderline)
             self.plainTextEdit.setTextCursor(cursor)
     
    在这个示例中,我们检查选择的时间是否为"02时",如果是,则获取文本框的光标,并在当前行的文本上添加下划线。

通过以上修改,当选择"02时"时,您应该能够在plainTextEdit中将下划线添加到相应的文本行上。您可以根据需要进行调整和扩展,以满足您的实际需求。