【发布时间】:2016-04-09 12:26:58
【问题描述】:
我创建了两个不同的 pyqt 窗口,在其中一个窗口中,按下一个按钮,它应该会调出另一个较小的窗口。虽然我的代码几乎完全按照我应该做的那样做,但较小的弹出窗口的显示方式存在问题。
这是我用于显示窗口和按钮功能的代码:
from PyQt4 import QtGui
from EnterprisePassport import Ui_StudentEnterprisePassport
from Session_tracker import Ui_Session_tracker
class StudentEnterprisePassport(Ui_StudentEnterprisePassport):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setupUi(self)
self.sessionTracker_btn.clicked.connect(self.handleButton)
self.window2 = None
def handleButton(self):
if self.window2 is None:
self.window2 = Session_tracker(self)
self.window2.show()
class Session_tracker(Ui_Session_tracker):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setupUi(self)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = StudentEnterprisePassport()
window.show()
sys.exit(app.exec_())
我仍然可以使用窗口内的功能,但是我不能移动它,也不能关闭它,而且没有标题栏。我是否在代码中做错了什么让弹出窗口显示为这样?
编辑:
原始会话跟踪器窗口:Original window 弹出会话跟踪窗口:Popup window
【问题讨论】:
-
弹出窗口以主窗口为父窗口,我认为是问题所在。请改用
self.window2 = Session_tracker()。 -
或者把它改成
QDialog而不是QWidget。
标签: python button pyqt popupwindow