如何将QLineEdit添加到QMessageBox PyQt5
How to add QLineEdit to QMessageBox PyQt5
我想在我的 QMessageBox 上添加一个可复制的文本,所以我想我可以在 QMessageBox 上放置一个 QLineEdit,然后根据需要设置 QLineEdit 的文本,这样用户就可以选择文本并进行复制。
但是我没有成功。有没有办法将 QLineEdit 添加到 QMessageBox 或在 QMessageBox 上制作可复制的文本?
通过 QMessageBox.informativeText()
、QMessageBox.detailedText()
和 QMessageBox.textInteractionFlags()
我发现了以下内容:
QMessageBox.informativeText()
和 QMessageBox.detailedText()
始终可选,即使 QmessageBox.textInteractionFlags()
设置为 QtCore.Qt.NoTextInteraction
。 QMessageBox.detailedText()
显示在文本编辑中。 QMessageBox.setTextInteractionFlags()
仅作用于 QmessageBox.text()
。 documentation of QMessageBox. By flags you can set the text editable and/or selectable, see 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_())
我想在我的 QMessageBox 上添加一个可复制的文本,所以我想我可以在 QMessageBox 上放置一个 QLineEdit,然后根据需要设置 QLineEdit 的文本,这样用户就可以选择文本并进行复制。
但是我没有成功。有没有办法将 QLineEdit 添加到 QMessageBox 或在 QMessageBox 上制作可复制的文本?
通过 QMessageBox.informativeText()
、QMessageBox.detailedText()
和 QMessageBox.textInteractionFlags()
我发现了以下内容:
QMessageBox.informativeText()
和 QMessageBox.detailedText()
始终可选,即使 QmessageBox.textInteractionFlags()
设置为 QtCore.Qt.NoTextInteraction
。 QMessageBox.detailedText()
显示在文本编辑中。 QMessageBox.setTextInteractionFlags()
仅作用于 QmessageBox.text()
。 documentation of QMessageBox. By flags you can set the text editable and/or selectable, see 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_())