python - 如何将QLineEdit添加到QMessageBox PyQt5

标签 python python-3.4 pyqt5 qlineedit qmessagebox

我想要在 QMessageBox 上有一个可复制的文本,所以我想我可以在 QMessageBox 上放置一个 QLineEdit,然后将 QLineEdit 的文本设置为我想要的任何内容,以便用户可以选择文本并复制它。

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

最佳答案

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

QMessageBox.informativeText()QMessageBox.detailedText() 始终可选,即使 QmessageBox.textInteractionFlags() 设置为 QtCore.Qt.NoTextInteractionQMessageBox.detailedText() 显示在文本编辑中。 QMessageBox.setTextInteractionFlags()仅作用于QmessageBox.text()documentation of QMessageBox 中描述了这些类型文本的使用。 。通过标志,您可以将文本设置为可编辑和/或可选择,请参阅 enum 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 1\nline 2\nline 3')
        msgbox.exec()

app = QtWidgets.QApplication(sys.argv)
w = MyWidget()
w.show()
sys.exit(app.exec_())

关于python - 如何将QLineEdit添加到QMessageBox PyQt5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37182888/

相关文章:

python - wx.SplashScreen 顶部的动态文本

python - 将 fixture 传递给 PyTest 中的辅助函数?

python - 使用 mpi4py 嵌套 mpi 调用

python - PyQt 在主窗口中嵌入 QWebEngineView

python - PyQt5 可将图标从 ListView 拖动到另一个 ListView

qt - 如何在Qt中实现多层框架或小部件?

python - 如何使用PyTorch计算偏导数?

python,如果不是可迭代的,则将其包装和对象放入列表中

python - 如何使用 python 3 将专辑封面添加到 mp3 文件?

cygwin - 从 Python 在 cygwin 上执行 shell 脚本