zoukankan      html  css  js  c++  java
  • 事件的传递顺序和QLabel,QLineEdit字体颜色,背景颜色的设置

    mylineedit.py

    from PyQt5.QtWidgets import *
    import PyQt5.QtCore
    
    class MyLineEdit(QLineEdit):
        def __init__(self, parent = None):
            super(QLineEdit,self).__init__(parent)
        def keyPressEvent(self, QKeyEvent):
            print(self.tr('MylineEdit键盘按下事件'))
            super().keyPressEvent(QKeyEvent)
            QKeyEvent.ignore()
        def event(self, event):
            if event.type() == PyQt5.QtCore.QEvent.KeyPress:
                print(self.tr('MyLineEdit的event()函数'))
            return super().event(event)

    widget.py

    from PyQt5.QtWidgets import *
    import PyQt5.QtCore
    from PyQt5.QtCore import QTimer
    from PyQt5.QtGui import QPalette, QColor, QFont
    import sys
    import mylineedit
    
    class Widget(QWidget):
        def __init__(self, parent = None):
            super(QWidget, self).__init__(parent)
            self.setWindowTitle(self.tr('事件传递顺序'))
            self.setFixedSize(200,200)
    
            self.lineEdit = mylineedit.MyLineEdit(self)
            self.lineEdit.installEventFilter(self)
            self.lineEdit.setFixedSize(200,30)
            self.lineEdit.setStyleSheet('color:red')
            self.lineEdit.setStyleSheet('background-color:green')
    
            font = QFont()
            font.setFamily('楷体') #设置字体
            font.setBold(True) #设置粗体
            font.setItalic(True)#设置斜体
            font.setPixelSize(20)
            font.setPointSize(25)
            font.setCapitalization(QFont.Capitalize)#首字母大写
            self.lineEdit.setFont(font)#将font应用到lineEdit
    
            self.label = QLabel(self.tr('文本编辑器'),self)
            palette = QPalette()
            palette.setColor(QPalette.Background, QColor(0,255,0))
            self.label.setAutoFillBackground(True)
            self.label.setPalette(palette)
    
    
            self.h_layout = QHBoxLayout()
            self.h_layout.addWidget(self.label)
            self.h_layout.addWidget(self.lineEdit)
            self.setLayout(self.h_layout)
    
    
            self.timer = QTimer()
            self.timer.timeout.connect(self.timeOut)
            self.timer.start(1000)
    
        def keyPressEvent(self, QKeyEvent):
            print(self.tr('Widget键盘按下事件'))
    
        def eventFilter(self, obj, event):
            if obj == self.lineEdit:
                if event.type() == PyQt5.QtCore.QEvent.KeyPress:
                    print(self.tr('Widget的事件过滤器'))
            return super().eventFilter(obj, event)
        def timeOut(self):
            print(self.tr('时间到'))
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        widget = Widget()
        widget.show()
        print(widget.children())
        sys.exit(app.exec_())
  • 相关阅读:
    mysql2redis
    butterknife简化android开发
    加速 Gradle 构建大型 Android 项目的方法[转]
    大型项目 Gradle 的常用库和版本管理[转]
    JVM调优
    CSDN上最火的android项目
    jOOQ
    Guava库
    Android 镜像地址[持续更新中]
    The server quit without updating PID file (mysql.pid)一次意外mysql停止运行备忘录
  • 原文地址:https://www.cnblogs.com/ACPIE-liusiqi/p/10610194.html
Copyright © 2011-2022 走看看