2017-04-15 278 views
0

我想在pyqt5中使用python构建一个接口。防止使用Qsplitter和QHBoxLayout时拉伸按钮

我想要存档的东西似乎是一件容易的事,但我无法弄清楚。我只想让这四个表格调整大小,并在用户调整窗口大小时按钮保持固定的宽度。不是相反,因为它是现在....

我希望有人能帮助我。这个小问题让我发疯。 这里是我的代码:

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

回答

0

没关系发现setMaximumWidth()的解决方案:

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

:)