私はユーザー入力に基づいて生成されるリストを持っています。PyQt5 - QMessageBoxにスクロールバーを追加するには
このリストをQMessageBoxに表示しようとしています。しかし、私はこのリストの長さを知る方法がありません。リストは長いかもしれない。
したがって、QMessageBoxにスクロールバーを追加する必要があります。
興味深いことに、私はどこにでも見えましたが、私はこれに対する解決策を見出していません。
以下は、ユーザーの入力がなくても、「最小限で完全で検証可能な例」になることを希望します。私は例としてリストを作成しました。
私は何かアドバイスをいただきありがとうございます。 QLabel
にテキストを表示する担当のウィジェットは、ソリューションがQScrollArea
を追加することですので、あなたが直接、スクロールバーを追加することはできません
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_())
私はQMessageBoxはそれを可能にするのに十分に柔軟であるとは思いません。 QScrollAreaを含むより一般的なQDialogを使用する必要があります。 – BrenBarn
@BrenBarn大変ありがとうございます。はい、あなたは絶対に正しいです。 –