• 9342阅读
  • 6回复

qt程序写作调适。 [复制链接]

上一主题 下一主题
离线hunkf
 
只看楼主 倒序阅读 楼主  发表于: 2009-07-02
写c++ gui programming with qt4的第二章的例子,
出现了这个错误
BTMMHOOK 02.07.2009 16:49:50 Thread<1CB8> Hook DLL loaded
sortdialog.exe 中的 0x65443b0a (QtGuid4.dll) 处最可能的异常: 0xC0000005: 读取位置 0xcdcdcdd1 时发生访问冲突
sortdialog.exe 中的 0x65443b0a (QtGuid4.dll) 处未处理的异常: 0xC0000005: 读取位置 0xcdcdcdd1 时发生访问冲突
sortdialog.exe 中的 0x65443b0a (QtGuid4.dll) 处最可能的异常: 0xC0000005: 读取位置 0xcdcdcdd1 时发生访问冲突
sortdialog.exe 中的 0x65443b0a (QtGuid4.dll) 处未处理的异常: 0xC0000005: 读取位置 0xcdcdcdd1 时发生访问冲突
sortdialog.exe 中的 0x65443b0a (QtGuid4.dll) 处最可能的异常: 0xC0000005: 读取位置 0xcdcdcdd1 时发生访问冲突
sortdialog.exe 中的 0x65443b0a (QtGuid4.dll) 处未处理的异常: 0xC0000005: 读取位置 0xcdcdcdd1 时发生访问冲突
sortdialog.exe 中的 0x65443b0a (QtGuid4.dll) 处最可能的异常: 0xC0000005: 读取位置 0xcdcdcdd1 时发生访问冲突
sortdialog.exe 中的 0x65443b0a (QtGuid4.dll) 处未处理的异常: 0xC0000005: 读取位置 0xcdcdcdd1 时发生访问冲突
sortdialog.exe 中的 0x65443b0a (QtGuid4.dll) 处最可能的异常: 0xC0000005: 读取位置 0xcdcdcdd1 时发生访问冲突
sortdialog.exe 中的 0x65443b0a (QtGuid4.dll) 处未处理的异常: 0xC0000005: 读取位置 0xcdcdcdd1 时发生访问冲突
不知道该怎么调适了,谢谢大家
离线hunkf
只看该作者 1楼 发表于: 2009-07-02
----------------------------------------sortdialog.cpp--------------------------------------------------------
#include<QtGui>
#include "sortdialog.h"

//以后起名字的时候要注意,不能这样起法,要有骆驼法则
sortdialog::sortdialog(QWidget *parent, Qt::WFlags flags)
    : QDialog(parent, flags)
{
    ui.setupUi(this);
    secondaryGroupBox->hide();
    tertiaryGroupBox->hide();
    //layout()返回值不能为空,否则错误
    layout()->setSizeConstraint(QLayout::SetFixedSize);


    setColumnRange('A', 'Z');
}

void sortdialog::setColumnRange(QChar first, QChar last)
{
    primaryColumnCombo->clear();
    secondaryColumnCombo->clear();
    tertiaryColumnCombo->clear();


    secondaryColumnCombo->addItem(tr("None"));
    tertiaryColumnCombo->addItem(tr("None"));
    primaryColumnCombo->setMinimumSize(
                        secondaryColumnCombo->sizeHint());

    QChar ch = first;
    while(ch <= last) {
        primaryColumnCombo->addItem(QString(ch));
        secondaryColumnCombo->addItem(QString(ch));
        tertiaryColumnCombo->addItem(QString(ch));
        ch = ch.unicode() + 1;
    }

}

sortdialog::~sortdialog()
{

}
-------------------------------------------------------------------------------------
离线hunkf
只看该作者 2楼 发表于: 2009-07-02
--------------------------------sortdialog.h------------------------------------
#ifndef SORTDIALOG_H
#define SORTDIALOG_H

#include <QtGui/QDialog>
#include "ui_sortdialog.h"

class sortdialog : public QDialog, public Ui::sortdialogClass
{
    Q_OBJECT

public:
    sortdialog(QWidget *parent = 0, Qt::WFlags flags = 0);
    void setColumnRange(QChar first, QChar last);
    ~sortdialog();

private:
    Ui::sortdialogClass ui;
};

#endif // SORTDIALOG_H
离线hunkf
只看该作者 3楼 发表于: 2009-07-02
-----------------------------maiin.cpp------------------------------------------
#include <QtGui/QApplication>
#include "sortdialog.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    sortdialog *dialog = new sortdialog;
    dialog->setColumnRange('C', 'F');
    dialog->show();
    return app.exec();
}
离线hunkf
只看该作者 4楼 发表于: 2009-07-02
没什么调试经验,请大家帮忙看一下如何解决呢
离线hunkf
只看该作者 5楼 发表于: 2009-07-02
tertiaryGroupBox->hide();
和qwidget.h里面的
inline void hide() { setVisible(false); }
有错………………
调适断电信息
离线conter
只看该作者 6楼 发表于: 2010-06-23
sortdialog::sortdialog(QWidget *parent, Qt::WFlags flags)
    : QDialog(parent, flags)
{
    ui.setupUi(this);         这里改为setupUi(this)即可,我也是和你一样碰到这个问题,仔细核对,就是这里,改了即可
    secondaryGroupBox->hide();
    tertiaryGroupBox->hide();
快速回复
限100 字节
 
上一个 下一个