【发布时间】:2017-01-23 15:43:10
【问题描述】:
我想连接拆分器以在 4 个小部件之间创建一个“交叉”拆分器。我尝试在两个分离器之间使用信号和槽来做到这一点,即使没有发生错误,行为也不是我希望的(实际上什么也没发生)。
import sys
from PyQt4 import QtGui, QtCore
class ApplicationWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.initUI()
self.window.setFocus()
self.setCentralWidget(self.window)
self.showMaximized()
def initUI(self) :
self.window = QtGui.QWidget()
self.editor1 = QtGui.QTextEdit()
self.editor2 = QtGui.QTextEdit()
self.editor3 = QtGui.QTextEdit()
self.editor4 = QtGui.QTextEdit()
self.split1 = QtGui.QSplitter()
self.split2 = QtGui.QSplitter()
self.split3 = QtGui.QSplitter()
self.split2.setOrientation(QtCore.Qt.Vertical)
self.split3.setOrientation(QtCore.Qt.Vertical)
self.split2.addWidget(self.editor1)
self.split2.addWidget(self.editor2)
self.split3.addWidget(self.editor3)
self.split3.addWidget(self.editor4)
self.connect(self.split2, QtCore.SIGNAL("splitterMoved"), self.split3.moveSplitter)
self.connect(self.split3, QtCore.SIGNAL("splitterMoved"), self.split2.moveSplitter)
self.split1.addWidget(self.split2)
self.split1.addWidget(self.split3)
self.layout = QtGui.QHBoxLayout()
self.layout.addWidget(self.split1)
self.window.setLayout(self.layout)
def main() :
qApp = QtGui.QApplication(sys.argv)
qApp.setStyle('cleanlooks')
aw = ApplicationWindow()
aw.show()
sys.exit(qApp.exec_())
if __name__ == '__main__':
main()
有什么想法吗?
【问题讨论】:
-
self.split3.moveSplitter不需要参数(QSplitter.moveSplitter (self, int pos, int index)来自pyqt.sourceforge.net/Docs/PyQt4/qsplitter.html#moveSplitter)?你不会告诉它往哪里移动,对吧? -
我怎样才能告诉他搬到哪里去?我在这里迷路了。
标签: python python-2.7 pyqt pyqt4