做事从来不坚持的我又开始学习PyQt了。。。。。。
链接附上,不再更新:PyQt5图形界面编程
第一部分
第一个程序
# -*- coding: utf-8 -*- import sys
from PyQt5.QtWidgets import QApplication, QWidget, QToolTip, QPushButton
from PyQt5.QtGui import QIcon, QFont class Example(QWidget): def __init__(self):
super(Example, self).__init__()
self.initUI() def initUI(self):
'''
在这里我们有两个部件可以显示提示
一个是窗口本身,另一个是按钮
''' #设置提示字体和字号
QToolTip.setFont(QFont('微软雅黑', 10)) #给组件本身设置一个提示
self.setToolTip('this is a widget') #添加一个按钮
btn = QPushButton('Button', self)
#并添加提示
btn.setToolTip('this is a pushbtn')
#设定按钮大小和位置,使用推荐大小
btn.resize(btn.sizeHint())
btn.move(50, 50) #设置窗口的位置和宽高
self.setGeometry(300, 300, 300, 300)
#设置窗口标题
self.setWindowTitle('icon')
#设置窗口图标
self.setWindowIcon(QIcon('dog.jpg')) self.show() if __name__ == '__main__': app = QApplication(sys.argv)
example = Example()
sys.exit(app.exec_())
如何优雅地退出窗口
# -*- coding: utf-8 -*- import sys
from PyQt5.QtWidgets import QApplication, QWidget,QPushButton
from PyQt5.QtCore import QCoreApplication class Example(QWidget): def __init__(self):
super(Example, self).__init__()
self.initUI() def initUI(self): #添加一个按钮
btn = QPushButton('Quit', self)
btn.clicked.connect(QCoreApplication.instance().quit)
#设定按钮大小和位置,使用推荐大小
btn.resize(btn.sizeHint())
btn.move(50, 50) #设置窗口的位置和宽高
self.setGeometry(300, 300, 300, 300)
#设置窗口标题
self.setWindowTitle('quit') self.show() if __name__ == '__main__': app = QApplication(sys.argv)
example = Example()
sys.exit(app.exec_())
PyQt5中的事件处理系统是由信号槽机制(signals and slots)实现的。如果我们点击了这个按钮,就会发出“clicked”这个信号。QtCore.QCoreApplication这个东西包含了程序的主循环,它处理和分派所有的事件,而instance()方法返回的是目前的实例(insatnce)。注意到QtCore.QCoreApplication随着QtGui.QApplication的创建而创建,而由于我们这里用connect()函数将“clicked”事件和可以终止应用的quit()函数联系(connect)在了一起,所以点击按钮,应用终止。这种交流在两个对象之间完成:发送者和接受者,其中发送者是按钮,接受者是应用本身。【这里只要大家对connect方法有个感性的认识就可以了】
消息框
# -*- coding: utf-8 -*- import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox class Example(QWidget): def __init__(self):
super(Example, self).__init__()
self.initUI() def initUI(self): #设置窗口的位置和宽高
self.setGeometry(300, 300, 300, 300)
#设置窗口标题
self.setWindowTitle('Message Box')
self.show() def closeEvent(self, event):
'''
这里我们设定显示一个有两个选项(yes & no)的消息框(message box)
QtGui.QMessageBox.question()方法的第二个参数是出现在标题栏的标题
第三个参数是消息框显示的对话内容,第四个参数是出现在消息框的按钮的组合【用或( | )连接】
最后一个参数是默认按钮,即消息框刚跳出来的时候按enter键就可以执行的按钮
这里我们将函数的返回值存储在了reply这个变量中
'''
reply = QMessageBox.question(self, 'Message', 'Are you sure to quit?', QMessageBox.Yes|QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore() if __name__ == '__main__': app = QApplication(sys.argv)
example = Example()
sys.exit(app.exec_())
居中显示
# -*- coding: utf-8 -*- import sys
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget class Example(QWidget): def __init__(self):
super(Example, self).__init__()
self.initUI() def initUI(self): #设置窗口的位置和宽高
self.resize(500, 500)
#设置窗口标题
self.setWindowTitle('center widget')
self.center()
self.show() def center(self):
# 得到主窗口的矩形框架qr
qr = self.frameGeometry()
# 我们调用这些方法来得到屏幕分辨率,并最终得到屏幕中间点的坐标cp
cp = QDesktopWidget().availableGeometry().center()
# 这里我们将矩形框架移至屏幕正中央,大小不变
qr.moveCenter(cp)
# 最后我们将应用窗口移至矩形框架的左上角点,这样应用窗口就位于屏幕的中央了【注意部件的move都是左上角移动到某点】
self.move(qr.topLeft()) if __name__ == '__main__': app = QApplication(sys.argv)
example = Example()
sys.exit(app.exec_())
第二部分
状态栏(statusbar)
# -*- coding: utf-8 -*- import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow class Example(QMainWindow): def __init__(self):
super(Example, self).__init__()
self.initUI() def initUI(self):
self.statusBar().showMessage('Ready')
#设置窗口的位置和宽高
self.setGeometry(300, 300, 250, 150)
#设置窗口标题
self.setWindowTitle('statusbar')
self.show() if __name__ == '__main__': app = QApplication(sys.argv)
example = Example()
sys.exit(app.exec_())
菜单栏(menubar)
# -*- coding: utf-8 -*- import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp
from PyQt5.QtGui import QIcon class Example(QMainWindow): def __init__(self):
super(Example, self).__init__()
self.initUI() def initUI(self):
# 创建一个选项有自己的图标和名字
exitAct = QAction(QIcon('dog.jpg'), '&Exit', self)
# 设置对应的一个快捷键
exitAct.setShortcut('CTRL+Q')
# 当鼠标悬停在状态栏的提示信息
exitAct.setStatusTip('Exit Application')
# 当我们选择了这个选项时,一个触发信号(triggered signal)被发出了
# 这个信号和qApp部件的quit()方法相联系(connect),所以信号发出后,程序终止
exitAct.triggered.connect(qApp.quit) statusbar = self.statusBar() menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exitAct) self.setGeometry(300,300,300,300)
self.setWindowTitle('simple menu')
self.show() if __name__ == '__main__': app = QApplication(sys.argv)
example = Example()
sys.exit(app.exec_())
工具栏
# -*- coding: utf-8 -*- import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp
from PyQt5.QtGui import QIcon class Example(QMainWindow): def __init__(self):
super(Example, self).__init__()
self.initUI() def initUI(self):
# 创建一个选项有自己的图标和名字
exitAct = QAction(QIcon('dog.jpg'), '&Exit', self)
# 设置对应的一个快捷键
exitAct.setShortcut('CTRL+Q')
# 当我们选择了这个选项时,一个触发信号(triggered signal)被发出了
# 这个信号和qApp部件的quit()方法相联系(connect),所以信号发出后,程序终止
exitAct.triggered.connect(qApp.quit) self.toolbar = self.addToolBar('Exit')
self.toolbar.addAction(exitAct) self.setGeometry(300,300,300,300)
self.setWindowTitle('simple menu')
self.show() if __name__ == '__main__': app = QApplication(sys.argv)
example = Example()
sys.exit(app.exec_())
做事从来不坚持的我又开始学习PyQt了。。。。。。的更多相关文章
- Python学习笔记之--我又开始学习Python了(随时更新)
2019.02.09 更新 Python 学习计划已经开始几天了,跟着一本叫<Django for beginner>的书籍在学习用Django搭建自己的第一个网站,目前已经进行到第三章, ...
- PyQt 5 的学习引言
Python 是我学习的第二门编程语言,第一门编程语言是C. 曾经用C和C++的一个库(easyx库)写过图形界面应用, 感受就是难受又难看, 现在想学一下 PyQt 5 这个python的库, 用博 ...
- 第15.37节 PyQt(Python+Qt)入门学习:containers容器类部件QMdiArea多文档界面部件详解及编程开发案例
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.引言 老猿在前期学习PyQt相关知识时,对每个组件的属性及方法都研 ...
- PyQt学习问题:Model/View中中EditKeyPressed常量平台编辑键(the platform edit key )是什么?
老猿在学习PyQt的Model/View设计时,发现是否允许对视图中的数据项进行编辑的函数setEditTriggers的参数QAbstractItemView.EditTriggers是几个常量的组 ...
- PyQt设计流程
Qt designer 设计流程: 创建一个 PyQt4 的步骤,通常的方法是用 QtDesigner 工具创建 GUI 界面.可以在窗口 上添加部件,并可以对部件进行一些属性配置.一般的过程如下 ...
- pyqt5 动画学习(一) 改变控件大小
入坑pyqt也有半年了,由于人们对事物的审美,静态界面已经不能满足用户,而动画却给人眼前一亮,so,今天来学习pyqt的动画了 由于资料真的是太少,本人也是有啃外国佬的英文进行摸索学习,可能也是触及皮 ...
- python3 发生器 迭代器 内置函数 协程 哈哈我又回来啦
唉 犯傻了,干了一件虽有一点点道理的事情,但是却完全没有效果,我是不是傻,浪费了这么多时间在一件不可能的事情上,果然效果比道理更重要... 被一些琐事耽搁几天,python的学习都给我停了,擦!不过一 ...
- GUI学习之三——QObject学习总结
鉴于PyQt控件的继承关系,我们先学习PyQt控件的基类——QObject. 一.所有的QT对象的基类 我们先看一下PyQt里空间的继承关系,稍微改一下代码,显示出继承关系 from PyQt5.Q ...
- QT学习之windows下安装配置PyQt5
windows下安装配置PyQt5 目录 为什么要学习QT 命令行安装PyQt5以及PyQt5-tools 配置QtDesigner.PyUIC及PyRcc 为什么要学习QT python下与界面开发 ...
随机推荐
- Ubuntu Linux Recovery Mode
在安全模式/修復模式有以下的選項︰resume Resume normal boot繼續正常啟動作業,供不小心誤入此選單的使用者開機使用.(继续以正常模式启动) clean Try to make f ...
- toTree
// js实现树级递归, // 通过js生成tree树形菜单(递归算法) const data = [ { id: 1, name: "办公管理", pid: 0 }, { id: ...
- vue组件封装选项卡
<template> <myMenu :arr='arr' :arrcontent='content'></myMenu> </template> &l ...
- javascript内置函数:toString()
不同对象有不同的实现方式. 1.Number对象: 语法:numberObject.toString([radix]) 参数:radix,可选/Number类型,指定的基数(进制数),支持[2,36] ...
- IIS 使用 HTTP重定向 修改 默认主页
1. 被自己坑死了 多了一个 正斜杠 浪费了好长好长的时间 2. 需求 直接输入ip地址 总是 弹出来 iis 的 welcome的界面 感觉很low 想要修改一下 曾经用过 reflesh 来修改过 ...
- CMake--常用指令
1 . ADD_DEFINITIONS 向 C/C++ 编译器添加 -D 定义,比如 在CMakeList.txt文件中添加: ADD_DEFINITIONS(-DENABLE_DEBUG -DABC ...
- Oracle NVL空值处理函数
--NVL空值处理函数 --需求:显示价格表中业主类型ID为1的价格记录 如果上限值为null,则显示9999999 ) from dual; select * from t_pricetable ) ...
- Laravel渴求式加载(比较容易理解理解load与with关系)
渴求式加载 当以属性方式访问 Eloquent关联关系的时候,关联关系数据是「懒惰式加载」的,这意味着关联关系数据直到第一次访问的时候才被加载.不过,Eloquent 还可以在查询父级模型的同时「渴求 ...
- 转《在浏览器中使用tensorflow.js进行人脸识别的JavaScript API》
作者 | Vincent Mühle 编译 | 姗姗 出品 | 人工智能头条(公众号ID:AI_Thinker) [导读]随着深度学习方法的应用,浏览器调用人脸识别技术已经得到了更广泛的应用与提升.在 ...
- 相识mongodb
1.下载完安装包,并解压下载地址:https://www.mongodb.org/dl/linux/x86_64或者可以直接wget http://fastdl.mongodb.org/linux/m ...