Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
menafis
1 / 1 / 5
Регистрация: 26.02.2014
Сообщений: 298
#1

Открытие форм в зависимости от значения переменной - C++ Qt

28.03.2014, 11:18. Просмотров 555. Ответов 6
Метки нет (Все метки)

у меня в проекте три формы и мне надо чтоб по значению adm открывалась одна форма. оп другому значению другая форма. подскажите как это реализовать
C++ (Qt)
1
2
3
4
5
  QLineEdit*line=new QLineEdit;
    if (line->text==("adm"))
    {
    connect(ui->pushButton, SIGNAL(clicked()), myform, SLOT(show()));
    }
в чем ошибка, должно быть так что если текст в поле adm он окрывает форму

 Комментарий модератора 

При создании темы выбирайте более информативное название.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2014, 11:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Открытие форм в зависимости от значения переменной (C++ Qt):

Связка всех форм одной переменной
Доброго времени суток! Прежде всего хочу сказать, что новичек в C++, но не в...

Присвоение значения переменной
Требуется считать пароль, и если он совпадает, то активировать кнопку ОК Если...

Присвоение значения переменной
Здравствуйте, подскажите пожалуйста, как мне присвоить значение переменной x,...

Отслеживание значения переменной в Qt Creator
Добрый день. Как можно сделать пошаговое отслеживание значения переменной в Qt...

Передача значения переменной слоту
Допустим (простой пример) : int buttonrandom = 1024 int buttonrandom2 = 1000...

Передача значения переменной из формы в другую
Здравствуйте. Есть две формы: AW и CW. В форме AW есть переменная data типа...

6
alexey_rage
590 / 390 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
28.03.2014, 11:30 #2
В line нет никакого текста. Элемент только создан.
Соответственно if (line->text==("adm")) возвращает false и на строчку connect(ui->pushButton, SIGNAL(clicked()), myform, SLOT(show())) мы не попадаем.

Можно сделать слот который будет срабатывать по нажатию ui->pushButton.
В слоте проверяем содержимое line->text() (кстати скобочки забыли) и в соответсвии с содержимым уже открываем нужный виджет.

Пример:

C++ (Qt)
1
2
3
4
5
void on_pushButton_clicked()
{
    if(line->text() == QString("adm")) form1->show();
    else form2->show();
}
1
menafis
1 / 1 / 5
Регистрация: 26.02.2014
Сообщений: 298
28.03.2014, 12:15  [ТС] #3
C++ (Qt)
1
2
3
4
5
6
ui->setupUi(this);
    myform=new Form();
    if(ui->lineEdit->text() == QString("adm"))
    {
    connect(ui->pushButton, SIGNAL(clicked()), myform, SLOT(show()));
    }
в чем ошибка

Добавлено через 4 минуты
alexey_rage, gde eto propisat

Добавлено через 30 секунд
C++ (Qt)
1
2
3
4
5
void on_pushButton_clicked()
{
    if(line->text() == QString("adm")) form1->show();
    else form2->show();
}
0
alexey_rage
590 / 390 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
28.03.2014, 13:06 #4
Цитата Сообщение от menafis Посмотреть сообщение
gde eto propisat
объявить и реализовать в том классе, которому принадлежит ui->pushButton
void on_pushButton_clicked() - шаблонное объявление слота для QPushButton, который объявляется по правилу:
void on_<objectName>_clicked()
При этом connect для pushButton прописывать не нужно, подцепиться автоматически.
1
menafis
1 / 1 / 5
Регистрация: 26.02.2014
Сообщений: 298
28.03.2014, 13:12  [ТС] #5
спасибо
0
axefizik
11 / 11 / 3
Регистрация: 18.07.2012
Сообщений: 88
Завершенные тесты: 1
28.03.2014, 17:12 #6
Цитата Сообщение от alexey_rage Посмотреть сообщение
объявить и реализовать в том классе, которому принадлежит ui->pushButton
void on_pushButton_clicked() - шаблонное объявление слота для QPushButton, который объявляется по правилу:
void on_<objectName>_clicked()
При этом connect для pushButton прописывать не нужно, подцепиться автоматически.
Можно ссылку на доки, где об этом написано?
0
RazrFalcon
1384 / 1241 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
28.03.2014, 18:42 #7
Цитата Сообщение от axefizik Посмотреть сообщение
Можно ссылку на доки, где об этом написано?
Доку не подскажу, но так и есть.
Если объект есть в ui файле, то можно создавать слот без прописывания connect'а.
0
28.03.2014, 18:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2014, 18:42
Привет! Вот еще темы с решениями:

Передача значения переменной между процедурами
Переменная imgaddress передается в функцию recieveData из другой формы. Функция...

Вывод значения переменной через QmessageBox
Добрый день. У меня следующий вопрос. Есть такой код вывода ошибки : {if...

Открытие форм в зависимости от имени таблицы
Здравствуйте люди добрые! Возникла вот какая необходимость. Нужно на кнопку...

Открытие двух разных форм в зависимости от условия
Доброго всем времени суток. Работаю в данный момент над авторизацией и...


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

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

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