I am trying to adapt a project, which is normally displayed on an external monitor, to my laptop monitor. As you can see from the diagram below, there are 40 rows in the main table. When working from my laptop, I cannot see the last 10-15 rows and the two tables below. Using a user's suggestion ( [https://stackoverflow.com/questions/34637099/python-qt-automatically-resizing-main-window-to-fit-content][1]), I can resize the tables but not the label or the pushbuttons on the right. from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtWidgets import QMainWindow import sys class MainApp(QMainWindow): def __init__(self): QMainWindow.__init__(self) self.theApp(self) def theApp(self, MainWindow): self.original_width = 1100 self.original_height = 810 MainWindow.setGeometry(200, 50, 1100, 810) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.tableWidget = QtWidgets.QTableWidget(self.centralwidget) self.tableWidget_w = 1001 ####<-------- self.tableWidget_h = 441 ####<-------- self.tableWidget.setGeometry(QtCore.QRect(20, 20, self.tableWidget_w, self.tableWidget_h)) self.tableWidget.setRowCount(40) self.tableWidget.setColumnCount(34) self.tableWidget.setObjectName("tableWidget") self.tableWidget.horizontalHeader().setVisible(True) self.tableWidget.horizontalHeader().setDefaultSectionSize(30) self.tableWidget.verticalHeader().setVisible(True) self.tableWidget.verticalHeader().setDefaultSectionSize(25) self.tableWidget_2_w = 1001 ####<-------- self.tableWidget_2_h = 81 ####<-------- self.tableWidget_2 = QtWidgets.QTableWidget(self.centralwidget) self.tableWidget_2.setGeometry(QtCore.QRect(20, 480, self.tableWidget_2_w, self.tableWidget_2_h)) self.tableWidget_2.setRowCount(4) self.tableWidget_2.setColumnCount(32) self.tableWidget_2.setObjectName("tableWidget_2") self.tableWidget_2.horizontalHeader().setVisible(False) self.tableWidget_2.horizontalHeader().setDefaultSectionSize(30) self.tableWidget_2.verticalHeader().setVisible(False) self.tableWidget_2.verticalHeader().setDefaultSectionSize(19) self.tableWidget_2.verticalHeader().setMinimumSectionSize(15) self.tableWidget_3_w = 971 ####<-------- self.tableWidget_3_h = 81 ####<-------- self.tableWidget_3 = QtWidgets.QTableWidget(self.centralwidget) self.tableWidget_3.setGeometry(QtCore.QRect(50, 570, self.tableWidget_3_w, self.tableWidget_3_h)) self.tableWidget_3.setRowCount(4) self.tableWidget_3.setColumnCount(32) self.tableWidget_3.setObjectName("tableWidget_3") self.tableWidget_3.horizontalHeader().setVisible(False) self.tableWidget_3.horizontalHeader().setDefaultSectionSize(30) self.tableWidget_3.verticalHeader().setVisible(False) self.tableWidget_3.verticalHeader().setDefaultSectionSize(19) self.tableWidget_3.verticalHeader().setMinimumSectionSize(15) self.label_w = 60 ####<-------- self.label_h = 15 ####<-------- self.label = QtWidgets.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(1030, 10, self.label_w, self.label_h)) self.label.setText("Label") self.label.setObjectName("label") self.pushButton_w = 60 ####<-------- self.pushButton_h = 23 ####<-------- self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(1030, 40, self.pushButton_w, self.pushButton_h)) self.pushButton.setObjectName("pushButton") self.pushButton.setText("Push") self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_2.setGeometry(QtCore.QRect(1030, 70, 60, 23)) self.pushButton_2.setObjectName("pushButton_2") self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_3.setGeometry(QtCore.QRect(1030, 100, 60, 23)) self.pushButton_3.setObjectName("pushButton_3") self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_4.setGeometry(QtCore.QRect(1030, 130, 60, 23)) self.pushButton_4.setObjectName("pushButton_4") self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_5.setGeometry(QtCore.QRect(1030, 160, 60, 23)) self.pushButton_5.setObjectName("pushButton_5") self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_6.setGeometry(QtCore.QRect(1030, 190, 60, 23)) self.pushButton_6.setObjectName("pushButton_6") self.pushButton_7 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_7.setGeometry(QtCore.QRect(1030, 220, 60, 23)) self.pushButton_7.setObjectName("pushButton_7") MainWindow.setCentralWidget(self.centralwidget) QtCore.QMetaObject.connectSlotsByName(MainWindow) MainWindow.show() def resizeEvent(self, event): width = self.frameGeometry().width() height = self.frameGeometry().height() w_proportion = width / self.original_width h_proportion = height / self.original_height self.tableWidget.resize(int(self.tableWidget_w*w_proportion), int(self.tableWidget_h*h_proportion)) self.tableWidget_2.resize(int(self.tableWidget_2_w*w_proportion), int(self.tableWidget_2_h*h_proportion)) self.tableWidget_3.resize(int(self.tableWidget_3_w*w_proportion), int(self.tableWidget_3_h*h_proportion)) self.label.resize(int(self.label_w*w_proportion), int(self.label_h*h_proportion)) self.pushButton.resize(int(self.pushButton_w*w_proportion), int(self.pushButton_h*h_proportion)) if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) window = MainApp() sys.exit(app.exec_()) [1]: https:///https://stackoverflow.com/questions/34637099/python-qt-automatically-resizing-main-window-to-fit-content Continue reading...