c++ - 当从主窗口调用时,Qt 将对话框显示为无框架

标签 c++ qt dialog

我正在学习 qt 并正在尝试书中的示例,其中我们必须从主窗口应用程序调用预制对话框。

我已经制作了一个用于输入字符串的对话框(我们称之为 findDialog),输入的字符串被传递到 QTableWidget 中的自定义插槽以搜索输入的字符串。

一旦触发名为“查找”的操作,我就可以调用该对话框,但问题是该对话框显示为无框。

我是这样调用dialog的,有错误请指出。

void MainWindow::find()
{
    // Check whether findDialog is already created
    if(!finddialog)
    {
        // create find dialog as a child to main window
        finddialog = new findDialog(this);
        // Connecting signals and slots 
     connect(finddialog,SIGNAL(forwardSearch(QString,Qt::CaseSensitivity)),
        sheetObject,SLOT(forwardSearch(QString,Qt::CaseSensitivity)));
      connect(finddialog,SIGNAL(backwardSearch(QString,Qt::CaseSensitivity)),
        sheetObject,SLOT(backwardSearch(QString,Qt::CaseSensitivity)));
    }
    // Show dialog
    finddialog->show();

    finddialog->move(200,200);
    // Raise if minimised
    finddialog->raise();
    // Activate it
    finddialog->activateWindow();
}

我不能使用 exec,因为我没有将 findDialog 中的 accept() 插槽连接到任何东西。

我还附上了一张显示调用时对话框的图片。请告诉我我犯的错误以及如何用框架显示对话框。 findDialog without frame

最佳答案

明白了

在显示对话框之前,我必须使用 setWindowFlags 设置窗口标志。

finddialog->setWindowFlags(Qt::Dialog);

将其显示为对话框

                  or

finddialog->setWindowFlags(Qt::Window);

将其显示为一个窗口

关于c++ - 当从主窗口调用时,Qt 将对话框显示为无框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39469019/

相关文章:

c++ - 使用 clang 从 C/C++ 头文件中提取函数声明

C++ : Making a do while loop repeat

c++ - 为什么删除移动构造函数会导致编译错误?

c++ - 使 MFC CTabCtrl 不使用绘图选项卡的完整控件宽度

c++ - 当我在 C++ 中派生一个类时,它是否创建一个基类的对象并将其作为我的成员变量存储在派生类中?

android - EditText setError 在 BottomSheetDialog 中不合适

c++ - Qt "Creating SSL context"错误在几台电脑上

具有非内联汇编的 Qt C++ 项目

java - PrimeFaces 对话框组件的问题

animation - Dojo Dialog onEnd() 动画异常