• 5905阅读
  • 6回复

关于QMainWindow的问题,请大侠进来指点一下 [复制链接]

上一主题 下一主题
离线mashifei2003
 
只看楼主 倒序阅读 楼主  发表于: 2009-02-13
— 本帖被 XChinux 执行加亮操作(2009-02-18) —
代码如下:
#include<QtGui>
int main(int argc,char *argv[])
{
    QApplication app(argc,argv);
    QMainWindow *m = new QMainWindow();
    QLabel *label = new QLabel("hello");
    QHBoxLayout *h = new QHBoxLayout(m);
    h->addWidget(label);
    m->setLayout(h);
    m->show();
    return app.exec();
}
问题:为什么主窗体上没有Layout嵌入的label呢?
离线wd007

只看该作者 1楼 发表于: 2009-02-13
主窗口默认有自己的布局管理器,一个主窗口有一个中心部件。
你没有设置中心部件吧,设置好后,在中心部件上设置layout就行了
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线mashifei2003
只看该作者 2楼 发表于: 2009-02-13
引用第1楼wd007于2009-02-13 11:57发表的  :
主窗口默认有自己的布局管理器,一个主窗口有一个中心部件。
你没有设置中心部件吧,设置好后,在中心部件上设置layout就行了

非常感谢!!
请问中心部件是不是相当于容器控件吗?如:QWidget?
离线wd007

只看该作者 3楼 发表于: 2009-02-13
QWidget及其子类可以的,QSplitter、QMdiArea、QWorkspace以及你自定义的窗口部件等都可以的。我想大概可以这么认为吧,你用Qt Designer创建一个空的主窗口的话,在对象观察器内可以清楚的看到中心部件已经存在了
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线mashifei2003
只看该作者 4楼 发表于: 2009-02-14
太感谢wd007你了,我是用代码直接创建的窗体界面,没有用Qt Designer,现在已经搞明白了.
离线duduqq

只看该作者 5楼 发表于: 2009-02-14
QLabel *label  = new QLabel(m,"hello") ;
可能你是少了m,没有指明父窗体
离线wd007

只看该作者 6楼 发表于: 2009-02-17
我觉得楼上说的也有道理,我试一试你的代码
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
快速回复
限100 字节
 
上一个 下一个