Question

Pourquoi setWindowFilePath ne fonctionne pas? Fente fonctionne. Le titre de la fenêtre ne change pas. Mon OS est Windows 7, Qt a été compilé avec le support wchar_t.

test::test(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
  ui.setupUi(this);
  QObject::connect(ui.pushButton, SIGNAL(clicked()), SLOT(Click()));
  setWindowTitle("Title");
}

void test::Click()
{
  setWindowFilePath("file.txt");
}
Était-ce utile?

La solution

Peut-être que votre problème est que vous avez déjà utilisé setWindowTitle() avant d'utiliser setWindowFilePath(). De la docs :

  

Si le titre de la fenêtre est réglée à tout moment, le titre de la fenêtre a la priorité et sera affiché à la place de la chaîne de chemin du fichier.

Modifier Je viens essayé d'utiliser setWindowFilePath() et a remarqué qu'il ne prend effet que si vous l'appelez après vous appelez show(). Étant donné que ce ne soit pas mentionné dans les documents, ça sent comme un bug ...

Modifier Eh bien, si cela ne fonctionne pas sans utiliser setWindowTitle() ou appeler setWindowFilePath() après avoir appelé show(), je ne sais pas ce que votre problème. Je l'ai fait un exemple de travail donc j'espère que cela vous aide dans le suivi de votre problème:

#include <QApplication>
#include <QMainWindow>
#include <QPushButton>

class MyWindow : public QMainWindow
{
        Q_OBJECT

    public:

        MyWindow()
        {
            QPushButton* b = new QPushButton("Click me", this);
            connect(b, SIGNAL(clicked()), this, SLOT(click()));
        }

    private Q_SLOTS:

        void click()
        {
            setWindowFilePath("file.txt");
        }
};

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    MyWindow w;
    w.show();

    return app.exec();
}

#include "main.moc"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top