I am trying to create a label where I can record the current status of the program - for example:
"Reading data ..."
"Data processing..."
"Complete".
If the text reaches the bottom of the label, it should automatically scroll with the text to make sure that it displays the last message (for example, the console window). Iβve been scrolling through shortcuts and scrolling for more than an hour, but to no avail. I tried putting my shortcut inside scrollarea (which seems to offer related answers here) - this code is generated from Qt Designer:
class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName(_fromUtf8("Dialog")) Dialog.resize(218, 137) self.frame = QtGui.QFrame(Dialog) self.frame.setGeometry(QtCore.QRect(209, 399, 161, 111)) self.frame.setFrameShape(QtGui.QFrame.StyledPanel) self.frame.setFrameShadow(QtGui.QFrame.Raised) self.frame.setObjectName(_fromUtf8("frame")) self.scrollArea = QtGui.QScrollArea(Dialog) self.scrollArea.setGeometry(QtCore.QRect(10, 10, 201, 121)) self.scrollArea.setWidgetResizable(True) self.scrollArea.setObjectName(_fromUtf8("scrollArea")) self.scrollAreaWidgetContents = QtGui.QWidget() self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 199, 119)) self.scrollAreaWidgetContents.setObjectName(_fromUtf8("scrollAreaWidgetContents")) self.label = QtGui.QLabel(self.scrollAreaWidgetContents) self.label.setGeometry(QtCore.QRect(15, 10, 151, 101)) self.label.setWordWrap(True) self.label.setObjectName(_fromUtf8("label")) self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.retranslateUi(Dialog) QtCore.QMetaObject.connectSlotsByName(Dialog)
My main .pyw file then contains:
import sys from gui_test import * class MyForm(QtGui.QDialog): def __init__(self,parent=None): QtGui.QWidget.__init__(self,parent) self.ui = Ui_Dialog() self.ui.setupUi(self) self.ui.label.setText("Warning: When passing a QString to the constructor or calling setText(), make sure to sanitize your input, as QLabel tries to guess whether it displays the text as plain text or as rich text, a subset of HTML 4 markup. You may want to call setTextFormat() explicitly, eg in case you expect the text to be in plain format but cannot control the text source (for instance when displaying data loaded from the Web).") if __name__ == "__main__": app = QtGui.QApplication(sys.argv) myapp = MyForm() myapp.show() sys.exit(app.exec_())
And scrollarea just doesn't offer any scrollbars, although not all text is displayed. If I make the scrollbars always be turned on, they are grayed out, indicating that the text is not scrolling.
If anyone could help me, I would really appreciate it.