在Qt Designer中设置信号与槽
信号(signal)
槽(slot)
是Qt的核心机制,也是PyQt的核心机制
信号:是由对象或控件发射出去的消息。
按钮的单击事件
当单击按钮时,按钮就会向外部发送单击的消息,这些发送出去的信号需要-些代码来拦截, 这些代码就是槽
槽本质上是一个函数或方法
信号可以理解为事件
槽可以理解为事件函数(信号的反馈)
需要将信号和槽绑定
一个信号可以和多个槽绑定,一 个槽可以拦截多个信号
举例子:
拖一个pushButton按钮,改名为关闭窗口,实现点击它就关闭主窗口的功能
Edit->编辑信号/槽,按住控件,随意向下拉条线就行,然后就出来下面那个窗口了,左下角打对勾,按钮处选择 clicked() 点击事件,对应的主窗口处选择 close() 关闭窗口事件即可。
这样点击这个按钮就和关闭窗口事件联系在一起了。预览一下,点击按钮,主窗口就关闭了。
继续添加控件checkbox(打对勾选择的),改名显示或隐藏,在右侧的属性编辑器中的QAbstractButton一栏的选中checked项(默认情况下checkbox带对勾),即默认显示。
再来一个checkbox,改名可用不可用,再在底下来个treeview,在属性编辑器中取消勾选enabled,即此时treeview默认不可用。
然后接着编辑信号/槽,将箭头从两个checkbox(都选 toggled(bool) 是否选中)分别拉向对应的输入框(选择 setVisiable(bool) 是否可见选项)和treeview(选择 setEnabled(bool) 是否可用选项),
然后预览一下,效果和预期一样
为窗口添加菜单和工具栏
右键有添加或移除。。。栏
编辑菜单栏,先起个名,比如File,然后再编辑File下的子项,双击输入名称,然后双击输入分隔符,接着编辑下一个子项,弄完了可以再弄下一个菜单项比如Edit,"在这里输入"就是创建一个新的菜单项。
对于工具栏,如何在上面放控件呢,直接拖是不好使的,工具栏上的按钮成为action(动作)
得找动作编辑器,视图-》动作编辑器,默认是开启的,但是得自己在右边找找。
双击可对动作进行设置,shortcut是快捷键,checkable是变成复选框
点击OK之后
然后将动作拖动到工具栏上即可,动作之间可以右键插入分隔符
就这样,预览一下吧。