В моем PyQt GUI у меня есть несколько относительно коротких (readOnly) QLineEdits, содержащих некоторый текст. Поскольку содержащийся текст длиннее, чем сам виджет, может быть показана только его часть. Виджет QLineEdit обычно показывает последнюю часть (по умолчанию):
Как показано на рисунке, я бы хотел сделать видимой первую часть текста (по умолчанию). Как мне это сделать?
Я добавил некоторый код ниже, чтобы помочь вам быстро настроить тест-кейс. Просто скопируйте и вставьте код в файл *.py
, запустите его, и вы должны получить QLineEdit в окне.
import sys
import os
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
'''================================================================================'''
'''| CUSTOM MAIN WINDOW |'''
'''================================================================================'''
class CustomMainWindow(QMainWindow):
def __init__(self):
super(CustomMainWindow, self).__init__()
# -------------------------------- #
# Window setup #
# -------------------------------- #
# 1. Define the geometry of the main window
# ------------------------------------------
self.setGeometry(100, 100, 800, 200)
self.setWindowTitle("QLineEdit test")
# 2. Create frame and layout
# ---------------------------
self.__frm = QFrame(self)
self.__frm.setStyleSheet("QWidget { background-color: #ffffff }")
self.__lyt = QVBoxLayout()
self.__lyt.setAlignment(Qt.AlignTop)
self.__frm.setLayout(self.__lyt)
self.setCentralWidget(self.__frm)
# 3. Create QLineEdit
# -------------------
self.__myQLineEdit = QLineEdit("This is a very long line")
self.__myQLineEdit.setFixedWidth(100)
self.__myQLineEdit.setReadOnly(True)
self.__lyt.addWidget(self.__myQLineEdit)
self.show()
'''=== end Class ==='''
if __name__ == '__main__':
app = QApplication(sys.argv)
QApplication.setStyle(QStyleFactory.create('Fusion'))
myGUI = CustomMainWindow()
sys.exit(app.exec_())
''''''
И последнее, но не менее важное: я хотел бы описать свою систему для полноты:
- Windows 10, 64-разрядная
- Python 3,6
- PyQt5