Я провел довольно тщательное исследование, так как боролся с проблемой слотов, но так как результаты поиска в Google неуклонно становились все более и более фиолетовыми, я решил просто спросить SO приятелей =) Пожалуйста, обратите внимание, что я не использующий QtCreator или какие-либо динамические вещи Мне нужно:
- объявляет некоторые строки QStrings, которые являются постоянными
- получить некоторые QStrings из QLineEdits
- добавить 1 и 2
- наконец, поместите их в QTextEdit при нажатии кнопки.
На шаге 1 я объявляю QStrings так:
QString set_1 = "ООО «Хеллманн» (129343, г. Москва, ул. Уржумская, д. 4, стр. 14, ИНН 7722637955, ОГРН 1087746168476) доверяет забор груза - ";
QString set_2 = " - перегружаемого из контейнера ";
QString set_3 = ", в количестве ";
QString set_4 = " паллет, весом ";
QString set_5 = " кг, водителю ";
QString set_6 = ", паспорт ";
QString set_7 = " выдан ";
QString set_8 = ".";
QString set_9 = " На автотранспортном средстве марки ";
QString set_10 = " - ";
QString set_11 = ", прицеп: ";
Затем для шага 2 я делаю QStrings из QLineEdits следующим образом (например, line_b_b - это имя QLineEdit):
QString a = line_b_b.text();
QString b = line_b_a.text();
QString c = line_b_c.text();
QString d = line_b_d.text();
QString e = line_a_b.text();
QString f = line_a_a.text();
QString g = line_a_c.text();
QString h = line_a_d.text();
QString i = line_c_b.text();
QString j = line_c_a.text();
QString k = line_c_c.text();
Для шага 3 я добавляю QStrings из шага 1 с теми, что из шага 2, в переменную с именем "doverka" (пожалуйста, не обращайте внимания на эти кириллические слова):
QString doverka = set_1+a+set_2+b+set_3+c+set_4+d+set_5+e+set_6+f+set_7+g+h+set_8+set_9+i+set_10+j+set_11+k+set_8;
Наконец, на шаге 4 я пытаюсь поместить целое в QTextEdit при нажатии кнопки. И я думаю, что проблема здесь. Я создаю QTextEdit с именем «text»:
QTextEdit text (&dw);
text.show();
А потом я пытаюсь создать слот и полагаю, что делаю это совершенно неправильно, поскольку он просто не работает:
QPushButton btn_t ("Создать текст", &dw);
QObject::connect(
&btn_t,
SIGNAL(clicked()),
&text,
SLOT([dover](){return text.setText(doverka)}));
btn_t.show();
Я новичок в Qt, а также в C ++, и поэтому плохо разбираюсь в создании слотов. Здесь я попробовал это с лямбда-функцией, но я явно делаю что-то не так. Может быть, я должен просто поместить лямбда-функцию где-нибудь еще до SLOT
? Мой слот не распознается как таковой, когда прога компилируется, я получаю уведомление "нет такого слота". Или, может быть, проблема где-то раньше, например в создании QStrings из QLineEdits (step2)? .. Я довольно беспомощен и очень ценю любые полезные советы! Очень большое спасибо