• 7427阅读
  • 4回复

setLayout中的东西为啥显示不出来? [复制链接]

上一主题 下一主题
离线cdutherbert
 
只看楼主 倒序阅读 楼主  发表于: 2009-03-11
#include <QtGui>
#include "filemainwindow.h"
FileMainWindow::FileMainWindow()  //继承QMainWindow
{
       createActions() ;    /  /
       createMenus();      //
       createToolBars();
       setMaximumSize ( 800, 800 );
       setMinimumSize ( 800, 800 );
       setWindowIcon(QIcon(":/images/icon.png"));
       area1 = new PaintArea;    // 用
       area2 = new PaintArea;
       QGridLayout *layout = new QGridLayout;
       layout->addWidget(area1,0,0);
       layout->addWidget(area2,0,1);
       setLayout(layout);                                 / /这里用setLayout没有显示。
      
}
PaintArea 的定义代码.用来画图形的
class PaintArea : public QWidget
{
    Q_OBJECT
public:
    PaintArea(QWidget *parent=0);    
    void setFillRule(int);
    void setPenWidth(int);
    void setPenColor(QColor);
    void setBrushColor(QColor);
    void paintEvent(QPaintEvent *);
private:
    Qt::FillRule rule;
    int width;
    QColor penColor;
    QColor brushColor;
};
        我在FileMainWindow里显示两幅画出来的图形。不管我用QGridLayout或者QVBoxLayout 都不行。
       为什么用setLayout(layout);  不能显示出来,而如何只是用setCentralWidget(area1).就能显示出一副图形? 请指点。
离线optphantom

只看该作者 1楼 发表于: 2009-03-12
QMainWindow只能用setCentralWidget
离线cdutherbert
只看该作者 2楼 发表于: 2009-03-12
           那请问一下。如果用setCentralWidget。如何吧两个area1和area2加进去。试过了吧他们装在QVBoxlayout中。可是有错。因为QVBoxlayout不是一个widegt。该如何做呢?谢谢!
离线ieasylive

只看该作者 3楼 发表于: 2009-04-23
我也遇到类似的问题,多次addWidget()总是只显示最后那个Widget,初学,查不到是什么原因。有望指点。
离线318065268
只看该作者 4楼 发表于: 2009-04-23
1,楼主的问题发现了,问题出在
    setMaximumSize ( 800, 800 );
        setMinimumSize ( 800, 800 );
最小要800*800,最大也要800*800,让程序没辙了,干脆不给显示了。
2,多次addWidget() ,看用的什么Layout,如果是GridLayout,需要增加参数指定位置的。如果是V或H,不应该出现那种情况。
Email  rsail@126.com(私人邮箱)
QQ:   318065268
快速回复
限100 字节
 
上一个 下一个