pyqt5-笔记
https://www.bookstack.cn/read/PyQt5-Chinese-tutoral/事件和信号.md
目录1. Pycharm安装pyqt5
pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com pyqt5 pyqt5-tools
# pip install pyqt5-tools
# https://www.cnblogs.com/-dawn/p/15717899.html
# 安装过程中遇到各种奇怪的问题,总结原因就是:
#(1)python 版本太高,卸载高版本,重装到3.9 就可以了。python 版本不能高于(包含)3.10,后来测试3.9.9 没有问题。也许以后这个问题会解决。
# (2) pip 本本太低,升级pip 就可以了。
# python.exe -m pip install --upgrade pip
# PyQt Designer 安装
# PyQt5 从5.7 版本开始,就已经不包含开发工具了。实际安装中,安装完PyQt5-tools 也发现没有PyQt Designer。
# 网上搜索到很多文章说,安装PyQt5-tools 以后,就有PyQt Designer 了。不知道为什么我就是没有,这个我很疑惑。是因为他们都是安装的很早的版本?
# 可以通过一个独立安装包去安装:
# https://build-system.fman.io/qt-designer-download
# 浏览器引擎
pip install PyQtWebEngine
2. 配置Extrernal Tools
打开Pycharm,然后按照下面路径打开Extrernal Tools:
File->Tools->Extrernal Tools->点击“+”号->弹出对话框,配置如下:
# https://www.html.cn/script/python/152750.html
(1).增加QT设计界面“Qt Designer” — 这个就是设计Qt界面的工具
- Name:Qt Designer
- Program:选择PyQt安装目录中 designer.exe 的路径(D:\PythonProject\pyqt5Demo\venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exe)
- Work directory: 设置为 $ProjectFileDir$
(2).增加“PyUIC” — 这个主要是用来将 Qt界面 转换成 py代码
- Name:PyUIC
- Program:python路径(D:\PythonProject\pyqt5Demo\venv\Scripts\python.exe)
- parameters:设置为-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
- Work directory: 设置为 $FileDir$
3. Qt Designer设计ui
4. PyUIC转换为py文件
5. 新建 demo.py文件
QPlainTextEdit 文本框:
- 获取文本
text.toPlainText()
- 追加文本
text.appendPlainText()
- 设置文本
text.setPlainText('str')
# -*- coding: utf-8 -*-
# @Author : LuoXian
# @Date : 2021/1/5 14:53
# Software : PyCharm
# version: Python 3.8
# @File : demo.py
# import sys
# import qt_sjs
# from PyQt5.QtWidgets import QApplication, QMainWindow
#
# if __name__ == '__main__':
# app = QApplication(sys.argv)
# MainWindow = QMainWindow()
# ui = qt_sjs.Ui_MainWindow()
# ui.setupUi(MainWindow)
# MainWindow.show()
# sys.exit(app.exec_())
from PyQt5.QtWidgets import *
from qt_sjs import Ui_MainWindow
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
main = QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(main)
main.show()
sys.exit(app.exec_())
Tips
将窗口/ QDialog设置为不可调整大小
MainWindow.setFixedSize(622, 266)
控件的连接动作
- action动作连接
action.triggered.connect(open_file)
- PushButton动作连接
PushButton.clicked.connect(login)
- listWidget动作连接
listWidget.itemClicked.connect(self.clicked)
获取qlistwidget中项目的行号
def FileListSelected(self):
""" Function to select the desired file from the list in the left pane """
itemNumber = self.listWidget.currentRow() # +++
Item = self.listWidget.currentItem().text()
print("this is the SELECTED file==>{}".format(Item))
print("this is the itemNumber ==>{}".format(itemNumber)) # +++
def clicked(self):
itemNumber = self.listWidget.currentRow() # +++
Item = self.listWidget.currentItem().text()
print("this is the SELECTED ==>{}".format(Item))
print("this is the itemNumber ==>{}".format(itemNumber)) # +++
def init_list(self):
self.listWidget.clear()
for i in range(9):
word = random.randint(1111111111, 9999999999)
self.listWidget.addItem(str(word))
self.pushButton_4.clicked.connect(self.init_list)
self.listWidget.itemClicked.connect(self.clicked)