QHBoxLayout(大小、调整大小、移动)
QHBoxLayout (size, resize, move)
任务:
例如(下面的代码)我们创建了 QHBoxLayout,其中有两个按钮。
import sys
from PyQt5.QtWidgets import (QWidget, QPushButton, QHBoxLayout, QApplication)
class Example(QWidget):
def __init__(self):
super().__init__()
hbox = QHBoxLayout()
okButton = QPushButton("OK")
cancelButton = QPushButton("Cancel")
hbox.addWidget(okButton)
hbox.addWidget(cancelButton)
self.setLayout(hbox)
self.setGeometry(100, 100, 500, 500)
self.show()
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
需要:
设置 hbox (QHBoxLayout) (W_pix, H_pix) 的大小及其坐标 (X_pos, Y_pos) 主要 window(它们不适合,我在 QHBoxLayout、QWidget 的描述文档中没有找到此类函数)。
v.2
import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtCore import QRect
from PyQt5.QtWidgets import (QWidget, QPushButton,
QHBoxLayout, QApplication, QMainWindow, QVBoxLayout)
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.hbox = QVBoxLayout()
self.okButton = QPushButton("OK")
self.cancelButton = QPushButton("Cancel")
self.hbox.addWidget(self.okButton)
self.hbox.addWidget(self.cancelButton)
self.setGeometry(100, 100, 500, 500)
self.setLayout(self.hbox)
self.hbox.setGeometry(QtCore.QRect(200, 200, 300, 300))
self.show()
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
QXLayout 不是可视元素,因此不能直接应用建立几何(位置和大小),而必须对其进行解释。
QHBoxLayout 的任务是使用 sizeHint、sizePolicy、最小和最大尺寸等信息水平分布小部件,并将使用提供小部件所在位置的最大可用大小。
考虑到最后一点,您可以将您的要求外推到该小部件,因为如前所述,处理布局的几何图形就是该小部件的几何图形。所以在这种情况下,创建了一个用作容器的 QWidget。
from PyQt5.QtWidgets import QApplication, QHBoxLayout, QMainWindow, QPushButton, QWidget
class Example(QMainWindow):
def __init__(self):
super().__init__()
x_pos, y_pos = 10, 10
w_pix, h_pix = 150, 150
container = QWidget(self)
container.setContentsMargins(0, 0, 0, 0)
container.setFixedSize(w_pix, h_pix)
container.move(x_pos, y_pos)
container.setStyleSheet("background-color:salmon;")
hbox = QHBoxLayout(container)
hbox.setContentsMargins(0, 0, 0, 0)
self.okButton = QPushButton("OK")
self.cancelButton = QPushButton("Cancel")
hbox.addWidget(self.okButton)
hbox.addWidget(self.cancelButton)
self.resize(640, 480)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
任务:
例如(下面的代码)我们创建了 QHBoxLayout,其中有两个按钮。
import sys
from PyQt5.QtWidgets import (QWidget, QPushButton, QHBoxLayout, QApplication)
class Example(QWidget):
def __init__(self):
super().__init__()
hbox = QHBoxLayout()
okButton = QPushButton("OK")
cancelButton = QPushButton("Cancel")
hbox.addWidget(okButton)
hbox.addWidget(cancelButton)
self.setLayout(hbox)
self.setGeometry(100, 100, 500, 500)
self.show()
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
需要:
设置 hbox (QHBoxLayout) (W_pix, H_pix) 的大小及其坐标 (X_pos, Y_pos) 主要 window(它们不适合,我在 QHBoxLayout、QWidget 的描述文档中没有找到此类函数)。
v.2
import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtCore import QRect
from PyQt5.QtWidgets import (QWidget, QPushButton,
QHBoxLayout, QApplication, QMainWindow, QVBoxLayout)
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.hbox = QVBoxLayout()
self.okButton = QPushButton("OK")
self.cancelButton = QPushButton("Cancel")
self.hbox.addWidget(self.okButton)
self.hbox.addWidget(self.cancelButton)
self.setGeometry(100, 100, 500, 500)
self.setLayout(self.hbox)
self.hbox.setGeometry(QtCore.QRect(200, 200, 300, 300))
self.show()
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
QXLayout 不是可视元素,因此不能直接应用建立几何(位置和大小),而必须对其进行解释。
QHBoxLayout 的任务是使用 sizeHint、sizePolicy、最小和最大尺寸等信息水平分布小部件,并将使用提供小部件所在位置的最大可用大小。
考虑到最后一点,您可以将您的要求外推到该小部件,因为如前所述,处理布局的几何图形就是该小部件的几何图形。所以在这种情况下,创建了一个用作容器的 QWidget。
from PyQt5.QtWidgets import QApplication, QHBoxLayout, QMainWindow, QPushButton, QWidget
class Example(QMainWindow):
def __init__(self):
super().__init__()
x_pos, y_pos = 10, 10
w_pix, h_pix = 150, 150
container = QWidget(self)
container.setContentsMargins(0, 0, 0, 0)
container.setFixedSize(w_pix, h_pix)
container.move(x_pos, y_pos)
container.setStyleSheet("background-color:salmon;")
hbox = QHBoxLayout(container)
hbox.setContentsMargins(0, 0, 0, 0)
self.okButton = QPushButton("OK")
self.cancelButton = QPushButton("Cancel")
hbox.addWidget(self.okButton)
hbox.addWidget(self.cancelButton)
self.resize(640, 480)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())