Форум программистов, компьютерный форум, киберфорум
Наши страницы

Qt

Войти
Регистрация
Восстановить пароль
 
 
kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 136
#1

Фигуры Лиссажу - C++ Qt

18.05.2016, 19:40. Просмотров 436. Ответов 21
Метки нет (Все метки)

Добрый день, подскажите пожалуйста как правильно сформировать массив для Фигуры Лиссажу?
я пытаюсь сделать чтобы фигура отрисовывалась динамически (в планах) как на осцилографе при изменении параметров менялась фигура.
Но пока я просто даже что-то простейшее не могу получить. я рисую через QCustomPlot и нашел такой пример который рисуем график y=x*x, но при попытаках заменить на что-то похожее на уравнения для построения лиссажу выходит дичь(
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
    //Сгенерируем данные
    //Для этого создадим два массива точек:
    //один для сохранения x координат точек,
    //а второй для y соответственно
 
    double a = -1; //Начало интервала, где рисуем график по оси Ox
    double b =  1; //Конец интервала, где рисуем график по оси Ox
    double h = 0.01; //Шаг, с которым будем пробегать по оси Ox
 
    int N=(b-a)/h + 2; //Вычисляем количество точек, которые будем отрисовывать
    QVector<double> x(N), y(N); //Массивы координат точек
 
    //Вычисляем наши данные
    int i=0;
    for (double X=a; X<=b; X+=h)//Пробегаем по всем точкам
    {
        x[i] = X;
        y[i] = X*X;//Формула нашей функции
        i++;
    }
 
    ui->widget->clearGraphs();//Если нужно, но очищаем все графики
    //Добавляем один график в widget
    ui->widget->addGraph();
    //Говорим, что отрисовать нужно график по нашим двум массивам x и y
    ui->widget->graph(0)->setData(x, y);
 
    //Подписываем оси Ox и Oy
    ui->widget->xAxis->setLabel("x");
    ui->widget->yAxis->setLabel("y");
 
    //Установим область, которая будет показываться на графике
    ui->widget->xAxis->setRange(a, b);//Для оси Ox
 
    //Для показа границ по оси Oy сложнее, так как надо по правильному
    //вычислить минимальное и максимальное значение в векторах
    double minY = y[0], maxY = y[0];
    for (int i=1; i<N; i++)
    {
        if (y[i]<minY) minY = y[i];
        if (y[i]>maxY) maxY = y[i];
    }
    ui->widget->yAxis->setRange(minY, maxY);//Для оси Oy
 
    //И перерисуем график на нашем widget
    ui->widget->replot();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2016, 19:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Фигуры Лиссажу (C++ Qt):

Перемещение фигуры - C++ Qt
Есть многоугольники на сцене, затем пользователь выбирает многоугольник и перемещает мышкой по сцене. Вопрос как реализовать...

Поворот 2D фигуры - C++ Qt
Добрый день форумчане нужен срочно сделать поворот 2D фигуры в данном случае прямоугольника с вписанными оружностями нужна срочно помощь...

Перемещение фигуры - C++ Qt
Добрый день! Помогите пожалуйста,в Qt совсем новичок. Есть код ,в котором отрисовывается квадрат.Нужно ,чтобы квадрат двигался по сцене...

Прорисовка фигуры - C++ Qt
при указании координат нужно проверить расположение введенной точки не попала ли она на фигуру(в консольном там все просто, а надо с GUI) ...

Перемещение фигуры qt5 - C++ Qt
Нужно осуществить перемещение квадрата по сцене с помощью мыши либо кнопок.Нужен код.Помогите пожалуйста ибо я чайник в...

Движение фигуры в окне - C++ Qt
Здравствуйте. Проблема заключается в том, что не получается реализовать это, есть только вращение вокруг осей. Помогите разобраться, какие...

21
kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 136
19.05.2016, 22:31  [ТС] #2
получилось что-то подобное, но теперь не получается сделать так чтобы с какой то передичностью по нажатию кнопки изменялся параметр например Е. и по той же кнопке останавливался.
Кликните здесь для просмотра всего текста
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
int a=23;
int b=4;
int c=3;
int d=7;
int e=50,eee=1;
int a2=23,b2=4,c2=18,d2=2,e2=84;
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
 
   update();
 
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
 
void MainWindow::update()
{
    int i;
 
    QCPCurve *deltoidRadial = new QCPCurve(ui->customPlot->xAxis, ui->customPlot->yAxis);
    QCPCurve *deltoidRadial2 = new QCPCurve(ui->customPlot2->xAxis, ui->customPlot2->yAxis);
    QCPCurve *deltoidRadial3 = new QCPCurve(ui->customPlot3->xAxis, ui->customPlot3->yAxis);
    QCPCurve *deltoidRadial4 = new QCPCurve(ui->customPlot3->xAxis, ui->customPlot3->yAxis);
    //очищение
    ui->customPlot->clearPlottables();
    ui->customPlot2->clearPlottables();
    ui->customPlot3->clearPlottables();
    // добавление на виджет
    ui->customPlot->addPlottable(deltoidRadial);
    ui->customPlot2->addPlottable(deltoidRadial2);
    ui->customPlot3->addPlottable(deltoidRadial3);
    ui->customPlot3->addPlottable(deltoidRadial4);
 
     // Включаем взаимодействие удаления/приближения
    // Включаем взаимодействие перетаскивания графика
     ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);
     ui->customPlot2->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);
     ui->customPlot3->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);
 
    //количество точек
    int pointCount = 5000;
    // создание массива данных
    QVector<double> x1(pointCount), y1(pointCount);
    QVector<double> x2(pointCount), y2(pointCount);
 
 
    for (i=0; i<pointCount; ++i)
    {
      double t = i/(double)(pointCount-1)*2*M_PI;
      x1[i] = a*sin(c*t+e);
      y1[i] = b*sin(d*t);
      x2[i] = a2*sin(c2*t+e2);
      y2[i] = b2*sin(d2*t);
    }
 
 
    //построение по массивам
    deltoidRadial->setData(x1, y1);
    deltoidRadial2->setData(x2, y2);
    deltoidRadial3->setData(x1, y1);
    deltoidRadial4->setData(x2, y2);
    // цвет графика:
    deltoidRadial->setPen(QPen(QColor(240, 0, 0)));
    deltoidRadial2->setPen(QPen(QColor(0, 0, 240)));
    deltoidRadial3->setPen(QPen(QColor(240, 0, 0)));
    deltoidRadial4->setPen(QPen(QColor(0, 0, 240)));
    // set some basic customPlot config:
 
 
    ui->customPlot->axisRect()->setupFullAxesBox();
    ui->customPlot->rescaleAxes();
    ui->customPlot->replot();
 
    ui->customPlot2->axisRect()->setupFullAxesBox();
    ui->customPlot2->rescaleAxes();
    ui->customPlot2->replot();
 
    ui->customPlot3->axisRect()->setupFullAxesBox();
    ui->customPlot3->rescaleAxes();
    ui->customPlot3->replot();
 
}
void MainWindow::update2()
{
    while(e2!=200)
    {
        e2++;
         //ui->label_21->e2;
         ui->label_21->setText("ssss");
        //update();
        Sleep(500);
    }
}
 
 
void MainWindow::on_horizontalSlider_5_sliderReleased()
{
    e=ui->horizontalSlider_5->value();
    update();
}
 
void MainWindow::on_horizontalSlider_4_sliderReleased()
{
    d=ui->horizontalSlider_4->value();
    update();
}
 
void MainWindow::on_horizontalSlider_3_sliderReleased()
{
    c=ui->horizontalSlider_3->value();
    update();
}
 
void MainWindow::on_horizontalSlider_2_sliderReleased()
{
    b=ui->horizontalSlider_2->value();
    update();
}
 
void MainWindow::on_horizontalSlider_sliderReleased()
{
    a=ui->horizontalSlider->value();
    update();
}
 
void MainWindow::on_horizontalSlider_6_sliderReleased()
{
    a2=ui->horizontalSlider_6->value();
    update();
}
 
void MainWindow::on_horizontalSlider_7_sliderReleased()
{
    b2=ui->horizontalSlider_7->value();
    update();
}
 
void MainWindow::on_horizontalSlider_8_sliderReleased()
{
    c2=ui->horizontalSlider_8->value();
    update();
}
 
void MainWindow::on_horizontalSlider_9_sliderReleased()
{
    d2=ui->horizontalSlider_9->value();
    update();
}
 
void MainWindow::on_horizontalSlider_10_sliderReleased()
{
    e2=ui->horizontalSlider_10->value();
    update();
}
 
void MainWindow::on_exit_clicked()
{
    eee=1;
    while(eee)
    {
       // c2++;
        e--;
        e2++;
         //ui->label_21->e2;
         ui->label_19->setNum(e2);
         ui->label_9->setNum(e);
        update();
        Sleep(100);
        if(e==0)
            e=200;
        if(e2==220)
            e2=0;
        if(eee==100)
            e=0;
    }
}
 
void MainWindow::on_pushButton_clicked()
{
    eee=0;
}
0
Миниатюры
Фигуры Лиссажу   Фигуры Лиссажу  
mevn
136 / 103 / 23
Регистрация: 06.10.2008
Сообщений: 451
20.05.2016, 07:34 #3
А где connect?
Или программа сама должна догадаться что нужно делать при нажатии кнопки?
0
kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 136
20.05.2016, 09:09  [ТС] #4
так как я пока не дружу с коннектом я попытался сделать кустарным способом через клик и вызов функции но теперь кроме этой функции ничего не меняется и виснет при закрытии или изменении )
0
mevn
136 / 103 / 23
Регистрация: 06.10.2008
Сообщений: 451
20.05.2016, 09:31 #5
Можно посмотреть здесь.
Сигналы - слоты
1
icpu
391 / 304 / 68
Регистрация: 10.03.2011
Сообщений: 1,326
Записей в блоге: 2
20.05.2016, 09:36 #6
Цитата Сообщение от mevn Посмотреть сообщение
А где connect?
Или программа сама должна догадаться что нужно делать при нажатии кнопки?
Автоматическое подключение по имени функций. Всё в норме.

kyzavr, on_exit_clicked забивает очередь сообщений. У вас два варианта
http://doc.qt.io/qt-5/qcoreapplication.html#processEvents
или повесить на кнопку флаг, который будете проверять внутри update. Можно даже просто включить у неё toggled
1
kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 136
20.05.2016, 09:51  [ТС] #7
что-то типа так? но она тупо перестала пахать теперь
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void MainWindow::on_exit_toggled(bool checked)
{
    eee=1;
    while(eee)
    {
 
        e+=0.1;
        e2+=0.1;
        update();
        Sleep(140);
        if(e==0)
            e=200;
        if(e2==220)
            e2=0;
        if(eee==100)
            e=0;
        ui->label_21->setNum(checked);
        if (checked)
            eee=0;
    }
}
0
icpu
391 / 304 / 68
Регистрация: 10.03.2011
Сообщений: 1,326
Записей в блоге: 2
20.05.2016, 09:57 #8
=_=
kyzavr,
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
bool makeEeeWeee = false;
 
void MainWindow::on_exit_toggled(bool checked)
{
makeEeeWeee = checked;
}
 
void MainWindow::update()
{
/* ... */ 
if (makeEeeWeee) {
    eee=1;
    while(eee)
    {
 
        e+=0.1;
        e2+=0.1;
        update();
        Sleep(140);
        if(e==0)
            e=200;
        if(e2==220)
            e2=0;
        if(eee==100)
            e=0;
        ui->label_21->setNum(checked);
        if (checked)
            eee=0;
    }
}
}
Вообще вам нужно решительно познакомиться со слотами и таймерами, и переписать весь этот не тихий ужас, но пока и так сойдёт.
1
kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 136
20.05.2016, 10:16  [ТС] #9
icpu, спасибо но это все равно не заработало) видимо реально нужно через слоты и таймеры учится )
0
icpu
391 / 304 / 68
Регистрация: 10.03.2011
Сообщений: 1,326
Записей в блоге: 2
20.05.2016, 11:19 #10
kyzavr, естественно не заработало, я в вашем кадавре разобраться даже не пытался.

Сделайте
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
public slots:
void onTimer(){
    if(eee)
    {
        e+=0.1;
        e2+=0.1;
        update();
        if(e==0)
            e=200;
        if(e2==220)
            e2=0;
        if(eee==100)
            e=0;
    }
    else
        sender()->deleteLater();
}
 
void MainWindow::on_exit_toggled(bool checked)
{
    if (checked) {
        QTimer * timer = new QTimer(this);
        connect(timer,SIGNAL(timeout()),this,SLOT(onTimer()));
        timer->start(140);
    }
    else
        eee=0;
}
0
kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 136
20.05.2016, 11:43  [ТС] #11
icpu, спасиб, сейчас попытаюсь только исправить проблему с пемеменными) так как что у е2 е и еее и другие они были обьявлены как глобальные в 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
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
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
 
public:
    explicit MainWindow(QWidget *parent = 0);
 
    ~MainWindow();
    void update();
    void update2();
 
private slots:
    void on_horizontalSlider_5_sliderReleased();
 
    void on_horizontalSlider_4_sliderReleased();
 
    void on_horizontalSlider_3_sliderReleased();
 
    void on_horizontalSlider_2_sliderReleased();
 
    void on_horizontalSlider_sliderReleased();
 
    void on_horizontalSlider_6_sliderReleased();
 
    void on_horizontalSlider_7_sliderReleased();
 
    void on_horizontalSlider_8_sliderReleased();
 
    void on_horizontalSlider_9_sliderReleased();
 
    void on_horizontalSlider_10_sliderReleased();
 
 public slots:
    void onTimer(){
        if(eee)
        {
            e+=0.1;
            e2+=0.1;
            update();
            if(e==0)
                e=200;
            if(e2==220)
                e2=0;
            if(eee==100)
                e=0;
        }
        else
            sender()->deleteLater();
    }
 
   // void on_exit_clicked();
 
    void on_pushButton_clicked();
    void on_exit_toggled(bool checked);
 
signals:
    void MySignal(QString);
 
 
private:
    Ui::MainWindow *ui;
 
};
 
#endif // MAINWINDOW_H
[CPPQT]
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
int a=23;
int b=4;
int c=18;
int d=2;
double e=50,e2=0;
int a2=23,b2=4,c2=18,d2=2,eee=1;
bool makeEeeWeee = false;

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

update();

}

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


void MainWindow::update()
{
int i;

QCPCurve *deltoidRadial = new QCPCurve(ui->customPlot->xAxis, ui->customPlot->yAxis);
QCPCurve *deltoidRadial2 = new QCPCurve(ui->customPlot2->xAxis, ui->customPlot2->yAxis);
QCPCurve *deltoidRadial3 = new QCPCurve(ui->customPlot3->xAxis, ui->customPlot3->yAxis);
QCPCurve *deltoidRadial4 = new QCPCurve(ui->customPlot3->xAxis, ui->customPlot3->yAxis);
//очищение
ui->customPlot->clearPlottables();
ui->customPlot2->clearPlottables();
ui->customPlot3->clearPlottables();
// добавление на виджет
ui->customPlot->addPlottable(deltoidRadial);
ui->customPlot2->addPlottable(deltoidRadial2);
ui->customPlot3->addPlottable(deltoidRadial3);
ui->customPlot3->addPlottable(deltoidRadial4);

// Включаем взаимодействие удаления/приближения
// Включаем взаимодействие перетаскивания графика
ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);
ui->customPlot2->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);
ui->customPlot3->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);

//количество точек
int pointCount = 5000;
// создание массива данных
QVector<double> x1(pointCount), y1(pointCount);
QVector<double> x2(pointCount), y2(pointCount);


for (i=0; i<pointCount; ++i)
{
double t = i/(double)(pointCount-1)*2*M_PI;
x1[i] = a*sin(c*t+e);
y1[i] = b*sin(d*t);
x2[i] = a2*sin(c2*t+e2);
y2[i] = b2*sin(d2*t);
}


//построение по массивам
deltoidRadial->setData(x1, y1);
deltoidRadial2->setData(x2, y2);
deltoidRadial3->setData(x1, y1);
deltoidRadial4->setData(x2, y2);
// цвет графика:
deltoidRadial->setPen(QPen(QColor(240, 0, 0)));
deltoidRadial2->setPen(QPen(QColor(0, 0, 240)));
deltoidRadial3->setPen(QPen(QColor(240, 0, 0)));
deltoidRadial4->setPen(QPen(QColor(0, 0, 240)));
// set some basic customPlot config:


ui->customPlot->axisRect()->setupFullAxesBox();
ui->customPlot->rescaleAxes();
ui->customPlot->replot();

ui->customPlot2->axisRect()->setupFullAxesBox();
ui->customPlot2->rescaleAxes();
ui->customPlot2->replot();

ui->customPlot3->axisRect()->setupFullAxesBox();
ui->customPlot3->rescaleAxes();
ui->customPlot3->replot();

}


void MainWindow::on_horizontalSlider_5_sliderReleased()
{
e=ui->horizontalSlider_5->value();
update();
}

void MainWindow::on_horizontalSlider_4_sliderReleased()
{
d=ui->horizontalSlider_4->value();
update();
}

void MainWindow::on_horizontalSlider_3_sliderReleased()
{
c=ui->horizontalSlider_3->value();
update();
}

void MainWindow::on_horizontalSlider_2_sliderReleased()
{
b=ui->horizontalSlider_2->value();
update();
}

void MainWindow::on_horizontalSlider_sliderReleased()
{
a=ui->horizontalSlider->value();
update();
}

void MainWindow::on_horizontalSlider_6_sliderReleased()
{
a2=ui->horizontalSlider_6->value();
update();
}

void MainWindow::on_horizontalSlider_7_sliderReleased()
{
b2=ui->horizontalSlider_7->value();
update();
}

void MainWindow::on_horizontalSlider_8_sliderReleased()
{
c2=ui->horizontalSlider_8->value();
update();
}

void MainWindow::on_horizontalSlider_9_sliderReleased()
{
d2=ui->horizontalSlider_9->value();
update();
}

void MainWindow::on_horizontalSlider_10_sliderReleased()
{
e2=ui->horizontalSlider_10->value();
update();
}


void MainWindow::on_pushButton_clicked()
{


}

void MainWindow::on_exit_toggled(bool checked)
{
if (checked) {
QTimer * timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(onTimer()));
timer->start(140);
}
else
eee=0;
}

[/CPPQT
]


Добавлено через 10 минут
видимо изначально я криво написал и вас это ввело в заблуждения) надо пойти почитать как работают таймеры чтобы вызвать.
0
icpu
391 / 304 / 68
Регистрация: 10.03.2011
Сообщений: 1,326
Записей в блоге: 2
20.05.2016, 13:49 #12
перенесите реализацию onTimer в .cpp файл. Правой кнопкой мыши - рефакторинг - перенести...
0
kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 136
20.05.2016, 13:53  [ТС] #13
подскажите пожалуйста еще такую вещь, у меня есть глобальная переменная int а.
я связал слайдер с изменением этой переменной
C++ (Qt)
1
2
 public slots:
   void valueChanged(int);
C++ (Qt)
1
QObject::connect(ui->horizontalSlider, SIGNAL(valueChanged(int)),this, SLOT(valueChanged(int)));
C++ (Qt)
1
2
3
4
5
6
void MainWindow::valueChanged(int x)
{
    a=x;
    update(); // функция новой отрисовки графиков
 
}
и вроде все прекрастно ) но, мне нужно еще таким же макаром связать парочку переменных без создания для них новых функций типа valueChanged(int x), подскажите как сделать её универсальной чтобы через коннект или как то еще передавать туда переменную которую я хочу изменить . ? я подумал что стандартным методом из си, просто передать как параметр функции но почему то qt не жрет это)
0
icpu
391 / 304 / 68
Регистрация: 10.03.2011
Сообщений: 1,326
Записей в блоге: 2
20.05.2016, 14:12 #14
kyzavr, QSignalMapper https://habrahabr.ru/post/50812/
Но оно вам не надо.
0
kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 136
20.05.2016, 17:22  [ТС] #15
почему не нужен)? не создавать же мне 10 слотов под каждый коннект )


чет я посмотрел примеры и там примерно тоже самое) передается 1 параметр данных) а как бы что менять не передется(
а мне получается надо сделать что-то подобное
C++ (Qt)
1
2
3
4
QObject::connect(ui->horizontalSlider, SIGNAL(valueChanged(int)),this, SLOT(valueChanged(int)));
QObject::connect(ui->horizontalSlide_2, SIGNAL(valueChanged(int)),this, SLOT(valueChanged(int)));
QObject::connect(ui->horizontalSlider_3, SIGNAL(valueChanged(int)),this, SLOT(valueChanged(int)));
QObject::connect(ui->horizontalSlider_4, SIGNAL(valueChanged(int)),this, SLOT(valueChanged(int)));
где valueChanged(int) понимала бы что для каждого слайдера есть своя переменная
C++ (Qt)
1
2
3
4
5
6
void MainWindow::valueChanged(int x)
{
    переменная=x;
    update();
 
}

кстати не знаю почему но вот это тоже не работает) даже проверку на форму вывел) тупо в эту функцию не заходит
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
void MainWindow::on_pushButton_toggled(bool checked)
{
    ui->label_21->setText("я уточка кря кря");
    if (checked) {
        QTimer * timer = new QTimer(this);
        connect(timer,SIGNAL(timeout()),this,SLOT(onTimer()));
        timer->start(140);
    }
    else
        eee=0;
 
}
0
20.05.2016, 17:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2016, 17:22
Привет! Вот еще темы с ответами:

Не обновляется координата фигуры - C++ Qt
Добрые день. Есть программа на основе QDialog двигающая фигуру по окружности. Я пытаюсь вызвать функцию движения по нажанию кнопки и...

QPainter криво рисует фигуры - C++ Qt
Через указатель на базовый клас Base_figure рисую фигуры, но они рисуются неправильно, т.е не по тем координатам, какие то маленькие +...

Дырявые фигуры через QPainterPath - C++ Qt
Добрый день. Каким образом с помощью QPainterPath можно нарисовать дырявую фигуру? Побаловался с оператором substructed, но результат...

Изменение размеров фигуры с помощью мыши - C++ Qt
Здравствуйте ,помогите пожалуйста наложить ограничение на возможности изменения размеров фигуры с помощью мыши: увеличение или уменьшение...


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

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

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