• 14619阅读
  • 13回复

[提问]QToolBar如何调整两个小部件之间的间距? [复制链接]

上一主题 下一主题
离线hjkcai
 
只看楼主 倒序阅读 楼主  发表于: 2011-11-12
我在QToolBar中加入了两个QComboBox,可是这两个QComboBox都挤在了一起,如何在这两个小部件中间增加间距?有不用分隔符的方法吗?
离线jdwx

只看该作者 1楼 发表于: 2011-11-12
回 楼主(hjkcai) 的帖子
最简单的办法,中间放一个固定大小的QLabel,void QLabel::setFixedWidth ( int w )
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线roywillow

只看该作者 2楼 发表于: 2011-11-12
回 1楼(jdwx) 的帖子
QToolBar好像也是有一个layout?能直接修改那个layout的margin之类的吗?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jdwx

只看该作者 3楼 发表于: 2011-11-12
回 2楼(roywillow) 的帖子
有layout,估计能修改,那些个QAction是不是也会受到影响?
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线hjkcai
只看该作者 4楼 发表于: 2011-11-12
确实是有layout,我设置了margin为5,但间距并没有改变,而是整个工具栏变高了。看来还是加一个固定宽度的label好
离线hjkcai
只看该作者 5楼 发表于: 2011-11-12
现在还一个问题就是,我创建了两个工具栏,怎么把第二个工具栏默认移到第一个下面?
离线jdwx

只看该作者 6楼 发表于: 2011-11-12
回 5楼(hjkcai) 的帖子
bool    restoreState ( const QByteArray & state, int version = 0 )
QByteArray    saveState ( int version = 0 ) const
可以考虑用这两个函数,能记住和还原位置,下回再打开程序QToolBar还在上回窗口关闭的地方
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线jorneyr

只看该作者 7楼 发表于: 2011-11-12
引用第4楼hjkcai于2011-11-12 15:42发表的  :
确实是有layout,我设置了margin为5,但间距并没有改变,而是整个工具栏变高了。看来还是加一个固定宽度的label好

设置spacing
离线roywillow

只看该作者 8楼 发表于: 2011-11-12
我只是随便一说,margin好像是与边界的距离……中间的距离根据楼上一提醒好像还真有可能是spacing……懒得看文档了……
我记得addToolBarSeparator可以让两个toolbar分行显示,不过只是在QMainWindow里才有这个
修改layout的话确实有可能不止影响那两个combobox了,或许可以在combobox外套一层带有layout的QWidget,因为layout默认与边界是有距离的
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线williamshy
只看该作者 9楼 发表于: 2011-11-12
它那个控件的属性怎么调啊?
是难用,还是我没有入门啊。
shy
离线hjkcai
只看该作者 10楼 发表于: 2011-11-12
回 7楼(jorneyr) 的帖子
如何设置spacing?能给出具体代码吗?
离线roywillow

只看该作者 11楼 发表于: 2011-11-12
回 10楼(hjkcai) 的帖子
QLayout有setSpacing()函数

For QGridLayout and QFormLayout, it is possible to set different horizontal and vertical spacings using setHorizontalSpacing() and setVerticalSpacing(). In that case, spacing() returns -1.
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jorneyr

只看该作者 12楼 发表于: 2011-11-12
int QGridLayout::spacing () const

If the vertical spacing is equal to the horizontal spacing, this function returns that value; otherwise it return -1.

See also setSpacing(), verticalSpacing(), and horizontalSpacing().
离线jorneyr

只看该作者 13楼 发表于: 2011-11-12
int QGridLayout::spacing () const

If the vertical spacing is equal to the horizontal spacing, this function returns that value; otherwise it return -1.

See also setSpacing(), verticalSpacing(), and horizontalSpacing().
快速回复
限100 字节
 
上一个 下一个