GUI编程--PyQt5--QWidget3 控件的交互

文章目录

  • 控件是否可用
  • 控件是否可见
  • 编辑状态
  • 窗口的激活
  • 窗口关闭
  • 案例
  • 提示信息
  • 焦点操作

控件是否可用

obj.setEnabled(True)
obj.isEnabled()

控件是否可见

显示与隐藏
本质是重新绘制所有的控件,从父控件依次到子控件。
obj.setVisible(True) 绘制图形 触发了paintEvent
obj.setVisible(False) 不绘制,重新绘制窗口时,不在绘制当前控件
类似obj.setHidden(True)
obj.isVisible() 是否绘制?
obj.isHidden() 是否隐藏, 由于父控件的不显示而子控件不显示,isHidden()返回False

以上就是show/hide的底层
控件状态的改变,就是重新绘制的结果。父控件没展示,子控件绘制出来也不可见


class Window(QWidget):def paintEvent(self, event):print("绘制xxx")

obj.isVisibleTo(obj2) 相对于obj2 来说,obj是否可见,即obj2 绘制后,obj是否绘制。

编辑状态

# 未编辑状态  不展示*
window.setWindowTitle("laufing[*]")# 设置编辑状态
window.setWindowModified(True)
window.isWindowModified()

窗口的激活

# 激活
window.setWindowState(Qt.WindowState.WindowActive)
# 是否激活
window.isActiveWindow()

窗口关闭

# 关闭, 不释放对象
window.close()  # 不绘制,但对象没有删除# 关闭 并释放对象
window.setAttribute(Qt.WA_DeleteOnClose, True)# 按钮的信号与槽函数
self.close_btn.destroyed.connect(lambda : print("close_btn对象释放...", self.close_btn))
self.close_btn.setAttribute(Qt.WA_DeleteOnClose, True) # 关闭时释放
self.close_btn.clicked.connect(self.close_btn.close)

案例

  1. 输入框有内容,则按钮可点击
  2. label内容先 隐藏
  3. 点击登录,若输入内容为“admin”, 则提示“登录成功”, 否则提示"登录失败"
    line_edit.textChanged.connect(change)
    btn.clicked.connect(login)
    在这里插入图片描述
# __author__ = "laufing"
# class_based_qt
# laufing_qt# __author__ = "laufing"from PyQt5.QtGui import QIcon, QPixmap, QCursor, QKeyEvent
from PyQt5 import QtGui
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplication, QLabel, QDesktopWidget, QPushButton, QLineEdit
import sysclass Window(QWidget):def __init__(self):super(Window, self).__init__()# 窗口标题self.setWindowTitle("laufing[*]")# 窗口图标pixmap = QPixmap("./imgs/dog.jpg").scaled(50, 50)icon = QIcon(pixmap)# icon.addPixmap(pixmap, QIcon.Normal, QIcon.Off)self.setWindowIcon(icon)# 设置宽高self.resize(500, 600)# 窗口居中desktop_geo = QDesktopWidget().geometry()width, height = desktop_geo.width(), desktop_geo.height()self.move(width / 2 - self.width() / 2, height / 2 - self.height() / 2)# 展示self.set_ui()def set_ui(self):# 设置文本,并隐藏self.label = QLabel(self)self.label.setText("文本")self.label.resize(50, 50)self.label.move(50, 50)self.label.setVisible(False)  # 不绘制# 输入框self.le = QLineEdit(self)self.le.setText("666")self.le.move(50, 100)# 按钮self.btn = QPushButton(self)self.btn.setText("登录")self.btn.move(50, 150)self.btn.setEnabled(False)# 信号与槽def change(content):self.btn.setEnabled(len(content) > 0)def login():# 获取输入框的内容if self.le.text() == "admin":self.label.setText("登录成功")else:self.label.setText("登录失败")self.label.show()self.label.adjustSize()self.le.textChanged.connect(change)self.btn.clicked.connect(login)if __name__ == '__main__':import time# 窗口应用程序app = QApplication(sys.argv)window = Window()window.show()status_code = app.exec_()sys.exit(status_code)

 

提示信息

# 组合窗口
window = QMainWindow() 
# 使用状态栏(懒加载)
window.statusBar()# 状态栏提示信息(鼠标放控件时,提示)
window.setStatusTip("组合窗口")
print(window.statusTip())label = QLabel(window)
label.setText("测试提示")
label.setStatusTip("状态栏提示")
label.setToolTip("悬浮在控件提示")
label.setToolTipDuration(1000) # 信息提示的时间  毫秒# 设置窗口的样式
window.setWindowFlags(Qt.WindowType.WindowContextHelpButtonHint)
# 点击?  后再点击控件,可以查看帮助信息
window.setWhatsThis("这是什么?")
window.show()

在这里插入图片描述

焦点操作

le = QLineEdit(window)
# le.setFocus()  获取焦点
le.setFocusPolicy(Qt.FocusPolicy.TabFocus) # tab键获取焦点
le.setFocusPolicy(Qt.FocusPolicy.ClickFocus) # 点击获取焦点
le.setFocusPolicy(Qt.FocusPolicy.StrongFocus) # 通过tab & 点击 获取焦点
le.setFocusPolicy(Qt.FocusPolicy.NoFocus) # 只能通过setFocus方法 获取焦点

父控件调用:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23631.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Fdog系列(四):使用Qt框架模仿QQ实现登录界面,界面篇。

文章目录 一. 前言二. 正文1. 创建窗口,添加基本组件2. 自定义标题,隐藏任务栏标题,实现系统托盘显示3. 美化主界面,文本框的奇思妙想4. 实现背景阴影 一. 前言 Fdog系列已写目录: Fdog系列(一&#xff0…

Qt之对话框(QDialog)

文章目录 一、对话框的概念二、与QWidget的区别三、对话框2种显示方法四、对话框返回值的概念本节示例 提示:以下是本篇文章正文内容,下面案例可供参考 一、对话框的概念 对话框是和用户简短交互的一种窗口。如:登录界面,关于界…

《爱情公寓》电影,让我十年的情怀,一瞬间都喂了狗

点击上方“程序人生”,选择“置顶公众号” 第一时间关注程序猿(媛)身边的故事 作者 丁彦军 来源 恋习Python 如需转载,请联系原作者授权。 深陷抄袭之名、诉讼纠纷的《爱情公寓》终于上映了。 情怀粉们的力量不容小觑,…

长坡厚雪 一个智能手机的“大时代”迎面到来

作者 | 曾响铃 文 | 响铃说 “这是一个最好的时代,也是一个最坏的时代。 ” 在世界贸易关系、国际环境等不确定因素影响下,全球都蒙上了一层阴影。前不久召开的2023博鳌亚洲论坛主题就是“在不确定的世界中探寻确定性”,简单来说就是当前社…

《XP、面具框架玩机》小米手机玩机教程--菜鸟小回

《框架玩机》小米手机玩机教程 ChatGPT点击直接对话:小回公益GPT 注:刷机有风险,玩机需谨慎。 操作不当所造成后果与菜鸟小回无关!!! 今天来分享小米手机玩机技巧,Magisk面具Xp框架! 可能你多上…

工程质量之研发过程管理需要关注的点

一、背景 作为程序猿,工程质量是我们逃不开的一个话题,工程质量高带来的好处多多,我在写这篇文章的时候问了一下CHATGPT,就当娱乐一下,以下是ChatGPT的回答: 1、提高产品或服务的可靠性和稳定性。高质量的系…

港联证券|存储概念再活跃,佰维存储盘中逼近涨停再创新高

存储概念11日盘中再度走强,截至发稿,佰维存储涨超19%,盘中迫临涨停再创上市以来新高,该股自上市以来累计大涨超500%;江波龙涨近15%盘中亦创出新高;此外,朗科科技涨近12%,同有科技涨近…

比尔盖茨:Web3没那么重要,元宇宙没革命性,人工智能最重要

1. 【比尔盖茨:Web3没那么重要,元宇宙没革命性,人工智能最重要】 微软联合创始人比尔•盖茨似乎与特斯拉CEO埃隆马斯克一样对元宇宙、Web3(第三代互联网)毫无兴趣。 当地时间1月12日,比尔•盖茨在美国社交新…

死磕数据库系列(二十二):MySQL 数据库机房架构与跨城容灾

点关注公众号,回复“1024”获取2TB学习资源! 今天我将详细的为大家介绍 MySQL 数据库的机房架构与跨城容灾相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!! …

AI人工智能与机器人的探索和应用1.2

原文:https://mp.weixin.qq.com/s/Fpku8e1mvU1M7hOMV8rSnA chatgpt的火爆使用让人工智能掀起了新一轮的话题革命。当前的全球情况数据显示,人工智能、机器学习和机器人技术等创新产品几乎每个领域都普遍流行,无论是农业、医疗保健、教育、还…

一场云端的“神仙打架”:BAT加华为的影响未来之争

作者|震霆 出品|新芒X 公众号|GOwithAI Up in the Air ! 这是2009年上映的一部经典的电影名称,翻译成中文叫《在云端》,想必有不少人看过。 男主角因为工作性质成为空中飞人,穿梭在云…

全网最流氓还擦边的App,被华为封杀了!

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇 来源丨程序员软件库 https://mp.weixin.qq.com/s/WFqu1mYYIiq8A-XNJgMA5Q ‍ 很多人下载APP,一般是用手机自带的应用商店,下载安装一条龙&…

华为推出打车平台 Petal,科技大厂再战聚合打车

作者|小满 声明|题图来源于网络。惊蛰研究所原创文章,文章转载自「惊蛰研究所」公众号。 沉寂许久的网约车市场,因为科技巨头的集体入局再次成为焦点。 7月27日,华为正式宣布上线聚合打车平台Petal出行,包括此前在微信内测打车服务…

腾讯VS华为:2021“渠道战争”第一枪

本文转载自 刺猬公社,作者 陈彬 2021年方才来临一个小时,华为与腾讯两大巨头就打了起来。 华为应用商店发布公告,宣布下架所有腾讯游戏,原因是“腾讯单方面就双方合作做出重大变更”。腾讯方很快做出回应,表明未能与华…

如果你还不知道什么是华为ICT大赛,你就OUT了!

(小灰想象中的比赛现场) ICT,全称Information Communications Technology。 华为ICT大赛是华为打造的面向全球大学生的年度例行ICT赛事,为华为ICT学院和有意愿成为ICT学院的高效学生提供国际化竞技和交流平台,增长学生…

华为内部推荐,比惨大会 (转载)

发信人: lansheng228 (大宅男), 信区: Joke 标 题: Re: 华为内部推荐,比惨大会 (转载) 发信站: 水木社区 (Thu Jul 17 18:50:26 2014), 站内 【 以下文字转载自 WorkLife 讨论区 】 发信人: diviner (diviner), 信区: WorkLife 标 题: Re: 华为内部推荐&#xf…

Tubi 快讯|中国团队 100 人啦

Tubi 中国团队 100 人啦 上周五,Tubi 迎来了中国团队的第 100 位同事! 从最开始创立到 Tubi 中国团队第一次在公众号亮相,再到去年年底的关于 Tubi ,你想知道的都在这里,Tubi 一路成长也一路收获,始终未变…

独家!华为、腾讯齐聚香港,一起密谋着什么?

4月17日,“TokenSky香港站 第16届TFC全球泛游戏大会”上主题为“游戏出海与未来链游之路”在香港科学园成功举办,现场座无虚席,全球游戏游戏研发商、发行商、渠道商、第三方等齐聚主会场,现场嘉宾就区块链游戏发展、游戏出海及变现…

第一波IT去美国化的公司不是华为

第一波去美国化的不是华为,是BAT京东等 互联网类公司发起的工程叫:去IOE IBM小型机,ORACLE数据库,EMC存储 几年前已经完成了技术去美化 趣讲大白话:安全是底线 【趣讲信息科技174期】 **************************** 第…

华为公布新运营商BG总裁/ 苏州超算中心顶楼起火/ 马斯克卖香水赚700万…今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大家好,今天是10月13日星期四,v我50(手动狗头)。 科技圈有哪些新鲜事,快来和日报君一起看看吧~ 微软将推免费设计软件 当地时间周三,美国微软宣布将推…