Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/05/2024, à 14:39

temps

[résolu] Fenêtre d'alerte sous qt

Bonjour,
J'ai écris un code, pour faciliter l'usage, je l'ai adapté à qt (graphique) qui pilote le terminal.
Le code fonctionne très bien, mais pendant que le terminal fonctionne qt affiche : Audiojo ne répond pas, forcer l'arrêt ou attendre
C'est totalement faux, car le terminal est ouvert et l'application fonctionne très bien.
Est-ce que quelqu'un sait comment corriger cela ?
l'archive est ici
Cordialement

Dernière modification par temps (Le 26/05/2024, à 16:38)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#2 Le 19/05/2024, à 16:23

lann

Re : [résolu] Fenêtre d'alerte sous qt

Tu dois avoir une boucle dans ton code qui ne rend jamais la main à l'application Qt (main.cpp)
Mais je n'utilise pas Qt mais plutôt Gtk (qui ne changera rien à ton problème).
Lorsque tu as un bout de code qui met du temps à rendre la main, il faut que tu utilises un autre process que l'application en Qt

Dernière modification par lann (Le 19/05/2024, à 16:23)


<Modéré>

En ligne

#3 Le 24/05/2024, à 11:08

temps

Re : [résolu] Fenêtre d'alerte sous qt

Mille mercis pour la réponse.
L'application nécessite 3 fenêtres, la première pour indiquer le traitement sox, la deuxième pour indiquer combien de formes nous voulons dessiner et quelles sont ces formes, et la troisième fenêtre sert à indiquer quelles sont les valeurs pour ajuster les formes.
J'ai écris sous qt les 3 fenêtres avec le code en c++ qui génère l'audio, un reste des anciennes versions ouvre le terminal, mais depuis aujourd'hui, j'arrive à faire un lien entre mes fenêtres
voici les codes
mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "josox1dialog.h"

#include "ui_josox1dialog.h"

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

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_pushButton_clicked()
{
    Josox1Dialog *fenetreDialog = new Josox1Dialog;
    fenetreDialog->exec();
}

josox1dialog.cpp

#include "josox1dialog.h"
#include "ui_josox1dialog.h"

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

Josox1Dialog::~Josox1Dialog()
{
    delete ui;
}

le h du premier

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

et le h de la fenêtre qui s'ouvre au clique

#ifndef JOSOX1DIALOG_H
#define JOSOX1DIALOG_H

#include <QDialog>

namespace Ui {
class Josox1Dialog;
}

class Josox1Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Josox1Dialog(QWidget *parent = nullptr);
    ~Josox1Dialog();

private:
    Ui::Josox1Dialog *ui;
};

#endif // JOSOX1DIALOG_H

Comme j'ai déjà tout écris dans la version précédente, je n'arrivais pas à faire les liens entre les fenêtres, je n'ai qu'à reporter. Je reviens poster pour dire si cette solution fonctionne.
Cordialement

Dernière modification par temps (Le 24/05/2024, à 14:14)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#4 Le 25/05/2024, à 19:57

temps

Re : [résolu] Fenêtre d'alerte sous qt

Bonjour, c'est ok, je n'ai plus qu'a reprendre les codes sur tous mes fichiers pour avoir une version graphique entièrement sous qt.
Je le fais et reviens poster en résolu.
Le retour d'expérience, est que j'ai du revoir la structure de mes codes pour que ceux-ci soient adapté à la logique de Qt, ce n'est pas normal car cette contrainte ne nous laisse pas libre d'associer les idées comme nous le souhaitons et impose une logique particulière. Cela se nomme du conditionnement, et c'est grave à mon sentiment.
Ceci dit, il y a eu aussi une autre étape choquante qui m'a fait perdre 2 jours. J'ai un bout du code qui génère le fichier wav que je nomme executable.cpp , ce bout de code fonctionne très bien, sous la première version qt lancé en terminal, ce code en c++ fonctionne très bien, et la dans la version graphique, ce bout de code ne fonctionnait plus. Deux jours de tests, de modifs, sans comprendre pourquoi ça ne fonctionnait pas. Et j'ai eu l'idée de générer avec qt un nouveau fichier cpp, dans lequel j'ai recopié mon code sans rien ajouté ou enlevé. Et j'ai une application graphique complète qui fonctionne. Pourquoi et comment se fait-il que le même fichier selon qu'il soit écris avec qt ou mis dans le répertoire avec copier/coller fonctionne ou pas ? Il s'entend que je connais les règle du .pro de qt , il y a des trucs pas normal, je suspecte fortement que l'utilisation de qt creator impose l'accompagnement d'indésirable.
Les adorateurs de l’implémentation vont être heureux, car il y a une touche sous qt pour implémenter tout seul, c'est exactement ce qu'il me fallait, que les robots répondent aux normes des robots, pour ma part, je vais essayer de dialoguer avec les hommes en essayant de détailler au mieux ce que j'ai voulu faire.
Cordialement

P.S.
C'est ok, le temps de créer l'archive et je mets cette première version en ligne sur mon site.
Je poste en résolu

Dernière modification par temps (Le 26/05/2024, à 16:38)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne