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

复制
相关文章
在Cookie中存储对象
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/46955119
DannyHoo
2018/09/13
3.8K0
ArrayList在Java多线程中的应用
开发中,存在这样的业务逻辑,类似倒金字塔结构,下层数据需要基于上层的数据进行逻辑计算。设计思路是:定义一个全局变量upLayerList,来保存上一层的数据。每一层计算仅需要知道upLayerList就可以,不用关心上一层数据怎么获取。当前层计算完毕后,把结果赋值给upLayerList,留给下一层使用。
用户2146693
2019/08/08
1.5K0
ArrayList在Java多线程中的应用
Java中的ArrayList
在Java编程中,ArrayList是一种常用的动态数组,可以在运行时自动调整大小。本文将深入探讨ArrayList的底层实现,并通过性能分析来评估其优劣。
疯狂的KK
2023/08/08
2110
Java中的ArrayList
Java中ArrayList的用法
ArrayList类是一个特殊的数组--动态数组。来自于System.Collections命名空间;通过添加和删除元素,就可以动态改变数组的长度。
SingYi
2022/07/14
1.2K0
在Java中如何加快大型集合的处理速度
作者 | Nahla Davies 译者 | 明知山 策划 | 丁晓昀 本文讨论了 Java Collections Framework 背后的目的、Java 集合的工作原理,以及开发人员和程序员如何最大限度地利用 Java 集合。 1 什么是 Java 集合 尽管 Java 已经过了 25 岁生日,仍然是当今最受欢迎的编程语言之一。超过 100 万个网站通过某种形式在使用 Java,超过三分之一的软件开发人员的工具箱中有 Java。 Java 在它的整个生命历程中经历了重大的演变。一个早期的
深度学习与Python
2023/03/29
1.9K0
在Java中如何加快大型集合的处理速度
如何在ArrayList中存储不同类型的对象并按照类型输出数据
高久峰
2023/06/27
3750
Java中ArrayList的同步方法
arrayList 的实现是默认不同步的。这意味着如果一个线程在结构上修改它并且多个线程同时访问它,它必须在外部同步。结构修改意味着从列表中添加或删除元素或显式调整后备数组的大小。改变现有元素的值不是结构修改。
小锋学长生活大爆炸
2021/09/26
1.9K0
java中arraylist扩容问题_Arraylist扩容机制[通俗易懂]
当我们要 add 进第1个元素到 ArrayList 时,elementData.length 为0 (因为还是一个空的 list),因为执行了 ensureCapacityInternal() 方法 ,所以 minCapacity 此时为10。此时,minCapacity – elementData.length > 0成立,所以会进入 grow(minCapacity) 方法。
全栈程序员站长
2022/09/06
9790
Iterator在ArrayList中的源码实现
获取迭代器 List<LinkedHashMap> list = new ArrayList<>(); Iterator iterator = list.iterator(); iterator()方法实现 public Iterator<E> iterator() { return new Itr(); } Itr 源码 /** * An optimized version of AbstractList.Itr */ private class Itr imp
小小明童鞋
2018/06/13
1.1K0
SharedPreferences存储ArrayList
最近在做“桌面”项目(奶糖桌面),在做到“隐藏APP”的时候,是把要隐藏的APP(arraylist)包名拿出来,在获取全部APP(allapplist)的时候,把获取到的包名和所有APP包名做一个比较,如果存在的话就从allapplist中移除这一项。详情可参考以下代码:
奶油话梅糖
2021/03/16
9470
Java中ArrayList与LinkedList的区别
Java中ArrayList与LinkedList的区别 一般大家都知道ArrayList和LinkedList的区别:       1. ArrayList的实现是基于数组,LinkedList的实现是基于双向链表。        2. 对于随机访问,ArrayList优于LinkedList       3. 对于插入和删除操作,LinkedList优于ArrayList   4. LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据,还存储了两个引用,一个指向前
nnngu
2018/03/15
1.6K0
Java中Arraylist与linkedlist的区别
List: 有顺序的,元素可以重复 遍历:for 迭代 排序:Comparable Comparator Collections.sort() ArrayList:底层用数组实现的List 特点:查询效率高,增删效率低 轻量级 线程不安全 遍历: ArrayList<String> al=new ArrayList(); al.add("winsun"); al.add("weixin"); al.add("mybole"); for(int i=0;i<al.size();i
闵开慧
2018/03/30
9720
Java 中的 Vector、Stack 与 ArrayList
引子:首先不得不说, Vector 与 Stack 这一对继承设计是蹩脚、失败的。
Fisherman渔夫
2020/02/17
1.1K0
Java中ArrayList集合的基本使用
概述: 要知道数组的长度是不可改变的 但是ArrayList集合的长度是可以随意变化的 1.创建 类型不能是基本数据类型 只能是引用数据类型 用基本数据类型的包装类就可以 //创建ArrayList集合 ArrayList<String> arrayList = new ArrayList<String>(); //int包装类 ArrayList<Integer> arrayList2 = new ArrayList<Integer>(); 对照表:
用户9006224
2022/12/21
6740
Java中ArrayList集合的基本使用
JAVA对象在JVM中内存分配
如果你还不了解JVM内存模型的建议您先看下JVM内存模型 以一下代码为例,来分析下,java的实例对象在内存中的空间分配(JDK1.8)。 public class Student { private String name; private static Birthday birthday = new Birthday(); public Student(String name) { this.name = name; } public sta
java404
2018/05/18
1.9K0
面试官:Java中实例对象存储在哪?
低级语言是计算机认识的语言、高级语言是程序员认识的语言。如何从高级语言转换成低级语言呢?这个过程其实就是编译。
Java宝典
2021/03/16
5970
Java 移动 ArrayList 中的元素的方法
原文地址:https://www.baeldung.com/java-arraylist-move-items
明明如月学长
2023/03/13
1.5K0
ArrayList实现原理分析(Java源码剖析)ArrayList使用的存储的数据结构ArrayList的初始化ArrayList是如何动态增长ArrayList如何实现元素的移除ArrayList
ArrayList是我们经常使用的一个数据结构,我们通常把其用作一个可变长度的动态数组使用,大部分时候,可以替代数组的作用,我们不用事先设定ArrayList的长度,只需要往里不断添加元素即可,ArrayList会动态增加容量。ArrayList是作为List接口的一个实现。 那么ArrayList背后使用的数据结构是什么呢? ArrayList是如何保证动态增加容量,使得能够正确添加元素的呢?
desperate633
2018/08/27
1.6K0
java之学习去除ArrayList中重复自定义对象元素
结果示意图: 前言: 很多时候或者很多项目中都会遇到集合中重复的部分,如何去除这些重复的部分呢?接下来小编就用创建新集合的方式去除集合中重复的部分。 原理: 原理就是创建新的集合 把旧的集合复制到新的
吾爱乐享
2018/07/12
1.7K0
在Java中将ArrayList转换为Array
In this tutorial you will learn how to convert ArrayList to Array in Java.
用户7886150
2021/04/29
1.8K0

相似问题

在ArrayList中存储对象时出错

20

如何检索存储在Java ArrayList中的对象值

60

在arraylist中存储对象

52

Java:如何存储和传输大型Integer-ArrayList

120

在java中存储要文件的大型JSON对象?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文