setWindowFilePath ne fonctionne pas dans Qt tout
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");
}
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"