Ich habe eine Liste, die basierend auf Benutzereingabe generiert wird.PyQt5 - Hinzufügen einer Bildlaufleiste zu einer QMessageBox
Ich versuche, diese Liste in einer QMessageBox anzuzeigen. Aber ich habe keine Möglichkeit, die Länge dieser Liste zu kennen. Die Liste könnte lang sein.
Daher muss ich der QMessageBox eine Bildlaufleiste hinzufügen.
Interessanterweise schaute ich überall hin, aber ich habe keine Lösungen dafür gefunden.
Unten ist, was ich hoffe, ein "Minimal, komplettes und überprüfbares Beispiel", natürlich ohne die Benutzereingabe zu sein; Ich habe gerade eine Liste als Beispiel erstellt.
Ich freue mich über jeden Hinweis.
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class W(QWidget):
def __init__(self):
super().__init__()
self.initUi()
def initUi(self):
self.btn = QPushButton('Show Message', self)
self.btn.setGeometry(10, 10, 100, 100)
self.btn.clicked.connect(self.buttonClicked)
self.lst = list(range(2000))
self.show()
def buttonClicked(self):
result = QMessageBox(self)
result.setText('%s' % self.lst)
result.exec_()
if __name__ == "__main__":
app = QApplication(sys.argv)
gui = W()
sys.exit(app.exec_())
Ich glaube nicht, QMessageBox flexibel genug ist, dass zu ermöglichen. Möglicherweise müssen Sie einen allgemeineren QDialog verwenden, der eine QScrollArea enthält. – BrenBarn
@BrenBarn Vielen Dank, ja Sie haben absolut Recht –