前提:
之前使用qtdesigner时总对信号/槽产生困惑,不太明白它的使用方式,后来不单纯弄界面了,同事要求还要搞一些动作,比如:文字图片切换、文字变换、利用键盘输入使界面变化等等,逐渐掌握了信号/槽的用法。下面就用一个小例子来说明下它的用法
python切换文字与图片
1.创建ui文件(cutshow.ui)
1.1新建窗体
选择WIdget,点击创建。
1.2拖入组件
需要拖入:2个radiobutton(进行选择)、1个stacked widget(用来显示)、2个label。Label需拖到stacked widget中,另一个点stacked widget上的黑箭头拖入进去。
1.3进行布局
按住ctrl,选择两个radiobutton组件,点击右键选择“布局”--->“垂直布局”
完成后:
在对象查看器中找到对象“Form”,点击右键选择“布局”--->“水平布局”
这样一个简单的布局就完成了。
1.4添加文字及图片
双击即可修改文字
选中打算插入图片的label,在属性编辑器中找到pixmap,选择文件。
插入成功!
1.5修改对象名
为了之后使用的方便,建议修改对象名。修改方法:双击对象名即可
2.创建py文件(main.py)
2.1新建文件并引用ui文件
引用部分详见我的另一篇文章:
https://blog.csdn.net/qq_44878999/article/details/127245501
2.2加入信号/槽
最终代码为:
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import QApplication
class Cutshow:
def __init__(self):
self.ui = QUiLoader().load("cutshow.ui")
# 信号/槽的使用
self.ui.btnpic.clicked.connect(self.showpic)
self.ui.btntext.clicked.connect(self.showtext)
# 修改 stacked widget组件的当前显示页
def showpic(self):
self.ui.stacked.setCurrentIndex(1)
def showtext(self):
self.ui.stacked.setCurrentIndex(0)
if __name__ == "__main__":
# 固定的,PyQt5程序都需要QApplication对象。sys.argv是命令行参数列表,确保程序可以双击运行
app = QApplication()
# 设置窗口图标
# 初始化
myWin = Cutshow()
# 将窗口控件显示在屏幕上
myWin.ui.show()
# 程序运行,sys.exit方法确保程序完整退出。
app.exec_()
3.总结
self.ui.btnpic.clicked.connect(self.showpic)
主要就是使用这一个,可以转到任何想要实现的函数上。
发送对象.动作.connect(调用函数)
发送对象的类一定要找好。
4.分享查找qtAPI的网站
如果不清楚对象的属性,可以去这个网站上面搜,可以给你很多的灵感。
http://pyside.digitser.net/5.15/zh-CN/index.html
以上就是本文章全部内容,如果不对的地方,欢迎指正~