Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QFileDialog::getOpenFileName()在插槽函数中不起作用?_Qt_Qfiledialog - Fatal编程技术网

Qt QFileDialog::getOpenFileName()在插槽函数中不起作用?

Qt QFileDialog::getOpenFileName()在插槽函数中不起作用?,qt,qfiledialog,Qt,Qfiledialog,我创建了这个插槽: public slots: void openNSelect(); 然后在函数中: QFileDialog::getOpenFileName(this,tr("select file"),"/home/",tr("text file(*.txt)")); 它不会显示对话框,如果我在其他函数中(比如在QMainWindow构造函数中)写入该行,它会显示窗口。该项目是使用kdevelop with mainwindow对象创建的。进行一些调试以确保插槽实际启动。一半的时

我创建了这个插槽:

public slots:
   void openNSelect();
然后在函数中:

QFileDialog::getOpenFileName(this,tr("select file"),"/home/",tr("text file(*.txt)"));

它不会显示对话框,如果我在其他函数中(比如在QMainWindow构造函数中)写入该行,它会显示窗口。该项目是使用kdevelop with mainwindow对象创建的。

进行一些调试以确保插槽实际启动。一半的时间是由于信号/插槽连接错误导致无法连接


如果不发布更多的代码,我们可以得到更好的想法。

嗨,我尝试调试它,控制台说:警告:没有这样的插槽qfTools:openNSelect()顺便问一下,可以将我所有的插槽函数放在另一个cpp中吗?例如slot_function.cpp?警告说在qfTools.cpp中找不到slot function,这是wierd。我在slot_function.cpp中编写了slot函数,并且声明都在qfTools.h.Ok中,因此连接不起作用。如果没有看到你的代码,很难准确地判断出哪里出了问题。显示connect()行并告诉我们调用了哪些对象。我通过更改connect from解决了这个问题:connect(item_openFile,SIGNAL(triggered()),this,SLOT(openNSelect());to:connect(item_openFile,SIGNAL(triggered()),this,SLOT(openNSelect(void));那么为什么呢?我很困惑..取决于您对openNSelect()的定义。