使用Qsplitter和QHBoxLayout时,防止按钮拉伸

时间:2017-04-15 16:53:52

标签: python pyqt pyqt5 qsplitter

我正在尝试使用python在pyqt5中构建一个接口。

我想要存档的内容似乎是一件容易的事,但我无法弄明白。我只想让四个表调整大小,并在用户调整窗口大小时保持固定宽度的按钮。不是现在的另一种方式......

我希望有人可以帮助我。这个小问题让我抓狂。 这是我的代码:

    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_())

1 个答案:

答案 0 :(得分:0)

没关系找到setMaximumWidth()的解决方案:

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

:)