最近在用QT开发
聊天软件,其
界面和QQ类似。每条消息都有一个气泡。但有个
问题一直困扰着我,就是:如何根据发送的消息的长度和
字体不同而设定气泡的大小。我尝试了几个方案,但都行不通。
方案一:使用QWidget作为主界面,然后将消息
显示在这里。使用QTextBrowser来显示文字,但问题是,QTextBrowser会有一个默认大小,文字太少了是这样的:
文字太少,而QTextBrowser空白的地方太多。我尝试了几次,好像
没有办法使得QTextBrowser的
窗口大小自适文字的多少。
方案二:使用
QGraphicsView、QGraphicsScene、QGraphicsTextitem来进行排版,在这里QGraphicsTextitem是可以自适应文字的多少,不会显示多余的东西,但问题也来了,1:无法获取QGraphicsTextitem高度,那么气泡这一步也就无法做了;2:QGraphicsTextitem的paintEvent不是公开的方法,无法通过重载来实现绘制气泡。。。。
各位看看有没有一些思想提供下,或者是我上面的
错误有错的地方,大家尽管提出来。