控件之Frame LabelFrame Pandwindow

2024-06-19 03:32

本文主要是介绍控件之Frame LabelFrame Pandwindow,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#Labelframe
Labelframe 是 Frame 容器的改进版,它允许为容器添加一个标签,该标签既可以是普通的文字标签,
也可以将任意 GUI 组件作为标签。Labelframe 允许通过如下选项对标签进行定制:
labelwidget:设置可以将任意 GUI 组件作为标签。
labelanchor:设置标签的位置。该选项支持 'e'、's'、'w'、'n'、'es'、'ws'、'en'、'wn'、'ne'、'nw'、'se'、'sw' 这 12 个
边项值,用于控制标签的位置。Panedwindow 是一个非常有特色的容器,它自带布局管理功能,它允许通过 orient 选项指定水平或垂直方向,
让容器中的各组件按水平或垂直方向排列。在创建 Panedwindow 之后,程序可通过如下方法操作 Panedwindow 容器中的子组件:
add(self, child, **kw):添加一个子组件。
insert(self, pos, child,**kw):在pos 位置插入一个子组件。
remove(self, child):删除一个子组件,该子组件所在区域也被删除。Panedwindow 组件是可以嵌套的,以实现功能更丰富的界面
from tkinter import *
from tkinter import ttkroot = Tk()
root.title('')
root.geometry('600x500')#创建Frame
frame = Frame(root,bg='red')
frame.pack(fill=BOTH, expand=YES, padx=10, pady=10)
#创建LabelFrame
labelframe = LabelFrame(frame, text='LabelFrame',bg='green')
labelframe.pack(fill=BOTH, expand=YES, padx=10, pady=10)bm = PhotoImage(file='C:\\Users\\caojiangtao\\Desktop\\Python.png')
label = Label(frame,text='LabelFrame', image=bm,compound=LEFT,width=200,height=30)
labelframe['labelwidget'] = labeldef dirchange():labelframe['labelanchor'] = directions[intVar.get()]print(intVar.get())intVar = IntVar()
directions = ['e', 's', 'w', 'n', 'es', 'ws', 'en', 'wn','ne', 'nw', 'se', 'sw']
i = 0
for direction in directions:rb = Radiobutton(labelframe, text=direction,variable=intVar,value=i,command=dirchange)rb.pack(side=LEFT,fill=X,expand=1,anchor=S)i += 1
intVar.set(3)# tkinter的pandwindow没能实现嵌套,ttk.PanedWindow可以# #创建PandWindow
# pwindow = PanedWindow(root,orient=HORIZONTAL,background='blue',relief=RAISED)
# pwindow.pack(fill=BOTH, expand=1,padx=20,pady=20)
# Bn = Button(pwindow, text="按钮remove",command=lambda: pwindow.remove(Bn))
# pwindow.add(Bn)
#
# #嵌套
# rightwindow = PanedWindow(pwindow,orient=VERTICAL,background='white',relief=RAISED)
# rightwindow.pack(fill=BOTH, expand=1)
#
# label = Label(rightwindow, text="标签add",padx=10,pady=10,background='lightgreen',)
# rightwindow.add(label)
#
# entry = Entry(rightwindow,width=20)
# rightwindow.add(entry)
#
# # rightwindow.insert(1, Label(rightwindow, text='插入的标签'))#创建PandWindow
style = ttk.Style()
style.configure("fkit.TPanedwindow",background='blue', relief=RAISED)
pwindow = ttk.Panedwindow(root,orient=HORIZONTAL, style="fkit.TPanedwindow")
pwindow.pack(fill=BOTH, expand=YES,padx=20,pady=20)Bn = Button(pwindow, text="按钮remove",command=lambda: pwindow.remove(Bn))
pwindow.add(Bn)# 创建嵌套Panedwindow
rightwindow = PanedWindow(pwindow, orient=VERTICAL)
pwindow.add(rightwindow)label = Label(rightwindow, text="标签add",background='lightgreen')
rightwindow.add(label)
entry = Entry(rightwindow,width=20)
entry.insert(END,'Entry add')
rightwindow.add(entry)#insert不能在嵌套的pandwindow里使用
pwindow.insert(1, Label(pwindow, text='插入标签'))root.mainloop()

 

这篇关于控件之Frame LabelFrame Pandwindow的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073888

相关文章

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after

MFC中Spin Control控件使用,同时数据在Edit Control中显示

实现mfc spin control 上下滚动,只需捕捉spin control 的 UDN_DELTAPOD 消息,如下:  OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult) {  LPNMUPDOWN pNMUpDown = reinterpret_cast(pNMHDR);  // TODO: 在此添加控件通知处理程序代码    if

Qt中window frame的影响

window frame 在创建图形化界面的时候,会创建窗口主体,上面会多出一条,周围多次一圈细边,这就叫window frame窗口框架,这是操作系统自带的。 这个对geometry的一些属性有一定影响,主要体现在Qt坐标系体系: 窗口当中包含一个按钮,这个按钮的坐标系是以父元素为参考,那么这个参考是widget本体作为参考,还是window frame作为参考,这两种参考体系都存在

MFC 控件重绘(2) NM_CUSTOMDRAW, WM_DRAWITEM, 虚函数DrawItem

控件重绘有三种方法: 1 设定界面属性 2 利用Windows的消息机制,通过Windows消息映射(Message Mapping)和反映射(Message Reflecting),在合适的时机修改控件的状态和行为。此方式涉及NM_CUSTOMDRAW和WM_DRAWITEM 3 利用虚函数机制,重载虚函数。即DrawItem虚函数。 对于NM_CUSTOMDRAW,某些支持此消息的控件

C# 通过拖控件移动窗体

目录 引言一、通过控件事件移动窗体1、创建窗体界面2、添加控件事件3、添加代码 二、通过windowsAPI移动窗体1、 构建窗体和添加事件2、代码展示 引言 在C#Form窗体设计中,如果我们不需要使用默认边框设计自己个性化的窗体(FromBorderStyle=none时),这时候你会发现拖动窗体的功能就没有了,这里需要自己构建方法让用户可以拖动整个窗体,这里我们使用前辈的

Qt-常用控件(3)-多元素控件、容器类控件和布局管理器

1. 多元素控件 Qt 中提供的多元素控件有: QListWidgetQListViewQTableWidgetQTableViewQTreeWidgetQTreeView xxWidget 和 xxView 之间的区别,以 QTableWidget 和 QTableView 为例. QTableView 是基于 MVC 设计的控件.QTableView 自身不持有数据,使用 QTab

ASP.NET手动触发页面验证控件事件

开发环境:.NET Framework 3.5.1 sp1 参考文章: http://www.codeproject.com/KB/aspnet/JavascriptValidation.aspx http://msdn.microsoft.com/zh-cn/library/aa479045.aspx http://www.cnblogs.com/minsentinel/archive/

兔子--计算listview的高度,解决listview与scrollview控件冲突

/** * 计算ListView的高度 * * @param listView */ public void setListViewHeightBasedOnChildren(ListView listView) { // 获取ListView对应的Adapter OrderGoodsAdapter listAdapter = (OrderGoodsAdapter) listView.getAda