PYQT学习笔记一

PYQT学习笔记一

1. pyqt包安装

pip install PyQt5
pip install PyQt5-tools

2. pyqt的基本代码结构

from PyQt5.Qt import *
import sys

app = QApplication(sys.argv)    # 实例化一个应用对象

window = QWidget()  # 窗口界面的基本控件,它提供了基本的应用构造器。默认情况下,构造器是没有父级的,没有父级的构造器被称为窗口(window)。
window.setWindowTitle("软件名称")
window.resize(600, 500) # 窗口大小

btn = QPushButton(window)   # btn 绑定到Windows界面里
btn.setText("我是按钮!")
btn.resize(120, 30) # 按钮大小
btn.move(100, 100)  # 按钮位置
btn.setStyleSheet('background-color:green;font-size:16px;')

label = QLabel(window)
label.setText('我是标签!')
label.move(200,200)
#label.setStyleSheet('background-color:green;font-size:16px;')
# label.show()
window.show()   # 让控件在桌面上显示出来。控件在内存里创建,之后才能在显示器上显示出来。

sys.exit(app.exec_())   # 确保主循环安全退出,app.exec_()界面循环,防止闪退

image-20220925154644067

3. PyQt5面向对象开发模板设置代码

###	test.py
'''
1.创建一个应用程序
2.控件操作
3.执行应用,进入消息循环
'''
'''
1.创建控件
window = QWidget()
btn = QPushButton(window)
2.设置控件
window.resize(50,50)
3.展示控件
window.show()
'''

from PyQt5.Qt import *
import sys


class Window(QWidget):
    def __init__(self):
        super().__init__()  # 调用父类QWidget中的init方法
        self.setWindowTitle("软件名称") # 调用自身的属性和方法
        self.resize(600, 500)
        self.func_list()

    def func_list(self):
        self.func()

    def func(self):
        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()   检测退出原因

###test2.py
import sys

from PyQt5.Qt import *
from test import Window

app = QApplication(sys.argv)

window = Window() # 通过调用test里的Window类,实例化一个对象

window.show()
sys.exit(app.exec_())

test.py 和 test2.py 都能实现以下效果

image-20220925161645918

4. QObject的三种用法

'''
        obj = QObject()
        obj.setObjectName('name')  # 设置一个唯一名称
        print(obj.objectName())

        obj.setProperty('level1','第一')  # 给对象添加一个属性和值
        obj.setProperty('level2','第二')
        print(obj.property('level2'))

        print(obj.dynamicPropertyNames())   # 获取所有setProperty()设置属性的对象和属性名称
'''

from PyQt5.Qt import *
import sys


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("object对象") # 软件名称
        self.resize(600, 500)
        self.func_list()

    def func_list(self):
        self.func()
        self.func1()

    def func(self):
        obj = QObject()
        obj.setObjectName('第一个Object对象')    # 一个标识符
        print(obj.objectName())

    def func1(self):
        obj1 = QObject()
        obj1.setProperty('level1', '第一')
        obj1.setProperty('level2', '第二')
        print(obj1.property('level1'))
        print(obj1.dynamicPropertyNames())


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()
    # print(window.windowTitle())

    window.show()
    sys.exit(app.exec_())

image-20220925162724476

5. QObject-对象类型判定和控件继承类型

'''
        isWidgetType()  # 判断类型
        inherits('')  # 是否继承与某个类
'''

from PyQt5.Qt import *
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("类型判定")
        self.resize(600,500)
        self.func_list()

    def func_list(self):
        self.func()


    def func(self):
        obj = QObject()
        win = QWidget()
        btn = QPushButton()
        label = QLabel()

        obj_list = [obj, win, btn, label]
        for o in obj_list:
            # print(o.isWidgetType())
            print(o.inherits('QPushButton'))



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

    window.show()
    sys.exit(app.exec_())

image-20220925163605669

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值