سؤال

لماذا لم ينجح SetWindowFilePath؟ الفتحة تعمل. عنوان النافذة لا يتغير. نظام التشغيل الخاص بي هو Windows 7 ، تم تجميع QT بدعم 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");
}
هل كانت مفيدة؟

المحلول

ربما مشكلتك هي أنك استخدمت بالفعل setWindowTitle() قبل استعمال setWindowFilePath(). من مستندات:

إذا تم تعيين عنوان النافذة في أي وقت ، فإن عنوان النافذة له الأسبقية وسيتم عرضه بدلاً من سلسلة مسار الملف.

يحرر: لقد حاولت فقط استخدام setWindowFilePath() ولاحظت أن الأمر يسري فقط إذا قمت بتسميته بعد، بعدما أنت أتصل show(). نظرًا لأن هذا لم يرد ذكره في المستندات ، فإنه تنبعث منه رائحة خطأ ...

يحرر: حسنًا ، إذا لم ينجح ذلك بدون استخدام setWindowTitle() أو مع الاتصال setWindowFilePath() بعد الاتصال show(), ، لا أعرف ما هي مشكلتك. لقد قدمت مثالًا عمليًا ، لذا آمل أن يساعدك هذا في تعقب مشكلتك:

#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"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top