pyside6界面开发笔记(03)

本文介绍了如何在Pyside6中使用move()方法进行基本布局,以及垂直布局管理器QVBoxLayout、水平布局管理器QHBoxLayout、表单布局管理器QFormLayout和网格布局管理器QGridLayout的区别和应用,最后展示了布局嵌套的示例。
摘要由CSDN通过智能技术生成

Pyside6布局管理

使用move()方法布局

锚点位于左上角,向右为x轴正方向,向下为y轴正方向

import sys
from PySide6.QtWidgets import *

class Window(QWidget):
    def __init__(self):
        super(Window,self).__init__()
        
        label_1=QLabel('label 1',self)
        label_2=QLabel('label 2',self)
        
        label_1.move(20,0)
        label_2.move(50,100)

if __name__ == '__main__':
    app=QApplication([])

    window=Window()
    window.show()

    sys.exit(app.exec())

控件较多时,该方法不便

坐标是固定的,当拉伸时不能自适应

垂直布局管理器QVBoxLayout

控件从上到下垂直进行摆放

先添加的控件位于后添加的控件上方

import sys
from PySide6.QtWidgets import *

class Window(QWidget):
    def __init__(self):
        super(Window,self).__init__()

        username=QLabel('username:')
        password=QLabel('password:')

        v_layout=QVBoxLayout()
        v_layout.addWidget(username)
        v_layout.addWidget(password)

         #将垂直布局方式设置为窗口的整体布局
        self.setLayout(v_layout)

if __name__ == '__main__':
    app=QApplication([])

    window=Window()
    window.show()

    sys.exit(app.exec())

水平布局管理器QHBoxLayout

先添加的控件位于后添加的控件左侧

import sys
from PySide6.QtWidgets import *

class Window(QWidget):
    def __init__(self):
        super(Window,self).__init__()

        username_label=QLabel('username:')
        username_line=QLineEdit()

        h_layout=QHBoxLayout()
        h_layout.addWidget(username_label)
        h_layout.addWidget(username_line)

        #将水平布局方式设置为窗口的整体布局
        self.setLayout(h_layout)

if __name__ == '__main__':
    app=QApplication([])

    window=Window()
    window.show()

    sys.exit(app.exec())

表单布局管理器QFormLayout

表单布局管理器指将控件按照表单的样式进行布局

通过调用addRow()方法进行添加控件

import sys
from PySide6.QtWidgets import *

class Window(QWidget):
    def __init__(self):
        super(Window,self).__init__()

        username_label=QLabel('username:')
        password_label=QLabel('password')

        username_line=QLineEdit()
        password_line=QLineEdit()

        f_layout=QFormLayout()
        f_layout.addRow(username_label,username_line)
        f_layout.addRow(password_label,password_line)
        
        #将网格布局方式设置为窗口的整体布局
        self.setLayout(f_layout)

if __name__ == '__main__':
    app=QApplication([])

    window=Window()
    window.show()

    sys.exit(app.exec())

网格布局管理器QGridLayout

把窗口想象成带有网格的,这些网格都有相应坐标

网格坐标只在网格布局中使用

import sys
from PySide6.QtWidgets import *

class Window(QWidget):
    def __init__(self):
        super(Window,self).__init__()

        username_label=QLabel('username:')
        password_label=QLabel('password')

        username_line=QLineEdit()
        password_line=QLineEdit()

        g_layout=QGridLayout()
        g_layout.addWidget(username_label,0,0)
        g_layout.addWidget(username_line,0,1)
        g_layout.addWidget(password_label,1,0)
        g_layout.addWidget(password_line,1,1)

        #将网格布局方式设置为窗口的整体布局
        self.setLayout(g_layout)

if __name__ == '__main__':
    app=QApplication([])

    window=Window()
    window.show()

    sys.exit(app.exec())

布局嵌套

import sys
from PySide6.QtWidgets import *

class Window(QWidget):
    def __init__(self):
        super(Window,self).__init__()

        username_label=QLabel('username:')
        password_label=QLabel('password:')

        username_line=QLineEdit()
        password_line=QLineEdit()

        v_layout=QVBoxLayout()
        h1_layout=QHBoxLayout()
        h2_layout=QHBoxLayout()

        h1_layout.addWidget(username_label)
        h1_layout.addWidget(username_line)

        h2_layout.addWidget(password_label)
        h2_layout.addWidget(password_line)

        v_layout.addLayout(h1_layout)
        v_layout.addLayout(h2_layout)
        self.setLayout(v_layout)

if __name__ == '__main__':
    app=QApplication([])

    window=Window()
    window.show()

    sys.exit(app.exec())

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pyside6是一个用于创建跨平台图形用户界面(GUI)的Python库。当你在使用Pyside6时,可能会遇到一些界面显示异常的情况。这些异常可能包括但不限于界面元素错位、颜色异常、布局问题等。 解决Pyside6界面显示异常的方法有以下几种: 1. 检查代码逻辑:首先,你需要检查你的代码逻辑是否正确。确保你正确地设置了界面元素的位置、大小和属性。检查你的布局管理器是否正确地放置了界面元素。 2. 检查样式表:Pyside6支持使用样式表来自定义界面的外观。如果你使用了样式表,那么可能是样式表中的某些属性设置不正确导致了界面显示异常。请检查你的样式表并确保其中的属性设置正确。 3. 检查版本兼容性:Pyside6可能与不同版本的Python和操作系统存在兼容性问题。请确保你使用的Pyside6版本与你的Python版本和操作系统版本兼容。 4. 更新Pyside6:如果你使用的是旧版本的Pyside6,可能存在已知的界面显示异常问题。尝试更新到最新版本的Pyside6,以获得修复了这些问题的新功能和改进。 5. 查找文档和社区支持:如果以上方法都无法解决你的问题,建议查阅Pyside6的官方文档和社区支持。在官方文档中,你可以找到更多关于Pyside6的使用方法和常见问题的解答。同时,社区支持也是一个很好的资源,你可以在社区中提问并获得其他开发者的帮助和经验分享。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值