pyqt / pyside与qt.framelesswindowhint展示儿童对话



本质上,我正在尝试设置一个uidialogue,当按下其父级按钮中的一个按钮时,该曲线被创建和显示。

我希望父母对话是无框的(这是按预期工作和显示的)

如果第24行上的评论外行未注册,则窗口未能显示,但该应用不会发出任何类型的错误。有人可以告诉我为什么吗?以下是代码的删除版本,任何帮助都将不胜感激。

谢谢。

import sys
from    PySide.QtCore  import  *
from    PySide.QtGui   import  *
class Ui_box(object):
    def setupUi(self, box):
        box.setObjectName("box")
        self.setWindowFlags(Qt.FramelessWindowHint);
        box.resize(749, 344)
        self.p_b = QPushButton(box)
        self.p_b.setGeometry(QRect(241, 140, 141, 91))
        self.p_b.show()
        self.retranslateUi(box)
        QMetaObject.connectSlotsByName(box)
    def retranslateUi(self, box):
        box.setWindowTitle(QApplication.translate("WelcomeUI", "Tasker", None, QApplication.UnicodeUTF8))

class Ui_Innerbox(object):
    def setupUi(self, Innerbox):
        Innerbox.setObjectName("Innerbox")
        #self.setWindowFlags(Qt.FramelessWindowHint);
        Innerbox.resize(745, 340)
        self.label = QLabel(Innerbox)
        self.label.setText("this is me")
        self.label.setGeometry(QRect(239, 140, 141, 91))
        self.label.show()

        self.retranslateUi(Innerbox)
        QMetaObject.connectSlotsByName(Innerbox)
    def retranslateUi(self, Innerbox):
        Innerbox.setWindowTitle(QApplication.translate("WelcomeUI", "Tasker", None, QApplication.UnicodeUTF8))

class InnerBox(QDialog, Ui_Innerbox):
    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        self.setupUi(self)


class Box(QDialog, Ui_box):
    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        self.setupUi(self)
        self.show()
        self.p_b.clicked.connect(self.pressed_button)
    def pressed_button(self):
        self.Innerb = InnerBox(self)
        self.hide()
        self.Innerb.show()

if __name__ == '__main__':
    app = QApplication(sys.argv);
    newb = Box()
    print("made")
    app.exec_()

ive发现,如果未赋予其父级作为初始化参数并设置child.setModal('true')

,则可以实现所需的行为。

默认情况下,孩子将设置其模态前任的位置匹配。

相关内容

最新更新