PyQt5基础知识 超详细!!!(含代码)

14 篇文章 26 订阅
订阅专栏

在哔哩哔哩中看的教程整理的笔记:视频链接https://www.bilibili.com/video/BV1VE411t7kC?p=1

目录

一.水平布局

二.垂直布局

三.Grid 栅格布局

四. form表单布局

五.组合垂直和水平布局

六.绝对布局

七.分割线与间隙

八.控件尺寸的最大值与最小值

九.尺寸策略(sizePolicy)

十.伙伴关系

十一.Tab顺序

十二.信号和槽

十三 . 添加菜单栏与工具栏

十四.使用python代码编写

十五.让主窗口居中显示

十六.点击按钮退出应用程序

十七.屏幕坐标系

十八.设置窗口和应用程序图标

十九.为控件添加提示消息

二十.QLabel控件的基本用法

二十一. QLabel与伙伴控件

二十二.限制QLineEdit控件的输入

二十三.QLineEdit综合案例

二十四.QTextEdit控制输入多行文本

二十五. 按钮控件

二十六.使用QDialog显示通用对话框

二十七.显示不同类型的消息对话框

二十八.显示不同类型的消息对话框

二十九.文件对话框

三十.选项卡控件

三十一.堆栈窗口控件

三十二.停靠控件

三十三.容纳多文档的窗口


 


 

 

一.水平布局

两种方法:

 1.选中控件——》右键布局——》水平布局

 2.layout的horizontal ——》将部件拖进去

设计的ui程序只是设计的,要真正在程序中调用要转换成.py文件

方法三:在pycharm中设置(拓展工具中设置PyUIC,具体设置方法自行查找)

 

二.垂直布局

三.Grid 栅格布局

N行m列

 

 

四. form表单布局

N行两列

左侧一般是标签,右边一般是采集用户输入的

 

五.组合垂直和水平布局

图中备注为label形式

下面的文本框为line Edit形式

Ctrl+方向键 微调

 

六.绝对布局

 

七.分割线与间隙

属性在goemotry中查看

  1. spacer 添加加空隙

水平的话,先调整为水平布局,将Horizontal spacer拖入水平布局内——》选中间隙,——》spacer中选中sizeType中的Fixed ——》可以设置宽度,垂直的可以设置高度

 

 

   2. 添加间隔线

在Displace Widgets中的 Vertiacl Line与Horizontal Line

     

八.控件尺寸的最大值与最小值

minimumsize最小

maximumsize 最大  设置一个控件最大最小的尺寸

 

 

九.尺寸策略(sizePolicy)

SizeHint(期望尺寸)

默认尺寸,对于大多数控件来说,SizeHint不可修改,只读。

读取SizeHint的方法如图:

 

举例:设置如下界面

首先选择一个水平布局——》然后在水平布局左侧添加一个Tree View(Item Views中) ,右侧加一个frame面板(Containers中),——>然后设置为1:1:2的水平比例,——》然后在右侧加入表单布局,form layout,再往form layout中拖动label与line text

十.伙伴关系

两个控件的关联关系

菜单显示时按热键才起作用,相当于另外一种快捷键。

效果:

当键盘输入ait+a 时光标显示在姓名后的文本框,不区分大小写

alt+b光标定位在身份证后

代码也可以实现两个控件的伙伴关系(以后讲)

 

十一.Tab顺序

按Tab键之后,光标在输入框中的跳转顺序

方法一:右键

方法二:直接点框内数字

 

 

十二.信号和槽

信号(signal)与槽(slot)是qt的核心机制,也是Pyqt的核心机制。

信号:是由对象或控件发射出去的消息

按钮的单击事件:当单击按钮时,按钮就会向外部发送单击的消息,这些发送出去的信号需要一些代码来拦截,这些代码就槽。

槽:本质上是一个函数或方法,信号可以理解为事件函数

需要将信号与槽绑定,一个信号可以和多个槽绑定,一个槽可以拦截多个信号

例1:功能:实现点击按钮,关闭窗口

(1)先创建一个按钮,再设置信号/槽

注:

可恢复窗口,即重新编辑(删除控件等操作)

 

例2:功能:实现输入框的显示与隐藏,以及文本输入框的可用与不可用

效果如下图:

1.首先设置隐藏于显示这两个控件

(1)设计出界面:复选框和文本输入框

(2)修改复选框默认为选中状态

,即默认为

(3)设计信号/槽关系

2.设置这两个控件

(1)设计出界面:复选框和文本输入框

(2)将文本框默认设置为不可用

,即文本输入框显示为灰色

(3)设计信号/槽关系

 

最终效果如下:

 

单击(clicked)事件与close方法想关联。

 

 

十三 . 添加菜单栏与工具栏

如何创建菜单栏与工具栏,并且往菜单栏和工具栏添加菜单和按钮

1.状态栏

主窗口最下面的状态栏,默认是有的

2.菜单栏

点击菜单栏——》右键移除

3,工具栏

(1)添加工具栏——》右键

(2)打开动作编辑器,选中要放入工具栏的动作,从动作编辑器中拖至工具栏。

效果

 

 

十四.使用python代码编写

主窗口的类型:有三种窗口

QMainWindow:可以包含菜单栏、工具栏和标题栏,是最常见的窗口形式

QDialog:是对话窗口的基类。没有菜单栏、工具栏和标题栏

QWidget:不确定窗口的用途,就使用QWidget。

我们一般会使用QMainWindow,在QMainWindow里面使用QDialog,偶尔使用QWidget。

效果:

代码:

'''
面向对象的方式,将所有与ui有关的代码都放进一个类里面,
然后创建一个窗口,只要创建这个类的子类即可
'''
import sys
from PyQt5.QtWidgets import QApplication , QMainWindow
from PyQt5.QtGui import QIcon

class FirstMainWin(QMainWindow):
    def __init__(self,parent=None):
        super(FirstMainWin,self).__init__(parent)

        #设置主窗口的标题
        self.setWindowTitle("第一个主窗口应用")

        #设置窗口的尺寸
        self.resize(400,300)
        self.status = self.statusBar()
        self.status.showMessage('只存在5秒的消息',5000)
        
if __name__ == '__main__':
    app = QApplication(sys.argv)
    #app.setWindowIcon(QIcon('E:/PycharmProjects/doutula/pyqt5_/controls/images/t10.ico'))
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = FirstMainWin()
    main.show()
    sys.exit(app.exec_())



 

十五.让主窗口居中显示

窗口默认也为居中,因此我认为此节不是很重,但是还是记录一下方法。

#得这整个屏幕的尺寸,和整个窗口的尺寸,然后用整个屏幕的尺寸减去整个窗口的尺寸
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow,QDesktopWidget
from PyQt5.QtGui import QIcon


class CenterForm(QMainWindow):
    def __init__(self, parent=None):
        super(CenterForm, self).__init__(parent)

        # 设置主窗口的标题
        self.setWindowTitle("让窗口居中")

        # 设置窗口的尺寸
        self.resize(400, 300)
        print("初始化")
    def center(self):
        #获取屏幕坐标系
        screen = QDesktopWidget().screenGeometry()
        #获取窗口坐标系
        size = self.geometry()
        newLeft = (screen.width()-size.width())/2
        newTop = (screen.height() - size.height()) / 2
        #调用move的方法来移动窗口
        self.move(newLeft,newTop)
        print("移动窗口")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    c = CenterForm()
    #main = CenterForm.center(c)  #不调用此函数,窗口依然可以居中
    main.show()
    sys.exit(app.exec_())



 

十六.点击按钮退出应用程序

import sys
from PyQt5.QtWidgets import QPushButton,QHBoxLayout,QWidget,QApplication, QMainWindow,QDesktopWidget
from PyQt5.QtGui import QIcon
class QuitApplication(QMainWindow):
    #点击按钮,退出应用程序
    def __init__(self):
        super(QuitApplication, self).__init__()
        self.resize(300,120)
        self.setWindowTitle("退出应用程序")

        #添加Button
        self.button1 = QPushButton("退出程序")
        #将button与槽绑定
        self.button1.clicked.connect(self.onClick_Button)

        #创建水平布局
        layout = QHBoxLayout()
        layout.addWidget(self.button1)  #把button1放在水平布局是哪个

        #把水平布局放在主框架上
        mainFrame = QWidget()  #让充满屏幕
        mainFrame.setLayout(layout)
        self.setCentralWidget(mainFrame) #让主框架放在整个窗口上

    #按钮单击事件的方法(自定义的槽)
    def onClick_Button(self):
        sender = self.sender()  #通过sender获得button
        print(sender.text()+ "  按钮被按下")  #sender.text()是读取按钮上的内容
        app = QApplication.instance()  #得到一个实例
        #退出应用程序
        app.quit()

if  __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = QuitApplication()
    main.show()
    sys.exit(app.exec_())

点击按钮后,窗口关闭,并且命令行显示

 

十七.屏幕坐标系

屏幕左上角坐标是(0,0)

工作区高度:窗口高度(不包括标签栏)

标签栏高度:标签栏坐标减去工作区坐标

widget.resize(300,240) 设置的是工作区的尺寸

 注意区分三者坐标的不同,详解见代码注释。

import sys
from PyQt5.QtWidgets import QPushButton,QHBoxLayout,QWidget,QApplication, QMainWindow,QDesktopWidget
from PyQt5.QtGui import QIcon
#此例子中使用面向过程的方式,不使用类了
def onClick_Button():
    print("含边框的坐标")
    print("widget.x()= %d" % widget.x())        #含有边框的坐标    250(窗口横坐标)
    print("widget.y()= %d" % widget.y())        #200(窗口纵坐标)
    print("widget.width()= %d" % widget.width()) #300(工作区宽度)
    print("widget.height() = %d" % widget.height())#240(工作区高度)

    print("工作区的坐标")
    print("widget.geometry().x()= %d" % widget.geometry().x()) #工作区的坐标系,不包含标题栏 251(工作区横坐标)
    print("widget.geometry().y()= %d" % widget.geometry().y())          #231(工作区纵坐标)
    print("widget.geometry().width()= %d" % widget.geometry().width())  #300(工作区宽度)
    print("widget.geometry().height() = %d" % widget.geometry().height())#240(工作区高度)

    print("框架的坐标")
    print("widget.frameGeometry().x()= %d" % widget.frameGeometry().x())    #250(窗口横坐标)
    print("widget.frameGeometry().y()= %d" % widget.frameGeometry().y())    #200(窗口纵坐标)
    print("widget.frameGeometry().width()= %d" % widget.frameGeometry().width()) #302(窗口宽度)
    print("widget.frameGeometry().height() = %d" % widget.frameGeometry().height()) #272(窗口高度 =标题栏高度+工作区高度)
app = QApplication(sys.argv)
widget = QWidget()
btn = QPushButton(widget)
btn.setText("按钮")
btn.clicked.connect(onClick_Button)
btn.move(24,52)
widget.resize(300,240)  #设置工作区的尺寸
widget.move(250,200)
widget.setWindowTitle("屏幕坐标系")
widget.show()
sys.exit(app.exec_())


点击按钮后输出:

 

十八.设置窗口和应用程序图标

窗口的setWindowIcon方法用于设置主窗口的图标和应用程序图标,只在Windows可用
QApplication中的setWindowIcon方法也用于设置主窗口的图标和应用程序图标,
但调用了窗口的setWindowIcon方法,QApplication中的setWindowIcon方法就不起作用了
(与老师讲的有些出入,但是还是以运行结果为准)
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtGui import QIcon
'''
窗口的setWindowIcon方法用于设置主窗口的图标和应用程序图标,只在Windows可用
QApplication中的setWindowIcon方法也用于设置主窗口的图标和应用程序图标,
但调用了窗口的setWindowIcon方法,QApplication中的setWindowIcon方法就不起作用了
'''

class IconForm(QMainWindow):
    def __init__(self):
        super(IconForm, self).__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(300,300,250,250)
        # 设置主窗口的标题
        self.setWindowTitle("设置窗口图标")
        #设置窗口图标
        self.setWindowIcon(QIcon('./images/t10.ico'))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('E:/PycharmProjects/doutula/pyqt5_/controls/images/t12.ico'))
    main = IconForm()
    main.show()
    sys.exit(app.exec_())

 运行结果:

 

 

十九.为控件添加提示消息

鼠标放在工作区就会出现提醒信息

#为控件添加提示信息
import sys
from PyQt5.QtWidgets import QHBoxLayout,QWidget,QToolTip,QPushButton,QApplication, QMainWindow
from PyQt5.QtGui import QIcon
from PyQt5.QtGui import QFont


class TooltipForm(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        QToolTip.setFont(QFont("SanSerif",12))#设置字体与大小
        self.setToolTip("今天是<b>星期五</b>") #设置提示信息为粗体
        self.setGeometry(300,300,400,300)
        self.setWindowTitle("设置控件提示消息")


if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = TooltipForm()
    main.show()
    sys.exit(app.exec_())

效果: 

#为控件添加提示信息
import sys
from PyQt5.QtWidgets import QHBoxLayout,QWidget,QToolTip,QPushButton,QApplication, QMainWindow
from PyQt5.QtGui import QIcon
from PyQt5.QtGui import QFont


class TooltipForm(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        QToolTip.setFont(QFont("SanSerif",12))#设置字体与大小
        self.setToolTip("今天是<b>星期五</b>") #设置提示信息为粗体
        self.setGeometry(300,300,400,300)
        self.setWindowTitle("设置控件提示消息")
        # 添加Button
        self.button1 = QPushButton("我的按钮")
        self.button1.setToolTip("这是一个按钮")

        # 创建水平布局
        layout = QHBoxLayout()
        layout.addWidget(self.button1)  # 把button1放在水平布局是哪个

        # 把水平布局放在主框架上
        mainFrame = QWidget()  # 让充满屏幕
        mainFrame.setLayout(layout)
        self.setCentralWidget(mainFrame)  # 让主框架放在整个窗口上

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = TooltipForm()
    main.show()
    sys.exit(app.exec_())

效果: 

 

二十.QLabel控件的基本用法

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

setIndent(): 设置文本缩进

text(): 获取文本内容

setBuddy(): 设置伙伴关系

setText():设置文本内容

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

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

'''
setAlignment():设置文本的对齐方式
setIndent(): 设置文本缩进
text(): 获取文本内容
setBuddy(): 设置伙伴关系
setText():设置文本内容
selectText():返回所选择的字符
setWordWrap():设置是否允许换行
QLabel常用的信号(事件):
1.当鼠标滑过QLabel控件时触发:linkHovered
2.当鼠标单击QLabel控件时触发:linkActivated
'''
import sys
from PyQt5.QtWidgets import QLabel,QVBoxLayout,QWidget,QToolTip,QPushButton,QApplication, QMainWindow
from PyQt5.QtGui import QIcon
from PyQt5.QtGui import QPalette,QPixmap
from PyQt5.QtCore import Qt
class QLabelDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        #创建label
        label1 = QLabel(self)
        label2 = QLabel(self)
        label3 = QLabel(self)
        label4 = QLabel(self)

        label1.setText("<font color = yellow>这是一个文本标签(label1).</font>")
        label1.setAutoFillBackground(True)  #背景自动填充
        palette = QPalette()  #填充
        palette.setColor(QPalette.Window,Qt.blue) #设置label背景颜色
        label1.setPalette(palette) #调试板
        label1.setAlignment(Qt.AlignCenter)  #设置文字的对齐方式,文本居中对齐

        label2.setText("<a href= '#'>欢迎使用Python (label2)</a>")
        label3.setAlignment(Qt.AlignCenter)
        label3.setToolTip("这是一个图片标签(label2)")
        label3.setPixmap(QPixmap("./images/4.jpg"))
        #label4,要么触发单击事件,要么链接,只能二者选其一
        #如果设为True用浏览器打开网页,如果设为False,调用槽函数
        label4.setOpenExternalLinks(True)
        label4.setText("<a href= 'https://www.baidu.com/'> 感谢使用百度(label4) </a>")
        label4.setAlignment(Qt.AlignRight)
        label4.setToolTip("这是一个超级链接")

        #垂直布局
        vbox = QVBoxLayout()
        vbox.addWidget(label1)
        vbox.addWidget(label2)
        vbox.addWidget(label3)
        vbox.addWidget(label4)

        #将linkHovered信号绑定到self.linkHovered槽函数上
        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)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = QLabelDemo()
    main.show()
    sys.exit(app.exec_())

效果: 

 

二十一. QLabel与伙伴控件

热键:ALT+()

mainLayout.addWidget(控件名,控件位置行索引,控件位置行索引,控件占几行,控件占几列)

#栅格布局
mainLayout = QGridLayout(self)
mainLayout.addWidget(nameLabel,0,0)  #(0,0)表示放在一行一列
mainLayout.addWidget(nameLineEdit,0,1,1,2)#(0,1,1,2)表示放在第一行的第二列,占1行两列
mainLayout.addWidget(passwordLabel,1,0) #(1,0)表示第二行第一列
mainLayout.addWidget(passwordLineEdit,1,1,1,2)  #(1,1,1,2)表示在第二行的第二列,占一行两列
'''
QLabel与伙伴控件
mainLayout.addWidget(控件名,控件位置行索引,控件位置行索引,控件占几行,控件占几列)
'''
from PyQt5.QtWidgets import *
import sys
from PyQt5.QtGui import QIcon
class QLabelBuddy(QDialog) :
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        self.setWindowTitle("QLabel与伙伴控件")
        #创建两个控件
        nameLabel = QLabel('&Name',self)
        nameLineEdit = QLineEdit(self)
        #设置伙伴控件
        nameLabel.setBuddy(nameLineEdit)

        #输入密码
        passwordLabel = QLabel('&Password', self)
        passwordLineEdit = QLineEdit(self)
        # 设置伙伴控件
        passwordLabel.setBuddy(passwordLineEdit)
        #创建按钮
        btnOK = QPushButton("&OK")
        btnCancel = QPushButton("&Cancel")

        #栅格布局
        mainLayout = QGridLayout(self)
        mainLayout.addWidget(nameLabel,0,0)  #(0,0)表示放在一行一列
        mainLayout.addWidget(nameLineEdit,0,1,1,2)#(0,1,1,2)表示放在第一行的第二列,占1行两列
        mainLayout.addWidget(passwordLabel,1,0) #(1,0)表示第二行第一列
        mainLayout.addWidget(passwordLineEdit,1,1,1,2)  #(1,1,1,2)表示在第二行的第二列,占一行两列

        mainLayout.addWidget(btnOK,2,1)
        mainLayout.addWidget(btnCancel,2,2)

if  __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = QLabelBuddy()
    main.show()
    sys.exit(app.exec_())
#ALT+N,ALT+P

效果:alt+p,alt+n上下跳转 

 

二十二.限制QLineEdit控件的输入

限制QLineEdit控件的输入(校验器)
如限制只能输入整数,浮点数或满足一定条件的字符串
'''
限制QLineEdit控件的输入(校验器)
如现在只能输入整数,浮点数或满足一定条件的字符串

'''
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegExpValidator
from PyQt5.QtCore import QRegExp
import  sys
class QLineEditValidator(QWidget):
    def __init__(self):
        super(QLineEditValidator,self).__init__()
        self.setWindowTitle("校验器")
        self.initUI()
    def initUI(self):
        #创建表单布局
        formLayout = QFormLayout()

        intLineEdit = QLineEdit()
        doubleLineEdit = QLineEdit()
        validatorLineEdit = QLineEdit()

        formLayout.addRow("整数类型",intLineEdit)
        formLayout.addRow("浮点类型",doubleLineEdit)
        formLayout.addRow("数字和字母",validatorLineEdit)

        intLineEdit.setPlaceholderText("整型")
        doubleLineEdit.setPlaceholderText("浮点型")
        validatorLineEdit.setPlaceholderText("数字和字母")

        #整型校验器[1,99]
        intValidator = QIntValidator(self)
        intValidator.setRange(1,99)

        #浮点校验器[-360,360],精度:小数点后两位
        doubleValidator = QDoubleValidator(self)
        doubleValidator.setRange(-360,360)
        doubleValidator.setNotation(QDoubleValidator.StandardNotation)
        #设置精度,小数点2位
        doubleValidator.setDecimals(2)

        #字符和数字 ,正则
        reg = QRegExp('[a-zA-Z0-9]+$')
        validator = QRegExpValidator(self)
        validator.setRegExp(reg)

        #设置校验器
        intLineEdit.setValidator(intValidator)
        doubleLineEdit.setValidator(doubleValidator)
        validatorLineEdit.setValidator(validator)

        self.setLayout(formLayout)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = QLineEditValidator()
    main.show()
    sys.exit(app.exec_())

 

二十三.QLineEdit综合案例

'''
QLineEdit综合案例
'''
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import Qt
import sys

class QLineEditDemo(QWidget):
    def __init__(self):
        super(QLineEditDemo, self).__init__()
        self.initUI()
    def initUI(self):
        edit1 = QLineEdit()
        #使用int校验器
        edit1.setValidator(QIntValidator())
        edit1.setMaxLength(4) #不超过9999
        edit1.setAlignment(Qt.AlignCenter)
        edit1.setFont(QFont("Arial",20))

        #浮点数的校验器
        edit2 = QLineEdit()
        edit2.setValidator(QDoubleValidator(0.99,99.99,2))

        #掩码
        edit3 = QLineEdit()
        edit3.setInputMask('99_9999_999999;#')

        #绑定信号和槽(文本变化时,触发事件)
        edit4 = QLineEdit()
        edit4.textChanged.connect(self.textChanged)

        edit5 = QLineEdit()
        edit5.setEchoMode(QLineEdit.Password)
        edit5.editingFinished.connect(self.enterPress)
        #设置为只读
        edit6 = QLineEdit("Hello PyQt5")
        edit6.setReadOnly(True)

        formLayout = QFormLayout()
        formLayout.addRow("整数校验",edit1)
        formLayout.addRow("浮点数校验", edit2)
        formLayout.addRow("Input Mask", edit3)
        formLayout.addRow("文本变化", edit4)
        formLayout.addRow("密码", edit5)
        formLayout.addRow("只读", edit6)
        self.setLayout(formLayout)
        self.setWindowTitle("QLineEdit综合案例")


    def textChanged(self,text):
        print('输入的内容:'+ text)
    def enterPress(self):
        print("已输入值")
if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = QLineEditDemo()
    main.show()
    sys.exit(app.exec_())

效果:

 

 

二十四.QTextEdit控制输入多行文本

'''
QTextEdit控件
'''
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegExpValidator
from PyQt5.QtCore import QRegExp
import  sys
class QTextEditDemo(QWidget):
    def __init__(self):
        super(QTextEditDemo,self).__init__()
        self.initUI()
    def initUI(self):
        self.setWindowTitle("QTextEdit控件演示")
        self.resize(300,320)
        self.textEdit = QTextEdit()
        self.buttonText = QPushButton("显示文本")
        self.buttonHTML = QPushButton("显示HTML")

        self.buttonToText = QPushButton("获取文本")
        self.buttonToHTML = QPushButton("获取HTML")

        layout = QVBoxLayout()
        layout.addWidget(self.textEdit)
        layout.addWidget(self.buttonText)
        layout.addWidget(self.buttonHTML)

        layout.addWidget(self.buttonToText)
        layout.addWidget(self.buttonToHTML)
        self.setLayout(layout)
        self.buttonToText.clicked.connect(self.onClick_ButtonToText)
        self.buttonToHTML.clicked.connect(self.onClick_ButtonToHTML)

        self.buttonText.clicked.connect(self.onClick_ButtonText)
        self.buttonHTML.clicked.connect(self.onClick_ButtonHTML)
    def onClick_ButtonText(self):
        self.textEdit.setPlainText("Hello World")
    def onClick_ButtonHTML(self):
        self.textEdit.setHtml('<font color= "blue" size ="5">Hello World!!!           How are you?</font>')
    def onClick_ButtonToText(self):
        print(self.textEdit.toPlainText())
    def onClick_ButtonToHTML(self):
        print(self.textEdit.toHtml())
if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = QTextEditDemo()
    main.show()
    sys.exit(app.exec_())

 

二十五. 按钮控件

ctrl+鼠标左键选中——》查看该方法的源码

'''
按钮控件(QPushButton)
QAstractButton

QPushButton
AToolButton
QRadioButton
QCheckBox
'''
import sys

from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class QPushButtonDemo(QDialog):#对话框
    def __init__(self):
        super(QPushButtonDemo,self).__init__()
        self.initUI()
    def initUI(self):
        self.setWindowTitle("QPushButton Demo")
        #垂直布局
        layout = QVBoxLayout()
        self.button1 = QPushButton("第一个按钮")
        self.button1.setText("First Button1")
        self.button1.setCheckable(True)
        self.button1.toggle()#设置开关,第一次选中
        #让你传两个参数,lambda表达式,硬编码(直接调用whichButton方法)
        self.button1.clicked.connect(lambda:self.whichButton(self.button1))
        self.button1.clicked.connect(self.buttonState)
        layout.addWidget(self.button1)

        #在文本前面显示图像
        self.button2 = QPushButton("图像按钮")
        self.button2.setIcon(QIcon(QPixmap("./images/7.jpg")))
        self.button2.clicked.connect(lambda :self.whichButton(self.button2))
        layout.addWidget(self.button2)

        #设置按钮不可用
        self.button3 = QPushButton("不可用的按钮")
        self.button3.setEnabled(False)
        layout.addWidget(self.button3)

        self.button4 = QPushButton('&MyButton')
        self.button4.setDefault(True)
        self.button4.clicked.connect(lambda :self.whichButton(self.button4))
        layout.addWidget(self.button4)
        self.setLayout(layout)
        self.resize(400,300)
    def whichButton(self,btn):
        print('被单击的按钮是<' + btn.text()+ '>')
    def buttonState(self):
        if self.button1.isCheckable():
            print("按钮1已经被选中")
        else:
            print("按钮1未被选中")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = QPushButtonDemo()
    main.show()
    sys.exit(app.exec_())



 

二十六.使用QDialog显示通用对话框

'''
使用 QDialog显示通用对话框
基类 QDialog,在此基础上有扩展了4个
QMessageBox 消息对话框
QColorDialog 颜色对话框
QFontDialog 字体对话框
QInputDialog 获取用户输入信息的对话框
窗口
QMainWindow
QWidget
QDialog  没有菜单
'''
#主窗口中点击按钮显示对话框
import sys

from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class QDialogDemo(QMainWindow):
    def __init__(self):
        super(QDialogDemo,self).__init__()
        self.initUI()
    def initUI(self):
        self.setWindowTitle("QDialog案例")
        self.resize(300,200)
        #常见button
        self.button  =  QPushButton(self)
        self.button.setText("弹出对话框")
        self.button.move(50,50)
        self.button.clicked.connect(self.showDialog)
    def showDialog(self):
        dialog = QDialog()
        button =  QPushButton("确定",dialog)
        button.clicked.connect(dialog.close)
        button.move(50,50)
        dialog.setWindowTitle("对话框")
        dialog.setWindowModality(Qt.ApplicationModal) #设置模式

        dialog.exec()  #显示对话框


if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = QDialogDemo()
    main.show()
    sys.exit(app.exec_())

效果:

 

二十七.显示不同类型的消息对话框

'''
显示不同类型的消息对话框
消息对话框:QMessageBox
1.关于对话框
2.错误对话框
3,警告对话框
4.提问对话框
5.消息对话框

有两点差异
1.显示的对话框图标可能不同
2.显示的按钮是不一样的
'''
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class QMessageBoxDemo(QWidget):
    def __init__(self):
        super(QMessageBoxDemo,self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle("QMessageBox 案例")
        self.resize(300,400)
        #垂直布局
        layout = QVBoxLayout()
        self.button1 = QPushButton()
        self.button1.setText("显示对话框")
        self.button1.clicked.connect(self.showDialog)

        layout = QVBoxLayout()
        #关于对话框
        self.button1 = QPushButton()
        self.button1.setText("显示关于对话框")
        self.button1.clicked.connect(self.showDialog)
        #显示消息对话框
        self.button2 = QPushButton()
        self.button2.setText("显示消息对话框")
        self.button2.clicked.connect(self.showDialog) #所有都绑定到一个槽上
        #显示警告对话框
        self.button3 = QPushButton()
        self.button3.setText("显示警告对话框")
        self.button3.clicked.connect(self.showDialog)
        #显示错误对话框
        self.button4 = QPushButton()
        self.button4.setText("显示错误对话框")
        self.button4.clicked.connect(self.showDialog)  # 所有都
        #显示提问对话框
        self.button5 = QPushButton()
        self.button5.setText("显示提问对话框")
        self.button5.clicked.connect(self.showDialog)  # 所有都

        layout.addWidget(self.button1)
        layout.addWidget(self.button2)
        layout.addWidget(self.button3)
        layout.addWidget(self.button4)
        layout.addWidget(self.button5)
        self.setLayout(layout)
    def showDialog(self):
        text = self.sender().text()
        if text == "显示关于对话框":
            QMessageBox.about(self,"关于","这是一个关于对话框")
        elif text =="显示消息对话框":
            reply = QMessageBox.information(self,"消息","这是一个消息对话框",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
            print(reply == QMessageBox.Yes)
        elif text =="显示警告对话框":
            QMessageBox.warning(self,"警告","这是一个警告对话框",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
        elif text == "显示错误对话框":
            QMessageBox.critical(self, "错误", "这是一个错误对话框", QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
        elif text =="显示提问对话框":
            QMessageBox.question(self,"提问","这是一个提问对话框",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = QMessageBoxDemo()
    main.show()
    sys.exit(app.exec_())

 

二十八.显示不同类型的消息对话框

'''
输入对话框 :QInputDialog
QInputDialog.getItem用来显示输入列表
QInputDialog.getText
QInputDialog.getInt 与计数器控件有关

'''
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class QInputDialogDemo(QWidget):
    def __init__(self):
        super(QInputDialogDemo,self).__init__()
        self.initUI()
    def initUI(self):
        self.setWindowTitle("输入对话框")
        #创建表单布局
        layout = QFormLayout()
        self.button1 = QPushButton("获取列表中的选项")
        self.button1.clicked.connect(self.getItem)
        self.lineEdit1 = QLineEdit()
        layout.addRow(self.button1,self.lineEdit1)

        self.button2 = QPushButton("获取字符串")
        self.button2.clicked.connect(self.getText)
        self.lineEdit2 = QLineEdit()
        layout.addRow(self.button2, self.lineEdit2)

        self.button3 = QPushButton("获取整数")
        self.button3.clicked.connect(self.getInt)
        self.lineEdit3 = QLineEdit()
        layout.addRow(self.button3, self.lineEdit3)

        self.setLayout(layout)

    def getItem(self):
        items = ("C","C++","Python","Java","Rudy")
        item,ok = QInputDialog.getItem(self,"请选择编程语言","语言列表",items)
        if ok and item:
            self.lineEdit1.setText(item)
    def getText(self):
        text, ok = QInputDialog.getText(self, "文本输入框", "输入姓名")
        if ok and text:
            self.lineEdit2.setText(text)
    def getInt(self):
        num,ok = QInputDialog.getInt(self,"整数输入框","输入数字")
        if ok and num:
            self.lineEdit3.setText(str(num))



if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = QInputDialogDemo()
    main.show()
    sys.exit(app.exec_())

效果: 

 

二十九.文件对话框

'''
文件对话框:QFileDialog

'''
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class QFileDialogDemo(QWidget):
    def __init__(self):
        super(QFileDialogDemo,self).__init__()
        self.initUI()
    def initUI(self):
        #垂直布局
        layout = QVBoxLayout()
        self.button1 = QPushButton("加载图片")
        self.button1.clicked.connect(self.loadImage)
        layout.addWidget(self.button1)

        self.imageLabel = QLabel()
        layout.addWidget(self.imageLabel)

        self.button2 = QPushButton("加载文本文件")
        self.button2.clicked.connect(self.loadText)
        layout.addWidget(self.button2)

        self.contents = QTextEdit()
        layout.addWidget(self.contents)
        self.setLayout(layout)
        self.setWindowTitle("文件对话框演示")

    def loadImage(self):
        # 选择单个文件
        fname, _ = QFileDialog.getOpenFileName(self, "打开文件", ".", "图像文件(*.jpg *.png)")
        self.imageLabel.setPixmap(QPixmap(fname))


    def loadText(self):
        dialog = QFileDialog()
        dialog.setFileMode(QFileDialog.AnyFile)
        dialog.setFilter(QDir.Files)
        if dialog.exec():
            filenames = dialog.selectedFiles()
            f= open(filenames[0],encoding='utf-8',mode="r")
            with f:
                data = f.read()
                self.contents.setText(data)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = QFileDialogDemo()
    main.show()
    sys.exit(app.exec_())

效果:

 

三十.选项卡控件

'''
选项卡控件:QTabWidget

'''
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class TabWidgetDemo(QTabWidget):
    def __init__(self,parent=None):
        super(TabWidgetDemo,self).__init__(parent)
        self.setWindowTitle("选项卡控件:QTabWidget")
        #创建用于显示控件的窗口
        self.tab1 = QWidget()
        self.tab2 = QWidget()
        self.tab3 = QWidget()

        self.addTab(self.tab1,"选项卡1")
        self.addTab(self.tab2, "选项卡2")
        self.addTab(self.tab3, "选项卡3")
        self.tab1UI()
        self.tab2UI()
        self.tab3UI()
    def tab1UI(self):
        #表单布局
        layout = QFormLayout()
        layout.addRow("姓名",QLineEdit())
        layout.addRow("地址", QLineEdit())
        self.setTabText(0,"联系方式")
        self.tab1.setLayout(layout)

    def tab2UI(self):
        #水平布局
        layout = QFormLayout()
        sex = QHBoxLayout()
        sex.addWidget(QRadioButton("男"))
        sex.addWidget(QRadioButton("女"))
        layout.addRow(QLabel("性别"),sex)
        layout.addRow("生日",QLineEdit())
        self.setTabText(1,"个人详细信息")
        self.tab2.setLayout(layout)

    def tab3UI(self):
        #水平布局
        layout = QHBoxLayout()
        layout.addWidget(QLabel("科目"))
        layout.addWidget(QCheckBox("物理"))
        layout.addWidget(QCheckBox("高数"))
        self.setTabText(2, "教育程度")
        self.tab3.setLayout(layout)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = TabWidgetDemo()
    main.show()
    sys.exit(app.exec_())

效果: 

 

三十一.堆栈窗口控件

'''
堆栈窗口控件(QStackeWidget)

'''
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class QStackeWidgetDemo(QWidget):
    def __init__(self):
        super(QStackeWidgetDemo,self).__init__()
        self.setGeometry(300,50,10,10)
        self.setWindowTitle("堆栈窗口控件:QStackeWidget")

        self.list = QListWidget()
        self.list.insertItem(0,"联系方式")
        self.list.insertItem(1, "个人信息")
        self.list.insertItem(2, "教育程度")

        #三个页面
        self.stack1 = QWidget()  #对于一个页面的窗口
        self.stack2 = QWidget()
        self.stack3 = QWidget()

        self.tab1UI()  #通过这三个方法,给每一页添加控件
        self.tab2UI()
        self.tab3UI()
        self.stack = QStackedWidget()
        self.stack.addWidget(self.stack1)  #添加至堆栈中
        self.stack.addWidget(self.stack2)
        self.stack.addWidget(self.stack3)

        hbox = QHBoxLayout()
        hbox.addWidget(self.list)
        hbox.addWidget(self.stack)
        self.setLayout(hbox)
        self.list.currentRowChanged.connect(self.display)
    #通过这个函数来切换索引
    def display(self,index):
        self.stack.setCurrentIndex(index)


    def tab1UI(self):
        #表单布局
        layout = QFormLayout()
        layout.addRow("姓名",QLineEdit())
        layout.addRow("地址", QLineEdit())
        self.stack1.setLayout(layout)

    def tab2UI(self):
        #水平布局
        layout = QFormLayout()
        sex = QHBoxLayout()
        sex.addWidget(QRadioButton("男"))
        sex.addWidget(QRadioButton("女"))
        layout.addRow(QLabel("性别"),sex)
        layout.addRow("生日",QLineEdit())
        self.stack2.setLayout(layout)

    def tab3UI(self):
        #水平布局
        layout = QHBoxLayout()
        layout.addWidget(QLabel("科目"))
        layout.addWidget(QCheckBox("物理"))
        layout.addWidget(QCheckBox("高数"))
        self.stack3.setLayout(layout)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = QStackeWidgetDemo()
    main.show()
    sys.exit(app.exec_())

效果: 

 

 三十二.停靠控件

'''
停靠部件QDockWidget

'''
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class DockDemo(QMainWindow):
    def __init__(self,parent=None):
        super(DockDemo,self).__init__(parent)
        self.setWindowTitle("停靠控件:QDockWidget")

        layout = QHBoxLayout()
        self.items = QDockWidget("Dockable",self)
        self.listWidget = QListWidget()
        self.listWidget.addItem("item1")
        self.listWidget.addItem("item2")
        self.listWidget.addItem("item3")

        self.items.setWidget(self.listWidget)
        self.setCentralWidget(QLineEdit())
        self.items.setFloating(True)
        self.addDockWidget(Qt.RightDockWidgetArea,self.items)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = DockDemo()
    main.show()
    sys.exit(app.exec_())

效果:

 

三十三.容纳多文档的窗口

'''
容纳多文档的窗口
容纳多文档的 QMdiArea
多文档子窗口类 QMdiSubWindow
将QMdiSubWindow添加至QMdiArea中
'''
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class MultiDemo(QMainWindow):
    count = 0
    def __init__(self,parent=None):
        super(MultiDemo,self).__init__(parent)
        self.setWindowTitle("容纳多文档的窗口")
        #层叠,平铺
        self.mdi = QMdiArea()
        self.setCentralWidget(self.mdi)

        bar = self.menuBar()
        file = bar.addMenu("File")
        file.addAction("New")  #新创建窗口
        file.addAction("cascade")  #显示方式,层叠
        file.addAction("Tiled")#显示方式,平铺
        file.triggered.connect(self.windowaction)

    def windowaction(self,q):
        print(q.text())
        if q.text() == "New":
            MultiDemo.count = MultiDemo.count +1
            sub = QMdiSubWindow()
            sub.setWidget(QTextEdit())
            sub.setWindowTitle("子窗口"+str(MultiDemo.count))
            self.mdi.addSubWindow(sub)
            sub.show()
        elif q.text() =="cascade":
            self.mdi.cascadeSubWindows()
        elif q.text() =="Tiled":
            self.mdi.tileSubWindows()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./images/t10.ico'))
    main = MultiDemo()
    main.show()
    sys.exit(app.exec_())

效果:

 

【YOLO系列】YOLOv5详细解读(源码详解+入门实践+改进)
路人贾的博客
03-03 14万+
一文带你详细了解YOLOv5(YOLO系列论文讲解+源码详解+入门实践+算法改进)
PyQt5入门教程
01-30
pyqt5入门教程,pdf文档,避免图片和文字排版太乱,由于原来的资料保存的word,部分图片丢失,再也无法找到,以后找到会补上。 当然还是要感谢原作者
pyqt5 combobox控件默认不选择任何选项_《快速掌握PyQt5》第二十九章 国际化
weixin_39717825的博客
11-27 649
程序界面如果只能显示一种语言的话,那以后怎么能走向国际呢~所以这章就来帮助大家了解下怎么给程序添加其他语种。笔者发现,为了实现程序动态切换语种的功能,大部分人目前是通过Qt Designer完成界面,并在逻辑代码中调用retranslateUi()方法来实现界面更新,从而达到动态切换语种的目的(许多人也认为这是唯一方法)。但是有部分小伙伴不喜欢用Qt Designer,并想能不能不借助Qt Des...
学习pyqt5相关知识回顾
最新发布
m0_68716275的博客
09-11 771
1) 模块:是一系列功能的集合体,模块名.功能名,就可以使用模块的功能2) 首次导入模块,就会立即执行模块里面的内容3) 当前名称空间会产生一个名字module,指向module.py产生的名称空间.我们可以使用module.name/函数名,来调用module.py里面的内容.modlue.py文件的内存地址引用变为0的时候,该名称空间才会被回收.就是模块测试.py文件运行完毕的时候4) 在函数内部导入模块,这个模块名是属于函数局部名称空间的,其他地方是访问不到的.
PyQt5教程——介绍(1)
weixin_34195546的博客
04-28 227
PyQt5教程阅读须知 “PyQt5教程”系列若不做明显提示,默认翻译自zetcode。 有需要翻译精度的朋友可以自行阅读英文文档。 如果本系列博文侵犯了您的合法权益,请在博客中留下评论或联系:chen_dev@outlook.com。我会及时修改和删除。 本PyQt5教程系列其他博文中将不做另外声明。 PyQt5介绍 这是一份PyQt5的教程。教程的目的是让你开始学会使用...
pyqt5
icanactnow
09-21 494
安装 pip 安装真麻烦直接,exe安装 安装参考
pyqt5 combobox控件默认不选择任何选项_懒猪细说TextBox控件
weixin_39578457的博客
12-04 1550
在Visual Basic环境下,大家都晓得TextBox控件主要的作用是接收用户输入、编辑和修改的内容,或者显示程序输出的信息,这个控件体现了程序与用户的交互性,懒猪今天来细说一下TextBox控件主要的用法和功能限制文本框内输入字符的数量应用实例登录系统需要输入用户名和密码,使用TextBox控件的限制功能来限制用户输入用户名和密码的字符数量,限制密码框中输入的字符数量不过6位,当用户输入的...
pyqt5详细教程
11-22 8207
pyqt是一个用于创建GUI应用程序的跨平台工具包,它将python与qt库融为一体。也就是说,pyqt允许使用python语言调用qt库中的API。这样做的最大好处就是在保存了qt高运行效率的同时,大大提高开发效率。因为,使用python语言开发程序要比使用c++语言开发程序快的多。pyqt对qt做了完整的封装,几乎可以用pyqt做qt能做的任何事情。由于目前最新的pyqt版本是5.11,所以习惯上称呼为pyqt为pyqt5
基于PYQT5的手写数字识别UI设计及模型实现
02-09
本文将详细讲解基于PyQt5的手写数字识别UI设计及模型实现的相关知识点,涉及Python编程、机器学习模型(包括KNN、MLP和SVM)以及PyQt5库的使用。 首先,PyQt5是Python中一个强大的图形用户界面(GUI)开发库,它...
基于Python中PyQt5实现简易浏览器
06-01
通过这个项目,我们可以学习到PyQt5基础知识,包括窗口布局、按钮、文本框以及网络请求等核心概念。 首先,我们需要导入必要的PyQt5模块。`QApplication` 是应用程序的核心,`QMainWindow` 用于创建主窗口,`...
PyQt5+VGG实现手写数字识别GUI
CSDN 精品推荐
04-04 561
本项目旨在使用PyQt5和VGG模型创建一个GUI应用程序,用于手写数字识别。用户可以在GUI界面中上传一个手写数字,并通过点击上传图片按钮来进行数字识别。该应用程序使用VGG模型进行数字分类,并将识别结果显示在GUI上。
PyQt5 tutorial(PyQt5教程高清完全版)(英文)
09-12
Python GUI编程的最佳教程。用的是pyqt模块编程,学习起来比较轻松简单,涵盖了界面编程的基本知识,值的推荐和学习的好资料。
Qt Designer+PyQt5 控件使用经验(不定时随缘更新)
只要你是蓝吹我们就是朋友
12-07 2855
Qt Designer 灵活使用布局 使用ctrl键多选多个控件,可为选中的控件添加布局: 也可在上侧工具栏找到快捷图标: 以两个控件使用垂直布局(VerticalLayout)为例: 4个Margin属性 设置layout内四周的间隔,可以将此layout内控件与外部控件隔离开。 layoutSpacing属性 设置内部控件之间的间隔。 layoutStretch属性 调整内部控件站位比(上图显示:0,0,表面两个控件平分该布局空间),根据需要自行调整。 各控件使用各种layout布局整完后,可
PyQt 5 教程
03-01 2074
前言 笔记中有什么前言接触Python有一阵子了,由于我的工作内容是人力资源,所以不能像专业队员一样在实际切入相关项目。但对Python的热衷程度仍然不减,尤其是对GUI开发的喜爱。在众多GUI开发包中,毫无疑问的选择了Qt1,关于Qt是什么可以自行百度,或通过脚注进行了解(我也是粘贴的…)。那么针对Python语言,Phil Thompson进行了整合,进而形成了PyQt2。目前学习进度比较缓慢,
PyQt5学习:入门知识
被一个OIER遗弃的一堆烂代码
07-27 355
C++的Qt做起来很麻烦,试试Python的PyQt,也许能从简单中明白C++Qt的逻辑。 Python版本:3.8 Qt版本:5.9 我找到了一本书,叫做《PyQt5快速开发与实战》——王硕,在当当就可以搜索到。如果你想要PDF免费版,来这里下载,这是我的Github仓库,Star一下不过分吧,这里有无数的Python资料&代码,一开始准备自用,后来开放了,白嫖也无妨,学习要共享????。 这个仓库300多MB,最好是下载ZIP,如果下载太慢可以Fork到自己的账号,然后倒入到码云下载,国内网站下
PyQt5--详解
weixin_44634704的博客
05-04 1236
水平布局 两种方法: 1.选中控件-->右键布局-->水平布局 2.layout的horizontal -->将部件拖进去 # 可以根据窗口大小来自适应控件大小 【注】转为py文件后,尽可能新建一个py文件去继承刚才转化的py代码类 ui转py文件代码: from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWind
写一段代码使用qyqt显示png格式图片
04-22
好的,以下是一段使用 PyQt5 显示 PNG 格式图片的示例代码: ```python import sys from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import QApplication, QLabel app = QApplication(sys.argv) # 加载图片 pixmap = QPixmap('example.png') # 创建标签并显示图片 label = QLabel() label.setPixmap(pixmap) label.show() sys.exit(app.exec_()) ``` 其中,`example.png` 是你要显示的 PNG 格式图片的文件路径。但需要注意的是,为了运行该代码,你需要在系统中安装并配置好 PyQt5 库。
写文章

热门文章

  • PyQt5基础知识 超详细!!!(含代码) 95625
  • exit()函数 32762
  • 顺序线性表的插入,删除操作(完整代码) 30222
  • Verilog HDL三种描述方式 16904
  • PTA题目整理(java) 16427

分类专栏

  • LeetCode 13篇
  • 网页设计 4篇
  • 硬件 8篇
  • NLP 1篇
  • 其他
  • 深度学习 9篇
  • 数据结构 11篇
  • python 14篇
  • java 44篇
  • 数据库 6篇
  • Linux 3篇
  • 软件工程 2篇

最新评论

  • 顺序线性表的查找操作(完整代码)

    java—之父: (*compare)在第二十行为啥式这种形式

  • Java_管家婆项目(三十一)——管家婆家庭记账软件(项目环境搭建、功能模块、代码)、后附网盘链接

    m0_74893724: 这个代码很好,感谢大佬!

  • exit()函数

    第一次活,手忙脚乱: 异常退出是什么意思

  • PyQt5基础知识 超详细!!!(含代码)

    失心疯_2023: 博主文章写的非常详细,对各个知识点进行了详细的分析讲解!学到了很多新的知识点!感谢博主分享! ============================================= 资源下载合集:https://blog.csdn.net/weixin_50296259/article/details/130674430 PyQt5文章合集:https://blog.csdn.net/weixin_50296259/article/details/130674350

  • python-用户登录(三次机会)

    李yq: 给个定义吧

最新文章

  • 背包问题(416,494,474,322,518,139)
  • Hot100(二)
  • linux下部署项目、redis介绍
2022年2篇
2021年41篇
2020年33篇
2019年3篇
2018年36篇

目录

目录

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家主题玻璃钢卡通雕塑销售厂定西玻璃钢动物雕塑设计河源玻璃钢透光雕塑公司肥城玻璃钢雕塑佛山玻璃钢雕塑艺术品临沧商场美陈展示长沙玻璃钢彩绘雕塑加工玻璃钢彩绘雕塑咨询电话哪里的商场美陈做得好白城玻璃钢花盆定制商场美陈是做什么的江西商场卡通雕塑美陈上海玻璃钢雕塑采购厦门玻璃钢卡通雕塑生产玻璃钢牙齿卡通雕塑广东艺术商场美陈厂家直销湛江欧式玻璃钢卡通雕塑益阳玻璃钢雕塑供应河源创新的玻璃钢雕塑佛山玻璃钢公仔雕塑玻璃钢雕塑外星人造形大型玻璃钢雕塑性价比哪个好广东玻璃钢雕塑摆件制造商场玻璃钢企业吉祥物雕塑石家庄泡沫玻璃钢雕塑定西玻璃钢动物雕塑多少钱砀山制作玻璃钢雕塑报价价格清远玻璃钢马雕塑菏泽玻璃钢人物不锈钢园林雕塑动漫蜘蛛侠玻璃钢雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化