Qt move和setGeometry的区别

movesetGeometry 都是用于管理窗口或小部件的位置的方法,通常在使用 Qt 编程时会用到。它们之间的主要区别在于:

  1. move 方法:这个方法用于设置小部件的左上角的坐标位置,它需要两个参数,即横坐标和纵坐标。使用 move 方法会改变小部件的位置,但不会改变其大小。例如,widget.move(100, 100) 会将小部件的左上角移动到坐标 (100, 100)。

  2. setGeometry 方法:这个方法用于同时设置小部件的位置和大小。它需要四个参数,分别是横坐标、纵坐标、宽度和高度。使用 setGeometry 方法会改变小部件的位置和大小。例如,widget.setGeometry(100, 100, 200, 150) 会将小部件的左上角移动到坐标 (100, 100),并将其大小设置为宽度 200 和高度 150。

所以,如果您只需要改变小部件的位置而保持其大小不变,可以使用 move 方法。如果需要同时改变位置和大小,可以使用 setGeometry 方法。

以下是一个使用 Qt 的 Python 绑定 PyQt5 的示例代码,演示了如何使用 movesetGeometry 方法:

import sys
from PyQt5.QtWidgets import QApplication, QWidget

class Example(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setGeometry(100, 100, 300, 200)
        self.setWindowTitle('Move vs setGeometry')

        # 创建两个子部件
        self.widget1 = QWidget(self)
        self.widget2 = QWidget(self)

        self.widget1.setGeometry(10, 10, 100, 100)  # 使用setGeometry
        self.widget1.setStyleSheet("background-color: red;")

        self.widget2.move(150, 10)  # 使用move
        self.widget2.resize(100, 100)  # 设置大小
        self.widget2.setStyleSheet("background-color: blue;")

        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在这个示例中,我们创建了一个名为 Example 的窗口应用,其中包含了两个子部件 widget1widget2widget1 使用了 setGeometry 来设置位置和大小,而 widget2 先使用了 move 设置了位置,然后使用 resize 设置了大小。

运行这个示例,您将会看到一个窗口中包含了两个不同颜色的小部件,它们分别演示了 movesetGeometry 的效果。

你可能感兴趣的:(Qt基础,qt,setGeometry,qt,move)