【问题标题】:Expand/resize QTextBrowser widget by the user without using QLayout用户在不使用 QLayout 的情况下扩展/调整 QTextBrowser 小部件的大小
【发布时间】:2018-10-29 14:31:31
【问题描述】:

在我的应用程序中有 QTextBrowser 小部件,数据将每 1 秒附加一次。我知道当数据到达小部件的底部时,将创建一个垂直滚动条。但是,用户是否可以在需要时通过鼠标拖动来扩展 QTextBrowser 小部件(不使用 QLayout)的大小?

如果是,请帮帮我。

这是我的一段代码。

#!/usr/bin/python
from PyQt4 import QtGui
from PyQt4 import QtCore
from PyQt4.QtGui import QSplitter
from PyQt4.QtGui import QTextEdit

import sys

class Commit(QtGui.QMainWindow):
    def __init__(self):
        super(Commit, self).__init__()
        self.initUI()

    def initUI(self):
        self.qle = QtGui.QLineEdit(self)
        self.qle.setFixedWidth(450) # tab width
        self.qle.move(20, 35) # tab position

        self.browser = QtGui.QTextBrowser(self)
        self.browser.resize(420, 100)
        self.browser.move(34, 100)

        self.lbl = QtGui.QLabel(self)
        self.lbl.setGeometry(10, 55,200,20)
        self.lbl.setText("Enter input here")
        self.lbl.move(200,10) # label position

        self.setGeometry(300, 300, 500, 250)
        self.show()

def main():
    app = QtGui.QApplication(sys.argv)
    commit = Commit()
    commit.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

【问题讨论】:

    标签: python pyqt4 qtextbrowser


    【解决方案1】:

    你可以使用QSizeGrip:

    from PyQt4 import QtCore, QtGui
    
    class Commit(QtGui.QMainWindow):
        def __init__(self):
            super(Commit, self).__init__()
            self.initUI()
    
        def initUI(self):
            self.qle = QtGui.QLineEdit(self)
            self.qle.setFixedWidth(450) # tab width
            self.qle.move(20, 35) # tab position
    
            self.browser = QtGui.QTextBrowser(self)
            self.browser.setGeometry(34, 100, 420, 100)
    
            self.browser.setWindowFlags(QtCore.Qt.SubWindow)
            size_grip = QtGui.QSizeGrip(self.browser)
            lay = QtGui.QVBoxLayout(self.browser)
            lay.addWidget(size_grip, alignment= QtCore.Qt.AlignBottom | QtCore.Qt.AlignRight)
    
            self.lbl = QtGui.QLabel(self)
            self.lbl.setGeometry(200,10, 200,20)
            self.lbl.setText("Enter input here")
    
            self.setGeometry(300, 300, 500, 250)
            self.show()
    
    def main():
        import sys
        app = QtGui.QApplication(sys.argv)
        commit = Commit()
        commit.show()
        sys.exit(app.exec_())
    
    if __name__ == '__main__':
        main()
    

    现在,如果您在右下角移动鼠标,您将看到光标更改图标,此时您可以通过拖动鼠标来更改大小。

    【讨论】:

    • @mg1 如果我的回答对您有帮助,如果您不知道怎么做,请不要忘记将其标记为正确,查看tour,这是最好的感谢方式。 :-)
    猜你喜欢
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 2012-08-29
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多