如何在(短)QLineEdit中更改文本的可见部分?

时间:2018-04-24 14:34:50

标签: python python-3.x qt pyqt pyqt5

在我的PyQt GUI中,我有一些包含一些文本的相对较短(readOnly)的QLineEdits。由于包含的文本比小部件本身长,因此只能显示其中的一部分。 QLineEdit小部件通常显示最后一部分(默认情况下):

enter image description here

如图所示,我希望文本的第一部分可见(默认情况下)。我该怎么做?

我在下面添加了一些代码,以帮助您快速设置测试用例。只需将代码复制粘贴到*.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

1 个答案:

答案 0 :(得分:1)

您可以在各种事件上设置光标位置,例如当行编辑窗口小部件失去焦点时:

Buffer underflow

以及可能的其他事件,例如选择更改时,如果需要。