• 7830阅读
  • 9回复

我要让三个按钮对齐怎么办呀(急求)?不要小看呀! [复制链接]

上一主题 下一主题
离线dym123_dym
 
只看楼主 倒序阅读 楼主  发表于: 2010-01-11

三个按钮是“深度偏移”“设置深度”“深度反转”

//深度偏移框
QGroupBox *excursionGB = new QGroupBox;
excursionGB->setTitle(QObject::tr("深度偏移:"));

QRadioButton *upRBtn = new QRadioButton(QObject::tr("向上偏移"));
QRadioButton *downRBtn = new QRadioButton(QObject::tr ("向下偏移"));

QLabel *excursionLabel = new QLabel(QObject::tr("偏移量:"));
QLineEdit *excursionLEdit = new QLineEdit;
excursionPBtn = new QPushButton(QObject::tr("深度偏移"));

QGridLayout *excursionGLyt = new QGridLayout;
excursionGLyt->addWidget(upRBtn,0,0,1,1);
excursionGLyt->addWidget(downRBtn,2,0,1,1);
excursionGLyt->addWidget(excursionLabel,1,1,1,1);
excursionGLyt->addWidget(excursionLEdit,1,2,1,1,Qt::AlignRight);

excursionGLyt->addWidget(excursionPBtn,3,2,Qt::AlignRight);
excursionGB->setLayout(excursionGLyt);

//设置深度框
QGroupBox *depthsetGB = new QGroupBox;
depthsetGB->setTitle(QObject::tr("设置深度:"));

QGridLayout *depthsetGLyt = new QGridLayout;
QLabel *startLb = new QLabel(QObject::tr("起始深度:"));
QLineEdit *startLEdit = new QLineEdit;
QLabel *endLb = new QLabel(QObject::tr("终止深度:"));
QLineEdit *endLEdit = new QLineEdit;
depthsetPBtn = new QPushButton(QObject::tr("设置深度"));

depthsetGLyt->addWidget(startLb,0,0);
depthsetGLyt->addWidget(startLEdit,0,1);
depthsetGLyt->addWidget(endLb,1,0);
depthsetGLyt->addWidget(endLEdit,1,1);
depthsetGLyt->addWidget(depthsetPBtn,2,1,Qt::AlignRight);


depthsetGB->setLayout(depthsetGLyt);
//......
QGridLayout * depthGLyt = new QGridLayout;
depthReversePBtn = new QPushButton(QObject::tr("深度反转"));
depthGLyt->addWidget(depthReversePBtn,0,1,Qt::AlignRight);
depthGLyt->setSpacing(5);

depthWgt = new QWidget;
QVBoxLayout *vbLyt = new QVBoxLayout(depthWgt);
vbLyt->addWidget(excursionGB);
vbLyt->addWidget(depthsetGB);
//vbLyt->addWidget(depthReversePBtn,Qt::AlignRight);
vbLyt->addLayout(depthGLyt);
离线午小夜

只看该作者 1楼 发表于: 2010-01-11
最簡單的方法是move和show的搭配。
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线dym123_dym
只看该作者 2楼 发表于: 2010-01-11
二楼能详细讲一下吗?谢谢啦
离线xinqingfly

只看该作者 3楼 发表于: 2010-01-11
给设置深度加个QSpacerItem,然后调整QSpacerItem的大小到合适位置
菜鸟也是鸟
离线午小夜

只看该作者 4楼 发表于: 2010-01-11
你還是用另一種方法吧,把最後一個按鈕放到一個QHBoxLayout中。在QHBoxLayout裏,按鈕後面addSpacing。
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线dym123_dym
只看该作者 5楼 发表于: 2010-01-11
                    最后几句改了几下,解决问题。用的午小夜的方法
                      QHBoxLayout *depthGLyt = new QHBoxLayout;
    depthReversePBtn = new QPushButton(QObject::tr("深度反转"));
    depthGLyt->addSpacing(282);
    depthGLyt->addWidget(depthReversePBtn,Qt::AlignRight);
    depthGLyt->addSpacing(9);
离线voidbroken

只看该作者 6楼 发表于: 2012-01-30
请灭了楼上
离线jdwx

只看该作者 7楼 发表于: 2012-01-30
引用第7楼voidbroken于2012-01-30 16:24发表的  :
请灭了楼上

没错!
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线roywillow

只看该作者 8楼 发表于: 2012-01-30
主要问题是最后一个按钮吧
要不也把它放到一个groupbox中,设置box边框为无试试?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线kimtaikee

只看该作者 9楼 发表于: 2012-01-30
对"深度偏移"和“深度设置”两个QGroupBox的layout调用setContentsMargins(0,0,0,0),因为layout的margin默认为11(模糊地记得是这个数字),所以上两个button距离第三个button的水平相对距离是11.

快速回复
限100 字节
 
上一个 下一个