环境安装
pipinstallPyQtWebEngine
pipinstallPyQt5-tools
pipinstallPyQt5-ihttps://pypi.douban.com/simple
信号和槽关联
信号( signal)和槽(slot)是Qt的核心机制。在创建事件循环之后,通过建立信号和槽的连接就可以实现对象之间的通信。当信号发射( emit)时,连接的槽函数将会自动执行。在PyQt 5中,信号和槽通过QObject.signal.connect()连接。
所有从 QObject类或其子类(如 QWidget)派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射出去。槽用于接收信号,但它们是普通的==对象成员函数==。多个信号可以与单个槽进行连接,单个信号也可以与多个槽进行连接。
在Qt编程中,通过Qt信号槽机制对鼠标或键盘在界面上的操作进行响应处理,例如对鼠标单击按钮的处理。Qt中的控件能够发射什么信号,以及在什么情况下发射信号,在Qt的文档中有说明,不同的控件能够发射的信号种类和触发时机也是不同的。
那么如何为控件发射的信号指定对应的处理槽函数呢?一般有三种方法,第一种是在窗口的UI设计中操作添加信号和槽;第二种是通过代码连接信号和槽;第三种是通过Eric的“生成对话框代码”的功能产生信号和槽。
PyQt5开发模板设置
fromPyQt5.Qtimport*
importsys
classWindow(QWidget): # 自己写的窗口都是继承QWidget类
def__init__(self):
super().__init__() # 调用父类QWidget中的init方法进行初始化
self.setWindowTitle("软件名称")
self.resize(600,500)
self.func_list()
deffunc_list(self): # 这里调用已经设置好的控件
self.func()
deffunc(self): # 这里设置控件,每增加一个就新建一个控件函数fun 1 ,fun 2类似
btn = QPushButton(self)
btn.setText("软件内容")
btn.resize(120,30)
btn.move(100,100)
btn.setStyleSheet('background-color:green;font-size:20px;')
if__name__ == '__main__':
app = QApplication(sys.argv) # 创建一个应用程序对象
# sys.argv可以接收用户命令行启动时所输入的参数,根据参数执行不同程序
# qApp 为全局对象
print(sys.argv)
print(app.arguments())
print(qApp.arguments())
# 以上三个输出结果是一样的
window = Window() # 实例化类
window.show()
sys.exit(app.exec_()) # 0是正常退出
# app.exec_() 进行循环
# sys.exit() 检测退出原因
'''
1.创建一个应用程序
2.控件操作
3.执行应用,进入消息循环
'''
'''
1.创建控件
window = QWidget()
window = QPushButton()
2.设置控件
window.resize(50,50)
3.展示控件
window.show()
'''
PyQt5 desigener
1. 常用控件
框中的“记住我”按钮
密码 账号的输入框
布局排版
大的文本框
2.信号槽
点击这里触发信号槽
连接按钮以及你想要触发的事件,跳转这里选择
3. 放置label的背景
在qtdesigener中点击Label,设置pixmap参数
设置按钮样式
点击编辑资源,左上的笔
将图标导入到资源文件里后,就可以在窗体设计时使用图标了。点击按钮控件,在右侧选择Qabstractbutton属性icon,右边选择属性,添加资源