0
Я написал блокнот, который выглядит как блокнот в Windows. Как настроить, чтобы действие поиска было отключено, когда QTextEdit пуст, но включен, когда что-то в немКак судить о содержании в QTextEdit в QT?
Я написал блокнот, который выглядит как блокнот в Windows. Как настроить, чтобы действие поиска было отключено, когда QTextEdit пуст, но включен, когда что-то в немКак судить о содержании в QTextEdit в QT?
Вы подключаете функцию, которая включает/отключает действие на основе текстовых изменений plainText()
, к сигналу текстового редактирования textChanged()
.
Например:
void MyWidget::someSetupMethod()
{
// ... some code that sets up myTextEdit and myFindAction here
connect(myTextEdit, &QTextEdit::textChanged, myFindAction, [myTextEdit, myFindAction]() {
myFindAction->setEnabled(!myTextEdit->plainText().isEmpty());
});
// ...
}
или, если вы не можете или не хотите использовать C++ 11, что-то вроде
void MyWidget::someSetupMethod()
{
// ... some code that sets up m_myTextEdit and m_myFindAction here
connect(m_myTextEdit, &QTextEdit::textChanged, this, &MyWidget::updateFindAction);
// ...
}
void MyWidget::updateFindAction()
{
m_myFindAction->setEnabled(!m_myTextEdit->plainText().isEmpty());
}
Я написал программу, как блокнот в Windows. Я использую код для создания главного окна. Создайте метод findDialog с помощью ui. Но я не знаю, как использовать ui в классе mainwindow. Такие, как ui имеют lineedit.how использовать lineedit в классе mainwindow? – konalo
В конструкторе класса mainwindow вы найдете что-то вроде 'ui-> setupUi (this)'. После этого вы можете получить доступ к виджетам из файла '.ui' через объект' ui', например 'ui-> textEdit'. Возможно, вам следует следовать [некоторым примерам виджета] (http://doc.qt.io/qt-5/examples-widgets.html). – E4z9
, не очень. Но фактически. Ui-> setui (Это) только в finddlg.h ican использует ui-> okbutton в конструкторе finddlg. Когда я добавляю #include «finddlg.h» в mainwindow.h, я не могу использовать ui-> кнопку – konalo