0

I am trying to build a interface in pyqt5 using python.

What I am trying to archive seems to be an easy task, but I just can't figure it out. I just want to have the four tables to resize and the buttons to stay a fixed width when the user resizes the window. Not the other way around as it is now....

I hope some one can help me. This little problem is driving me crazy. Here is my code:

    import sys
    from PyQt5 import QtWidgets, QtGui
    from PyQt5.QtCore import Qt
    from PyQt5.QtWidgets import *

    class window(QtWidgets.QWidget):
        def __init__(self):
            super().__init__()
            self.interface()

        def interface(self):

            self.b1 = QtWidgets.QPushButton("B1")
            self.b2 = QtWidgets.QPushButton("B2")
            self.b3 = QtWidgets.QPushButton("B3")

            self.createTable()
            self.createTable2()
            self.createTable3()
            self.createTable4()

            splitter1 = QSplitter(Qt.Horizontal)
            splitter1.addWidget(self.tableWidget)
            splitter1.addWidget(self.tableWidget2)

            splitter2 = QSplitter(Qt.Horizontal)
            splitter2.addWidget(self.tableWidget3)
            splitter2.addWidget(self.tableWidget4)

            splitter3 = QSplitter(Qt.Vertical)
            splitter3.addWidget(splitter1)
            splitter3.addWidget(splitter2)

            hbox = QHBoxLayout()
            hbox.addWidget(splitter3)

            vbox = QVBoxLayout()
            vbox.addWidget(self.b1)
            vbox.addWidget(self.b2)
            vbox.addWidget(self.b3)

            master = QHBoxLayout()
            master.addLayout(vbox)
            master.addLayout(hbox)

            self.setLayout(master)
            self.show()


        #  ------ Create the table function ------
        def createTable(self):
            self.tableWidget = QTableWidget()
            self.tableWidget.setRowCount(10)
            self.tableWidget.setColumnCount(30)

        def createTable2(self):
            self.tableWidget2 = QTableWidget()
            self.tableWidget2.setRowCount(10)
            self.tableWidget2.setColumnCount(30)

        def createTable3(self):
            self.tableWidget3 = QTableWidget()
            self.tableWidget3.setRowCount(10)
            self.tableWidget3.setColumnCount(30)

        def createTable4(self):
            self.tableWidget4 = QTableWidget()
            self.tableWidget4.setRowCount(10)
            self.tableWidget4.setColumnCount(30)


    app = QtWidgets.QApplication(sys.argv)
    AWindow = window()
    sys.exit(app.exec_())
eyllanesc
  • 235,170
  • 19
  • 170
  • 241
Qanza
  • 1
  • 2

1 Answers1

0

Never mind found a solution with setMaximumWidth():

self.b1.setMaximumWidth(200) 
self.b2.setMaximumWidth(200) 
self.b3.setMaximumWidth(200)

:)

Qanza
  • 1
  • 2