• 4368阅读
  • 1回复

诡异的段错误 [复制链接]

上一主题 下一主题
离线newalan
 

只看楼主 倒序阅读 楼主  发表于: 2008-04-27
— 本帖被 XChinux 执行加亮操作(2008-04-27) —
程序很简单,就是在自己继承的对话框类上显示
共三个文件:
///////////////////////////////文件wndinfo.cpp
#include<iostream.h>
#include<qpixmap.h>
#include"wndinfo.h"
myDialog::myDialog():QDialog()
{
  cout<<"myDialog"<<endl;
}
void myDialog::paintEvent(QPaintEvent* )
{
// 下面四行代码取消注释后编译,在qvfb下显示是正常的(见图),
//  但是交叉编译后在arm上运行就有段错误。
//  而且即使只有“QPainter p(this);  ”一句,也会产生端错误! 为什么???

//  QPainter p(this); 
//    p.save();
//    p.drawText(0,0,100, 100, AlignHCenter, "TEXT.....");
//    p.restore();
}

///////////////////////////////文件 wndinfo.h
#ifndef WNDINFO_H
#define WNDINFO_H
#include<qdialog.h>
#include<qpainter.h>
class myDialog:public QDialog
{
public:
    myDialog();
private:
    void paintEvent(QPaintEvent*);
};
#endif
/////////////////////////////////

/////// main.cpp
#include <qapplication.h>
#include <qpushbutton.h>
#include <qdialog.h>
#include"wndinfo.h"

int main( int argc, char **argv )
{
    QApplication a( argc, argv );

  QDialog * mydialog = new myDialog;
    mydialog->setCaption("My Dialog");
    mydialog->resize( 200, 300 );
    a.setMainWidget( mydialog );
   
    mydialog->show();
    return a.exec();
}
[ 此贴被newalan在2008-04-27 09:37重新编辑 ]
离线shiroki

只看该作者 1楼 发表于: 2008-04-30
看不出程序有什么问题。
你在paintEvent里调基类的paintEvent, 别的什么都不做会crash吗?
用qte自带的例子随便弄一个能显示出来吗? 会crash吗?
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
快速回复
限100 字节
 
上一个 下一个