Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
billybox
1 / 1 / 0
Регистрация: 06.01.2015
Сообщений: 12
1

Прекращается работа приложения

14.06.2015, 22:32. Просмотров 287. Ответов 10
Метки нет (Все метки)

Приложение запускается, но по щелчку на кнопку вырубается, пишет, что прекращена работа. Помогите разобраться, пожалуйста))

файл mainwindow.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include "mainwindow.h"
#include "ui_mainwindow.h"
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->comboBox->addItem("композиция 1");
    ui->comboBox->addItem("композиция 2");
    ui->comboBox->addItem("композиция 3");
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
void MainWindow::on_pushButton_clicked()
{
    QDateTime curtime,intime;
 
    QDateTime::currentDateTime()=curtime;
    intime=dateTimeEdit->dateTime();
 
    quint64 start, end, timertime;
    start = curtime.toMSecsSinceEpoch();
    end = intime.toMSecsSinceEpoch();
    timertime=end-start;
    timer->start(timertime);
    QObject::connect(timer,SIGNAL(timeout()), this, SLOT(timer_overflow()));
}
void MainWindow::timer_overflow()
{QString ComboText = ui->comboBox->currentText();
 
        if (ComboText == "композиция 1")
        {
    player->setMedia(QUrl::fromLocalFile(QDir::toNativeSeparators("C:\1.mp3")));
        player->setVolume(50);
        player->play();
}
        if (ComboText == "композиция 2")
        {
    player->setMedia(QUrl::fromLocalFile(QDir::toNativeSeparators("C:\2.mp3")));
        player->setVolume(50);
        player->play();
}
        if (ComboText == "композиция 3")
        {
    player->setMedia(QUrl::fromLocalFile(QDir::toNativeSeparators("C:\3.mp3")));
        player->setVolume(50);
        player->play();
}
}
файл mainwindow.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QPushButton>
#include <QComboBox>
#include <QUrl>
#include <QDir>
#include <QMediaPlayer>
#include <QDateTime>
#include <QDateTimeEdit>
#include <QTimer>
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
    QPushButton*pushButton;
    QDateTimeEdit*dateTimeEdit;
    QMediaPlayer*player;
    QComboBox*comboBox;
    QTimer*timer;
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
private slots:
    void on_pushButton_clicked();
        void timer_overflow();
 
private:
    Ui::MainWindow *ui;
};
 
#endif // MAINWINDOW_H
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2015, 22:32
Ответы с готовыми решениями:

Корректная работа приложения на других ПК
Сделал простенькую программу, сделал тестовый дизайн в фш и толкнул его на бекграунд. Столкнулся...

Неправильная работа приложения на Windows 8
День добрый! У меня установлен QtSDK 1.2.1, QtCreator 2.4.1, MinGW 4.8.1 Есть приложение, на...

Неправильная работа приложения на Qt под Andriod
Доброго времени суток. Самостоятельно, для саморазвития решил изучать Qt. И первую...

С ошибкой прекращается работа программы
при запуске игры выдает ошибку так же при закрытии браузеров и не только как решить эту...

Компилируется, но прекращается работа программы
Вообщем прога компилируется без ошибок, но когда я пытаюсь выполнить задание на добавление элемента...

10
DrunkProgrammer
37 / 27 / 11
Регистрация: 09.06.2015
Сообщений: 100
15.06.2015, 05:58 2
А соединения где? В дизайнере ручками соединяли? Не совсем понял проблему. И, если не затруднит, пожалуйста заключайте код в теги. Читать невозможно. Ну и наверное таки плеер надо инициализировать, раз уж Вы на него указатель объявили
1
Воротислав
126 / 104 / 27
Регистрация: 25.02.2010
Сообщений: 451
15.06.2015, 08:41 3
billybox, пройдите в отладке, найдете в каком месте программа будет падать.

Не по теме:

Вам самому приятно такой текст читать? Пользуйтесь оформлением для кода, кнопка называется C++QT

1
DrunkProgrammer
37 / 27 / 11
Регистрация: 09.06.2015
Сообщений: 100
15.06.2015, 11:53 4
Цитата Сообщение от Воротислав Посмотреть сообщение
пройдите в отладке, найдете в каком месте программа будет падать.
та блин, там же очевидно, что не выделена память под QMediaPlayer*. Тогда уж надо было писать просто
C++ (Qt)
1
2
QMediaPlayer player; 
player.play();
1
billybox
1 / 1 / 0
Регистрация: 06.01.2015
Сообщений: 12
15.06.2015, 15:47  [ТС] 5
отредактировано

файл mainwindow.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QPushButton>
#include <QComboBox>
#include <QUrl>
#include <QDir>
#include <QMediaPlayer>
#include <QDateTime>
#include <QDateTimeEdit>
#include <QTimer>
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
    QPushButton*pushButton;
    QDateTimeEdit*dateTimeEdit;
    QMediaPlayer*player;
    QComboBox*comboBox;
    QTimer*timer;
    QDateTime*dateTime;
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
private slots:
    void on_pushButton_clicked();
        void timer_overflow();
 
private:
    Ui::MainWindow *ui;
};
 
#endif // MAINWINDOW_H
mainwindow.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include "mainwindow.h"
#include "ui_mainwindow.h"
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->comboBox->addItem("композиция 1");
    ui->comboBox->addItem("композиция 2");
    ui->comboBox->addItem("композиция 3");
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
void MainWindow::on_pushButton_clicked()
{
    QDateTime curtime,intime;
    curtime=QDateTime::currentDateTime();
    intime=ui->dateTimeEdit->dateTime();
 
    quint64 start, end, timertime;
    start = curtime.toMSecsSinceEpoch();
    end = intime.toMSecsSinceEpoch();
    timertime=end-start;
    QTimer*timer=new QTimer;
    timer->start(timertime);
    QObject::connect(timer,SIGNAL(timeout()), this, SLOT(timer_overflow()));//что-то нужно с этой строкой сделать
}
void MainWindow::timer_overflow()
{QString ComboText = ui->comboBox->currentText();
 
        if (ComboText == "композиция 1")
        {QMediaPlayer*player=new QMediaPlayer;
    player->setMedia(QUrl::fromLocalFile(QDir::toNativeSeparators("C:\1.mp3")));
        player->setVolume(50);
        player->play();
}
        if (ComboText == "композиция 2")
        {QMediaPlayer*player=new QMediaPlayer;
    player->setMedia(QUrl::fromLocalFile(QDir::toNativeSeparators("C:\2.mp3")));
        player->setVolume(50);
        player->play();
}
        if (ComboText == "композиция 3")
        {QMediaPlayer*player=new QMediaPlayer;
    player->setMedia(QUrl::fromLocalFile(QDir::toNativeSeparators("C:\3.mp3")));
        player->setVolume(50);
        player->play();
}
}
использую отладчик, после сигнала timeout ничего не происходит, а если ту строчку перемещаю в конструктор, то падает с ошибкой сегментации. Я пенёк
0
Kurles
158 / 123 / 30
Регистрация: 30.05.2015
Сообщений: 379
15.06.2015, 16:21 6
Кинь полностью проект
0
billybox
1 / 1 / 0
Регистрация: 06.01.2015
Сообщений: 12
15.06.2015, 16:42  [ТС] 7
hj.rar
0
Kurles
158 / 123 / 30
Регистрация: 30.05.2015
Сообщений: 379
15.06.2015, 17:01 8
ну по крайней мере в слот void MainWindow::timer_overflow()попадает. и да, вместо сравнения строк в этом методе используй сравнение с индексом комбобокса.
ui->comboBox->currentIndex();
0
billybox
1 / 1 / 0
Регистрация: 06.01.2015
Сообщений: 12
15.06.2015, 20:02  [ТС] 9
ничего не поменялось((
0
Kurles
158 / 123 / 30
Регистрация: 30.05.2015
Сообщений: 379
15.06.2015, 20:22 10
Хз. У меня в слот "void MainWindow::timer_overflow()" программа попадала, где-то там ошибка видно уже.
0
billybox
1 / 1 / 0
Регистрация: 06.01.2015
Сообщений: 12
17.06.2015, 00:08  [ТС] 11
крч, я разобралась, всё фурычит
0
17.06.2015, 00:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2015, 00:08

Почему прекращается работа Проводника?
Объясните почему вот так происходит??

После запуска прекращается работа программы
Всем привет, начал разработку игры, еще мало чего создал, но после добавления отклика на...

Прекращается работа программы после ввода значений
Почему Windows завершает программу после того как после ввода цифр нажимаем кнопку Enter? Никак не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru