【发布时间】:2017-04-08 12:16:00
【问题描述】:
本质上,我正在尝试设置一个 UiDialogue,它会在其父 Ui 中的按钮被按下时创建并显示。
我希望父对话是无框架的(按预期工作和显示),但是子对话只有在使用框架时才会显示。
如果第 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_()
【问题讨论】:
标签: python user-interface pyqt pyside