[英]How to move modal dialog
下面的代码创建QMainWindow
。 其框架内点击鼠标右键调用up
功能。 此函数使self.modal
模态QDialog
隐藏。 问题:为什么self.modal QDialog不能移动到“ up()”函数范围内的self.modal.move(QtGui.QCursor.pos())
行所请求的QCusrsor位置?
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
class AppWindow(QtGui.QMainWindow):
def __init__(self):
super(AppWindow, self).__init__()
mainWidget=QtGui.QWidget()
self.setCentralWidget(mainWidget)
mainLayout = QtGui.QVBoxLayout()
mainWidget.setLayout(mainLayout)
frame=QtGui.QFrame()
frame.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
frame.connect(frame, QtCore.SIGNAL("customContextMenuRequested(QPoint)" ), self.up)
mainLayout.addWidget(frame)
self.modal=QtGui.QDialog()
self.modal.setModal(True)
def up(self, QPos):
print 'up QPos: %s QCursor: %s'%( QPos, QtGui.QCursor.pos() )
self.modal.move(QtGui.QCursor.pos())
self.modal.show()
window=AppWindow()
window.show()
sys.exit(app.exec_())
QCursor.pos()
返回全局屏幕坐标。 我相信QDialog.mov()
需要小部件坐标,因此您必须使用self.modal.move(QWidget.mapFromGlobal(QtGui.QCursor.pos()))
进行翻译
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.