总结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 基础功能的更多相关文章

  1. 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.0,完善基础功能(源码)

    (前段时间封闭式开发完了一个项目,最近才有时间继续更新GG的后续版本,对那些关注GG的朋友来说,真的是很抱歉.)GG的前面几个版本开发了一些比较高级的功能,像视频聊天.远程桌面.文件传送.远程磁盘等, ...

  2. 谷歌Chrome浏览器开发者工具的基础功能

    上一篇我们学习了谷歌Chrome浏览器开发者工具的基础功能,下面介绍的是Chrome开发工具中最有用的面板Sources.Sources面板几乎是最常用到的Chrome功能面板,也是解决一般问题的主要 ...

  3. Netsharp快速入门(之16) Netsharp基础功能(权限管理)

    第5章     Netsharp基础功能 5.1     权限配置 5.1.1  功能权限 1.配置权限功能点,打开平台工具-基础业务-操作管理 2.选择资源节点为销售订单,点添加常用操作,添加完成后 ...

  4. 李洪强iOS开发之-环信03_集成 SDK 基础功能

    李洪强iOS开发之-环信03_集成 SDK 基础功能 集成 SDK 基础功能 在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念. SDK 同步/异步方法区分 ...

  5. wc基础功能

    第一次作业 项目地址 https://gitee.com/xxlznb/WordCount PSP WordCount 预估耗时(分钟) 实际耗时 计划 20 30 预估任务需要时间 20 30 开发 ...

  6. Keepalived详解(三):Keepalived基础功能应用实例【转】

    Keepalived基础功能应用实例: 1.Keepalived基础HA功能演示: 在默认情况下,Keepalived可以实现对系统死机.网络异常及Keepalived本身进行监控,也就是说当系统出现 ...

  7. jmeter 基础功能详解

    jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求, ...

  8. (转)Chrome开发者工具不完全指南(一、基础功能篇)

    本篇转载自卖烧烤夫斯基,并做了小部分的修改. 原文地址:Chrome开发者工具不完全指南(一.基础功能篇) 原作者:卖烧烤夫斯基 就算你不是一名前端开发工程师,相信你也不会对Chrome浏览器感到陌生 ...

  9. 六、EnterpriseFrameWork框架基础功能之权限管理

    回<[开源]EnterpriseFrameWork框架系列文章索引> 从本章开始进入框架的第二块内容“EnterpriseFrameWork框架的基础功能”,包括:权限管理.字典数据管理. ...

随机推荐

  1. Material Design

    4.适应性设计 底层设计系统包括了交互和空间两部分.每一个设备都能反映出同一底层系统的不同侧面.每一设备的界面都会按照大小和交互进行调整.只有颜色,图标,层次结构和空间关系保持不变. 它不仅仅为了好看 ...

  2. mybatis.net 多表联查

    mybatis.net针对多表联查,其实不用讲联查出的所有的列全部做一个新的resultMap,我们完全可以通过集成关系来实现,真是上一次说的懒加载,在一定程度上可以提高其性能,但这并不是说懒加载性能 ...

  3. jdk自带的jvm监测程序

    jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号. jstat:一个极强 ...

  4. Ubuntu 16.04 安装 Kodi v17 “Krypton” Alpha 2

    Ubuntu 16.04 安装 Kodi v17 “Krypton” Alpha 2:sudo add-apt-repository ppa:team-xbmc/xbmc-nightlysudo ap ...

  5. Visual SVN 5.01 Po jie 笔记

    最近搞项目要与几个同事一起coding,鉴于代码的合并和提交的问题,所以要搞个版本管理.由于是私有的项目,所以退git 求SVN了.装了乌龟和Visual SVN,才发现Visual SVN的客户端不 ...

  6. ruby 基础知识(一)

    突然今天发现一大神的博客:http://www.cnblogs.com/jackluo/archive/2013/01/22/2871655.html    相信初学者会受益颇多 ruby  参考文档 ...

  7. Java多线程--线程安全问题的相关研究

    在刚刚学线程的时候我们经常会碰到这么一个问题:模拟火车站售票窗口售票.代码如下: package cn.blogs.com.isole; /* 模拟火车站售票窗口售票,假设有50张余票 */ publ ...

  8. 前端应当了解的Web缓存知识

    缓存优点 通常所说的Web缓存指的是可以自动保存常见http请求副本的http设备.对于前端开发者来说,浏览器充当了重要角色.除此外常见的还有各种各样的代理服务器也可以做缓存.当Web请求到达缓存时, ...

  9. 3D游戏编程大师技巧──2D引擎的编译问题

    接上一篇文章,这里将介绍2D引擎的编译,从现在开始才真正进入<3D游戏编程大师技巧>的学习.本书的第一.二章只是简介了游戏编程和windows编程,从第三章开始才是介绍<window ...

  10. hdu 4946 2014 Multi-University Training Contest 8

    Area of Mushroom Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...