SetWindowFilePath لم يعمل في QT على الإطلاق
سؤال
لماذا لم ينجح 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"
لا تنتمي إلى StackOverflow