12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
1

Добавление в CommoBox из диалога

22.09.2016, 11:02. Показов 1251. Ответов 42
Метки нет (Все метки)

Всем привет!
Ребят возникла следующая задача: добавить в комбобокс данные из диалогового окна.
Как это можно сделать не задействуя глобальные переменные.
Миниатюры
Добавление в CommoBox из диалога  
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2016, 11:02
Ответы с готовыми решениями:

API для вызова диалога цвета и диалога шрифта
Подскажите API для вызова диалога цвета и диалога шрифта ЗЫ : желательно чтобы работал не только...

Вызов диалога из диалога
Есть диалог, как сделать чтобы при выборе определенной позиции в это диалоге открывался другой...

Вызов модального диалога из модального диалога
Такая проблема: из главного окна приложения при нажатии на кнопку "Рассчитать" вызывается...

Обновление диалога
На диалоговое окно размещены поле статик и 4 радио кнопки. Происходит их обработка по нажатию...

42
Эксперт С++
1934 / 1046 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
22.09.2016, 11:27 2
все зависит от архитектуры приложения... как добавить элемент в комбобокс: QCombobox::addItem. Теперь собственно осталось понять, кто о ком должен знать... как по мне, у вас есть виджет, который содержит в себе комбобокс, скорее всего там же создается "диалоговое окно", сделайте в диалоговом окне переменную, которую сможете вычитать по "закрытию". ну и собственно последовательность действий:
1) Создать диалог
2) Получить результат диалога и значение из поля ввода
3) Получить комбобокс и вызвать для него AddItem с параметром полученным из диалога.

как-то так наверное...
1
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
22.09.2016, 17:15  [ТС] 3
Maxim Prishchepa, Понял Вашу идею, спасибо)

Добавлено через 3 часа 54 минуты
Maxim Prishchepa, так получается только опять же только через глобальную переменную. Нужен способ обойтись без неё
0
Эксперт С++
1934 / 1046 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
22.09.2016, 17:27 4
Цитата Сообщение от Andrey_Programm Посмотреть сообщение
так получается только опять же только через глобальную переменную. Нужен способ обойтись без неё
прошу простить какую еще глобальную переменную?

C++ (Qt)
1
2
3
4
5
6
7
8
9
QWidget
{
   QCombobox * m_box;
   
   void ButtonHandler() {
         MyDialog * dlg = CreateDialog();
         m_box->addItem(dlg->getResult());
   }
}
Где тут глобальная переменная то? О_о
если m_box смущает, ну ок...

C++ (Qt)
1
2
3
4
5
6
void ButtonHandler() {
         MyDialog * dlg = CreateDialog();
         QCombobox *box= findChild<QCombobox *>("Uasya");
         if (nullptr != box)
             box->addItem(dlg->getResult());
   }
но это будет чуть дольше....
0
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
23.09.2016, 01:19  [ТС] 5
Maxim Prishchepa, что это за CreateDialog()
и
getResult()

нет таких функций.
а по нажатию кнопки я сигнал смог передать только в статическую переменную то бишь в глобальную
0
595 / 400 / 151
Регистрация: 01.10.2015
Сообщений: 1,175
23.09.2016, 01:50 6
Цитата Сообщение от Andrey_Programm Посмотреть сообщение
нет таких функций.
У вас нет, а у него есть

а по нажатию кнопки я сигнал смог передать только в статическую переменную то бишь в глобальную
Если ваше диалоговое окно является потомком QDialog (судя по оформлению, так и есть), то вызвать этот диалог на исполнение вы можете с помощью exec() - диалог будет отображен, как модальный, еще одним полезным свойством данного метода является то, что он возвращает код, анализируя который можно понять, по нажатию какой кнопки был осуществлен выход.

Поскольку создание диалога, равно как и его вызов вы, скорее всего, осуществляете из обработчика нажатия вашей "плюсовой" кнопки, то вы можете получить значение из объекта диалога после его завершения. Для этого нужно предусмотреть в интерфейсе диалога публичный метод, возвращающий значение нужного вам lineEdit'а (тот самый getResult(), вы можете "обозвать" его по-другому, какое название придумаете).

В этом случае вы прекрасно обходитесь без сигналов/слотов и глобальных переменных. Именно это имелось в виду товарищем выше, просто он не "разворачивал" мысль, а ограничился кратким описанием.

А еще лучше — почитать соответствующий раздел документации.
2
Эксперт С++
1934 / 1046 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
23.09.2016, 11:45 7
Цитата Сообщение от 0x90h Посмотреть сообщение
просто он не "разворачивал" мысль
я в первом посту все разъяснил ;-)

Цитата Сообщение от Andrey_Programm Посмотреть сообщение
нет таких функций


Цитата Сообщение от 0x90h Посмотреть сообщение
вы можете с помощью exec()
блин... действительно, забыл отобразить :-)

Цитата Сообщение от 0x90h Посмотреть сообщение
А еще лучше — почитать соответствующий раздел документации.
+100500
0
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
23.09.2016, 11:48  [ТС] 8
0x90h,
Я не понимаю как я его могу получить я попытался компилятор у меня выдал ошибку что ему нужна статическая переменная.
Привожу код:

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 PLUS_DIALOG_H
#define PLUS_DIALOG_H
 
#include <QWidget>
#include <QDialog>
#include <QLabel>
#include <QPushButton>
#include <QLineEdit>
#include <QAction>
 
namespace WINDOW {
 
class Plus_Mark_dialog : public QDialog
{
    Q_OBJECT
 
private:
    QLabel *lbl;
    QLineEdit *line;
    QPushButton *Ok;
 
    QAction *addMark;
 
public slots:
    void slAddMark();
 
public:
    static QString plMark;
 
public:
    Plus_Mark_dialog(QWidget *parent = 0);
 
    virtual ~Plus_Mark_dialog();
};
 
}
 
 
#endif // PLUS_DIALOG_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
#include "plus_dialog.h"
 
#include <QVBoxLayout>
#include <QSpacerItem>
#include <QValidator>
 
namespace WINDOW
{
 
Plus_Mark_dialog::Plus_Mark_dialog(QWidget *parent):
    QDialog(parent)
{
    setWindowTitle(tr("New Mark"));
    setMaximumWidth(300);
    setMaximumHeight(200);
 
    lbl = new QLabel(tr("Enter new mark"));
    line = new QLineEdit();
    Ok = new QPushButton(tr("&Add"));
 
    QRegExp str_mark("[a-zA-Zа-яА-Я]{1,15}");
    line->setValidator(new QRegExpValidator(str_mark));
 
    QVBoxLayout *vLayout10 = new QVBoxLayout();
    QSpacerItem *sp = new QSpacerItem(20,15,QSizePolicy::Expanding,QSizePolicy::Expanding);
 
    vLayout10->addWidget(lbl);
    vLayout10->addWidget(line);
    vLayout10->addSpacerItem(sp);
    vLayout10->addWidget(Ok);
 
    setLayout(vLayout10);
 
    {   //Экшн на кнопку Add
        auto *A = addMark = new QAction();
        connect(Ok,SIGNAL(clicked(bool)),A,SIGNAL(triggered(bool)));//вешаем экшн на кнопку
        connect(A,SIGNAL(triggered(bool)),this,SLOT(slAddMark()));
    }
 
}
 
 
 void Plus_Mark_dialog::slAddMark()
 {
      plMark = line->text();
      this->accept();
 }
 
Plus_Mark_dialog::~Plus_Mark_dialog()
{
 
}
}

cpp2
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
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
#include "auto_frame.h"
#include "plus_dialog.h"
 
#include <QGridLayout>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QSpacerItem>
#include <QValidator>
#include <QCompleter>
#include <QDebug>
 
 
namespace WINDOW{
 
QString Plus_Mark_dialog::plMark;
 
Auto_Frame::Auto_Frame(QWidget *parent):
    QFrame(parent)
{
    setObjectName("Car_Settings");
 
 
    grProperties = new QGroupBox(tr("Data car"));//Рамочка вокруг группы
    grProperties->setObjectName("gpProperties");
 
 
    //Подключаем свойства машины
    Properties = new DATAS::Properties_Cars();
    DataFrame = new QFrame();
    DataFrame->setObjectName("DataFrame");
    //-------------------------------------
    lbl_Number = new QLabel(tr("Number"));
    line_Number = new QLineEdit();
    lbl_Number->setBuddy(line_Number);
    plusNumber = new QPushButton("+");
 
    QGridLayout *grLayout = new QGridLayout();
 
    auto *fr_Number = new QFrame();
    auto *hLayout10 = new QHBoxLayout();
    fr_Number->setObjectName("GridLayout");
 
    //ХЗ знаю как это работает но добавление QSpaser в качестве итема раздвигает пространство по максимуму
    hLayout10->addItem(new QSpacerItem(0,0,QSizePolicy::MinimumExpanding,QSizePolicy::Expanding));
    hLayout10->addWidget(line_Number);
    hLayout10->addWidget(plusNumber);
    hLayout10->setContentsMargins(2,2,2,2);//Устанавливаем отступы слоя от внешних рамок
    fr_Number->setLayout(hLayout10);
 
    grLayout->addWidget(lbl_Number,0,0);
    grLayout->addWidget(fr_Number,0,1);
 
    grLayout->setSpacing(3);//толщина стенки между объектами слоя
 
    line_Number->setFixedWidth(180);
    lbl_Number->setFixedWidth(180);
    plusNumber->setFixedWidth(30);
    plusNumber->setObjectName("Plus");
 
    //Валидатор для ввода номера
    QRegExp regNumber("[a-zA-Z0-9]{7}");
    line_Number->setValidator(new QRegExpValidator(regNumber,this));
    //-------------------------------------
 
    auto *fr_Mark = new QFrame();
    auto *hLayout9 = new QHBoxLayout();
    fr_Mark->setObjectName("GridLayout");
 
    lbl_Mark = new QLabel(tr("Mark"));
    cmb_Mark = new QComboBox();
    lbl_Mark->setBuddy(cmb_Mark);
    plusMark = new QPushButton("+");
 
    hLayout9->addItem(new QSpacerItem(0,0,QSizePolicy::MinimumExpanding,QSizePolicy::Expanding));
    hLayout9->addWidget(cmb_Mark);
    hLayout9->addWidget(plusMark);
    hLayout9->setContentsMargins(2,2,2,2);
    fr_Mark->setLayout(hLayout9);
 
    grLayout->addWidget(lbl_Mark,1,0);
    grLayout->addWidget(fr_Mark,1,1);
 
    cmb_Mark->setFixedWidth(180);
    lbl_Mark->setFixedWidth(180);
    plusMark->setFixedWidth(30);
    plusMark->setObjectName("Plus");
    fcmbMark(cmb_Mark);
    //-------------------------------------
 
    auto *fr_Model = new QFrame();
    auto *hLayout8 = new QHBoxLayout();
    fr_Model->setObjectName("GridLayout");
 
    lbl_Model = new QLabel(tr("Model"));
    cmb_Model = new QComboBox();
    lbl_Model->setBuddy(cmb_Model);
    plusModel = new QPushButton("+");
 
    hLayout8->addItem(new QSpacerItem(0,0,QSizePolicy::MinimumExpanding,QSizePolicy::Expanding));
    hLayout8->addWidget(cmb_Model);
    hLayout8->addWidget(plusModel);
    hLayout8->setContentsMargins(2,2,2,2);
    fr_Model->setLayout(hLayout8);
 
    grLayout->addWidget(lbl_Model,3,0);
    grLayout->addWidget(fr_Model,3,1);
 
    cmb_Model->setFixedWidth(180);
    lbl_Model->setFixedWidth(180);
    plusModel->setFixedWidth(30);
    plusModel->setObjectName("Plus");
 
    //-------------------------------------
 
    auto *fr_Color = new QFrame();
    auto *hLayout7 = new QHBoxLayout();
    fr_Color->setObjectName("GridLayout");
 
    lbl_Color = new QLabel(tr("Color"));
    line_Color = new QLineEdit();
    line_Color->setWindowTitle(tr("Color"));
    line_Color->setFixedWidth(180);
    plusColor = new QPushButton("+");
 
    QStringList *list_color = new QStringList();//создаём лист данных
    copyColorList(list_color);//формируем начинку листа
/*
    *list_color << "Red"
                << "Blue"
                << "Gray"
                << "Silver"
                << "White"
                << "Black";*/
 
    qDebug() << (*list_color)[2];//проверка - выводим элемент листа на экран
 
    QCompleter *completer_color = new QCompleter(*list_color);//формируем компановщик и помещаем в компановщик лист
    completer_color->setCaseSensitivity(Qt::CaseInsensitive );//отключаем чувствительность к регистру
    line_Color->setCompleter(completer_color);//устанавливаем компановщик для поля
    line_Color->show();//отображаем содержимое поля
 
    hLayout7->addItem(new QSpacerItem(0,0,QSizePolicy::Expanding,QSizePolicy::Expanding));
    hLayout7->addWidget(line_Color);
    hLayout7->addWidget(plusColor);
    hLayout7->setContentsMargins(2,2,2,2);
    fr_Color->setLayout(hLayout7);
 
    grLayout->addWidget(lbl_Color,4,0);
    grLayout->addWidget(fr_Color,4,1);
 
 
    lbl_Color->setFixedWidth(180);
    plusColor->setFixedWidth(30);
    plusColor->setObjectName("Plus");
 
 
    //-------------------------------------
 
    auto *fr_Data = new QFrame();
    auto *hLayout6 = new QHBoxLayout();
    fr_Data->setObjectName("GridLayout");
 
    lbl_Date_of_reristration = new QLabel(tr("Date_of_registration"));
    line_Date_of_reristration = new QLineEdit();
    lbl_Date_of_reristration->setBuddy(line_Date_of_reristration);
    line_Date_of_reristration->setInputMask("00.00.0000");
    plusData = new QPushButton("+");
 
    hLayout6->addItem(new QSpacerItem(0,0,QSizePolicy::MinimumExpanding,QSizePolicy::Expanding));
    hLayout6->addWidget(line_Date_of_reristration);
    hLayout6->addWidget(plusData);
    hLayout6->setContentsMargins(2,2,2,2);
    fr_Data->setLayout(hLayout6);
 
    grLayout->addWidget(lbl_Date_of_reristration,2,0);
    grLayout->addWidget(fr_Data,2,1);
 
    line_Date_of_reristration->setFixedWidth(180);
    lbl_Date_of_reristration->setFixedWidth(180);
    plusData->setFixedWidth(30);
    plusData->setObjectName("Plus");
 
    //-------------------------------------
    auto *fr_Category = new QFrame();
    auto *hLayout5 = new QHBoxLayout();
    fr_Category->setObjectName("GridLayout");
 
    lbl_Category = new QLabel(tr("Category"));
    cmb_Category = new QComboBox();
    lbl_Category->setBuddy(cmb_Category);
    auto *lbl_buf = new QLabel();//создаем пустую метку для обеспечения отступа
    lbl_buf->setFixedWidth(30);
 
    hLayout5->addItem(new QSpacerItem(0,0,QSizePolicy::MinimumExpanding,QSizePolicy::Expanding));
    hLayout5->addWidget(cmb_Category);
    hLayout5->addWidget(lbl_buf);//включаем пустую метку в слой
    hLayout5->setContentsMargins(2,2,2,2);
    fr_Category->setLayout(hLayout5);
 
    grLayout->addWidget(lbl_Category,5,0);
    grLayout->addWidget(fr_Category,5,1);
 
    cmb_Category->setFixedWidth(180);
    lbl_Category->setFixedWidth(180);
 
    //комбобокс Категория:
    cmb_Category->addItem(tr("Passenger"),DATAS::Passenger);
    cmb_Category->addItem(tr("Truck"),DATAS::Truck);
    cmb_Category->addItem(tr("Motorcycle"),DATAS::Motorcycle);
 
    //-------------------------------------
    QVBoxLayout *vLayout4 = new QVBoxLayout();
    vLayout4->addLayout(grLayout);//Номер
 
    DataFrame->setLayout(vLayout4);//рамка
 
    ScrollL = new QScrollArea();
    ScrollL->setWidget(DataFrame);
    ScrollL->setWidgetResizable(true);//Обязательно!!! позволяет внутреннему виджету менять размеры
    ScrollL->setObjectName("ScrollL");
 
    QVBoxLayout  *vLayout3 = new QVBoxLayout();
 
    vLayout3->addWidget(ScrollL);
 
    grProperties->setLayout(vLayout3);
//-------------------------------------------//
    //Рамка под фото//
 
    PhotoFrame = new QFrame();
 
//-------------------------------------------//
    //Основной слой
    QVBoxLayout  *vLayout2 = new QVBoxLayout();
    vLayout2->addWidget(grProperties);
    vLayout2->addWidget(PhotoFrame);
 
    setLayout(vLayout2);
 
    connect(plusModel,SIGNAL(clicked(bool)),this,SLOT(slModel()));
    connect(plusMark,SIGNAL(clicked(bool)),this,SLOT(slMark()));
 
 
}
 
void Auto_Frame::copyColorList(QStringList *stringList)
{
qDebug() << "=====";
    for(int i=0;i<Properties->Color.size();i++)//перебор до размера Вектора
    {
       //(*stringList)[i] - так можно вывести значение
                *stringList<< Properties->Color[i];//поочереди вводим цвета в лист
    }
 
//Выводим в дебаг первый итератор
qDebug() << *(Properties->Color.begin());
}
 
//Прикрепляем к комбобоксу контейнер данных
void Auto_Frame::fcmbMark(QComboBox *mark)
{
     QVectorIterator<QString> it(Properties->Mark);//используем Java-итератор
     while(it.hasNext())
     {
       mark->addItem(it.next());
     }
}
//===========================================================================
//слоты на добавление данных
void Auto_Frame::slNumber()
{
 
}
 
void Auto_Frame::slMark()
{
    Plus_Mark_dialog *dia = new Plus_Mark_dialog();
    dia->exec();
    cmb_Mark->addItem(Plus_Mark_dialog::plMark);
}
 
void Auto_Frame::slModel()
{
 
}
 
void Auto_Frame::slColor()
{
 
 
}
 
Auto_Frame::~Auto_Frame()
{
 
}
}
Добавлено через 1 минуту
Покажите мне как я должен исправить слот
C++ (Qt)
1
2
3
4
5
6
void Auto_Frame::slMark()
{
    Plus_Mark_dialog *dia = new Plus_Mark_dialog();
    dia->exec();
    cmb_Mark->addItem(Plus_Mark_dialog::plMark);
}
чтобы не использовать глобальную переменную
0
Эксперт С++
1934 / 1046 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
23.09.2016, 11:57 9
Лучший ответ Сообщение было отмечено Andrey_Programm как решение

Решение

Цитата Сообщение от Andrey_Programm Посмотреть сообщение
у меня выдал ошибку
описание ошибки где?
Цитата Сообщение от Andrey_Programm Посмотреть сообщение
что ему нужна статическая переменная
ну уж прям таки нужна? прям так и сказал, компилить без статической переменной не буду?

Добавлено через 4 минуты

Не по теме:

блин.. не код а адов поток сознания...



C++ (Qt)
1
public: static QString plMark;
- в помойку
вместо этого:
C++ (Qt)
1
public: QString getResult() const { return line->text(); }
а вместо:
C++ (Qt)
1
2
3
4
5
6
void Auto_Frame::slMark()
{
    Plus_Mark_dialog *dia = new Plus_Mark_dialog();
    dia->exec();
    cmb_Mark->addItem(Plus_Mark_dialog::plMark);
}
должно быть:
C++ (Qt)
1
2
3
4
5
6
void Auto_Frame::slMark()
{
    Plus_Mark_dialog *dia = new Plus_Mark_dialog();
    dia->exec();
    cmb_Mark->addItem(dia->getResult());
}
Добавлено через 1 минуту
кстати... крайне рекомендую отложить нахрен Qt и поучить С++, т.к. static тулите куда нужно и куда не нужно, Plus_Mark_dialog:lMark - это вообще пять! в общем рано в Qt пошли, учите С++ сначала

Добавлено через 2 минуты
Цитата Сообщение от Maxim Prishchepa Посмотреть сообщение
Plus_Mark_dialog:lMark - это вообще пять!
пардоньте - тут все ок, это я уже от С++ отвыкать начал
0
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
23.09.2016, 12:11 10
Один нюансик:
C++ (Qt)
1
2
3
4
5
6
7
void Auto_Frame::slMark()
{
    Plus_Mark_dialog *dia = new Plus_Mark_dialog();
    dia->exec();
    cmb_Mark->addItem(Plus_Mark_dialog::plMark);
delete dia; //А то куча не резиновая 
}
1
Эксперт С++
1934 / 1046 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
23.09.2016, 12:28 11
Цитата Сообщение от mevn Посмотреть сообщение
Один нюансик:
лучше тогда уже:
C++ (Qt)
1
2
3
Plus_Mark_dialog *dia = new Plus_Mark_dialog(this);
...
dia->deleteLater();
все ж Qt используем ;-)

Добавлено через 4 минуты
Цитата Сообщение от Andrey_Programm Посмотреть сообщение
void Plus_Mark_dialog::slAddMark()
*{
* * * plMark = line->text();
* * * this->accept();
*}
ну и тут естественно нафиг не нужно присваивание...
0
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
23.09.2016, 12:28  [ТС] 12
mevn, Спасибо.

Maxim Prishchepa, Всё таки не понял как мне исправить код. по документации вижу какой то void QDialog::finished(int result)

что с ним делать хз. если мне строку надо а не int
0
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
23.09.2016, 12:28 13
А еще возможно проще:
C++ (Qt)
1
2
3
4
5
6
#include <QtGui>
...
    bool ok;
    QString text = QInputDialog::getText(this, "New Mark","<kf,kf", QLineEdit::Normal,QString(), &ok);
    if (ok && !text.isEmpty())
        cmb_Mark->addItem(text)
0
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
23.09.2016, 12:29  [ТС] 14
Maxim Prishchepa, Оке . щас попробую
0
Maxim Prishchepa
23.09.2016, 12:30
  #15

Не по теме:

Цитата Сообщение от Andrey_Programm Посмотреть сообщение
mevn, Спасибо.
Maxim Prishchepa, Всё таки не понял
ага... т.е. ему спасибо, а мне все таки не понял...
всё... мну обиделсо, буду хавать попкорм и кидаться фейспалмами :-)

0
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
23.09.2016, 12:32  [ТС] 16
Ребят ) конечно спасибо за терпения но мне ... Ваше "тут не нужно присваивание" ни о чем не говорит. лучше покажите как нужно. и это будет гораздо быстрее)
0
Эксперт С++
1934 / 1046 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
23.09.2016, 12:34 17
ничего не нужно, удали эту переменную и все, она ЛИШНЯЯ, если сделаешь как сказал mevn, то вообще удали нафиг класс с диалогом, т.к. он то же лишний :-)
0
mevn
23.09.2016, 12:34
  #18

Не по теме:

ага... т.е. ему спасибо, а мне все таки не понял...
:p

0
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
23.09.2016, 12:36  [ТС] 19
ежу ясно что я прошу убрать глобальную переменную. поэтому присваивание само отпадёт. а как реализовать его дальше то в фрейме

Добавлено через 1 минуту
C++ (Qt)
1
2
3
4
5
6
void Auto_Frame::slMark()
{
    Plus_Mark_dialog *dia = new Plus_Mark_dialog();
    dia->exec();
    cmb_Mark->addItem(Plus_Mark_dialog::plMark);
}
Вот здесь что написать кроме очистки памяти ?
0
Эксперт С++
1934 / 1046 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
23.09.2016, 12:36 20
Цитата Сообщение от Andrey_Programm Посмотреть сообщение
а как реализовать его дальше то в фрейме
ААААААААААААаааааааааааааааа....................

ты мои предыдущие посты читал? :-)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2016, 12:36

Диалог из диалога
Добрый день! Кто встречался с такой проблемой, подскажите , пожалуйста. Из основной формы вызываю...

Заголовок диалога
Как можно задать заголовок диалогового окна , если оно сделано в ресурсах? При попытке поменять в...

Организация диалога
Написать и отладить программу, выводящую в диалоге на экран вашу фамилию, имя и отчество на синем...

Подключение диалога
Проект запускался нормально. Добавил к проекту диалог с формой. #include &lt;QDialog&gt; #include...


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

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

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