Python DearPyGui之六:布局

DearPyGui的布局非常简单,就是用一个“组合框”(dpg.group)的组件来布置。

一、说明

你可以将dpg.group看做一个盒子,盒子内可以放很多组件(text、button等)
竖向放置
盒子里的组件默认的是竖向排列放置的(从上往下),例如:

image.png

with dpg.window(label='Test', width=1260, height=480):
    with dpg.group():
        dpg.add_input_text(label='组件1(input_text)', width=200)
        dpg.add_button(label='组件2(button)',width=200)
        dpg.add_radio_button(items=['组件3(radio_button1)', '组件3(radio_button2)', '组件3(radio_button3)'])

横向放置

image.png

with dpg.window(label='Test', width=1260, height=480):
    with dpg.group(horizontal=True):
        dpg.add_input_text(label='组件1(input_text)', width=200)
        dpg.add_button(label='组件2(button)',width=200)
        dpg.add_radio_button(items=['组件3(radio_button1)', '组件3(radio_button2)', '组件3(radio_button3)'])

二、组合放置

image.png
组合框示意图.png
import dearpygui.dearpygui as dpg

dpg.create_context()
# 注册字体,自选字体
with dpg.font_registry():
    with dpg.font("song.ttf", 18) as font1:  # 增加中文编码范围,防止问号
        dpg.add_font_range_hint(dpg.mvFontRangeHint_Default)
        dpg.add_font_range_hint(dpg.mvFontRangeHint_Chinese_Simplified_Common)
        dpg.add_font_range_hint(dpg.mvFontRangeHint_Chinese_Full)
    dpg.bind_font(font1)

dpg.create_viewport(title="DearPyGui_test", width=700, height=700)
with dpg.window(label='Test', width=1260, height=480):
    with dpg.group(label='整体组合', horizontal=True, horizontal_spacing=20):
        with dpg.group(label='局部组合1', horizontal=False):
            dpg.add_text(default_value='局部组合1内的组件')
            dpg.add_listbox(items=[1, 2, 3, 4], width=100)
        with dpg.group(label='局部组合2', horizontal=False):
            dpg.add_text(default_value='局部组合2内的组件')
            dpg.add_listbox(items=['A', 'B', 'C', 'D'], width=100)

dpg.setup_dearpygui()
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()

总结

image.png

在DearPyGui中,我们可以通过设置dpg.group的 horizontal 属性来实现竖向或者横向排列
竖向排列:horizontal=False (默认情况)
横向排列:horizontal=True (需要设置)
同时,通过多个组合框(dpg.group)更可以实现上图所示的复杂布局
之所以DearPyGui布局比其他Python的GUI库布局方便就在于此
当你把dpg.group想象成一个个盒子,那么布局就像我们小时候玩的垒积木一样,可以随意组合。
至于如何能达到最佳布局,需要在实践中慢慢摸索。
(作者君懒,且没有艺术细菌,所以作者君的布局一向都是简单粗暴的,嘿嘿)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容