• 8646阅读
  • 1回复

【提问】程序编译,运行可以,但是没有显示出来! [复制链接]

上一主题 下一主题
离线gongyh
 

只看楼主 倒序阅读 楼主  发表于: 2005-09-01
(我的代码是qt以前版本的,不能编译,经过我的修改,现在能编译,能运行,就是没有显示出来。不知道什么原因)
代码如下:
////////////////////////////////////////////////////////////////////////
/* fivebyfive.h */
#ifndef FIVEBYFIVE_H
#define FIVEBYFIVE_H

#include <qwidget.h>
#include <qpushbutton.h>

class FiveByFive: public QWidget
{
public:
  FiveByFive(QWidget *parent=0,const char *name=0);
  ~FiveByFive();
private:
  QPushButton *b11;
  QPushButton *b31;
  QPushButton *b13;
  QPushButton *b33;
};

#endif
//////////////////////////////////////////////////////////////////
/* fivebyfive.cpp */
#include <qlayout.h>
#include <QGridLayout>
#include "fivebyfive.h"

FiveByFive::FiveByFive(QWidget *parent,const char *name)
  : QWidget(parent)
{
  QGridLayout *layout = new QGridLayout(this);
  layout->addLayout(layout,5,5);

  b11 = new QPushButton("(1,1)",this);
  b11->setMaximumSize(100,100);
  layout->addWidget(b11,1,1);
  b13 = new QPushButton("(1,3)",this);
  b13->setMaximumSize(100,100);
  layout->addWidget(b13,1,3);
  b31 = new QPushButton("(3,1)",this);
  b31->setMaximumSize(100,100);
  layout->addWidget(b31,3,1);
  b33 = new QPushButton("(3,3)",this);
  b33->setMaximumSize(100,100);
  layout->addWidget(b33,3,3);

  // for(int i=0; i<5; i++) {
    // layout->cellRect(10,10);
    //layout->addColSpacing(i,60);
  //}
  resize(10,10);

  layout->activate();
}

FiveByFive::~FiveByFive() { }
///////////////////////////////////////////////////////////////////
/* main.cpp */
#include <qapplication.h>
#include "fivebyfive.h"

int main(int argc,char **argv)
{
  QApplication app(argc,argv);
  FiveByFive *fivebyfive = new FiveByFive();
  fivebyfive->show();
  //app.setMainWidget(fivebyfive);
  return(app.exec());
}
[ 此贴被XChinux在2005-09-01 20:19重新编辑 ]
打工不是一辈子的事!
离线XChinux

只看该作者 1楼 发表于: 2005-09-01
关键在于下面的函数中:

FiveByFive::FiveByFive(QWidget *parent,const char *name)
: QWidget(parent)
{
     
QGridLayout *layout = new QGridLayout(this);
//layout->addLayout(layout,5,5);// 这句决定了是否显示
b11 = new QPushButton("(1,1)",this);
b11->setMaximumSize(100,100);
layout->addWidget(b11,1,1);
b13 = new QPushButton("(1,3)",this);
b13->setMaximumSize(100,100);
layout->addWidget(b13,1,3);
b31 = new QPushButton("(3,1)",this);
b31->setMaximumSize(100,100);
layout->addWidget(b31,3,1);
b33 = new QPushButton("(3,3)",this);
b33->setMaximumSize(100,100);
layout->addWidget(b33,3,3);
  for(int i=0; i<5; i++) {
  layout->cellRect(10,10);
  layout->setColumnStretch(i, 60); // 这两句是等价代码
  layout->setRowStretch(i, 60);

}
resize(10,10);
layout->activate();
}
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个