【问题标题】:Simple way to embed a QDialog into a QWidget将 QDialog 嵌入 QWidget 的简单方法
【发布时间】:2013-06-14 08:31:31
【问题描述】:

我一直在寻找一种将QDialog 实例嵌入QWidget 的简单方法,但我发现所有这些都使用OpenGL 或一些相当复杂的东西来实现。实际上,我发现的所有示例都试图实现比简单地嵌入QDialog 更多的东西。所以,我想知道:有没有一种简单而干净的方法可以将QDialog 嵌入到QWidget 中?

P.S.:我标记了,因为它是我正在使用的,但我当然会接受 c++ 答案:)

这是我必须移植的软件的screen capture,我需要这样的功能。

【问题讨论】:

  • QDialog 不应嵌入到 QWidget 中。你读过它的文档吗? “对话窗口是一个顶级窗口,主要用于短期任务和与用户的简短交流。”它说。为什么你需要这样不寻常的任务?也许你应该只使用另一个小部件类。
  • @Morwenn 该示例是将交互式QDialogs 嵌入到 OpenGL 视口中 - 这与您所要求的完全不同。这听起来像是一个 XY 问题,可以告诉我们您实际想要实现的目标 - 可能是一张类似的图片?
  • 我已经根据截图更新了我的答案。

标签: pyqt qt dialog qt4 pyqt qdialog


【解决方案1】:

您应该使用QMdiArea

widget = QWidget()
mdiarea = QMdiArea() 
layout = QVBoxLayout(widget)
layout.addWidget(mdiarea)
d = QInputDialog()
d.setLabelText("test2")
d.setInputMode(QInputDialog.TextInput)
w = mdiarea.addSubWindow(d)
w.show()
widget.show()

【讨论】:

    【解决方案2】:
    myDialog->setWindowFlags(Qt::Widget); // to embed dialog as a simple widget
    

    【讨论】:

      猜你喜欢
      • 2011-04-08
      • 2012-04-22
      • 2018-02-07
      • 2012-09-07
      • 2013-01-09
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      • 2014-10-06
      相关资源
      最近更新 更多