• 4600阅读
  • 4回复

奇怪, 这段程序为什么只显示一列? [复制链接]

上一主题 下一主题
离线cipher1981
 
只看楼主 倒序阅读 楼主  发表于: 2009-10-03
  1. #include <QApplication>
  2. #include <QWidget>
  3. #include <QLabel>
  4. #include <QGridLayout>
  5. int main(int argc, char *argv[]) {
  6.     QApplication app(argc, argv);
  7.     
  8.     QWidget* widget = new QWidget(0);
  9.     QList<QLabel*> list;
  10.     list << new QLabel("One") << new QLabel("Two") << new QLabel("Three");
  11.     QGridLayout* layout = new QGridLayout;
  12.     for(int i=0;i<3;++i) {
  13.         for (int j=0; j<3; ++j) {
  14.             layout->addWidget(list.at(j), j, i);
  15.         }
  16.     }
  17.     widget->setLayout(layout);
  18.     widget->show();
  19.     return app.exec();
  20. }


想用QGridLayout显示3行3列
但是运行之后怎么只出来一列??? 太奇怪了

我觉得应该是C++的某个我不知道的概念导致的这个问题  呵呵
求助各位达人!
非常感谢!!!
离线cipher1981
只看该作者 1楼 发表于: 2009-10-03
而且奇怪的是

显示的是最后一列

传个图:
离线dbzhang800

只看该作者 2楼 发表于: 2009-10-03
额,你以为你的QLabel有分身术啊,只有3个label,却尝试显示出9个
离线cipher1981
只看该作者 3楼 发表于: 2009-10-03
啊。。。原来是这样

我以为给layout加了9次QLabel 就可以显示出9个

看来同样一个QLabel
layout不能添加2次啊 呵呵

谢谢~~
离线318065268
只看该作者 4楼 发表于: 2009-10-05
for(int i=0;i<3;++i) {
        for (int j=0; j<3; ++j) {
            layout->addWidget(new QLabel(QString::num(j,10)));
Email  rsail@126.com(私人邮箱)
QQ:   318065268
快速回复
限100 字节
 
上一个 下一个