是否可用
-
setEnabled(bool):该函数用于设置QWidget控件的可用性,参数bool为True表示该控件为可用状态,False表示该控件为不可用状态。当控件处于不可用状态时,该控件将无法响应用户的交互事件。 -
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_())
运行结果:
观察一下打印结果,按钮设置为不可用之后会颜色会变暗,且不能被点击。


是否显示/隐藏
-
setVisible(bool)(或setHidden(bool)):这个函数用于设置QWidget控件的可见状态。当参数bool为True时,控件将会显示出来;当参数bool为False时,控件将会隐藏起来。 -
show():这个函数将会显示QWidget控件。相当于调用setVisible(True)。 -
hide():这个函数将会隐藏QWidget控件。相当于调用setVisible(False)。 -
isHidden():这个函数返回一个bool值,表示当前QWidget控件是否处于隐藏状态。如果返回值为True,表示控件被隐藏;如果返回值为False,表示控件可见。 -
isVisible():这个函数返回一个bool值,表示当前QWidget控件是否处于可见状态。如果返回值为True,表示控件可见;如果返回值为False,表示控件隐藏。 -
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[*]
-
setWindowModified(bool):这个函数用于设置QWidget控件的编辑状态。当参数bool为True时,控件将会被视为已编辑;当参数bool为False时,控件将不再被视为已编辑。 -
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

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

被折叠的 条评论
为什么被折叠?



