Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在具有大边框的wx.Panel派生类中重新定位子类?

如何在具有大边框的wx.Panel派生类中重新定位子类?
EN

Stack Overflow用户
提问于 2016-01-05 19:37:09
回答 1查看 128关注 0票数 0

我有一个从wx.Panel派生出来的类,它在一个大的边界区域创建一个图像(例如,左边边缘的30像素多一点)。我希望能够在我的应用程序的一部分中为面板派生子类,但是我想不出如何调整派生面板中子面板的位置--他们认为添加的边框区域是客户端窗口的一部分,并且非常高兴地将自己置于其中(随后被基类‘EVT_PAINT处理程序删除)。

我尝试过跟踪客户区域并覆盖各种GetClient.方法在我的基类中,但是它似乎没有改变任何关于子行为的内容。我想我可以手动地重新定位子类中的子窗口,但是这是大量重复的代码,似乎没有必要。

在互联网上寻找答案并不是一项成功的事业。我还试着通过wx代码寻找答案,但我在那里也没有任何运气。

在窗口中定义工作区的最佳方法是什么,这样孩子就可以自动地将自己定位在父服务器的边缘之外了?是否有一种方法可以告诉新对象,它们的父对象的工作区不是从(0,0)开始(似乎重写GetClientAreaOrigin应该这样做,但似乎不起作用)?我应该在Layout()或wx.EVT_SIZE处理程序的上下文中手动移动它们吗?什么是优雅和/或适当的解决方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-21 16:41:36

经过一些努力,我放弃了这种笨重的方法,但我确实取得了有限的成功,我想指出一些我学到的东西,以防别人在考虑它。

  1. 看看PyPanel --它被设计得相当广泛,并且对我所做的大多数事情都有很好的反应。
  2. 我在最初的工作中发现的最佳方法是创建一个面板实例,作为控件的子实例,作为内容管理器。我重载控件中的AddChild和SetSizer,以将它们重定向到子面板;我还实现了可以在控件中设置的受保护标志,以防止重定向(否则,当我创建内容面板时,我会尝试将内容面板添加到自身而不是控件中)。
  3. 在某些控件中,我仍然遇到了一些奇怪的地方(特别是SpinCtrl想要以非常奇怪的方式定位自己,通常是在内容面板之外,尽管我尽了一切努力来防止它)。我也遇到了一些麻烦,让size在控制的最佳/最小尺寸方面表现良好。

我认为我能给出的最好的建议是考虑寻找其他方法来做到这一点;在我的例子中,我能够创建一个控件,该控件可以包含在一个面板中,以方便家长的期望行为;父母例程中的钩子比我在最初的工作中创建的派生类的Frankensteinian混乱要容易得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34625218

复制
相关文章
条码软件中如何在边框上添加文字
很多用户在使用条码标签软件设计制作标签时,会有自己的一些个性化的需要,虽然条码软件不能和作图软件相比,但是很多效果还是可以通过一些小技巧来实现的。比如下面要给大家介绍的把文字压在边框上的效果。如下图所示。
神奇像素科技
2022/03/01
2.8K0
条码软件中如何在边框上添加文字
如何在QGraphicsView的边框上制作标尺?
最近使用Qt开发一个Rip的软件工具,类似于SAI软件的作业属性中的截图,如下图所示:
ccf19881030
2021/04/19
2.1K0
如何在QGraphicsView的边框上制作标尺?
Java中的原子类
在前面的内容中,我们已经学习了CAS的原理,所以对于学习本节来说会非常容易。本节介绍Java中的原子类是java.util.concurrent.atomic包下的对象,他们之所以有原子性的共性,都来源于CAS,可见CAS的重要性。对于原子类变量的操作是不会存在并发性问题的,不需要使用同步手段进行并发控制。它底层自身的实现即可保证变量的可见性以及操作的原子性,一般我们可以使用AtomicInteger,AtomicLong等实现计数器等功能,利用AtomicBoolean实现标志位等功能。
胖虎
2020/12/22
7340
Java中的原子类
并发编程中的原子类
对多线程访问同一个变量,我们需要加锁,而锁是比较消耗性能的,JDk1.5之后, 新增的原子操作类提供了 一种用法简单、性能高效、线程安全地更新一个变量的方式, 这些类同样位于JUC包下的atomic包下,发展 到JDk1.8,该包下共有17个类, 囊括了原子更新基本类型、原子更新数组、原子更新属性、原子更新引用
Dream城堡
2019/05/20
4570
JUC 中的 Atomic 原子类
Java1.5的Atomic包名为java.util.concurrent.atomic。
Vincent-yuan
2021/07/20
4780
JUC 中的 Atomic 原子类
用wxPython打造Python图形界面
当你为小部件的位置提供精确的坐标时,使用的技术称为绝对定位。大多数GUI工具包都提供了这种功能,但实际上并不推荐使用这种功能。
AiTechYun
2019/05/13
2.3K0
如何在匿名thread子类中保证线程安全
在做性能测试的过程中,我写了两个虚拟类ThreadLimitTimeCount和ThreadLimitTimesCount做框架,通过对线程的标记来完成超时请求的记录。旧方法如下:
FunTester
2020/02/17
4730
如何在PostgreSQL中更新大表
在Postgres中更新大型表并不像看起来那样简单。如果您的表包含数亿行,您将发现很难及时进行简单的操作,例如添加列或更改列类型。
蒋老湿
2019/11/06
4.9K0
Docker容器实战(三) - Docker的自我重新定位
Docker公司为什么在Docker项目已经取得巨大成功之后,执意走回已经让无数先驱折戟的PaaS路呢?
JavaEdge
2019/09/04
6750
Docker容器实战(三) - Docker的自我重新定位
派生类的构造过程
1、先基类、后对象、再子类 多继承,初始化顺序跟基类的声明顺序有关,从左到右。 对象 ,与声明类的顺序有关,从上到下。
我与梦想有个约会
2023/10/20
1590
派生类的构造过程
wxPython中文教程入门实例「建议收藏」
这篇文章主要为大家分享下python编程中有关wxPython的中文教程,分享一些wxPython入门实例,有需要的朋友参考下
全栈程序员站长
2022/08/26
2.1K0
创建子类对象时,父类构造函数中调用被子类重写的方法为什么调用的是子类的方法?
问题:为什么创建A对象的时候父类会调用子类方法? 但是:创建B对象父类会调用父类的方法?
zhangheng
2020/04/28
6.5K0
(九)Python GUI的基本框架
目录 基本框架 组件 事件处理机制  GUI常用组件 按钮 菜单 菜单常用事件 静态文本和文本框 列表 单选与复选框   布局管理  sizer 使用sizer的步骤 其他GUI库 PyQt Tkinter PyGTK ---- 基本框架 创建一个简单的wxPython程序 import wx app = wx.App() # 创建应用程序对象 frame = wx.Frame(None, title = "Hello, World!") #创建一个框架 frame.Show(True) # 显示窗
小点点
2022/12/12
1.8K0
(九)Python GUI的基本框架
语言设计中的鸭子类型风格
image.png #思特沃克好声音# (图片:网络) 在动态语言的世界里一直流传着一种叫做鸭子类型的风格,其来自谚语:“如果行鸭子一样走路,像鸭子一样呱呱叫,那它就是一只鸭子”。      从鸭子类型,我们可以联想到它的推导,并不在乎类型的真正实体,只要他的行为有鸭子的特性,那么我们就可以把它当做一只鸭子来看到。在动态语言设计中,可以解释为无论一个对象是什么类型的,只要它具有某类型的行为(方法),则它就是这一类型的实例,而不在于它是否显示的实现或者继承。      鸭子类型在动态语言中被广为奉行。某类接
ThoughtWorks
2018/04/16
8350
语言设计中的鸭子类型风格
探讨Java中的父子类转化问题
------------------------------------------------------------------------------------------------------------------------------------
用户6182664
2020/05/07
4.2K0
网站建设中怎么设置层的边框 边框设计的作用是什么
如果大家仔细观察,就会发现现在很多企业都在搭建一个专属自己的企业网站,这样网站的框架都各有不同,基本都是根据企业的用户群体以及习惯进行搭建。由此可见,想要搭建一个符合用户体验的网站,就要好好搭建网站的框架。下面为大家介绍网站建设中怎么设置层的边框。
用户8715145
2021/12/13
1.1K0
如何在大量数据中找出第2大的数字
观察继承关系可以发现TreeMap是继承SortedMap的,这就说明它是有序的.
一个架构师
2022/06/20
9330
如何在大量数据中找出第2大的数字
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
31.2K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
点击加载更多

相似问题

wx.Panel in a wx.Panel

12

销毁边框不会被wx.Panel ()方法销毁

20

从wx.Panel子类返回threading.Thread

10

具有圆角边框的UIImage,如联系人

40

重写具有更多派生类型的子类继承属性

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档