当前位置: 首页>>代码示例>>Python>>正文


Python QMenu.exec方法代码示例

本文整理汇总了Python中PyQt4.QtGui.QMenu.exec方法的典型用法代码示例。如果您正苦于以下问题:Python QMenu.exec方法的具体用法?Python QMenu.exec怎么用?Python QMenu.exec使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PyQt4.QtGui.QMenu的用法示例。


在下文中一共展示了QMenu.exec方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: DragLabel

# 需要导入模块: from PyQt4.QtGui import QMenu [as 别名]
# 或者: from PyQt4.QtGui.QMenu import exec [as 别名]
class DragLabel(QtGui.QLabel):
  
    def __init__(self, parent):
        super(DragLabel, self).__init__(parent)
        self.offset = 0
        self.icon_path = ""
        self.move_icon = None
        self.double_click_func = None
        self.ecu_key = None        
        self.selected = False
        self.contextMenu = QMenu(str("Context menu"), self);
        self.env_view = None
        
    @try_ex
    def set_doubleclick_func(self, func):
        self.double_click_func = func

    @try_ex
    def enterEvent(self, *args, **kwargs):
        self.setCursor(Qt.OpenHandCursor)
        if not self.selected: 
            self.setStyleSheet('QLabel { border: 2px solid red; padding: 0px; border-radius: 15px} ')
 
    @try_ex
    def leaveEvent(self, *args, **kwargs):
        if not self.selected:
            self.setStyleSheet('QLabel {border: 0px solid red;border-radius: 15px;}')
 
    @try_ex
    def mousePressEvent(self, e):               
        if e.button() == QtCore.Qt.LeftButton:
            self.setCursor(Qt.ClosedHandCursor)    
            self.offset = e.pos()
            
            if e.modifiers() == Qt.ControlModifier:
                if self.selected:                
                    self.setStyleSheet('QLabel {border: 0px solid red;border-radius: 15px;}')
                    self.selected = False
                    try:
                        DragSelection().selected.remove(self)
                    except:
                        pass
                else:
                    self.setStyleSheet('QLabel { border: 2px solid red; background: darkred; padding: 0px; border-radius: 15px} ')
                    self.selected = True
                    DragSelection().selected.append(self)

        if e.button() == QtCore.Qt.RightButton:
            DragSelection().clicked = self
            pop = e.pos() + self.parent().pos()
            self.contextMenu.exec(self.mapToParent(pop));  # HERE POSITION

    @try_ex
    def set_context_menu_actions(self, actions):
        try:
            self.context_actions = actions        
            for action in self.context_actions:                
                if action not in self.contextMenu.children():
                    self.contextMenu.addAction(action)
        except:
            pass
        
    @try_ex
    def mouseReleaseEvent(self, e):
        if e.button() == Qt.LeftButton:            
            self.setCursor(Qt.ArrowCursor);        
            cur_pos = e.pos() - self.offset

    @try_ex
    def mouseMoveEvent(self, event):
        self.move(self.mapToParent(event.pos() - self.offset));
        
        a = self.env_view
        GBuilder().update_connected(a, None, None, self.env_view.selected_env)
        print("Move")
                
    @try_ex
    def mouseDoubleClickEvent(self, e):
        try:                
            self.double_click_func(e.pos() - self.offset, self.ecu_key, self)
        except:
            ECULogger().log_traceback()
开发者ID:PhilippMundhenk,项目名称:IVNS,代码行数:84,代码来源:gui_builder.py


注:本文中的PyQt4.QtGui.QMenu.exec方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。