最近闲来无事,想仿照微信写一个IM(即时通信)软件,一些简单的注册、登录、重置密码界面都用QT5的item-base控件写好了,这些界面比较简单,不涉及动态化的数据展示,也不涉及控件自适应。



但是,主体聊天界面,由于联系人以及聊天框都涉及到动态化展示,最好使用model-base控件如ListView嵌套上ScrollArea,但原生的QWidget在model-base控件这一方面支持不太好,因此,我就使用了QML来进行主体聊天框的界面开发,并将model即数据开放给C++端,关于这部分的内容后面再写。
今天主要写QML控件开发过程遇到的问题,我遇到的问题是这样
在这个聊天界面中,主要分为三部分,最左侧灰色界面切换栏,中间联系人信息栏,右侧聊天框,这里简称为123。其中12都是宽度固定的,3是宽度不固定,123高度都不固定。
当我发送消息时,即绿色部分,我希望Text部分的整体宽度最多占到3的三分之二,如果3的宽度变了,那么Text的宽度以及排列要做自适应,如果Text长度小于三分之二,那么宽度恒定,即做下面到这个效果