PyQt5学习

1.http://www.cnblogs.com/archisama/p/5444032.html
https://blog.csdn.net/zd0303/article/details/50261481
http://blog.sina.com.cn/yjcx2010

import sys
from PyQt5.QtWidgets import QWidget,QApplication,QMessageBox,QPushButton,QToolTip,QDesktopWidget
from PyQt5.QtGui import QFont
from PyQt5.QtCore import QCoreApplication
#定义一个类
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
#定义初始化函数
    def initUI(self):
        QToolTip.setFont(QFont('SansSerif', 10))
        self.setWindowTitle("Hello Qt")
        self.setGeometry(400,250,300,300)
        self.setToolTip("这是一个对话框")
        self.center()
        btn=QPushButton("Button",self)
        btn.setGeometry(30,30,80,30)
        btn.setToolTip("这是一个按键")
#链接信号与槽 关闭窗口
        btn.clicked.connect(QCoreApplication.instance().quit)
        self.show()
#关闭事件
    def closeEvent(self, event):
        reply = QMessageBox.warning(self,"Message","are you sure to quit?",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
        if reply==QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()
#居中显示
    def center(self):
        qr = self.frameGeometry()
        cp = QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())
#主函数
if __name__=="__main__":
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec())

3.计算器

import sys

from PyQt5 import QtWidgets

class Form(QtWidgets.QDialog):

   def __init__(self):
       super().__init__()

       self.browser = QtWidgets.QTextBrowser()
       self.line_edit = QtWidgets.QLineEdit()
       #文本编辑控件,选中所有文本并聚焦,设置事件监听
       self.line_edit.selectAll()
       self.line_edit.setFocus()
       self.line_edit.returnPressed.connect(self.update_ui)
       #垂直布局,并将两个控价加入到布局中
       layout = QtWidgets.QVBoxLayout()
       layout.addWidget(self.browser)
       layout.addWidget(self.line_edit)
       #设置本窗体的布局
       self.setLayout(layout)
       self.setWindowTitle('Calculate')

   def update_ui(self):
       try:
           expression = self.line_edit.text()
           self.browser.append('%s = <b>%s</b>' % (expression, eval(expression)))
       except:
           self.browser.append('<font color=red>%s is invaild !</font>'%expression)

if __name__ == '__main__':
   app = QtWidgets.QApplication(sys.argv)
   form = Form()
   form.show()
   sys.exit(app.exec_())

4.PyQt基础

import sys
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QMessageBox
from PyQt5.QtCore import QCoreApplication
#这里我们进行了一些必要模块的导入。最基础的widget组件位于PyQt5.QtWidget模块中
class Example(QWidget):
    def __init__(self):
        super().__init__()
        # 在面向对象编程中有三个重要的东西,分别是类,数据和方法。
        # 这里我们创建了一个新类叫做Example。Example类继承自QWidget类。
        # 这意味着我们调用了两个构造方法:第一个是Example类的构造方法,
        # 第二个是被继承类的构造方法。super()方法返回了Example类的父类对象,
        # 并且我们调用了父类的构造方法。__init__()方法是Python语言中的构造方法。

        self.initUI()
        #GUI的创建授予initUI()方法完成。

    def initUI(self):
        self.setGeometry(100,200,200,400)
        #相当于resize()和move()
        btn=QPushButton("quit",self)
        btn.clicked.connect(QCoreApplication.instance().quit)
        #在PyQt5中,事件处理系统由信号&槽机制建立。
        # 如果我们点击了按钮,信号clicked被发送。
        # 槽可以是Qt内置的槽或Python 的一个方法调用。
        # QCoreApplication类包含了主事件循环;它处理和转发所有事件。
        # instance()方法给我们返回一个实例化对象。注意QCoreAppli类由QApplication创建。
        # 点击信号连接到quit()方法,将结束应用。
        # 事件通信在两个对象之间进行:发送者和接受者。发送者是按钮,接受者是应用对象。
        btn.resize(btn.sizeHint())
        #调整大小
        btn.move(50,100)
        #显示位置
        self.show()
        #show()方法在屏幕上显示出widget。
        # 一个widget对象在这里第一次被在内存中创建,并且之后在屏幕上显示。
    def closeEvent(self,event):
        reply=QMessageBox.question(self,'Message',"are you sure to quit",
              QMessageBox.Yes|QMessageBox.No,QMessageBox.No)
        #我们现实一个带两个按钮的message box:YES和No按钮。
        # 代码中第一个字符串的内容被显示在标题栏上。
        # 第二个字符串是对话框上显示的文本。第三个参数指定了显示在对话框上的按钮集合。
        # 最后一个参数是默认选中的按钮。这个按钮一开始就获得焦点。
        # 返回值被储存在reply变量中。
        if reply==QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()
if __name__ == '__main__':
    app=QApplication(sys.argv)
    #所有的PyQt5应用必须创建一个应用(Application)对象。
    # sys.argv参数是一个来自命令行的参数列表。Python脚本可以在shell中运行。
    # 这是我们用来控制我们应用启动的一种方法。
    e=Example()
    sys.exit(app.exec_())
    #最后,应用进入主循环。在这个地方,事件处理开始执行。
    # 主循环用于接收来自窗口触发的事件,并且转发他们到widget应用上处理。
    # 如果我们调用exit()方法或主widget组件被销毁,主循环将退出。
    # sys.exit()方法确保一个不留垃圾的退出。系统环境将会被通知应用是怎样被结束的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容

  • 前些日子从@张鑫旭微博处得一份推荐(Front-end-tutorial),号称最全的资源教程-前端涉及的所有知识...
    谷子多阅读 4,193评论 0 44
  • 《超级个体-伽蓝214》359/365,11.5打卡,晴 【三件事】 1. [ ] 第一要务:尝试无人机 2. [...
    伽蓝214阅读 135评论 0 0
  • 早上九点我还在床上躺着。期间也曾闹钟的尖叫而惊醒,但惊醒之后依然是酣睡。躺在床上,看着窗外明媚的阳光,我,悄悄的问...
    如若如此阅读 402评论 0 0
  • 湘女梅子 一个不喜欢吃外卖的我,却在今天的中午11点,收到一份“饿了吗”送来的外卖。奇怪,我没订外卖,谁这么爱心送...
    湘女梅子阅读 490评论 6 7
  • 在家人面前,我不是一个自信的人,我妈妈从小就说我不如其他姐妹,也没有别人家的孩子聪明,连做个饭都不会,直到现在还在...
    泉布阅读 321评论 0 1