Russian Qt Forum
Апрель 27, 2024, 16:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как правильно добавить параметр классу окна?  (Прочитано 1574 раз)
ogogon
Новичок

Offline Offline

Сообщений: 9



Просмотр профиля
« : Октябрь 13, 2021, 14:43 »

Коллеги, пожалуйста подскажите, как мне правильно сделать то, что я хочу. Я только разбираюсь с C++ и не до конца владею всеми деталями, всю жизнь писал на кернигановском C.

У меня есть класс, реализующий окно, которое служит формой для ввода информации. Затем эта информация вносится в базу данных. Код класса создан автоматически, программой Qt Creator.
Мне нужно, чтобы форма работала в двух режимах - первичного ввода новой записи и редактирования уже имеющейся.

Вот код класса.
dialogMyForm.cpp:
Код:
DialogMyForm::DialogMyForm(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::DialogMyForm)
{
...

dialogMyForm.h:
Код:
class DialogMyForm : public QDialog
{
    Q_OBJECT

public:
    explicit DialogMyForm(QWidget *parent = nullptr);
    ~DialogMyForm();
...

Вызывается этот класс из класса MainWindow, вот таким манером (MainWindow.cpp):
Код:
DialogMyFunc dialogMyFunc;
dialogMyFunc.setModal(true);
dialogMyFunc.exec();

Мне нужно, при вызове класса dialogMyFunc, передавать еще один параметр, например
Код:
QString recordName
Если переменная пуста, или равна NULL, то надо выводить "чистую" форму, а если содержит значение - выловить в базе соответствующую запись и вписать ее в поля формы.

Теперь вопрос - как мне правильно изменить код класса, чтобы появился еще один параметр и как для его передачи поменять код вызова.

Заранее признателен,
Ogogon.
Записан

Властитель слабый и лукавый, Плешивый щеголь, враг труда,
Нечаянно пригретый славой, Над нами царствовал тогда.
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #1 : Октябрь 13, 2021, 15:19 »

добавить параметр в конструктор:
Код
C++ (Qt)
explicit DialogMyForm(const QString &recordName, QWidget *parent = nullptr);
и создавать объект как:
Код
C++ (Qt)
DialogMyFunc dialogMyFunc("some value"); // или переменную какую-то передать
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
ogogon
Новичок

Offline Offline

Сообщений: 9



Просмотр профиля
« Ответ #2 : Октябрь 17, 2021, 17:29 »

Благодарю! Правда, пришлось добавить еще в одном месте.
dialogMyForm.cpp:
Код:
DialogMyForm::DialogMyForm(const QString &recordName, QWidget *parent) :
    QDialog(parent),
    ui(new Ui::DialogMyForm)
{
...

Ogogon.
Записан

Властитель слабый и лукавый, Плешивый щеголь, враг труда,
Нечаянно пригретый славой, Над нами царствовал тогда.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.156 секунд. Запросов: 22.