如何将QLineEdit添加到QMessageBox PyQt5



我想在QMessageBox上有一个可复制的文本,所以我想我可以在QMessageBox上放一个QLineEdit,然后设置QLineEdit的文本,这样用户就可以选择文本并复制它。

但我没能成功。是否有方法将QLineEdit添加到QMessageBox或在QMessageBox上制作可复制文本?

通过玩QMessageBox.informativeText()QMessageBox.detailedText()QMessageBox.textInteractionFlags(),我发现了以下内容:

即使QmessageBox.textInteractionFlags()被设置为QtCore.Qt.NoTextInteractionQMessageBox.informativeText()QMessageBox.detailedText()也总是可选择的。QMessageBox.detailedText()显示在文本编辑中。CCD_ 9仅作用于CCD_。这类文本的使用在QMessageBox的文档中进行了描述。通过标志,您可以将文本设置为可编辑和/或可选择,请参见枚举TextInteractionFlags。

这里是QmessageBox.detailedText():中可选择文本的工作示例

import sys 
from PyQt5 import QtWidgets, QtCore
class MyWidget(QtWidgets.QWidget): 
    def __init__(self): 
        QtWidgets.QWidget.__init__(self) 
        self.setGeometry(400,50,200,200)
        self.pushButton = QtWidgets.QPushButton('show messagebox', self)
        self.pushButton.setGeometry(25, 90, 150, 25)
        self.pushButton.clicked.connect(self.onClick)
    def onClick(self):
        msgbox = QtWidgets.QMessageBox()
        msgbox.setText('to select click "show details"')
        msgbox.setTextInteractionFlags(QtCore.Qt.NoTextInteraction) # (QtCore.Qt.TextSelectableByMouse)
        msgbox.setDetailedText('line 1nline 2nline 3')
        msgbox.exec()
app = QtWidgets.QApplication(sys.argv)
w = MyWidget()
w.show()
sys.exit(app.exec_())

相关内容

  • 没有找到相关文章

最新更新