[Python][PySide] QSplitter を使ったリサイズ可能な分割ウィンドウの作成

環境

  • Python 3.3.3
  • PySide 1.2.1

コード

#-*- coding:utf-8 -*-

import sys
from PySide import QtCore, QtGui

class MainWindow(QtGui.QMainWindow):
	def __init__(self, parent=None):
		super(MainWindow, self).__init__(parent)
		self.setWindowTitle("Splitter Sample")
		self.resize(800, 600)

		# サイドウィジェットを作成
		side = QtGui.QFrame(self)
		side.setFrameShape(QtGui.QFrame.StyledPanel)
		side.setMinimumWidth(150) # 最小幅
		side.setMaximumWidth(200) # 最大幅

		# テキストディット作成
		main = QtGui.QTextEdit(self)

		# スプリッターを作成, 今回は横並び
		splitter = QtGui.QSplitter(QtCore.Qt.Horizontal)
		# スプリッターにウィジェットを追加する
		splitter.addWidget(side)
		splitter.addWidget(main)

		# スプリッターを central widget としてセット
		self.setCentralWidget(splitter)

if __name__ == '__main__':
	app = QtGui.QApplication(sys.argv)
	main_window = MainWindow()
	main_window.show()
	sys.exit(app.exec_())

デフォルトで分割したウィンドウ間をドラッグでリサイズ可能になります。リサイズ可能な範囲を指定したい場合は、追加するウィジェットの幅や高さを指定しておくことで可能です。

実行例

参考

Trackbacks & Pingbacks

  • None

Comments

  • No Comment
Name
Mail(任意) 公開されません
Web Site(任意)
Comment

日本語が含まれない投稿は無視されますのでご注意ください