pyside6@Mouse events实例@QApplication重叠导致的报错@keyboardInterrupt
报错内容
- 在pyside图形界面应用程序开发过程中,通常只允许运行一个实例
- 假设您重复执行程序A,那么可能会导致一些意向不到的错误
- 并且,从python反馈的信息不容易判断错误的真正来源
鼠标事件演示
-
下面是一段演示pyside6的鼠标事件
mouseEvent
对象的相关api-
import sys from PySide6.QtCore import Qt from PySide6.QtWidgets import QMainWindow, QApplication, QLabel class MainWindow(QMainWindow): def __init__(self): super().__init__() self.label = QLabel("Click in this window") self.setCentralWidget(self.label) def mousePressEvent(self, e): if e.button() == Qt.LeftButton: # handle the left-button press in here self.label.setText("mousePressEvent LEFT") elif e.button() == Qt.MiddleButton: # handle the middle-button press in here. self.label.setText("mousePressEvent MIDDLE") elif e.button() == Qt.RightButton: # handle the right-button press in here. self.label.setText("mousePressEvent RIGHT") def mouseReleaseEvent(self, e): if e.button() == Qt.LeftButton: self.label.setText("mouseReleaseEvent LEFT") elif e.button() == Qt.MiddleButton: self.label.setText("mouseReleaseEvent MIDDLE") elif e.button() == Qt.RightButton: self.label.setText("mouseReleaseEvent RIGHT") def mouseDoubleClickEvent(self, e): if e.button() == Qt.LeftButton: self.label.setText("mouseDoubleClickEvent LEFT") elif e.button() == Qt.MiddleButton: self.label.setText("mouseDoubleClickEvent MIDDLE") elif e.button() == Qt.RightButton: self.label.setText("mouseDoubleClickEvent RIGHT") if __name__ == '__main__': # Create the Qt Application app = QApplication(sys.argv) # Create and show the form| mainwindow = MainWindow() mainwindow.resize(400, 400) mainwindow.show() # Run the main Qt loop sys.exit(app.exec())
-
-
上面的代码时可以正常工作的
- 当我初次运行的时候没有看到弹出窗口(实际上根据电源策略,需要一点时间来启动窗口)
- 然后我急忙有运行了一遍程序,python并没有立即给我报错
- 此时窗口已经弹出来了,我点击了以下窗口想试试鼠标事件的处理过程,于是就给我弹出错误
KeyboardInterrupt
的提示 - 然而我只是点击一下鼠标,并没有敲击键盘
- 我关闭掉当前的
pyside
创建的窗口,控制台的内容被情况,同时又弹出了一个一样的到窗口 - 我在这个窗口上试验就没有类似的报错
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2022-08-06 windows_关闭卡死不响应进程/解除文件占用