所以我在用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()
这里的问题是mouse move事件似乎没有连接到pyqt5 mouse事件。我读过,当类中的函数有一个特定的函数名或类似的东西时,它应该连接?这是相当混乱,我的登录窗口似乎没有动摇。这个鼠标事件非常混乱,我像其他两个方法一样尝试,但是我最终删除了实现,因为它对我来说毫无意义
这里是UI的下载链接:https://cdn.discordapp.com/attachments/516367579598684184/634439342940487680/LoginWindow2.ui
下面是UI的样子(左边的层次结构集中在barqlabel小部件上):https://cdn.discordapp.com/attachments/516367579598684184/634439663557541918/unknown.png
我想让顶栏可以拖动,而不是整个窗口,只是顶栏而已。有什么帮助吗? 如果您需要更多的信息,或有什么问题,我正在试图做请问我,我会回答他们
... to get the top bar to be drag-able, not the whole window ... ?
抱歉,我不明白你要拖放什么。 试试看:更新
相关问题 更多 >
编程相关推荐