QFileDialog打开第二个(可能是父级)不需要的窗口

时间:2013-12-13 00:59:03

标签: c++ qt qt-creator

可能这个问题是由于没有正确定义父窗口小部件。在QT手册或在线提供的示例中,传递给QFileDialog :: getOpenFileName(或类似函数)的第一个参数通常是“this”。在我的例子中,如果我用“this”调用跟随函数,它将打开对话框和另一个不包含任何内容的窗口,其标题与可执行文件的名称相同。我试图摆脱第二个不需要的窗口,但没有成功。我将“this”替换为“gui :: parentWidget()”或“0”,仍然是同样的问题。另外,如果我没记错,在将QT更新到5.0.2之前我没有遇到此问题。任何帮助将不胜感激。

void gui::on_coordinatesBrowse_clicked()
{
     QString fileName = QFileDialog::getOpenFileName(this,"Open File");
//.....
}

我有:

gui::gui(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::gui)
{
    ui->setupUi(this);
//.....
}

int main(int argc, char *argv[]) 
{
    QApplication a(argc, argv);
    gui mainW;
    mainW.show();
    return a.exec();
}

1 个答案:

答案 0 :(得分:0)

我认为我在Linux上的Qt5.4.0 x64上也遇到过这种情况。

我用QtCreator创建了一个类似的情况并使用"转到插槽..."小部件编辑模式(F3)中的上下文菜单,它为我自动创建了一个插槽。

然后我重命名了按钮并重命名了这些功能,并在.ui文件中使用了插槽编辑模式(F3)。由于只有通过插槽编辑模式的连接出现,我以为我已经全部设置。但旧的连接仍然存在,导致两个信号......