PyQt-如何设置控件的位置大小

2022年4月15日 22点热度 0人点赞

设置父控件位置大小,及子控件的位置大小。涉及的控件方法,setGeometry(),move(),resize().

步骤:

  1. 1

    导入Qt模块,导入sys模块

    创建应用程序对象,及进入主循环的代码

    --------------------

    from PyQt5.Qt import *

     

    import sys

    app=QApplication(sys.argv)

     

    sys.exit(app.exec_())

  2. 2

    创建QWidget对象,作为父控件,并展示。

    --------------------

    app=QApplication(sys.argv)

     

    w=QWidget()

     

    w.setWindowTitle('父控件')

     

    w.show()

     

    sys.exit(app.exec_())

  3. 3

    控件的w.setGeometry(x,y,w,h)方法设置控件位置和大小的初始值。

    参数x,y是控件的左上角的横坐标和纵坐标,w,h是控件的宽和高。

    坐标值和控件大小都是参照屏幕分辨率。

    --------------------

     

    app=QApplication(sys.argv)

     

    w=QWidget()

     

    w.setWindowTitle('父控件')

     

    w.setGeometry(400,250,300,200)

     

    w.show()

     

    sys.exit(app.exec_())

  4. 4

    控件的move(x,y)方法,可以重新定位控件的位置。

    参数x,y是控件的左上角的横坐标和纵坐标。

    --------------------

    app=QApplication(sys.argv)

     

    w=QWidget()

     

    w.setWindowTitle('父控件')

     

    w.setGeometry(0,0,300,200)

     

    w.move(400,250)

     

    w.show()

     

    sys.exit(app.exec_())

  5. 5

    控件的resize(w,h)方法,可以重置控件的大小。

    参数w,h是控件的宽和高。

    --------------------

    app=QApplication(sys.argv)

     

    w=QWidget()

     

    w.setWindowTitle('父控件')

     

    w.setGeometry(0,0,300,200)

     

    w.move(400,250)

     

    w.resize(400,300)

     

    w.show()

     

    sys.exit(app.exec_())

  6. 6

    控件的move(x,y),resize(w,h),可以替代setGeometry(x,y,w,h)。

    --------------------

    app=QApplication(sys.argv)

     

    w=QWidget()

     

    w.setWindowTitle('父控件')

     

    w.move(400,250)

     

    w.resize(300,200)

     

    w.show()

     

    sys.exit(app.exec_())

  7. 7

    1)子控件的位置,是相对在父控件类内的位置来说的,子控件是将父控件作为坐标系统,但是不包括标题栏,所以原点(0,0)是在标题栏下方空间的左上角。

    2)如果没有给出子控件的位置,子控件在父控件的默认位置为(0,0)。

    例如:添加一个QPushbutton()类按钮,作为子控件。

    按钮左上角的位置就是按钮位置,如果没有设置初始位置,默认就是它父控件的(0,0)位置,就是父控件标题栏下方最坐标。

    --------------------

    app=QApplication(sys.argv)

     

    w=QWidget()

     

    w.setWindowTitle('父控件')

     

    w.move(400,250)

     

    w.resize(300,200)

     

    btn=QPushButton(w)

     

    btnName=btn.setText('测试按钮1')

     

    w.show()

     

    sys.exit(app.exec_())

  8. 8

    子控件仍然可以使用setGeometry(),move(),resize()方法。只是位置是参照父控键,而非整个屏幕。

     

    --------------------

     

    app=QApplication(sys.argv)

     

    w=QWidget()

     

    w.setWindowTitle('父控件')

     

    w.move(400,250)

     

    w.resize(300,200)

     

    btn=QPushButton(w)

     

    btnName=btn.setText('测试按钮1')

     

    btn.setGeometry(50,50,100,40)

     

    w.show()

     

    sys.exit(app.exec_())

  9. 9

    添加多个子控件:同在一个父控件下的子控件,注意位置,不要重叠。

    --------------------

     

    app=QApplication(sys.argv)

     

    w=QWidget()

     

    w.setWindowTitle('父控件')

     

    w.move(400,250)

     

    w.resize(230,200

     

    btn=QPushButton(w)

     

    btnName=btn.setText('测试按钮1')

     

    btn.setGeometry(10,10,100,40)

     

    btn=QPushButton(w)

     

    btnName=btn.setText('测试按钮1')

     

    btn.setGeometry(120,10,100,40

     

    lab=QLabel(w)

     

    lab.setGeometry(10,60,210,130)

     

    lab.setText('我自横刀向天笑,去留肝胆两昆仑。')

     

    w.show()

     

    sys.exit(app.exec_())

    END

注意事项

  • 父控件位置是相对电脑系统的分辨率。
  • 子控件是相对于在父控件内的位置,注意不包括父控件的标题栏。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部

laozhao

这个人很懒,什么都没留下

文章评论