Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Сборка проекта

Автор: ArhiZhek 1.11.2011, 20:31

как решить эту проблему? :blink:

Запускается C:\Temp\tipaprogramy-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK_________\debug\tipaprogramy.exe...
Программа неожиданно завершилась.
C:\Temp\tipaprogramy-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK_________\debug\tipaprogramy.exe завершился с кодом -1073741819

Автор: RazrFalcon 1.11.2011, 20:47

Запустить дебаг

Автор: Алексей1153 1.11.2011, 20:51

0xC0000005

- 100% запустить в дебаге на отладку без точек останова. Место найдётся сразу )

причём это будет либо выход за край массива/контейнера, либо неинициализированный указатель, либо обращение к дохлому объекту

Автор: ArhiZhek 1.11.2011, 20:57

а подскажите пожалуйста как это сделать :blush:

Автор: RazrFalcon 1.11.2011, 21:01

Вы какой IDE пользуетесь?
В Qt Creator нужно нажать F5

Автор: ArhiZhek 1.11.2011, 21:13

вот что показывает


Автор: BRE 1.11.2011, 21:15

А где вызов ui->setupUi( this )?


Автор: ArhiZhek 1.11.2011, 21:21

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QtGui/QWidget>
#include <QVBoxLayout>
#include <QLineEdit>

namespace Ui {
    class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private slots:
    void            Rasschitat();
private:
    Ui::Widget *ui;

};

#endif // WIDGET_H



#include "widget.h"
#include "math.h"
#include "ui_widget.h"
#include <QLineEdit>
#include <QPushButton>

Widget::Widget(QWidget *parent) : QWidget(parent),
  ui(new Ui::Widget)
{
    QVBoxLayout *mainLay = new QVBoxLayout(this);

    ui->lineEdit->setInputMask("9999");
    ui->lineEdit_2->setInputMask("9999");
    ui->lineEdit_3->setInputMask("9999");
    ui->lineEdit_4->setReadOnly(true);
    ui->lineEdit_5->setReadOnly(true);
    ui->lineEdit_6->setReadOnly(true);

    QPushButton *clickMeBtn = new QPushButton("Rasschitat");
    QObject::connect(clickMeBtn, SIGNAL(clicked()), this, SLOT(Rasschitat()));
    mainLay->addWidget(clickMeBtn);

    ui->setupUi(this);
}


Widget::~Widget(){
    delete ui;
}
    void Widget::Rasschitat(){
       ui->lineEdit_4->setText(QString::number(ui->lineEdit->text().toInt() * ui->lineEdit_2->text().toInt() * ui->lineEdit_3->text().toInt()));
        ui->lineEdit_5->setText(QString::number(ui->lineEdit->text().toInt() * ui->lineEdit_2->text().toInt() * ui->lineEdit_3->text().toInt()));
        ui->lineEdit_6->setText(QString::number(ui->lineEdit_4->text().toInt() + ui->lineEdit_5->text().toInt()));
    }

Автор: BRE 1.11.2011, 21:23

Widget::Widget(QWidget *parent) : QWidget(parent),
  ui(new Ui::Widget)
{
        ui->setupUi( this );     // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    QVBoxLayout *mainLay = new QVBoxLayout(this);

    ui->lineEdit->setInputMask("9999");


Автор: RazrFalcon 1.11.2011, 21:26

ui->setupUi(this); - всегда должен быть первым в конструкторе

Автор: ArhiZhek 1.11.2011, 21:32

исправил теперь написал 2 ошибки:

cannot open output file debug\tipaprogrammy.exe

collect2: ld returned 1 exit status

Автор: BRE 1.11.2011, 21:34

Останови отладку и перезапусти сборку. :)

Автор: Алексей1153 1.11.2011, 21:37

ArhiZhek, у тебя процесс завис, наверное - убей через диспетчер

"tipaprogramy" - как вы лодку назовёте, так она и поплывёт )))

Автор: ArhiZhek 1.11.2011, 22:16

СПАСИБО! все получилось :yahoo:



Цитата(Алексей1153 @ 1.11.2011, 22:37) *
ArhiZhek, у тебя процесс завис, наверное - убей через диспетчер

"tipaprogramy" - как вы лодку назовёте, так она и поплывёт )))



это точно)))

<_< еще прооблема...
он мне выводит 2 кнопки PushButton 1-создани в дизайнере 2-в коде , как удалить ту что в коде создал и связать ту что в дизайнере с программой?

#include "widget.h"
#include "math.h"
#include "ui_widget.h"
#include <QLineEdit>
#include <QPushButton>

Widget::Widget(QWidget *parent) : QWidget(parent),
  ui(new Ui::Widget)
{
    ui->setupUi(this);

    QVBoxLayout *mainLay = new QVBoxLayout(this);

    ui->lineEdit->setInputMask("9999");
    ui->lineEdit_2->setInputMask("9999");
    ui->lineEdit_3->setInputMask("9999");
    ui->lineEdit_4->setReadOnly(true);
    ui->lineEdit_5->setReadOnly(true);
    ui->lineEdit_6->setReadOnly(true);
    ui->pushButton->;   //незнаю что тут прописать

}


Widget::~Widget(){
    delete ui;
}
    void Widget::uipushButton(){
        ui->lineEdit_4->setText(QString::number(ui->lineEdit->text().toInt() * ui->lineEdit_2->text().toInt() * ui->lineEdit_3->text().toInt()));
        ui->lineEdit_5->setText(QString::number(ui->lineEdit->text().toInt() * ui->lineEdit_2->text().toInt() * ui->lineEdit_3->text().toInt()));
        ui->lineEdit_6->setText(QString::number(ui->lineEdit_4->text().toInt() + ui->lineEdit_5->text().toInt()));
    }

Автор: BRE 1.11.2011, 22:26

Widget::Widget(QWidget *parent) : QWidget(parent),
  ui(new Ui::Widget)
{
    ui->setupUi(this);

    QVBoxLayout *mainLay = new QVBoxLayout(this);

//    ui->pushButton->;   //незнаю что тут прописать
    connect( ui->pushButton, SIGNAL( clicked() ), SLOT(как_там_он_у_тебя_называется()) );


Автор: ArhiZhek 1.11.2011, 22:57

#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QtGui/QWidget>
#include <QVBoxLayout>
#include <QLineEdit>
namespace Ui {
    class Widget;
}
class Widget : public QWidget
{
    Q_OBJECT
public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
private slots:
    void            Rasschitat();
private:
    Ui::Widget *ui;
};
#endif // WIDGET_H


#include "widget.h"
#include "math.h"
#include "ui_widget.h"
#include <QLineEdit>
#include <QPushButton>
Widget::Widget(QWidget *parent) : QWidget(parent),
  ui(new Ui::Widget)
{
    ui->setupUi(this);
    QVBoxLayout *mainLay = new QVBoxLayout(this);
    ui->lineEdit->setInputMask("9999");
    ui->lineEdit_2->setInputMask("9999");
    ui->lineEdit_3->setInputMask("9999");
    ui->lineEdit_4->setReadOnly(true);
    ui->lineEdit_5->setReadOnly(true);
    ui->lineEdit_6->setReadOnly(true);
    ui->pushButton->connect( ui->pushButton, SIGNAL( clicked() ), SLOT // а какой должен быть,уже все перевводил!

    QPushButton *clickMeBtn = new QPushButton("Rasschitat");    
    QObject::connect(clickMeBtn, SIGNAL(clicked()), this, SLOT(Rasschitat()));
    mainLay->addWidget(clickMeBtn);
}
Widget::~Widget(){
    delete ui;
}
    void Widget::Rasschitat(){
        ui->lineEdit_4->setText(QString::number(ui->lineEdit->text().toInt() * ui->lineEdit_2->text().toInt() * ui->lineEdit_3->text().toInt()));
        ui->lineEdit_5->setText(QString::number(ui->lineEdit->text().toInt() * ui->lineEdit_2->text().toInt() * ui->lineEdit_3->text().toInt()));
        ui->lineEdit_6->setText(QString::number(ui->lineEdit_4->text().toInt() + ui->lineEdit_5->text().toInt()));
    }


вот что получилось:
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QtGui/QWidget>
#include <QVBoxLayout>
#include <QLineEdit>

namespace Ui {
    class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
private slots:
    void            Rasschitat();


private:
    Ui::Widget *ui;

};

#endif // WIDGET_H

#include "widget.h"
#include "math.h"
#include "ui_widget.h"
#include <QLineEdit>

Widget::Widget(QWidget *parent) : QWidget(parent),
  ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->lineEdit->setInputMask("9999");
    ui->lineEdit_2->setInputMask("9999");
    ui->lineEdit_3->setInputMask("9999");
    ui->lineEdit_4->setReadOnly(true);
    ui->lineEdit_5->setReadOnly(true);
    ui->lineEdit_6->setReadOnly(true);
    ui->pushButton->connect(ui->pushButton, SIGNAL( clicked() ), SLOT(Rasschitat()));
    QPushButton::; // незнаю что тут будет, ругается на все что вводил
}
Widget::~Widget(){
    delete ui;
}
    void Widget::Rasschitat(){
        ui->lineEdit_4->setText(QString::number(ui->lineEdit->text().toInt() * ui->lineEdit_2->text().toInt() * ui->lineEdit_3->text().toInt()));
        ui->lineEdit_5->setText(QString::number(ui->lineEdit->text().toInt() * ui->lineEdit_2->text().toInt() * ui->lineEdit_3->text().toInt()));
        ui->lineEdit_6->setText(QString::number(ui->lineEdit_4->text().toInt() + ui->lineEdit_5->text().toInt()));
    }


помогите пожалуйста :(

Автор: BRE 1.11.2011, 23:12

Widget::Widget(QWidget *parent) : QWidget(parent),
  ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->lineEdit->setInputMask("9999");
    ui->lineEdit_2->setInputMask("9999");
    ui->lineEdit_3->setInputMask("9999");
    ui->lineEdit_4->setReadOnly(true);
    ui->lineEdit_5->setReadOnly(true);
    ui->lineEdit_6->setReadOnly(true);
    connect(ui->pushButton, SIGNAL( clicked() ), SLOT(Rasschitat()));
}


Автор: ArhiZhek 1.11.2011, 23:25

я не правильно вязал кнопку :o: благодарю за помощь!

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)