为什么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");
}
答案 0 :(得分:3)
也许您的问题是您在使用setWindowTitle()
之前已经使用过setWindowFilePath()
。来自docs:
如果窗口标题在任何位置设置,则窗口标题优先,将显示而不是文件路径字符串。
修改:我刚刚尝试使用setWindowFilePath()
,并注意到只有在调用show()
之后调用它才会生效。由于文档中没有提到它,它闻起来像一个bug ......
修改嗯,如果在调用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"