PyQt5安装

pip install pyqt5

第一个gui程序

python【第十三篇】 图形界面编程之PyQt5

语法一

import sys

from PyQt5.QtWidgets import QApplication, QWidget

if __name__ == '__main__':
    # 创建QApplication类的实例
    app = QApplication(sys.argv)
    # 创建一个窗口
    w = QWidget()
    # 设置窗口的尺寸
    w.resize(600, 300)
    # 移动窗口
    w.move(300, 300)

    # 设置窗口的标题
    w.setWindowTitle('第一个基于PyQt5的桌面应用')
    # 显示窗口
    w.show()

    # 进入程序的主循环、并通过exit函数确保主循环安全结束
    sys.exit(app.exec_())

语法二

import sys
from PyQt5.QtWidgets import QApplication, QWidget


class FirstMainWin(QWidget):
    def __init__(self):
        super(FirstMainWin, self).__init__()

        # 设置主窗口的标题
        self.setWindowTitle('第一个主窗口应用')
        # 设置窗口的尺寸
        self.resize(400, 300)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = FirstMainWin()
    main.show()

    sys.exit(app.exec_())

安装和配置Qt Designer

安装Anconda

anaconda自带Qt  

python【第十三篇】 图形界面编程之PyQt5

Pycharm 配置Qt

python【第十三篇】 图形界面编程之PyQt5

python【第十三篇】 图形界面编程之PyQt5

python【第十三篇】 图形界面编程之PyQt5

Qt Designer快速入门

1.ui文件

1.创建住窗口

python【第十三篇】 图形界面编程之PyQt5

python【第十三篇】 图形界面编程之PyQt5

2.创建组件

左侧工具栏,右侧属性栏,中间窗口栏

(拖动左侧到的组件中间可创建组件)

python【第十三篇】 图形界面编程之PyQt5

3.保存qt文件.ui

python【第十三篇】 图形界面编程之PyQt5

2.ui转py

命令方式:

python -m PyQt5.uic.pyuic demo.ui -o demo.py 

Pycharm方式:  

-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py 

python【第十三篇】 图形界面编程之PyQt5

 

python【第十三篇】 图形界面编程之PyQt5

python【第十三篇】 图形界面编程之PyQt5

基础窗口控件

 python【第十三篇】 图形界面编程之PyQt5

QLabel控件

'''
QLabel控件

setAlignment():设置文本的对齐方式

setIndent():设置文本缩进

text():获取文本内容

setBuddy():设置伙伴关系

setText():设置文本内容

selectedText():返回所选择的字符

setWordWrap():设置是否允许换行

QLabel常用的信号(事件):
1.  当鼠标滑过QLabel控件时触发:linkHovered
2.  当鼠标单击QLabel控件时触发:linkActivated

'''

import sys
from PyQt5.QtWidgets import QVBoxLayout, QMainWindow, QApplication, QLabel, QWidget
from PyQt5.QtGui import QPixmap, QPalette
from PyQt5.QtCore import Qt


class QLabelDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        label1 = QLabel(self)
        label2 = QLabel(self)
        label3 = QLabel(self)
        label4 = QLabel(self)

        label1.setText("<font color=yellow>这是一个文本标签.</font>")
        label1.setAutoFillBackground(True)
        palette = QPalette()
        palette.setColor(QPalette.Window, Qt.blue)  # 设置背景色
        label1.setPalette(palette)
        label1.setAlignment(Qt.AlignCenter)

        label2.setText("<a href='#'>欢迎使用Python  GUI程序</a>")

        label3.setAlignment(Qt.AlignCenter)

        label3.setToolTip('这是一个图片标签')

        label3.setPixmap(QPixmap("./images/python.jpg"))
        # 如果设为True,用浏览器打开网页,如果设为False,调用槽函数
        label4.setOpenExternalLinks(True)

        label4.setText("<a href='https://item.jd.com/12417265.html'>感谢关注《Python从菜鸟到高手》</a>")

        label4.setAlignment(Qt.AlignRight)

        label4.setToolTip('这是一个超级链接')

        vbox = QVBoxLayout()

        vbox.addWidget(label1)
        vbox.addWidget(label2)
        vbox.addWidget(label3)
        vbox.addWidget(label4)

        label2.linkHovered.connect(self.linkHovered)

        label4.linkActivated.connect(self.linkClicked)

        self.setLayout(vbox)
        self.setWindowTitle('QLabel控件演示')

    def linkHovered(self):
        print('当鼠标滑过label2标签时,触发事件')

    def linkClicked(self):
        print('当鼠标单击label4标签时,触发事件')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = QLabelDemo()
    main.show()
    sys.exit(app.exec_())
QLabelDemo

相关文章: