过年的时候学习啦pyqt,不怎么用,都快忘记知识点啦。
开始写下吧,好记性不如烂笔头。

窗口类控件

QMainWindow
详细描述

QMainWindow类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。

主窗口通常用在提供一个大的中央窗口部件(例如文本编辑或者绘制画布)以及周围菜单、工具条和一个状态条。QMainWindow常常被继承,因为这使得封装中央部件、菜单和工具条以及窗口状态变得更容易。继承使创建当用户点击菜单项或者工具条按钮时被调用的槽成为可能。你也可以使用Qt设计器来创建主窗口。我们将简要地回顾一下有关添加菜单项和工具条按钮,然后描述QMainWindow自己的便捷。

QWidget类是所有用户界面对象的基类。
窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。

QDialog是最普通的顶级窗口。不被嵌入到一个父窗口部件的窗口部件被叫做顶级窗口部件。通常情况下,顶级窗口部件是有框架和标题栏的窗口(尽管如果使用了一定的窗口部件标记,创建顶级窗口部件时也可能没有这些装饰。)在Qt中,QMainWindow和和不同的QDialog的子类是最普通的顶级窗口。


PyQT5中主窗口例子

'''【简介】PyQT5中主窗口例子
'''import sys
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.QtGui import QIconclass MainWidget(QMainWindow):def __init__(self, parent=None):super(MainWidget, self).__init__(parent)# 设置主窗体标签self.setWindowTitle("QMainWindow 例子")self.resize(400, 200)self.status = self.statusBar()self.status.showMessage("这是状态栏提示", 5000)#5秒显示if __name__ == "__main__":app = QApplication(sys.argv)app.setWindowIcon(QIcon("limi.jpg"))main = MainWidget()main.show()sys.exit(app.exec_())

将窗口放在中间
QDesktopWidget

# -*- coding: utf-8 -*-'''【简介】PyQT5将窗口放在屏幕中间例子'''from PyQt5.QtWidgets import QDesktopWidget, QApplication ,QMainWindow
import sys  class Winform( QMainWindow): def __init__(self, parent=None):super( Winform, self).__init__(parent)self.setWindowTitle('主窗口放在屏幕中间例子')  self.resize(370,  250)  self.center()  def center(self):  screen = QDesktopWidget().screenGeometry() #屏膜 size = self.geometry()  #窗口      self.move((screen.width() - size.width()) / 2,  (screen.height() - size.height()) / 2)  if __name__ == "__main__": app = QApplication(sys.argv)   win = Winform()  win.show()  sys.exit(app.exec_())

screen = QDesktopWidget().screenGeometry() #屏膜
size = self.geometry() #窗口

关闭主窗口

# -*- coding: utf-8 -*-
'''【简介】PyQT5中关闭窗体例子'''from PyQt5.QtWidgets import QMainWindow,QHBoxLayout, QPushButton ,  QApplication, QWidget
import sys class WinForm(QMainWindow):  def __init__(self, parent=None):  super(WinForm, self).__init__(parent)self.resize(330,  100)  self.setWindowTitle('关闭主窗口例子')        self.button1 = QPushButton('关闭主窗口')          self.button1.clicked.connect(self.onButtonClick) layout = QHBoxLayout()  #水平布局layout.addWidget(self.button1)  main_frame = QWidget()  main_frame.setLayout(layout)    self.setCentralWidget(main_frame)  def onButtonClick(self ):  #sender 是发送信号的对象,此处发送信号的对象是button1按钮 sender = self.sender()         print( sender.text() + ' 被按下了' )  qApp = QApplication.instance()qApp.quit()
if __name__ == "__main__":  app = QApplication(sys.argv)  form = WinForm()  form.show()  sys.exit(app.exec_())

为窗口设置图标

import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QWidget, QApplication# 1
class Icon(QWidget):def __init__(self, parent=None):super(Icon, self).__init__(parent)self.initUI()# 2def initUI(self):self.setGeometry(300, 300, 250, 150)#设置窗口显示位置,x,y,w,hself.setWindowTitle('演示程序图标例子')self.setWindowIcon(QIcon('yangmi.jpg'))if __name__ == '__main__':app = QApplication(sys.argv)icon = Icon()icon.show()sys.exit(app.exec_())

显示气泡提示信息

# -*- coding: utf-8 -*-'''【简介】PyQT5中气泡提示'''import sys
from PyQt5.QtWidgets import QWidget, QToolTip, QApplication,QPushButton,QHBoxLayout
from PyQt5.QtGui import QFontclass Winform(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):QToolTip.setFont(QFont('SansSerif', 10))self.button1 = QPushButton('我是按钮')self.button1.setToolTip('这是一个按钮')self.setGeometry(200, 300, 400, 400)#x,y,w,hself.setWindowTitle('气泡提示demo')layout = QHBoxLayout()#水平布局layout.addWidget(self.button1)self.setLayout(layout)
if __name__ == '__main__':app = QApplication(sys.argv)win = Winform()win.show()sys.exit(app.exec_())

QLabel

方法 描述
setAlignment() 按固定值方式对齐文本
Qt.AlignLeft:水平方向靠左对齐
Qt.AlignRight:水平方向靠右对齐
Qt.AlignCenter:水平方向居中对齐
Qt.AlignJustify:水平方向调整间距两端对齐
Qt.AlignTop:垂直方向靠上对齐
Qt.AlignBottom:垂直方向靠下对齐
Qt.AlignVCenter:垂直方向居中对齐
serIndent() 设置文本缩进值
setPixmap() 设置QLabel为一个Pixmap图片
text() 获得Qlabel的文本内容
setText() 设置Qlabel的文本内容
selectedText() 返回所选择的字符
setBuddy() 设置QLabel的助记符及buddy(伙伴),及使用Qlabel设置快捷键,会在快捷键后将焦点设置到其buddy上,这里用到了Qlabel的交互控件功能 ,此外,buddy可以是任何一个widget控件,使用setBuddy(QWidget*)设置,其Qlabel必须是文本内容,并且使用“&”符号设置了助记符
setWordWrap() 设置是否允许换行

信号:
linkActiveted:当单击标签中的超链接,希望在新窗口打开这个超链接时,setOpenExternalLinks特性必须设置为True,setOpenExternalLinks(True)
linkHovered :当鼠标指针滑过标签中嵌入的超链接时,需要用槽函数与这个信号进行绑定

# -*- coding: utf-8 -*-'''【简介】PyQT5中Qlabel例子'''from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap, QPalette
import sysclass WindowDemo(QWidget):def __init__(self):super().__init__()label1 = QLabel(self)label2 = QLabel(self)label3 = QLabel(self)label4 = QLabel(self)# 1label1.setText("这是一个文本标签。")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("duoren.jpg"))label4.setText("<A href='https://blog.csdn.net/KOBEYU652453/'>欢迎访问总裁余的博客</a>")label4.setAlignment(Qt.AlignRight)label4.setToolTip('这是一个超链接标签')# 2vbox = QVBoxLayout()vbox.addWidget(label1)vbox.addStretch()vbox.addWidget(label2)vbox.addStretch()vbox.addWidget(label3)vbox.addStretch()vbox.addWidget(label4)# 3label1.setOpenExternalLinks(True)# 打开允许访问超链接,默认是不允许,需要使用 setOpenExternalLinks(True)允许浏览器访问超链接label4.setOpenExternalLinks(True)# 点击文本框绑定槽事件label4.linkActivated.connect(link_clicked)# 划过文本框绑定槽事件label2.linkHovered.connect(link_hovered)label1.setTextInteractionFlags(Qt.TextSelectableByMouse)self.setLayout(vbox)self.setWindowTitle("QLabel 例子")
def link_hovered():print("当鼠标滑过label-2标签时,触发事件。")def link_clicked():print("当鼠标点击label-4标签时,触发事件。")if __name__ == "__main__":app = QApplication(sys.argv)win = WindowDemo()win.show()sys.exit(app.exec_())

代码分析python label1.setAlignment(Qt.AlignCenter)设置文本居中,label1和label4设置啦超链接,label4.setOpenExternalLinks(True)可以在浏览器里打开这个链接。

Qlbel快捷键例子

# -*- coding: utf-8 -*-'''【简介】PyQt5中Qlabel例子按住 Alt + N , Alt + P , Alt + O , Alt + C 切换组件控件'''from PyQt5.QtWidgets import *
import sysclass QlabelDemo(QDialog):def __init__(self):super().__init__()self.setWindowTitle('Qlabel 例子')nameLb1 = QLabel('&Name', self)nameEd1 = QLineEdit(self)nameLb1.setBuddy(nameEd1)nameLb2 = QLabel('&Password', self)nameEd2 = QLineEdit(self)nameLb2.setBuddy(nameEd2)btnOk = QPushButton('&OK')btnCancel = QPushButton('&Cancel')mainLayout = QGridLayout(self)mainLayout.addWidget(nameLb1, 0, 0)mainLayout.addWidget(nameEd1, 0, 1, 1, 2)mainLayout.addWidget(nameLb2, 1, 0)mainLayout.addWidget(nameEd2, 1, 1, 1, 2)mainLayout.addWidget(btnOk, 2, 1)mainLayout.addWidget(btnCancel, 2, 2)def link_hovered():print("当鼠标滑过label-2标签时,触发事件。")def link_clicked():print("当鼠标点击label-4标签时,触发事件。")if __name__ == "__main__":app = QApplication(sys.argv)labelDemo = QlabelDemo()labelDemo.show()sys.exit(app.exec_())

PyQt5中Qlabel例子
按住 Alt + N , Alt + P , Alt + O , Alt + C 切换组件控件

QLineEdit

setText():设置文本
text():返回文本内容

# -*- coding: utf-8 -*-'''【简介】PyQt5中 QLineEdit例子'''from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QFormLayout
from PyQt5.QtGui import QIntValidator, QDoubleValidator, QFont
from PyQt5.QtCore import Qt
import sysclass lineEditDemo(QWidget):def __init__(self, parent=None):super(lineEditDemo, self).__init__(parent)e1 = QLineEdit()e1.setValidator(QIntValidator())e1.setMaxLength(4)e1.setAlignment(Qt.AlignRight)e1.setFont(QFont("Arial", 20))e2 = QLineEdit()e2.setValidator(QDoubleValidator(0.99, 99.99, 2))flo = QFormLayout()flo.addRow("integer validator", e1)flo.addRow("Double validator", e2)e3 = QLineEdit()e3.setInputMask('+99_9999_999999')flo.addRow("Input Mask", e3)e4 = QLineEdit()e4.textChanged.connect(self.textchanged)flo.addRow("Text changed", e4)e5 = QLineEdit()e5.setEchoMode(QLineEdit.Password)flo.addRow("Password", e5)e6 = QLineEdit("Hello PyQt5")e6.setReadOnly(True)flo.addRow("Read Only", e6)e5.editingFinished.connect(self.enterPress)self.setLayout(flo)self.setWindowTitle("QLineEdit例子")def textchanged(self, text):print("输入的内容为: " + text)def enterPress(self):print("已输入值")if __name__ == "__main__":app = QApplication(sys.argv)win = lineEditDemo()win.show()sys.exit(app.exec_())

在这个例子中,演示了使用QLineEdit对象的一些方法
第一个文本框e1,显示文本使用自定义字体,右对齐,允许输入整数
第二个文本框e2,限制输入小数点后两位
第三个文本框e3,需要一个输入掩码应用于电话号码
第四个文本框e4,需要发射信号textChanged,链接到槽函数textChanged()
第五个文本框e5,设置显示模式EchoMode为Password需要发射editingfinished信号连接到槽函数enterPress(),一旦用户按下回车键,该函数就会执行
第六个文本框e6,显示一个默认的文本,不能编辑,设置为只读

QTextEdit

常用方法:
setPlainText():设置多行文本框的内容。
toPlainText():返回多行文本框的文本内容。
setHtml():设置多行文本框的内容为HTML文档。
toHtml():返回多行文本框的HTML文档内容。
clear():清除多行文本框的内容。

-*- coding: utf-8 -*-'''【简介】PyQt5中 QTextEdit例子'''from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QVBoxLayout, QPushButton
import sysclass TextEditDemo(QWidget):def __init__(self, parent=None):super(TextEditDemo, self).__init__(parent)self.setWindowTitle("QTextEdit 例子")self.resize(300, 270)self.textEdit = QTextEdit()self.btnPress1 = QPushButton("显示文本")self.btnPress2 = QPushButton("显示HTML")layout = QVBoxLayout()layout.addWidget(self.textEdit)layout.addWidget(self.btnPress1)layout.addWidget(self.btnPress2)self.setLayout(layout)self.btnPress1.clicked.connect(self.btnPress1_Clicked)self.btnPress2.clicked.connect(self.btnPress2_Clicked)def btnPress1_Clicked(self):self.textEdit.setPlainText("Hello PyQt5!\n点击按钮")def btnPress2_Clicked(self):self.textEdit.setHtml("<font color='red' size='6'><red>Hello PyQt5!\n点击按钮。</font>")if __name__ == "__main__":app = QApplication(sys.argv)win = TextEditDemo()win.show()sys.exit(app.exec_())

后续持续将之前学习的qt,整理成笔记,方便以后查阅。
电气专业的计算机小白,写博文不容易。如果你觉得本文对你有用,请点个赞支持下。

pyqt5讲解1:窗口,QLabel,QLineEdit,QTextEdit相关推荐

  1. pyqt5讲解10:布局管理讲解大全

    一.绝对布局 使用move(x,y)的方法. 绝对布局: 如果改变屏膜的大小,控件的位置不会发生变化, 不同 屏膜显示有区别 # -*- coding: utf-8 -*-'''[简介]PyQT5中A ...

  2. PyQt5学习--基本窗口控件--QLabel

    参考书籍<PyQt5 快速开发与实战>王硕 孙洋洋 著 介绍 QLabel对象作为一个占位符可以显示不可编辑的文本或图片,也可以放置一个GIF动画,还可以被用作提示标记为其他控件.纯文本. ...

  3. PyQt5 第二章 窗口布局管理(二)

    2.2 布局管理 <零基础入门玩转 PyQt5> 邀请码: LWskm3AS 布局就是如何管理应用中的元素和窗口,有两种方式可以搞定:绝对定位和layout类 2.2.1 绝对定位 每个程 ...

  4. PyQt5第一部分-窗口类:QWidget, QDeskWidget, QTabWidget, QMainWindow, QDialog

    0 前言 1 控件的几何数据 QRect,QPoint,QSize 1.1 方法列表 2 基本窗口 QWidget 2.1 方法列表 2.2 示例 第一个APP 3 桌面窗口 QDeskWidget ...

  5. PyCharm PyQt5创建主窗口源代码

    一.PyCharm PyQt5创建主窗口基本过程: 1.打开PyCharm,新建工程MyMainTest. 2.按照Tools-External Tools-QtDesigner,打开QT设计界面,创 ...

  6. PyQt5学习--基本窗口控件--QMainWindow

    参考书籍<PyQt5 快速开发与实战>王硕 孙洋洋 著 QMainWindow主窗口为用户提供一个应用程序框架,它有自己的布局,可以在布局中添加控件.比如将工具栏.菜单栏和状态栏等添加到布 ...

  7. PyQt5中为窗口添加菜单工具栏状态栏

    PyQt5中为窗口添加菜单 QtDesigner中添加菜单 移除菜单栏 添加菜单栏 代码中添加菜单 QtDesigner中添加工具栏 代码中添加工具栏 QtDesigner中添加状态栏 代码中添加状态 ...

  8. Python中使用PyQt5创建的窗口添加全局快捷键(鼠标离开窗口时也可执行)

    Python中使用PyQt5创建的窗口添加全局快捷键 使用第三方库SystemHotKey来实现全局快捷键 库的安装 pip3 install system_hotkey 官方案例 from syst ...

  9. PyQt5设置软件窗口图标与任务栏图标

    PyQt5设置软件窗口图标 效果图 设置窗口左上角图标 在UI界面初始化时加入这一行 self.setWindowIcon(QIcon("image/星球.png")) setWi ...

最新文章

  1. easyui placeholder 解决方案
  2. 贝壳找房挖到AI大牛叶杰平,房产中介转型需要技术,高估值更需要
  3. 走进腾讯 |《产品经理第一课》宜信、零度无人机、悦跑圈核心团队独家分享爆款产品的打造秘籍...
  4. django-oscar相关的模块调研信息汇总
  5. 文献学习(part28)--Biclustering of gene expression data based on related genes and conditions extraction
  6. python字典的键可以是元组吗_python字典的键可以是元组吗
  7. Ubuntu系统常用命令
  8. 2017.9.8 无归岛 思考记录
  9. 懒癌晚期学图论的时候自己用C语言写了个求可达性矩阵的算法~
  10. Rayeager PX2开发板 评测系列之初见
  11. 利用拉普拉斯滤波器提取图像边缘,实现图像锐化
  12. Pytorch和Torchvision版本对应
  13. 使用CounterDownTimer实现时分秒倒计时
  14. Docker第一章:安装及初始化配置
  15. LoRa全链路打通教程01 - LoRa网关配置查看和修改方法详解(以ST P-NUCLEO-LRWAN3 套件为例)
  16. 【粉丝福利,免费送书】SQL编程思想
  17. Unity 车辆跟随路径点缓动移动
  18. 猜数游戏--python(设定猜测次数)
  19. 运动模糊/拖影的原因分析
  20. QGIS二次开发:鼠标在地图上移动时,状态栏显示鼠标所在位置经纬度

热门文章

  1. Spring Boot简介
  2. Struts2-day1总结
  3. Vue——Vue-Router的push和replace方法[Uncaught (in promise) Error]解决方案
  4. 用jedis访问Redis进行对象存取示例
  5. 计算机二级Office经验资源分享【一次过关。】
  6. Bootstrap4+MySQL前后端综合实训-Day09-AM【项目功能展示视频、小组汇报PPT、项目介绍】
  7. Java08-day08【API(概述、使用)、String-StringBuilder(概述、构造方法、特点、方法)、StringBuilder和String相互转化】
  8. 2019浙江省大学生网络与信息安全竞赛决赛部分WriteUp
  9. Docker_容器数据卷
  10. replaceAll的坑