【发布时间】:2019-10-17 17:24:58
【问题描述】:
所以我在使用 pyqt5 制作自定义标签栏时遇到了问题。我看过一些例子,但是在实施它们时,它们似乎对我不起作用。到目前为止,这是我的代码(我只是删掉了一些注释的文本,因为它不是必需的):
from PyQt5 import QtWidgets, uic,QtCore
from PyQt5.QtCore import Qt,QObject,QThread,pyqtSignal,QCoreApplication,QPoint
import PyQt5.QtCore
from PyQt5.QtWidgets import QApplication,QPushButton,QVBoxLayout,QWidget,QFormLayout,QGridLayout,QLabel,QDialog,QHBoxLayout,QDesktopWidget
class LoginWindow(QWidget):
def __init__(self):
self.App = QtWidgets.QApplication([])
self.LoadedApp = uic.loadUi("LoginWindow2.ui")
self.LoadedApp.setWindowFlags(Qt.FramelessWindowHint)
self.pressing = False
self.start = QPoint(0, 0)
self.center()
self.oldPos = self.LoadedApp.pos()
self.LoadedApp.show()
self.App.exec()
def mouseReleaseEvent(self, QMouseEvent):
self.pressing = False
def mousePressEvent(self, event):
self.oldPos = event.globalPos()
def mouseMoveEvent(self, event):
print("1")
delta = QPoint (event.globalPos() - self.oldPos)
#print(delta)
self.move(self.x() + delta.x(), self.y() + delta.y())
self.oldPos = event.globalPos()
def center(self):
qr = self.LoadedApp.frameGeometry()
cp = QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
self.LoadedApp.move(qr.topLeft())
LoginWindow = LoginWindow()
这里的问题是鼠标移动事件似乎没有连接到pyqt5鼠标事件。我读过它应该在类中的函数具有特定函数名称或类似名称时进行连接?这很令人困惑,我的登录窗口似乎没有让步。这个鼠标事件非常令人困惑,我尝试了其他两种方法,但我最终删除了实现,因为它对我来说毫无意义。
这是用户界面的下载链接:https://cdn.discordapp.com/attachments/516367579598684184/634439342940487680/LoginWindow2.ui
这是 UI 的样子(左侧的层次结构集中在条形 QLabel 小部件上):https://cdn.discordapp.com/attachments/516367579598684184/634439663557541918/unknown.png
我试图让顶部栏可以拖动,而不是整个窗口只是顶部栏。有什么帮助吗? 如果您需要更多信息,或者对我正在尝试做的事情有疑问,请询问我,我会回复他们。
【问题讨论】:
标签: python python-3.x pyqt pyqt5