Infinite Focus -Schleife in QTC++

Programme in C++. Entwicklerforum
Guest
 Infinite Focus -Schleife in QT

Post by Guest »

Ich schreibe ein einfaches Tool in QT 6,8 C ++ 23, um mehr über Qt zu erfahren. Ubuntu 22.04 gegen Code. Wenn sich der Benutzer auf die Zeile konzentriert, sollte das Tool QFiledialog öffnen, damit er nicht den vollständigen Pfad eingeben muss. Die Zeilenbearbeitung selbst sollte nur gelesen werden. Der Dialog schließt es sofort wieder auf, da der Fokus immer noch auf der Zeilenbearbeitung liegt. Wie verliere ich den Fokus, nachdem der Dateidialog schließt? < /P>

Code: Select all

#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_

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post