По существу, я пытаюсь настроить UiDialogue, который создается и отображается при нажатии кнопки в его родительском Ui.PyQt/PySide, отображающий дочерний диалог с Qt.FramelessWindowHint
Я хочу, чтобы родительский диалог был бескаркасным (который работает и отображается так, как ожидалось), однако дочерний диалог будет показывать, только если он сделан с фреймом.
Если прокомментированная строка в строке 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_()