Python Forum

Full Version: Layout unwanted space
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I've got a widget I'm designing with code.

https://sta.sh/01fewfus0r9s

I want the buttons and text box to take up nearly the whole page, with the title labels being at the top. I don't have stretches anywhere, could someone help?

import os
import sys
import PyQt5
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

home = os.path.expanduser('~')

app = PyQt5.QtWidgets.QApplication(sys.argv)
screenres = app.desktop().screenGeometry()
scrW, scrH = screenres.width(), screenres.height()
width = 500
height = 500

class EditPage(QWidget):

	def __init__(self):

		super().__init__()

		self.initUI()

	def initUI(self):

		self.setGeometry((scrW-width)/2, (scrH-height)/2, width, height)
		self.setWindowTitle('IvyVine')

		#__________Buttons
		btnW = (width *.15)
		btnH = (height *.25)

		vbtns = QVBoxLayout()

		buttons = ['A','B','C','D','E']

		buttonSizePolicy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)

		for letter in buttons:

			button = QPushButton(letter)
			button.resize(btnW, btnH)
			button.setSizePolicy(buttonSizePolicy)

			vbtns.addWidget(button)

		backbtn = QPushButton('<', self)
		backbtn.setSizePolicy(buttonSizePolicy)

		savebtn = QPushButton('Save', self)
		savebtn.setSizePolicy(buttonSizePolicy)

		homebtn = QPushButton('Home', self)
		homebtn.setSizePolicy(buttonSizePolicy)

		vbtns.addWidget(backbtn)
		vbtns.addWidget(savebtn)
		vbtns.addWidget(homebtn)

		#________________

		topbox = QVBoxLayout()

		foldertitle = QLabel()
		foldertitle.setText('Folder Title')
		foldertitle.setAlignment(Qt.AlignCenter)
		foldertitle.setMaximumHeight(25)

		pagetitle = QLabel()
		pagetitle.setText('Page Title')
		pagetitle.setAlignment(Qt.AlignCenter)
		pagetitle.setMaximumHeight(25)

		topbox.addWidget(foldertitle)
		topbox.addWidget(pagetitle)

		#________________

		midbox = QHBoxLayout()

		textSizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
		pagetext = QLineEdit()
		pagetext.setSizePolicy(textSizePolicy)

		midbox.addWidget(pagetext)
		midbox.addLayout(vbtns)

		#________________

		bigbox = QVBoxLayout()

		bigbox.addLayout(topbox)
		#bigbox.addStretch(1)
		bigbox.addLayout(midbox)
		#bigbox.addStretch(1)

		self.setLayout(bigbox)
		self.show()

if __name__ == '__main__':

	window = EditPage()
	sys.exit(app.exec_())
use MinimumExpanding

textSizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)
Thank you!