• 12474阅读
  • 5回复

关于QTabWidget标签的左右移动 [复制链接]

上一主题 下一主题
离线rockyluo
 

只看楼主 倒序阅读 楼主  发表于: 2008-09-28
— 本帖被 XChinux 执行加亮操作(2008-09-28) —
当一个QTabWidget的标签过多时,QTabWidget会自动在标签一行的最右边显示出两个控制标签左右移动的按钮,在库里头找了半天没找到关于这两个按钮的相关代码,有谁晓得在哪个地方?

我想重新写个QTabWidget,关键是嫌那两个按钮太小了,同时移动标签太慢了。。。。。。。
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线rockyluo

只看该作者 1楼 发表于: 2008-10-06
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线lazybone
只看该作者 2楼 发表于: 2008-10-06
Jambi--QTabWidget()
-------------------
public final Qt.TextElideMode elideMode()
This property holds how to elide text in the tab bar. This property controls how items are elided when there is not enough space to show them for a given tab bar size.
By default the value is style dependant.
离线ooyoyo
只看该作者 3楼 发表于: 2009-03-31
我这两天也在弄这个,那两个按钮太小了,在触摸屏上没办法点
想了下要继承类来搞很麻烦,去看了源代码,直接改源码比较简单
在qt/src/widget/qtabbar.cpp里,resizeEvent():
d->rightB->setGeometry(width()-ArrowWidth,0,ArrowWidth,height());
d->leftB->setGeometry(width()-2*ArrowWidth,0,ArrowWidth,height());
改为:
d->rightB->setGeometry(width()-height(),0,height(),height());
d->leftB->setGeometry(width()-height(),0,height(),height());
让两个按钮变成方的,有多高就有多宽
然后回到qt/下,make,重新生成libqte.so
再运行程序就ok了。记得发布的时候要带上改过的libqte.so

我是1.7的qtopia,版本比较老了
离线iiiyyyhhhsss

只看该作者 4楼 发表于: 2009-10-18
这个可以在样式表里调
如下
tabWidget->setStyleSheet("QTabBar::scroller{ width: 40px;}");
离线帅坤
只看该作者 5楼 发表于: 2010-09-27
能不能将过多的标签排列成两排?
这样岂不是更方便。
有谁知道怎么排成两排吗?
快速回复
限100 字节
 
上一个 下一个