PyQt5 控件交互与焦点控制

################################
PyQt5中文网 - PyQt5全套视频教程 #
   https://www.PyQt5.cn/     #
        主讲: 村长            #
################################
from PyQt5.Qt import *
import sys

'''
交互状态:
1.是否可用:setEnabled(bool)控件是否禁用  isEnable()
2.是否显示:setVisible(bool)    isVisible()  isVisibleTo()
3.是否隐藏: setHidden(bool)  show()隐藏  hide()展示  isHidden()
4.是否编辑: setWindowModified(bool)   isWindowModified()
5.是否为活跃窗口: isActiveWindow()
6.关闭: close()
信息提示: setStatusTip(str)

'''

class Window(QWidget):
    def paintEvent(self, QPaintEvent):
        print('窗口被绘制')
        return super().paintEvent(QPaintEvent)

class Btn(QPushButton):
    def paintEvent(self, QPaintEvent):
        print('按钮被绘制')
        return super().paintEvent(QPaintEvent)

app = QApplication(sys.argv)

window = Window()
window.setWindowTitle('控件交互 - PyQt5中文网[*]')
window.resize(600, 450)
window.move(300, 300)

btn = QPushButton(window)
btn.move(60, 60)
btn.resize(50, 35)
btn.setText('按钮控件')
btn.setStyleSheet('background-color:green')

btn1 = Btn(window)
btn1.move(100, 100)
btn1.resize(50, 35)
btn1.setText('按钮控件')
是否可用
btn1.setEnabled(False)
是否绘制显示
window.show()
window.setVisible(True)
window.setHidden(True)

btn1.setVisible(True)
btn1.setHidden(True)

window.setWindowModified(True)  # 现在标题后面设一个 [*] 放在标题任何位置都可以,但是一定要放 *

print(window.isActiveWindow())

窗口关闭,不会会释放对象
btn1.setVisible(False)
btn1.setHidden(True)
btn1.hide()

想要释放对象必须组合setAttribute一起使用,可以使用destroyed信号来检测
btn1.destroyed.connect(lambda: print('按钮被释放'))
btn1.setAttribute(Qt.WA_DeleteOnClose, True)
btn1.close()

window1 = QMainWindow()  # 懒加载窗口控件,只用用到的时候才会加载状态栏
window1.statusBar()  # 触发懒加载
window1.setStatusTip('这是一个懒加载窗口')

btn2 = QPushButton(window1)
btn2.setText('按钮2')
btn2.setStatusTip('按钮22')
btn2.setToolTip('停留一段时间显示')

window1.show()
window.show()
sys.exit(app.exec_())

ql2.setFocus()
ql2.clearFocus()

TabFocus  只能使用Tab键才能获取焦点
ClickFocus  只能使用鼠标点击才能获取焦点
StrongFocus 上面两种都行
NoFocus  上面两种都不行
ql2.setFocusPolicy(Qt.StrongFocus)

Original: https://www.cnblogs.com/lvdongjie/p/16331224.html
Author: Avatarx
Title: PyQt5 控件交互与焦点控制

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/546531/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Mybatis源码4 Cache的实现和其原理

    Mybatis CachingExecutor, 二级缓存,缓存的实现 一丶二级缓存概述 上一章节,我们知道mybaits在构造SqlSession的时候,需要让SqlSessio…

    技术杂谈 2023年7月25日
    063
  • 如何封装安全的go

    如何封装安全的go 在业务代码开发过程中,我们会有很大概率使用go语言的goroutine来开启一个新的goroutine执行另外一段业务,或者开启多个goroutine来并行执行…

    技术杂谈 2023年6月1日
    086
  • Win10注册表无法保存对权限所作的更改拒绝访问

    确定后,这样就可以对上项目的权限进行修改了。应用后,再确定,即可。 14:38 18-07-24 周二 Original: https://www.cnblogs.com/zjoc…

    技术杂谈 2023年5月31日
    0118
  • Ubuntu 20.04安装Docker及相关设置

    在配置和部署深度学习训练环境时,往往会遇到conda创建的虚拟环境不好用的情况,这时使用Docker就可以解决很多麻烦。 本篇遵循Docker官网的安装指导进行操作。 首先说明,D…

    技术杂谈 2023年7月11日
    0101
  • Jira Connecting to databases Querying the Current JIRA Database

    Direct database update queries are not recommended in JIRA. Instead, we recommend adding o…

    技术杂谈 2023年5月30日
    087
  • delphi 设置多屏幕

    //poScreenCenter时,窗体会显示到主显示器的中央MainForm.Position := poScreenCenter; function TGAEAMainForm…

    技术杂谈 2023年5月31日
    0105
  • 动态ip、静态ip、pppoe拨号的区别

    pppoe拨号 pppoe拨号上网,又叫做ADSL拨号上网、宽带拨号上网。指现在有很多我的E家用户,送的无线猫,阉割了PPPOE拨号功能,必须要从电脑上拨号才能上网。还有大街上的W…

    技术杂谈 2023年5月31日
    0105
  • SQL自定义函数

    存储函数和存储过程统称为存储例程(store routine),存储函数的限制比较多,例如不能用临时表,只能用表变量,而存储过程的限制较少,存储过程的实现功能要复杂些,而函数的实现…

    技术杂谈 2023年7月25日
    054
  • 2022.32 物联网分层架构

    物联网技术的应用一般可划分为四层,分别感知层、网络层、平台层、应用层: 1、感知层 感知层通过传感技术,感知并采集物理世界的数据,建立人与物之间的沟通桥梁,主要由各种传感器以及传感…

    技术杂谈 2023年5月30日
    087
  • iConnector隐私政策

    iConnector respects and protects the privacy of all users who use the service. In order to…

    技术杂谈 2023年6月1日
    076
  • 神经网络那些事儿(一)

    这次主要说说神经网络的一些主要思想,包括介绍两种人工神经元(perceptron neuron和sigmoid neuron)以及神经网络的标准学习算法,随机梯度下降法。神经网络可…

    技术杂谈 2023年5月31日
    078
  • docker安装redis

    拉取镜像 默认拉取最新 docker pull redis 设置配置文件 bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问 protected-mode…

    技术杂谈 2023年7月24日
    077
  • windows 2003 不同网段 无法 文件共享 VSS设置

    网上搜索了很多解答,比如设置VPN, 修改ETC表, 自己也设置了VPN,确实可以,设置的过程需要关闭WINDOWS自带的防火墙,让我觉得不太习惯。 就研究了下防火墙的例外项 点击…

    技术杂谈 2023年7月11日
    0105
  • 使用 MicroK8s 和 OpenEBS 扩展 Kubernetes 存储

    OpenEBS 由 CloudByte 研发,这是一家专业做容器化存储的公司,OpenEBS 是其一款开源产品,CloudByte 将其在企业级容器存储的经验付诸到该项目中。这个项…

    技术杂谈 2023年5月31日
    088
  • Vue具体步骤

    0、准备:注册淘宝镜像 npm config set registry https://registry.npm.taobao.org/ 1、第一步:全局安装@vue/cli np…

    技术杂谈 2023年6月1日
    076
  • Saltstack系列3:Saltstack常用模块及API

    API原理是通过调用master client模块,实例化一个LocalClient对象,再调用cmd()方法来实现的。以下API实现test.ping的示例:(其他API调用只需…

    技术杂谈 2023年5月31日
    080
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球