我想用鼠标移动QtWidgets.QtWidget (not a QPushButton,QLabel等)。我在网上到处搜索,但找不到答案。mousePressEvent似乎是正确的方式,但它不起作用。
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_hGUI(QtWidgets.QWidget):
def __init__(self):
QtWidgets.QWidget.__init__(self)
def setupUi(self, hGUI):
hGUI.setObjectName("hGUI")
hGUI.resize(161, 172)
hGUI.setMinimumSize(QtCore.QSize(200, 200))
hGUI.setMaximumSize(QtCore.QSize(200, 200))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
hGUI = QtWidgets.QWidget()
ui = Ui_hGUI()
ui.setupUi(hGUI)
hGUI.show()
sys.exit(app.exec_())我使用Python3.5,使用Qt设计器创建GUI,然后将其转换为Python代码。
编辑:我试图移动一个无边界窗口,点击它。
发布于 2017-01-22 03:49:22
这问题很简单,先生,
假设您只需有一个变量,该变量保存小部件的位置,并根据您的需要与其交互。
这里是最简单的例子.
from PyQt5.QtWidgets import QWidget
class MyMovableWidget(QWidget):
"""WToolBar is a personalized toolbar."""
homeAction = None
oldPos = QPoint()
def __init__(self):
super().__init__()
def mousePressEvent(self, evt):
"""Select the toolbar."""
self.oldPos = evt.globalPos()
def mouseMoveEvent(self, evt):
"""Move the toolbar with mouse iteration."""
delta = QPoint(evt.globalPos() - self.oldPos)
self.move(self.x() + delta.x(), self.y() + delta.y())
self.oldPos = evt.globalPos()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
coolWidget = MyMovableWidget()
coolWidget.show()
sys.exit(app.exec_())这么简单,不是吗?:D
发布于 2017-01-22 02:16:55
由于@bnaecker告诉我代码实际上创建了两个小部件,我成功地实现了它的工作,我已经替换了代码中的一些内容。基本上,只需编辑当您将.ui转换为.py时生成的代码,这样它就只能创建一个小部件。最主要的变化发生在这里:
if __name__ == "__main__":
import sys
sys.excepthook = excepthook
app = QtWidgets.QApplication(sys.argv)
hGUI = QtWidgets.QWidget(flags=QtCore.Qt.FramelessWindowHint)
ui = Ui_hGUI()
ui.setupUi(hGUI)
hGUI.show()
sys.exit(app.exec_())编辑如下:
if __name__ == "__main__":
sys.excepthook = excepthook
app = QtWidgets.QApplication(sys.argv)
hGUI = Ui_hGUI()
sys.exit(app.exec_())将self.show()添加到retranslateUi(self)的末尾,将代码中的每个"hGUI“替换为"self”,如果它是参数,则删除它(除了按钮和标签之类的控件外)。这里有两种代码,不工作的代码和工作的代码:https://gist.github.com/anonymous/0707b4fef11ae4b31cf56dc78dd3af80注意:在新代码中,应用程序名为"VirtualMemories“。
https://stackoverflow.com/questions/41784521
复制相似问题