• 9285阅读
  • 16回复

[讨论]qt4.8中怎么动态创建控件 [复制链接]

上一主题 下一主题
离线atmats
 
只看楼主 倒序阅读 楼主  发表于: 2012-07-11
请问各位大侠怎么在Qt4.8中动态的创建一个或者多个控件,并且需要将创建的控件布局在top、left、bottom、right四个位置,我不知道该怎么弄,请大侠们帮帮忙
离线roywillow

只看该作者 1楼 发表于: 2012-07-11
Qt中似乎用“组件”这个词更多一写
Qt的界面构建完全是用C++代码实现的,即使是ui文件也会转为C++代码编译进程序
所以只要在需要的时候声明、实例你需要的widget就可以实现动态添加组件
至于放在什么地方,可以直接用布局来管理,或者手动move()之
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线atmats
只看该作者 2楼 发表于: 2012-07-11
能详细一点吗?可以上点源码吗?我创建的组件show一下后就弹出另一个窗体了,布局更是一踏糊涂,希望能帮帮忙啊
离线itstudy
只看该作者 3楼 发表于: 2012-07-11
举个简单的例子
(1) 比如在MainWidget中创建一个Label 可以这样写:
QLabel *pLabel = new QLabel(this); //创建子控件
pLabel->setGeometry();   //设置位置
(2)若你想代码实现布局 可以用QGridLayout  QHBoxLayout QVBoxLayout QSplitter 等
离线passion_wu
只看该作者 4楼 发表于: 2012-07-11
你创建的时候要指明父窗体。
离线atmats
只看该作者 5楼 发表于: 2012-07-12
动态创建的控件需要添加到create设计的界面该怎么做?并且需要将创建的控件布局在top、left、bottom、right四个位置,我不知道该怎么弄,按照楼上的提示我能动态生成控件了,但是该怎么管理实在是不知道该怎么弄啊,请大侠们帮帮忙
离线roywillow

只看该作者 6楼 发表于: 2012-07-12
回 5楼(atmats) 的帖子
你还是看一下Qt的入门教程吧…这些都是基本的啊…
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线atmats
只看该作者 7楼 发表于: 2012-07-12
主要是我用设计器也添加了一部分组件,问题是现在界面上有其它组件,所以动态添加的控件我也不知道该怎么布局在上面那四个位置,请大侠帮帮忙啊
离线atmats
只看该作者 8楼 发表于: 2012-07-12
各位帮帮忙啦,怎么将动态生成的组件布局在top、left、bottom、right四个位置,并且不影响之前用设计器添加的组件,请大侠们救命啊。。。。跪求!!!
离线roywillow

只看该作者 9楼 发表于: 2012-07-12
设计师的ui文件最后也是要转成C++代码的, 其中每个部件都有对应的变量的, 包括布局, 所以可以直接用代码访问
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线shiziyang

只看该作者 10楼 发表于: 2012-07-12
把所有控件的父窗体一一指定(在构造函数里指定或用setParent),再通过代码移动到你要的位置上
离线atmats
只看该作者 11楼 发表于: 2012-07-12
只看该作者 9楼

设计师的ui文件最后也是要转成C++代码的, 其中每个部件都有对应的变量的, 包括布局, 所以可以直接用代码访问
这个太高深了,我不懂啊,我还是新手呢,动态创建控件是可以,难就难在怎么管理这些控件,布局让我很头疼,希望能说详细一点啊
离线atmats
只看该作者 12楼 发表于: 2012-07-12
您说的这个太高深了,小弟实在不是很懂,您能说详细一点吗?动态创建是可以了,但是难就难在怎么将它布局到界面中,而且不影响界面上的其他组件,这个很让人头疼,一点可行的方法都没有,求大侠指点
离线roywillow

只看该作者 13楼 发表于: 2012-07-12
回 12楼(atmats) 的帖子
这样的话, 那就先学会只用代码生成界面, 一上来就用ui会对Qt的一些东西理解不清
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线atmats
只看该作者 14楼 发表于: 2012-07-12
这不是现在急着用吗,所以还是请大侠们帮忙啊
离线itstudy
只看该作者 15楼 发表于: 2012-07-12
别用设计器了 全部用代码创建 或者用设计器创建主窗体 用代码创建子控件
离线atmats
只看该作者 16楼 发表于: 2012-07-12
现在已经用了,没法再改变以前的了,接下去该怎么处理是好呢?
快速回复
限100 字节
 
上一个 下一个