Loading

pyqt5-笔记

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->点击“+”号->弹出对话框,配置如下:
image-20211229215243350
image


# 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)
posted @ 2021-12-30 01:50  luoxian  阅读(54)  评论(0编辑  收藏  举报