Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
6 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 23
1

Сигналы и слоты

22.02.2015, 11:28. Показов 1469. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Не могу разобраться в сигналах и слотах.

Сначала приведу код:

Кликните здесь для просмотра всего текста
main.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
#include "mainwindow.h"
#include <QApplication>
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
 
    return a.exec();
}
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
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QPushButton>
#include <QLabel>
#include <QLineEdit>
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
    QLabel *lblResult; // сюда выводим итоговый результат
    QLabel *comment_1; // First
    QLabel *comment_2; // Module
    QLineEdit *teFirstNumber; // ввод первого числа
    QLineEdit *teMod; // ввод модуля
    QPushButton *btnResult; // кнопка получения результата
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
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
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "modulo.h"
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
 
    QLabel *comment_1 = new QLabel(this);
    comment_1 -> setGeometry(90,20,60,30);
    comment_1 -> setText("First");
 
    QLabel *comment_2 = new QLabel(this);
    comment_2 -> setGeometry(160,20,60,30);
    comment_2 -> setText("Module");
 
    QLabel *lblResult = new QLabel(this);
    lblResult -> setGeometry(90,150,60,30);
    lblResult -> setText("Result");
 
    QLineEdit *teFirstNumber = new QLineEdit(this);
    teFirstNumber -> setGeometry(90,50,60,30);
 
    QLineEdit *teMod = new QLineEdit(this);
    teMod -> setGeometry(160,50,60,30);
 
    QPushButton *btnResult = new QPushButton(this);
    btnResult -> setGeometry(90,100,60,30);
    btnResult -> setText("Click");
 
    //////////////////////////////////////////////
    /////   Получение данных из QLineEdit
    /////////////////////////////////////////////
 
    int firstNumber = teFirstNumber -> text().toInt();
    int modNumber = teMod -> text().toInt();
 
 
 
 
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
modulo.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
#ifndef MODULO_H
#define MODULO_H
 
#include <QObject>
 
class Modulo : public QObject
{
    Q_OBJECT
 
public:
    explicit Modulo(QObject *parent = 0);
 
    void getModulo(int number_1, int number_mod);
 
    ~Modulo();
 
signals:
 
public slots:
};
 
#endif // MODULO_H
modulo.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "modulo.h"
 
Modulo::Modulo(QObject *parent) : QObject(parent)
{
 
}
 
void getModulo(int number_1, int number_mod){
 
    int number_result;
 
    number_result = number_1 % number_mod;
}
 
Modulo::~Modulo()
{
 
}


Не пойму что делать дальше, я хочу чтобы по нажатию кнопки btnResult данные из QLineEdit-ов отправлялись в класс Modulo, попадали в функцию getModulo(), производились вычисления, и потом результат пришел обратно и записался в lblResult.

Пожалуйста подскажите как это сделать, думаю если один раз увижу как это делать, проблем с этим больше не возникнет. Заранее благодарен!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.02.2015, 11:28
Ответы с готовыми решениями:

Сигналы и Слоты
При вызове функции SendSignal(); образуется сигнал, который должен пораждать вызову слота и на экра должно написаться сообщение &quot;Work...

Сигналы и Слоты
Помогите разобраться. У меня есть некий объект ContextMenu из которого хочу послать сигнал в объект GraphicsScene, где: Объявление...

Сигналы и слоты
Смысл следующий: Вводим число в spinBox, это число, с помощью сигнала, передаётся слоту объекта phelper. С этим числом производятся...

1
Автор FAQ
 Аватар для Чистый
2733 / 1429 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
22.02.2015, 11:55 2
Лучший ответ Сообщение было отмечено vendetta13 как решение

Решение

Вешайте обработчик сигнала от btnResult:
C++ (Qt)
1
connect(btnResult, SIGNAL(clicked()), this, SLOT(pushData());
где pushData() это слот объявленный в классе MainWindow:
C++ (Qt)
1
2
3
4
5
private slots:
void pushData();
//так же объявим и сигнал
signals:
void result(QString);
в MainWindow пишите реализацию этого слота:
C++ (Qt)
1
2
3
4
void MainWindow::pushData()
{
   emit result(lblText);
}
lblText - переменная которая хранит данные которые надо передать в класс Modulo
теперь можете соединить сигнал result cо слотом в классе Modulo в котором уже будете обрабатывать данные переданнче в переменной lblText;
C++ (Qt)
1
connect(this, SIGNAL(result(QString)), module, SLOT(userData(QString));
где module - объект класса Modulo а userData слот в классе Modulo который будет принимать данные от сигнала result

Немного сумбурно, но должно быть понятно
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.02.2015, 11:55
Помогаю со студенческими работами здесь

Сигналы и слоты
Заезженная тема, со стороны простая, не думал, что найду тут проблемы, но! Есть основной класс MainWindow, с формами и прочим, а если класс...

Сигналы\слоты
что можно сделать со сл. кодом ...

Сигналы и слоты
Здравствуйте,хотел б узнать в qt использовать слоты или функции?Если есть механизм сигналов и слотов ,то почему компилятор допускает...

Сигналы и слоты
Есть 2 виджета: поле ввода и кнопка. Хочу на этом примере опробовал сигнально-слотовое соединение. Для примера решил сделать так: пусть...

Сигналы и слоты
Столкнулся с типичной для многих новичков в Qt проблемой, связанное с сигналами и слотами. Есть два объекта: кнопка startButton и...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Исследование байт-кода Python: подключаем дизассемблер
stackOverflow 19.02.2025
Многие знают, что Python - интерпретируемый язык, но мало кто задумывается о том, что происходит между написанием кода и его выполнением. На самом деле Python использует промежуточное представление. . .
Исследование байт-кода Python: компиляторы против интерпретаторов
stackOverflow 19.02.2025
Понимание байт-кода Python - основополагающий аспект для разработчиков, стремящихся глубже понять внутренние механизмы языка и оптимизировать производительность своих программ. Байт-код представляет. . .
Comprehensions в Python - что это такое?
stackOverflow 19.02.2025
Когда речь заходит о Python, одной из его самых красивых и мощных возможностей являются списковые включения или comprehensions. Это особые синтаксические конструкции, позволяющие создавать новые. . .
Python правда такой медленный? Развенчиваем миф о медлительности
stackOverflow 19.02.2025
Когда речь заходит о выборе языка программирования для нового проекта, вопрос производительности часто становится одним из ключевых факторов. Python, несмотря на свою популярность и простоту. . .
Динамические формы в Flask
stackOverflow 19.02.2025
Работа с веб-формами часто требует гибкости в отношении количества полей, которые пользователь может заполнить. Представьте ситуацию, когда вам нужно создать форму для ввода контактных данных, где у. . .
Обнаружение объектов в реальном времени на Raspberry Pi с OpenCV и Movidius NCS
stackOverflow 19.02.2025
Технология обнаружения объектов в реальном времени становится все более востребованной в различных областях - от систем безопасности до автономных транспортных средств. Особый интерес представляет. . .
где chromium хранит пароли и как их обнулить в пожарном варианте
jigi33 19.02.2025
Where is the chromium browser stores passwords for a sites где chromium-подобный браузер хранит пароли и как их обнулить в пожарном варианте (see screenshot)
howto get access to external internet resources with kinit
jigi33 19.02.2025
Решение проблемы с необходимостью доп. авторизации по Керберос для автоотработки аутентификации на прокси-сервер (see screenshot)
Отслеживание автомобилей и определение скорости с OpenCV и Python на Raspberry Pi
stackOverflow 19.02.2025
В этой статье мы рассмотрим создание системы отслеживания транспортных средств и определения их скорости с использованием компьютерного зрения и библиотеки OpenCV. Наше решение основано на принципе. . .
ENV (environments) valid paths in linux
jigi33 19.02.2025
Environments paths (see screenshot)
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru