Pyqt 基础功能
总结Pyqt的基础知识
1. Pyqt 设置禁止最大化及禁止拖拽窗口大小
# PyQT禁止窗口最大化按钮:
self.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint)
# PyQT禁止调整窗口大小:
self.setFixedSize(self.width(), self.height())
1.1 修改窗体大小
self.resize(500, 400)
2. 当按下Esc退出
重载keyPressEvent
def keyPressEvent(self, event):
if event.key() ==QtCore.Qt.Key_Escape:
self.close()
3.去掉标题栏
self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
self.setWindowFlags(Qt.CustomizeWindowHint) # 有透明边框
4.触发信号槽
内部方法 triggered() clicked()
执行: quit()
QtGui.QWidget.connect(self.ui_qr.pushButtonOk, QtCore.SIGNAL('clicked()'), self.generateQr)
self.ui_qr.pushButtonOk.clicked.connect(self.generateQr)
5.弹框消息
消息类型: information , warning , question , about
OK = QtGui.QMessageBox.question(self, (u'提示'),(u'滚动轴点击'),QtGui.QMessageBox.Yes , QtGui.QMessageBox.No)
6.支持窗口拖动
重载鼠标事件方法
def mousePressEvent(self, event):
if event.button()==Qt.LeftButton:
self.m_drag=True
self.m_DragPosition=event.globalPos()-self.pos()
event.accept() def mouseMoveEvent(self, QMouseEvent):
if QMouseEvent.buttons() and Qt.LeftButton:
self.move(QMouseEvent.globalPos()-self.m_DragPosition)
QMouseEvent.accept() def mouseReleaseEvent(self, QMouseEvent):
self.m_drag=False
7.设置全局编码
# -*- coding: utf-8 -*-
reload(sys)
sys.setdefaultencoding("utf-8")
8.设置标题、Icon
label.setPixmap(QtGui.QPixmap(filename))
self.setWindowTitle('Pyqt ComboBox')
self.setWindowIcon(QtGui.QIcon('../Document/images/QQ.png'))
9.设置button lineEdit 等字体
self.lineEdit.setFont(QFont("SimSun", 18, QFont.Bold)) # 宋体 , 18号字体, 粗体
10.退出后,后台继续保持进程
app.setQuitOnLastWindowClosed(True) #true 关闭, false 开启后台
11.显示在最前端
self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
12.窗体透明度
self.setWindowOpacity(0.5) # 1表示100%显示, 0.5 透明度50%
13.只显示关闭按钮
self.setWindowFlags(Qt.CustomizeWindowHint| Qt.WindowCloseButtonHint )
14.隐藏状态栏
self.setWindowFlags(QtCore.Qt.Tool )
15.自定义发射事件信号
from PyQt5.QtWidgets import *
from PyQt5 import QtCore class MyForm(QMainWindow):
_signal = QtCore.pyqtSignal(str) # 定义信号,定义参数为str类型 str、int、list、object、float、tuple、dict def __init__(self):
super().__init__()
button = QPushButton('Button ')
button.clicked.connect(self.on_button) self._signal.connect(self.mySignal) # 将信号连接到函数mySignal
layout = QHBoxLayout()
layout.addWidget(button)
main_frame = QWidget()
main_frame.setLayout(layout)
self.setCentralWidget(main_frame) def on_button(self):
self._signal.emit('hello,你好') # 需要之时emit def mySignal(self, string):
print(string) if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
form = MyForm()
form.show()
app.exec_()
16.信号和槽传递额外参数
from PyQt5.QtWidgets import *
# 使用lambda传递按钮数字给槽 by: http://blog.csdn.net/a359680405/article/details/45246605
class MyForm(QMainWindow):
def __init__(self):
super().__init__()
button1 = QPushButton('Button 1')
button2 = QPushButton('Button 2')
button1.clicked.connect(lambda: self.on_button(''))
button2.clicked.connect(lambda: self.on_button('')) layout = QHBoxLayout()
layout.addWidget(button1)
layout.addWidget(button2) main_frame = QWidget()
main_frame.setLayout(layout)
self.setCentralWidget(main_frame) def on_button(self, n):
print('Button {0} clicked'.format(n)) if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
form = MyForm()
form.show()
app.exec_()
Pyqt 基础功能的更多相关文章
- 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.0,完善基础功能(源码)
(前段时间封闭式开发完了一个项目,最近才有时间继续更新GG的后续版本,对那些关注GG的朋友来说,真的是很抱歉.)GG的前面几个版本开发了一些比较高级的功能,像视频聊天.远程桌面.文件传送.远程磁盘等, ...
- 谷歌Chrome浏览器开发者工具的基础功能
上一篇我们学习了谷歌Chrome浏览器开发者工具的基础功能,下面介绍的是Chrome开发工具中最有用的面板Sources.Sources面板几乎是最常用到的Chrome功能面板,也是解决一般问题的主要 ...
- Netsharp快速入门(之16) Netsharp基础功能(权限管理)
第5章 Netsharp基础功能 5.1 权限配置 5.1.1 功能权限 1.配置权限功能点,打开平台工具-基础业务-操作管理 2.选择资源节点为销售订单,点添加常用操作,添加完成后 ...
- 李洪强iOS开发之-环信03_集成 SDK 基础功能
李洪强iOS开发之-环信03_集成 SDK 基础功能 集成 SDK 基础功能 在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念. SDK 同步/异步方法区分 ...
- wc基础功能
第一次作业 项目地址 https://gitee.com/xxlznb/WordCount PSP WordCount 预估耗时(分钟) 实际耗时 计划 20 30 预估任务需要时间 20 30 开发 ...
- Keepalived详解(三):Keepalived基础功能应用实例【转】
Keepalived基础功能应用实例: 1.Keepalived基础HA功能演示: 在默认情况下,Keepalived可以实现对系统死机.网络异常及Keepalived本身进行监控,也就是说当系统出现 ...
- jmeter 基础功能详解
jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求, ...
- (转)Chrome开发者工具不完全指南(一、基础功能篇)
本篇转载自卖烧烤夫斯基,并做了小部分的修改. 原文地址:Chrome开发者工具不完全指南(一.基础功能篇) 原作者:卖烧烤夫斯基 就算你不是一名前端开发工程师,相信你也不会对Chrome浏览器感到陌生 ...
- 六、EnterpriseFrameWork框架基础功能之权限管理
回<[开源]EnterpriseFrameWork框架系列文章索引> 从本章开始进入框架的第二块内容“EnterpriseFrameWork框架的基础功能”,包括:权限管理.字典数据管理. ...
随机推荐
- supermap iobect .net 7.1.2 图例的拆分
LayoutSelection objLytSelect = m_MapLayoutControl.MapLayout.Selection;//.Selection; //LayoutSelectio ...
- C3P0连接池配置和实现详解
一.配置 <c3p0-config> <default-config> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.Default: 3 --> ...
- Linux学习之CentOS(二十二)--单用户模式下修改Root用户的密码
在上一篇随笔里面详细讲解了Linux系统的启动过程 (Linux学习之CentOS(二十一)--Linux系统启动详解),我们知道Linux系统的启动级别一共有6种级别,通过 /etc/inittab ...
- Bootstrap模态框按钮
1.触发模态框弹窗的代码 这里复制了一段Bootstrap模态框的代码 <h2>创建模态框(Modal)</h2> <!-- 按钮触发模态框 --> <but ...
- 解决Myeclipse PermGen space问题
myeclipse配置web服务器配置 Window—Preferences—Myeclipse—Servers—tomcat JDK的Optional Java VM arguments配置为:-X ...
- PJAX的实现与应用
一.前言 web发展经历了一个漫长的周期,最开始很多人认为Javascript这们语言是前端开发的累赘,是个鸡肋,那个时候人们还享受着从一个a链接蹦 到另一个页面的web神奇魔术.后来随着JavaSc ...
- 思考JavaScript异常如何转为知识库?
线上 js 报错会变成一个邮件,发给前端开发 team,每个人自己认领.解决.其实这是一个不错的选择,也解决了最基本的问题:立即响应,修掉.不过也存在着一个问题,如何避免同样的错误?我的初步想法是这样 ...
- Git学习笔记与IntelliJ IDEA整合
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...
- 微信小程序内训笔记
2016年9月22日凌晨微信官方正式宣布“小程序”开始内测,有“微信之父”之称.腾讯集团高级执行副总裁张小龙在2016年末对外宣布“小程序“应用将于2017年1月9日正式推出 这一次微信还是按照惯例, ...
- [原创]CSS3打造动态3D气球
周末在江边晨跑的时候发现很多 当时心血来潮就想,应该可以在网页中实现一下 这几天得闲就做了一下,效果如下 (尽量在最新版本的chrome或者firefox中查看) demo下载在文章最后 预览 --& ...