Как активировать кнопку в qt после того, как некоторые qlineedit были заполнены? Таким образом, кнопка должна активироваться после изменения некоторых строк.включить кнопку после того, как некоторые изменения строки были заполнены
ответ
Создайте пользовательский слот, в котором вы включаете свою кнопку. Подключение QLineEdit::textChanged
к этому слоту (если у вас есть много изменений линий, соединить их все):
вашего класс заголовок:
public slots:
void textChanged();
где-то в вашем классе:
...
connect(ui->lineEdit, SIGNAL(textChanged(QString)), this, SLOT(textChanged()));
...
void MyClass::textChanged()
{
ui->button->setEnabled(true);
}
Вы также может использовать сигнал QLineEdit::textEdited
вместо textChanged
, если вы не хотите, чтобы ваш слот запускался, когда текст изменяется программно.
EDIT: Вот полный пример, вам просто нужно добавить редактирование строки и кнопку в пользовательском интерфейсе MainWindow (я также отключил кнопку в пользовательском интерфейсе).
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QList>
#include <QLineEdit>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void textChanged();
private:
Ui::MainWindow *ui;
QList<QLineEdit*> _editList;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->lineEdit1, SIGNAL(textEdited(QString)), this, SLOT(textChanged()));
connect(ui->lineEdit2, SIGNAL(textEdited(QString)), this, SLOT(textChanged()));
connect(ui->lineEdit3, SIGNAL(textEdited(QString)), this, SLOT(textChanged()));
_editList.append(ui->lineEdit1);
_editList.append(ui->lineEdit2);
_editList.append(ui->lineEdit3);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::textChanged()
{
int modified_count = 0;
for(int i = 0; i < _editList.length(); i++)
{
if(!_editList[i]->text().isEmtpy)
modified_count++;
}
if(modified_count >= 3)
ui->pushButton->setEnabled(true);
}
это не работает хорошо –
, потому что кнопка не включена (true) –
код в class.h: общедоступные слоты: void enableButton(); код в class.cpp: void ClassName :: enableButton() {ui-> pushButton-> setEnabled (true);} и соединительная часть: connect (ui-> lineEdit, SIGNAL (textEdited()), ui-> pushButton, SLOT (enableButton)); –
- 1. Создание событий объекта после того, как некоторые данные были
- 2. QSerialPort начинает связь после того, как некоторые данные были переданы
- 3. Как включить кнопку отправки после того, как несколько полей формы были подтверждены
- 4. Как подать заявку после того, как все поля заполнены JavaScript
- 5. Как отключить textarea после того, как все строки были добавлены
- 6. Как перенести изменения обратно в репозиторий Git после того, как некоторые изменения были сделаны на реальном сервере
- 7. Three20 App падает после того, как некоторые рассматривают изменения
- 8. JS не может включить кнопку после того, как отключен
- 9. Как включить кнопку публикации автоматически после изменения обоих полей
- 10. Как сохранить пробелы, где они были после изменения строки
- 11. AngularJS: кнопка включения после того, как несколько флажков были «отмечены»
- 12. Включить кнопку отправки после заполнения всех полей
- 13. Почему некоторые функции были названы
- 14. Сделать DataGridView курорт после того, как данные были изменены программно
- 15. включить кнопку, когда некоторые текстовые поля имеет информацию
- 16. Хранить поля заполнены после того, как поднял исключение
- 17. Основные данные Отношения после того, как объекты заполнены данными
- 18. Как включить кнопку переключателя после кнопки отправки?
- 19. Включить кнопку после закрытия формы
- 20. хотите, чтобы элементы управления были заполнены
- 21. Как очистить git-историю, удалив некоторые коммиты после того, как они были нажаты?
- 22. Как я могу выполнить некоторые действия после того, как несколько обещаний были разрешены в Угловом?
- 23. есть ли способ добавить пустую строку с @ "" в uitableview сразу после того, как все динамические данные были заполнены: iphone
- 24. Функция в Word (удаление строки, если некоторые условия заполнены)
- 25. вытащить после того, как результаты банализации были объединены в конфликты
- 26. Как включить кнопку формы после выхода процесса?
- 27. как включить вкладку Jquery после того как все вкладки были загружены
- 28. AWK: Печать линии после того, как они уже были обработаны
- 29. Как автоматически включить кнопку
- 30. наиважнейшая кнопку и после того, как элемент
Подключите 'TextChanged()' Сигнал на слот, в котором вы проверить, если есть текст в поле ввода. Включить/отключить кнопку на основе этого – Bowdzone
, но это не одно редактирование, некоторые из них –
@programingdelphi, обрабатывают сигналы от всех них и проверяют содержимое. Если все изменения в строке содержат то, что вам нужно, включите/отключите кнопку. – vahancho