【PyQt学习篇 · ⑨】:QWidget -控件交互

本文详细介绍了PyQt5中QWidget控件的关键功能,如设置控件的可用性、可见性、编辑状态,以及焦点控制、状态提示和工具提示的使用方法。通过实例展示了如何应用这些功能来创建一个具有动态交互的综合案例。

是否可用

  1. setEnabled(bool):该函数用于设置QWidget控件的可用性,参数bool为True表示该控件为可用状态,False表示该控件为不可用状态。当控件处于不可用状态时,该控件将无法响应用户的交互事件。

  2. isEnabled():该函数用于获取QWidget控件的当前可用状态,返回值为一个bool类型,True表示该控件为可用状态,False 表示该控件为不可用状态。

以下为代码示例:

from PyQt5.QtWidgets import *
import sys

app = QApplication(sys.argv)

window = QWidget()
window.resize(300, 300)
btn = QPushButton(window)
btn.setText('按钮')

# 设置按钮为不可用
btn.setEnabled(False)
print(btn.isEnabled())  # 获取当前按钮是否可用的状态,并打印出来

window.show()

sys.exit(app.exec_())

运行结果:
观察一下打印结果,按钮设置为不可用之后会颜色会变暗,且不能被点击。

在这里插入图片描述
在这里插入图片描述

是否显示/隐藏

  1. setVisible(bool)(或setHidden(bool)):这个函数用于设置QWidget控件的可见状态。当参数bool为True时,控件将会显示出来;当参数bool为False时,控件将会隐藏起来。

  2. show():这个函数将会显示QWidget控件。相当于调用setVisible(True)

  3. hide():这个函数将会隐藏QWidget控件。相当于调用setVisible(False)

  4. isHidden():这个函数返回一个bool值,表示当前QWidget控件是否处于隐藏状态。如果返回值为True,表示控件被隐藏;如果返回值为False,表示控件可见。

  5. isVisible():这个函数返回一个bool值,表示当前QWidget控件是否处于可见状态。如果返回值为True,表示控件可见;如果返回值为False,表示控件隐藏。

  6. isVisibleTo(widget):这个函数用于检查QWidget控件是否对另一个特定的widget可见。(父控件显示的时候,子控件是否会跟着显示)它接受一个widget作为参数,返回一个bool值表示控件是否对该widget可见。

注意:

  • visibel:代表控件最终的状态,是否被我们所减(被其他控件遮挡也属于可见)
  • hide:可理解为相对于父控件是否可见

以下为代码示例:

from PyQt5.QtWidgets import *
import sys


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

class Btu(QPushButton):
    # 重写绘制事件
    def paintEvent(self, QPaintEvent):
        print('按钮被绘制')
        return super().paintEvent(QPaintEvent)

if __name__ == '__main__':
    app = QApplication(sys.argv)

    window = Window()
    window.resize(300, 300)

    btu = Btu(window)
    btu.setText('按钮')

    btu.setVisible(False)
    # 打印父控件如果显示的时候,子控件是否跟着被显示
    print(btu.isVisibleTo(window))

    window.show()

    sys.exit(app.exec_())

运行结果:
可以看到按钮已经被隐藏

在这里插入图片描述
在这里插入图片描述

是否编辑

设置窗口标题xxx[*]

  1. setWindowModified(bool):这个函数用于设置QWidget控件的编辑状态。当参数bool为True时,控件将会被视为已编辑;当参数bool为False时,控件将不再被视为已编辑。

  2. isWindowModified():这个函数返回一个bool值,表示当前QWidget控件是否处于编辑状态。如果返回值为True,表示控件已经被编辑过;如果返回值为False,表示控件未被编辑。

代码示例:

from PyQt5.QtWidgets import *
import sys

app = QApplication(sys.argv)

window = QWidget()
window.setWindowTitle('[*]交互状态')
window.resize(300, 300)

window.setWindowModified(True)  # 设置窗口可编辑状态
print(window.isWindowModified())

window.show()
sys.exit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

街 三 仔

你的鼓励是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值