Frage

Warum setWindowFilePath hat nicht funktioniert? Slot arbeitet. Der Fenstertitel ändert sich nicht. Mein Betriebssystem ist Windows 7, wurde Qt mit wchar_t Unterstützung kompiliert.

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");
}
War es hilfreich?

Lösung

Vielleicht ist Ihr Problem ist, dass Sie bereits setWindowTitle() verwendet vor setWindowFilePath() verwenden. Von der docs :

  

Wenn der Fenstertitel an einer beliebigen Stelle gesetzt wird, dann wird der Fenstertitel hat Vorrang und wird anstelle der Dateipfad Zeichenfolge angezeigt werden.

Edit: ich mit setWindowFilePath() gerade versucht, und bemerkte, dass es nur wirksam wird, wenn man es so nennen nach Sie show() nennen. Da dies nicht in der Dokumentation erwähnt wird, es riecht wie ein Bug ...

Edit: Nun, wenn es nicht funktioniert, ohne setWindowTitle() zu verwenden oder mit Aufruf setWindowFilePath() nach show() anrufen, ich weiß nicht, was dein Problem ist. Ich habe ein funktionierendes Beispiel gemacht, damit ich hoffe, das hilft Ihnen beim Aufspüren Ihres Problems:

#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"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top