我想在我的QMessageBox提示能夠複製的文本,所以我想我可以把QMessageBox提示一個QLineEdit的再設置任何我想要的QLineEdit的文本,所以用戶可以選擇文本並複製它。如何QLineEdit的增加QMessageBox提示PyQt5
,但我不能成功。有沒有辦法將QLineEdit添加到QMessageBox或在QMessageBox上創建可複製的文本?
我想在我的QMessageBox提示能夠複製的文本,所以我想我可以把QMessageBox提示一個QLineEdit的再設置任何我想要的QLineEdit的文本,所以用戶可以選擇文本並複製它。如何QLineEdit的增加QMessageBox提示PyQt5
,但我不能成功。有沒有辦法將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。通過標誌,你可以設置文本編輯和/或可選擇的,見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_())
如果我複製粘貼代碼到該作品的空腳本,但是當我試圖把它在我的主腳本我得到這個錯誤:' msgbox.setTextInteractionFlags(QtCore.Qt.NoTextInteraction) AttributeError的: 'NoneType' 對象沒有屬性「setTextInteractionFlags''類開始與此:'類實施例(的QMainWindow): DEF __init __(個體): 超級()。 __init __()' – GLHF
我的工作,並固定。我只是把文本與setText方法。謝謝您的回答,我不知道有這樣的setTtextInteraction()等。如果你可以給對他們在你的答案更多信息這將是很好的未來visiters的方法。 – GLHF