PYQT5学习

速成教程: 

https://blog.youkuaiyun.com/sqy941013/article/details/80548593

这个教程的第二章配置QtDesigner那里讲得不清楚,可以看这个网址:

https://blog.youkuaiyun.com/qq_42823043/article/details/88817034

错误未解决:

spyder 3.3.4 requires pyqtwebengine<5.13, which is not installed.

参考网站

0.python写一个时尚的音乐播放器界面:

https://zmister.com/archives/477.html

1.Python GUI教程(八):在主窗口中调用对话框

https://zmister.com/archives/165.html

2.PyQt5 技巧篇-按钮隐藏并保留位置,设置按钮的可见度,设置按钮透明度

https://blog.youkuaiyun.com/qq_38161040/article/details/86605798

3.PyQt5图形和特效之设置窗口背景(六)

https://blog.youkuaiyun.com/jia666666/article/details/81874045

4.如何使窗口始终显示在最前面

https://blog.youkuaiyun.com/qq_38161040/article/details/87365818

一行代码:Dialog.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)

5.PyQt5 QLabel改变字体和设置背景图片

https://blog.youkuaiyun.com/brook_/article/details/80141808

6.pyqt5 给按钮设置css样式和界面背景设置

https://blog.youkuaiyun.com/pursuit_zhangyu/article/details/82917276

7.pyqt5 给按钮设置界面背景

https://blog.youkuaiyun.com/Szh19960807/article/details/80149248

self.pushButton.setStyleSheet('QPushButton{background-image:url(22.png)}')

8.PyQT5-QPushButton切换按钮,按下与未按下两种状态切换

https://www.cnblogs.com/demo-deng/p/9990090.html

9.PYQT5当鼠标放在按钮上时变换颜色:

self.left_mini.setStyleSheet("QPushButton{background:#6DDF6D;border-radius:5px;}QPushButton:hover{background:green;}")

 在这里,按钮默认为淡绿色,鼠标悬浮时为深绿色,hover就是悬浮的情况。

10.PYQT5当设置按钮背景透明:

self.pushButton.setStyleSheet("QPushButton{background:transparent;}")

11.PyQt5 设置状态栏图标和动态显示gif图

https://blog.youkuaiyun.com/Yuyh131/article/details/85164461

12.PYQT5设置字体居中(直接博客中搜索居中)

https://blog.youkuaiyun.com/jiuzuidongpo/article/details/45485127

设置labe的字体居中:

self.label.setAlignment(Qt.AlignCenter)

此居中为上下左右居中

13.pyqt5设置按钮,移上去变为手型

https://blog.youkuaiyun.com/pursuit_zhangyu/article/details/83211436

一行代码:self.button.setCursor(QCursor(Qt.PointingHandCursor))

14.主界面中打开Dialog参考程序:

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)
        # 上面这两行代码就是调用Ui_MainWindow()类的界面,好好看着

        self.pushButton1.clicked.connect(self.pressed_pushButton1)

    def pressed_pushButton1(self):
        # app = QtWidgets.QApplication(sys.argv)
        Dialog = QtWidgets.QDialog()
        ui = Ui2()  # 这个Ui2是我另外的一个子窗口py文件中的类
        ui.setupUi(Dialog)
        Dialog.show()
        Dialog.exec_()
        # sys.exit(app.exec_())

 15.使一个名为Ui2的QDialog类被另一个类来继承来实现窗口:

class Ui2_window(QtWidgets.QDialog, Ui2):
    def __init__(self):
        super(Ui2_window, self).__init__()  # 此处参考:https://blog.youkuaiyun.com/EXECUTER_/article/details/78877159
        self.setupUi(self)


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    # Dialog = QtWidgets.QDialog()
    Dialog = Ui2_window()
    # Dialog.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())

16.QDialog设置最大小化及关闭按钮

Dialog.setWindowFlags(Qt.WindowCloseButtonHint | Qt.WindowMinMaxButtonsHint) # 设置最大小化及关闭按钮

17.多幅图片网格显示:

QTableView:

https://www.cnblogs.com/ygzhaof/p/10076308.html

QTableView

https://www.zhaokeli.com/article/7986.html

QTableView设置单元格大小同图片大小改变

18.窗口之间传值,就是给类的构造器添加一个输入的参数,然后self.para = 这个参数:

https://bbs.youkuaiyun.com/topics/391821557

19.【PyQt5-Qt Designer】浅谈关闭窗口

https://www.cnblogs.com/XJT2018/p/10175881.html

1、关闭全部窗口(主窗口+所有的子窗口)

在逻辑界面中写入

sys.exit(0)

2、关闭子窗口(其他窗口不关闭)

self.close()

20.PyQt5基本控件详解之QLabel(三)

https://blog.youkuaiyun.com/jia666666/article/details/81504595

 

ERROR1:

在用pyUIC转化QTdesigner生成的ui文件为python代码时,遇到错误:

D:\Pro2\Anaconda3\envs\tensorflow\python.exe -m PyQt5.uic.pyuic mainUI.ui -o mainUI.py
Error: No such file or directory: "mainUI.ui"

转换下环境就可以了,可能你安装的pyuic不在当前环境下。

ERROR2:

NameError: name 'QIcon' is not defined

只要 from PyQt5.QtGui import QIcon 就可以了

ERROR3:

Python&PyQt5报错:AttributeError: module 'PyQt5.QtGui' has no attribute 'QMainWindow'

https://blog.youkuaiyun.com/weixin_42137589/article/details/81489363

在import中将QtGui改成QtWidgets即可

ERROR4:

第一个pycharm+pyqt5程序 (解决.ui文件生成的.py文件运行不出现界面问题)

https://blog.youkuaiyun.com/yogima/article/details/80589255

import sys
from first import Ui_MainWindow  # 这里的first是.ui文件生成的.py文件名
from PyQt5 import QtWidgets

# 这个类继承界面UI类
class mywindow(QtWidgets.QWidget, Ui_MainWindow):
    def __init__(self):
        super(mywindow, self).__init__()
        self.setupUi(self)

#调用show
if __name__=="__main__":
    app=QtWidgets.QApplication(sys.argv)
    myshow=mywindow()
    myshow.show()
    sys.exit(app.exec_())

 ERROR5:

self.pushButton1.clicked.connect(self.pressed_pushButton1())
TypeError: argument 1 has unexpected type 'NoneType' 

把pushButton1后面的括号去掉就可以了

OTHER_ERRORS:

!!!当你不知道你的控件需要import什么库时,ctrl+鼠标点击该控件,查看库文件,从文件开头的module就可知该控件所需import的库,如果没有module字样,就直接import 你的这个控件。

 

一些常见的错误参考网址:

作者:rosefun96 
来源:优快云 
原文:https://blog.youkuaiyun.com/rosefun96/article/details/79440064
版权声明:本文为博主原创文章,转载请附上博文链接!

1.NameError: name 'QApplication' is not defined

from PyQt5.QtWidgets import QApplication


2.NameError: name 'QLabel' is not defined

from PyQt5.QtWidgets import *


3.NameError: name 'QDialog' is not defined

from PyQt5.QtWidgets import QInputDialog, QLineEdit, QDialog


4.AttributeError: 'Form' object has no attribute 'connect'

In PyQt5 you need to use the connect() and emit() methods of the bound signal directly, e.g. instead of:

self.emit(pyqtSignal('add_post(QString)'), top_post)
self.connect(self.get_thread, pyqtSignal("add_post(QString)"), self.add_post)
self.connect(self.get_thread, pyqtSignal("finished()"), self.done)

use:

self.add_post.emit(top_post)
self.get_thread.add_post.connect(self.add_post)
self.get_thread.finished.connect(self.done)
https://stackoverflow.com/questions/41848769/pyqt5-object-has-no-attribute-connect

 

5.NameError: name 'unicode' is not defined

Python 3 renamed the unicode type to str, the old str type has been replaced by bytes.
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值