qt控件怎么布局
qt控件如何布局
程序中定义了两个window
QWidget *window;
QWidget *window1
每个都调用了show的方法,这样程序运行就出现了两个窗口。
问题是,我如何将这两个window并列放入一个window中去,这样运行程序只出现一个窗口,窗口左右分别是刚刚那两个小窗口?
------解决方案--------------------
最简单的用QGridLayout()栅格布局,包括了水平布局和垂直布局两种
如果只要在main.cpp里实现的话,很简单
关键代码
不明白的话,就给每个部件添加一些文字,再运行一下就比较容易懂了。
具体可以参考《C++ GUI QT4编程》第二版 第六章布局管理
Qt参考文档的QGridLayout一页
------解决方案--------------------
main.cpp里面不能用this。
你这样吧
QWidget *win0=new QWidget;
win0.resize(640, 240);
QWidget *win1=new QWidget(win0);
win1->resize(320,240);
QWidget *win2=new QWidget(win0);
win2->resize(320,240);
QHBoxLayout * layout = new QHBoxLayout();
layout.addWidget(window );
layout.addWidget(window1 );
win0.setLayout(layout);
win0->show();
程序中定义了两个window
QWidget *window;
QWidget *window1
每个都调用了show的方法,这样程序运行就出现了两个窗口。
问题是,我如何将这两个window并列放入一个window中去,这样运行程序只出现一个窗口,窗口左右分别是刚刚那两个小窗口?
------解决方案--------------------
最简单的用QGridLayout()栅格布局,包括了水平布局和垂直布局两种
如果只要在main.cpp里实现的话,很简单
关键代码
QWidget *win0=new QWidget(0);//用以展示两个部件的主窗口
QWidget *win1=new QWidget(win0);
QWidget *win2=new QWidget(win0);
//win1 win2是楼主所需要的两个部件,声明它们是以win0为主窗口的
QGridLayout *layout=new QGridLayout(win0);//使用栅格布局器,这个布局将win0分割,便于放置子部件。
layout->addWidget(win1,0,0,1,1);
layout->addWidget(win2,0,1,1,1);
//分别将两个部件放置到布局管理器中
//参数1:需要防止的部件指针
//参数2,3,4,5,该部件在第几行第几列,占用几行几列。
win0->show();
不明白的话,就给每个部件添加一些文字,再运行一下就比较容易懂了。
具体可以参考《C++ GUI QT4编程》第二版 第六章布局管理
Qt参考文档的QGridLayout一页
------解决方案--------------------
main.cpp里面不能用this。
你这样吧
QWidget *win0=new QWidget;
win0.resize(640, 240);
QWidget *win1=new QWidget(win0);
win1->resize(320,240);
QWidget *win2=new QWidget(win0);
win2->resize(320,240);
QHBoxLayout * layout = new QHBoxLayout();
layout.addWidget(window );
layout.addWidget(window1 );
win0.setLayout(layout);
win0->show();