在我的应用程序中,有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()
答案 0 :(得分:0)
您可以使用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()
现在,如果将鼠标移到右下角,您将看到光标更改图标,在那一刻您可以通过拖动鼠标来更改大小。