Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
14 / 14 / 1
Регистрация: 17.08.2015
Сообщений: 460
1

Привязка функции к кнопке

06.07.2016, 15:53. Показов 6813. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал прогу (простенький калькулятор), благодаря той теме, которую запостил тут: Считать данные


Написал, но кое-какие моменты остались непонятными.

Привожу проект целиком:

.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
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
 
namespace Ui{    // создали пространство имен для нашего класса
class MainWindow;
}
 
class MainWindow : public QMainWindow   // открытое наследование от QMainWindow
{
    Q_OBJECT // макрос, который никогда не надо трогать
 
public:
    explicit MainWindow(QWidget *parent = 0);  // тоже не трогать
    ~MainWindow();                             // деструктор
 
 
private slots:
    void on_Close_clicked();
    void on_plus_clicked();
    void on_minus_clicked();
    void on_multiply_clicked();
    void on_devide_clicked();
    void Clear_Box();
 
private:
    Ui::MainWindow *ui;  //указатель на объект созданного нами класса
    //Сами объекты размещаются в динамической памяти при помощи операции new
    //и имени не имеют! Доступ к ним может осуществляться через указатель с использованием оператора –>
 
};
 
#endif // MAINWINDOW_H

.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include "mainwindow.h"
#include "ui_mainwindow.h"
 
MainWindow::MainWindow(QWidget *parent):   //
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    //setupUi содержит в себе графическую информацию для создания объекта класса, который мы создали
    ui->setupUi(this); //ui->  так как ui - указатель на объект нашего класса
    //this в качестве аргумента для того, чтобы функция setupUi знала для какого объекта она вызывается
}
 
MainWindow::~MainWindow()
{
    delete ui;   //удаляется указатель на наш объект
}
 
 
void MainWindow::on_Close_clicked()
{
 
}
 
// ? - каким образом компилятор понимает, что эта функция привязана к кнопке plus на форме
void MainWindow:: on_plus_clicked()
{
    //создаем объект класса QString - строку и присваиваем ей введенное в поле LineEdit значение
    // с помощью функции text()
    // в строку str1 записывается содержимое виджета с помощью метода text()
    QString str1 = ui->lineEdit1->text();
    QString str2 = ui->lineEdit2->text();
//    QString s= o.lineEdit1->text();
 
//переменной number1 присваиваем значение переменной str1 преобразованной в число
    int number1 = str1.toInt();
    int number2 = str2.toInt();
    int summa=number1+number2;
    // в окошко lineEdit_3 выводим результат (переменную summa)
    ui->lineEdit_3->setText(QString::number(summa));
}
 
void MainWindow::on_minus_clicked(){
    QString str1 = ui->lineEdit1->text();
    QString str2 = ui->lineEdit2->text();
 
    int number1 = str1.toInt();
    int number2 = str2.toInt();
    int summa=number1-number2;
    ui->lineEdit_3->setText(QString::number(summa));
}
 
 void MainWindow::on_multiply_clicked(){
     QString str1 = ui->lineEdit1->text();
     QString str2 = ui->lineEdit2->text();
 
     int number1 = str1.toInt();
     int number2 = str2.toInt();
     int summa=number1*number2;
     ui->lineEdit_3->setText(QString::number(summa));
 }
 
 void MainWindow::on_devide_clicked(){
     QString str1 = ui->lineEdit1->text();
     QString str2 = ui->lineEdit2->text();
 
     float number1 = str1.toDouble();
     float number2 = str2.toDouble();
     float summa=number1/number2;
     ui->lineEdit_3->setText(QString::number(summa));
 }
 
void MainWindow::Clear_Box()
{
 
}
Просьба прочитать мои комментарии и поправить, если я что-то не так понимаю, а также ответить на вопрос

C++ (Qt)
1
2
// ? - каким образом компилятор понимает, что эта функция привязана к кнопке plus на форме
void MainWindow:: on_plus_clicked()

Не может ведь быть, чтобы в названии функции происходила привязка...?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2016, 15:53
Ответы с готовыми решениями:

Привязка к кнопке
Здраствуйте, есть консольное приложение на C# Как сделать его для windows forms? Делаю вот так:...

Привязка сервлета к кнопке
Можете подсказать как настроить работу кнопки edit &amp;&amp; delete package Servlets; import...

Привязка действия к кнопке
Добрый день, Задание: Спортсмен подтягивается на перекладине (3 движения: висит на вытянутых ...

Привязка метода к кнопке
Доброго времени суток! Есть следующее окно: JPanel panel = new JPanel(); panel.setLayout(new...

1
Pied Piper
236 / 227 / 57
Регистрация: 15.01.2013
Сообщений: 855
06.07.2016, 15:57 2
Лучший ответ Сообщение было отмечено Blitzor DDD как решение

Решение

каким образом компилятор понимает, что эта функция привязана к кнопке plus на форме
Это называется auto connection. http://doc.qt.io/qt-4.8/design... onnections
1
06.07.2016, 15:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2016, 15:57
Помогаю со студенческими работами здесь

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

Привязка DataGridView к кнопке
Добрый вечер! Я столкнулся со следующей проблемой - в общем, у меня есть запрос, который привязан к...

Привязка цикла к кнопке
такой вопрос, как можно привязать условие цикла к кнопке, чтобы получилось что-то вроде &quot;while (не...

Привязка события к кнопке (Binding)
Приветствую. Есть код: &lt;Button Content=&quot;Click&quot; Click=&quot;Binding Path=Funct&quot;/&gt; private void...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru