PyQt5安装
pip install pyqt5
第一个gui程序
语法一
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
Pycharm 配置Qt
Qt Designer快速入门
1.ui文件
1.创建住窗口
2.创建组件
左侧工具栏,右侧属性栏,中间窗口栏
(拖动左侧到的组件中间可创建组件)
3.保存qt文件.ui
2.ui转py
命令方式:
python -m PyQt5.uic.pyuic demo.ui -o demo.py
Pycharm方式:
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
基础窗口控件
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_())