Я создал файл .ui с помощью Qt Designer, и в файле я создал PushButton, который отключен изначально, у меня также есть LineEdit. Я хочу подключить LineEdit и PushBotton так, чтобы при изменении текста в LineEdit PushButton был включен, но я не нашел такой опции в сигналах и слотах. Может ли кто-нибудь помочь?Как подключить LineEdit и PushButton в Qt?
ответ
Вы должны написать пользовательский слот (что довольно просто).
Добавьте это в MainWindow декларации (.h файла):
private slots:
void checkInput(const QString &text);
Ваш .cpp файл:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->lineEdit, SIGNAL(textChanged(QString)), this, SLOT(checkInput(QString)));
}
void MainWindow::checkInput(const QString &text)
{
ui->pushButton->setEnabled(!text.isEmpty());
}
Чтобы добавить слот для Qt Designer, выполните следующие действия :
- Щелкните правой кнопкой мыши на своем MainWindow, «Изменить сигналы/слоты»;
- Добавьте свой пользовательский слот (кнопка «Плюс»), введя checkInput();
- После этого вы сможете подключить свой пользовательский слот через Qt Designer.
Как добавить это в конструктор? –
См. Обновленный ответ. – kefir500
Когда я нажимаю правой кнопкой мыши на форме, я не получаю никакой опции для изменения сигналов/слотов. –
В Qt 5, вы вообще не должны тривиальных закрытых слотов и должны использовать лямбды вместо:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->lineEdit, &QLineEdit::textChanged, [this](const QString & text) {
ui->pushButton->setEnabled(!text.isEmpty());
});
...
}
- 1. Подключить QListWidget-Scrollbar и Pushbutton
- 2. Qt PushButton Сигналы и слоты
- 3. Как скопировать содержимое lineEdit в буфер обмена в qt?
- 4. Как установить текст QT LineEdit?
- 5. Qt PushButton Checkable
- 6. Qt LineEdit boundires
- 7. Виджеты Qt PushButton exec
- 8. Как получить информацию метаданных pushButton в Qt?
- 9. Qt LineEdit setInputMask() с setText() и QRegExp
- 10. Qt PushButton Hover/Нажатые значки
- 11. hide and show lineEdit с QComboBox в Qt
- 12. Qt не получает текст от lineedit
- 13. Задать позицию (справа) всплывающего меню Qt PushButton
- 14. Qt подключить заявление
- 15. PySide, Подключение ошибки PushButton
- 16. Как сохранить pushButton из Qt после того, как я нажму?
- 17. Как создать пользовательский PushButton в QT5.6.1
- 18. mpylayer, PyQt4 и lineEdit
- 19. QRegularExpression Lineedit Validatoin
- 20. добавить QStandardItem типа PushButton
- 21. Qt, соединяющий два сигнала и один слот
- 22. int input from lineEdit
- 23. Подключение кнопки в Qt
- 24. PyQt lineEdit с цветами
- 25. Ошибка C++ Qt SLOT
- 26. PushButton не анимирует в Qt4
- 27. Как подключить два окна в Qt?
- 28. Как подключить QPlainText к ComboBox в Qt
- 29. gwt pushButton в UiBinder
- 30. Как подключить библиотеку alglib в QT C++
подключения 'TextChanged (Const QString & текст)' с пользовательским слотом, который вызывает 'pushButton- > setEnabled (истина) '. Я думаю, вы также можете проверить 'text.isEmpty()' в этот слот – Miki
@Miki Я использую Qt 4.8 Designer, я создаю файлы ui, а не кодирование. –
Я уверен, что вы можете/должны писать свои пользовательские слоты ... http://stackoverflow.com/questions/7964869/qt-designer-how-to-add-custom-slot-and-code-to- a-button – Miki