注意,是Label,Button,TabWidget,pixmap这几个控件都要自动调整哦。谢谢了。
18 个解决方案
#1
还是用QHBoxLayou,QVBoxLayout吧,还比较方便
#2
如果期望大小能随窗口大小变化, 首先各控件相应方向上的策略改成Expanding(初级做法), 再者对窗体进行布局, 这个时候可以多用QBoxLayout或QGridLayout进行布局即可~`
#3
用布局可以达到效果~
#4
使用各种layout就好了,如果某个wiget需要在某种size的时候有限定的话(比如,当x大于100像素的时候如何如何),则可以把sizeChange这个SIGNAL和自定义的SLOT connect起来
#5
QHBoxLayout *editL = new QHBoxLayout;
editL->setSpacing(30);
editL->addWidget(IDC_STATIC_DEFAULT_LIB);
editL->addWidget(IDC_EDIT_DEFAULT_LIB);
QGridLayout *libLayout = new QGridLayout;
libLayout->setHorizontalSpacing(10);
libLayout->setColumnStretch(0,1);
editL->setSpacing(30);
editL->addWidget(IDC_STATIC_DEFAULT_LIB);
editL->addWidget(IDC_EDIT_DEFAULT_LIB);
QGridLayout *libLayout = new QGridLayout;
libLayout->setHorizontalSpacing(10);
libLayout->setColumnStretch(0,1);
#6
不好意思 ,发错啦
#7
QPushButton *button= new QPushButton(tr("Text"));
QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addStretch(1);
buttonLayout->addWidget(button);
QGridLayout *layout = new QGridLayout;
layout->setRowStretch(0,1);
layout->addLayout(buttonLayout );
setLayout(layout);
对于任何一个你想只适应大小的加上 “stretch ”就可以办到。 以上代码可以实现Test 按钮一直处于对话框的右下角
#8
layout
#9
用GridLayout,最强大的布局方式
#10
Layout是不是只能对付Widget啊?我的那些部件都是在MainWindow中手工添加好了的。我把部件拖入GridLayout,我拉动WainWindow,它们根本就不动啊。
#11
我现在可以实现的,都是在整个MainWindow窗口中,部件可以改变大小。
但是,我并不想让某个按钮占满整个窗口啊
但是,我并不想让某个按钮占满整个窗口啊
#12
你可以设定按钮的sizePolicy属性设置成Fixed, 或者可以通过添加弹簧来限制它的扩展~``
#13
哦。对的,这个是可以实现了。但还有一个问题,我的Mainwindow中还有画布(满足其他需要)。
请问,怎么让这个画布,也一起伸缩呢。谢谢
请问,怎么让这个画布,也一起伸缩呢。谢谢
#14
请问,怎么添加弹簧呢
#15
由于,我要留一个区域来画图。请问能不能让其他部件,在左半边窗口中自动调整。而让pixmap在右半边窗口中自动调整呢
#16
你可以用两个QWidget放在窗口中水平布局, 然后把"其它部件"放在左边的QWidget中, 把"画图区域"放在右边的QWidget中即可~``
#17
我试试吧,谢谢各位了!!
#18
3Q……!
#1
还是用QHBoxLayou,QVBoxLayout吧,还比较方便
#2
如果期望大小能随窗口大小变化, 首先各控件相应方向上的策略改成Expanding(初级做法), 再者对窗体进行布局, 这个时候可以多用QBoxLayout或QGridLayout进行布局即可~`
#3
用布局可以达到效果~
#4
使用各种layout就好了,如果某个wiget需要在某种size的时候有限定的话(比如,当x大于100像素的时候如何如何),则可以把sizeChange这个SIGNAL和自定义的SLOT connect起来
#5
QHBoxLayout *editL = new QHBoxLayout;
editL->setSpacing(30);
editL->addWidget(IDC_STATIC_DEFAULT_LIB);
editL->addWidget(IDC_EDIT_DEFAULT_LIB);
QGridLayout *libLayout = new QGridLayout;
libLayout->setHorizontalSpacing(10);
libLayout->setColumnStretch(0,1);
editL->setSpacing(30);
editL->addWidget(IDC_STATIC_DEFAULT_LIB);
editL->addWidget(IDC_EDIT_DEFAULT_LIB);
QGridLayout *libLayout = new QGridLayout;
libLayout->setHorizontalSpacing(10);
libLayout->setColumnStretch(0,1);
#6
不好意思 ,发错啦
#7
QPushButton *button= new QPushButton(tr("Text"));
QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addStretch(1);
buttonLayout->addWidget(button);
QGridLayout *layout = new QGridLayout;
layout->setRowStretch(0,1);
layout->addLayout(buttonLayout );
setLayout(layout);
对于任何一个你想只适应大小的加上 “stretch ”就可以办到。 以上代码可以实现Test 按钮一直处于对话框的右下角
#8
layout
#9
用GridLayout,最强大的布局方式
#10
Layout是不是只能对付Widget啊?我的那些部件都是在MainWindow中手工添加好了的。我把部件拖入GridLayout,我拉动WainWindow,它们根本就不动啊。
#11
我现在可以实现的,都是在整个MainWindow窗口中,部件可以改变大小。
但是,我并不想让某个按钮占满整个窗口啊
但是,我并不想让某个按钮占满整个窗口啊
#12
你可以设定按钮的sizePolicy属性设置成Fixed, 或者可以通过添加弹簧来限制它的扩展~``
#13
哦。对的,这个是可以实现了。但还有一个问题,我的Mainwindow中还有画布(满足其他需要)。
请问,怎么让这个画布,也一起伸缩呢。谢谢
请问,怎么让这个画布,也一起伸缩呢。谢谢
#14
请问,怎么添加弹簧呢
#15
由于,我要留一个区域来画图。请问能不能让其他部件,在左半边窗口中自动调整。而让pixmap在右半边窗口中自动调整呢
#16
你可以用两个QWidget放在窗口中水平布局, 然后把"其它部件"放在左边的QWidget中, 把"画图区域"放在右边的QWidget中即可~``
#17
我试试吧,谢谢各位了!!
#18
3Q……!