对于相同的PyQt4代码,在Linux和Windows上,布局看起来非常相似。但是对于MacOSX,我们看到了:
怎样才能缩小到最低限度?是否存在我们需要在全球或其他任何方面设置的保证金政策?
以下是用于测试用例的代码:
from PyQt4 import QtGui, QtCore
import sys
class GUI(QtGui.QWidget):
def __init__(self):
super(GUI, self).__init__()
vbox_layout = QtGui.QVBoxLayout()
for i in range(4):
hbox_layout = QtGui.QHBoxLayout()
bt_bookmark = QtGui.QPushButton()
bt_bookmark.setGeometry(0, 0, 15, 15)
bt_bookmark.setIcon(QtGui.QIcon("./bookmark_on.png"))
hbox_layout.addWidget(bt_bookmark)
hbox_layout.addWidget(QtGui.QPushButton("Button1"))
hbox_layout.addWidget(QtGui.QLabel("Some text here."))
hbox_layout.addWidget(QtGui.QPushButton("Button2"))
hbox_layout.addWidget(QtGui.QPushButton("Button3"))
vbox_layout.addLayout(hbox_layout)
self.setLayout(vbox_layout)
self.setWindowTitle("Test Layout")
self.show()
self.resize_window_to_minimum()
def resize_window_to_minimum(self):
# http://stackoverflow.com/a/28667119/446302
def _func_to_call():
self.resize(self.minimumSizeHint())
QtCore.QTimer.singleShot(500, _func_to_call)
if __name__ == "__main__":
app = QtGui.QApplication([])
gui = GUI()
sys.exit(app.exec_())
捕获:
答案 0 :(得分:1)
要缩小小部件之间的空间,可以使用QBoxLayout.setSpacing()
。
关于按钮的大小,您可以尝试通过使用样式表设置边距或填充来调整它。
我个人将bt_bookmark的拉伸设置为0(hbox_layout.addWidget(bt_bookmark, stretch=0)
),将其他按钮的拉伸系数设置为1.这样,当调整窗口大小时,按钮bt_bookmark不会增长。