Бесконечная петля фокуса в QTC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Бесконечная петля фокуса в QT

Сообщение Anonymous »


Я пишу простой инструмент в QT 6.8 C ++ 23, чтобы узнать о QT. Ubuntu 22.04 против кода. < /P>
У меня есть 2 qlineedit для исходного каталога и целевого каталога. Когда пользователь сосредотачивается на редактировании линии, инструмент должен открыть Qfiledialog, чтобы ему не приходилось печатать полный путь. Редактирование линии должно быть прочитано только. Диалог закрывает его немедленно вновь открывается, потому что фокус все еще находится на редактировании линии. Как мне потерять фокус после того, как диалоговое окно файла закрывается? < /P>
#ifndef DIRECTORYLINEEDIT_H_
#define DIRECTORYLINEEDIT_H_

#include
#include
class DirectoryLineEdit : public QLineEdit {
Q_OBJECT

public:
explicit DirectoryLineEdit(const char* dleName, const char* title, int leWidth, QWidget *parent = nullptr)
: QLineEdit{parent}, fileDialogTitle{title}
{
setObjectName(QString::fromUtf8(dleName));
setStyleSheet("width: " + QString::number(leWidth) + "px;");
setReadOnly(true);
}

void focusInEvent(QFocusEvent *event)
{
QString textToChange = text();

textToChange = QFileDialog::getExistingDirectory(nullptr, fileDialogTitle,
textToChange, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);

setText(textToChange);
}

private:
QString fileDialogTitle;
};

#endif // DIRECTORYLINEEDIT_H_


Подробнее здесь: https://stackoverflow.com/questions/794 ... loop-in-qt
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»