Python Forum
[PyQt] Layout unwanted space
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[PyQt] Layout unwanted space
#1
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_())
Reply
#2
use MinimumExpanding

textSizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)
Reply
#3
Thank you!
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Kivy] Unwanted format carryover hammer 0 1,351 Jan-14-2022, 05:17 PM
Last Post: hammer
  pyqt5 layout Nickd12 8 3,476 Jan-18-2021, 09:09 AM
Last Post: Axel_Erfurt
  Python GUI layout off between different OS shift838 5 3,682 Jan-02-2019, 02:53 AM
Last Post: shift838
  [Tkinter] grid layout neech 8 17,586 Oct-14-2016, 07:06 PM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020