PyQt4学习历程(1)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


P1 建立窗口并添加图标

1.1第一个窗口

#-*- coding=utf-8 -*-
import sys
from PyQt4 import QtGui
app = QtGui.QApplication(sys.argv)  
widget = QtGui.QWidget()
widget.resize(250,150)
widget.setWindowTitle("first window")
widget.show()
sys.exit(app.exec_())
app = QtGui.QApplication(sys.argv)

要创建Application。
2.

widget = QtGui.QWidget()

QWidget是PyQt4所有用户接口对象中的基础类库。QWidget是没有父对象的部件。
3.

widget.setWindowTitle("first window")

widget.setWindowTitle(),设置部件的标题。
4.

sys.exit(app.exec_())

在显示窗口后,进入程序的主循环,并且开始处理时间。主循环从窗口接收事件并对部件进行处理。
效果:
在这里插入图片描述

1.2 为左上角窗口添加一个小图案

#-*- coding=utf-8 -*-
import sys
from PyQt4 import QtGui


class Icon(QtGui.QWidget):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.setGeometry(300,300,250,150)
        self.setWindowTitle("Ion")
        self.setWindowIcon(QtGui.QIcon("mail.ico"))

app = QtGui.QApplication(sys.argv)
icon = icon()
icon.show()
sys.exit(app.exec_())
class Icon(QtGui.QWidget)

用面向对象的风格编写,这里继承了QtGui.QWidget。继承完这个类后,再与里面init操作,便是对其它部件的设置。
2.

self.setGeometry(a,b,c,d)

前两个参数是部件相对于父元素(这里是界面的父元素,故直接为相对于桌面的位置)的x,y坐标,后两个参数代表部件的宽和高
3.

self.setWindowicon(QtGui.Qion("a"))

设定应用的图标,创建了一个QtGui.Qion的对象,创建时的参数就是图标的路径。

P2.添加气泡小提示和可以关闭界面的按钮

2.1气泡小提示

#-*- coding=utf-8 -*-
import sys
from PyQt4 import QtGui


class ToolTip(QtGui.QWidget):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)

        self.setGeometry(300,300,250,150)
        self.setWindowTitle("ToolTip")

        self.setToolTip("This is a <b>QWidget</b>widget")

        QtGui.QToolTip.setFont(QtGui.QFont("OldEnglish",10))
app = QtGui.QApplication(sys.argv)
tooltip = ToolTip()
tooltip.show()
sys.exit(app.exec_())
 self.setToolTip("This is a <b>QWidget</b>widget")

用于创建一个提示框
2.

QtGui.QToolTip.setFont(QtGui.QFont("OldEnglish",10))

1:设置一个用来显示信息的字体 2:字体大小
效果:
在这里插入图片描述

2.2 关闭按钮

#-*- coding=utf-8 -*-
import sys
from PyQt4 import QtGui,QtCore


class Quitbutton(QtGui.QWidget):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.setGeometry(300,300,250,250)
        self.setWindowTitle(u"lose window")
        quit = QtGui.QPushButton(u"close",self)
        quit.setGeometry(10,10,60,35)
        self.connect(quit,QtCore.SIGNAL("clicked()"),QtGui.qApp,QtCore.SLOT("quit()"))

app = QtGui.QApplication(sys.argv)
quit = Quitbutton()
quit.show()
sys.exit(app.exec_())
quit = QtGui.QPushButton(u"close",self)

构建一个按钮。
2.

quit.setGeometry(10,10,60,35)

调整按钮相对于界面的位置
3.

self.connect(quit,QtCore.SIGNAL("clicked()"),QtGui.qApp,QtCore.SLOT("quit()"))

PyQt4中的事件处理系统是由信号槽机制实现的。
1:对应的刚刚设置的按钮(对象)
2:代表的是信号。QtCore.SIGNAL(“clicked()”):这里是“关闭”的信号
3:QtGui.qApp:代表了应用
4:槽函数,用于接收刚刚发送的信号。QtCore.SLOT(“quit()”)
如果点击了这个按钮,就会发出"clicked"这个信号,使应用关闭。
效果:
在这里插入图片描述

P3.弹出消息窗口、居中设置和设置状态栏

3.1弹出消息窗口

#-*- coding=utf-8 -*-
import sys
from PyQt4 import QtGui,QtCore


class MessageBox(QtGui.QWidget):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.setGeometry(300,300,350,250)
        self.setWindowTitle(u"message window")

    def closeEvent(self, event):
        reply = QtGui.QMessageBox.question(self,u"warning",u"confirm to exit",QtGui.QMessageBox.Yes,QtGui.QMessageBox.No)

        if reply == QtGui.QMessageBox.Yes:
            event.accept()

        else:
            event.ignore()

app = QtGui.QApplication(sys.argv)
qb = MessageBox()
qb.show()
sys.exit(app.exec_())
def closeEvent(self,event)

在界面中,当点击x号时,会触发一个事件,在pyqt中,对该事件有处理,即closeEvent,这里就可以进行改动。
2.

 reply = QtGui.QMessageBox.question(self,u"warning",u"confirm to exit",QtGui.QMessageBox.Yes,QtGui.QMessageBox.No)

2:消息框的标题
3:消息框架的内容他
4:消息框的按钮组合
5.:消息框的默认按钮

        if reply == QtGui.QMessageBox.Yes:
            event.accept()

	    else:
            event.ignore()

如果返回的是QtGui.QMessageBox.Yes,则事件执行(event.accept())。否则,忽略。
效果:
在这里插入图片描述

3.2居中设置

#-*- coding=utf-8 -*-
import sys
from PyQt4 import QtGui,QtCore


class MessageBox(QtGui.QWidget):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.setWindowTitle(u"status list")
        self.resize(550,450)
        self.center()

    def center(self):
        screen = QtGui.QDesktopWidget().screenGeometry()
        size = self.geometry()
        self.move((screen.width()-size.width())/2,(screen.height()-size.height())/2)



    def closeEvent(self, event):
        reply = QtGui.QMessageBox.question(self,u"warning",u"confirm to exit",QtGui.QMessageBox.Yes,QtGui.QMessageBox.No)

        if reply == QtGui.QMessageBox.Yes:
            event.accept()

        else:
            event.ignore()

app = QtGui.QApplication(sys.argv)
qb = MessageBox()
qb.show()
sys.exit(app.exec_())
screen = QtGui.QDesktopWidget().screenGeometry()

得到屏幕的分辨率
2.

 size = self.geometry()

得到窗口的大小
3.

self.move((screen.width()-size.width())/2,(screen.height()-size.height())/2)

移动窗口到指定位置

3.3设置状态栏

#-*- coding=utf-8 -*-
import sys
from PyQt4 import QtGui,QtCore


class MessageBox(QtGui.QMainWindow):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.setWindowTitle(u"statu list")
        self.resize(350,250)
        self.statusBar().showMessage(u"i am statu list")



app = QtGui.QApplication(sys.argv)
qb = MessageBox()
qb.show()
sys.exit(app.exec_())
class MessageBox(QtGui.QMainWindow):

继承的是QMainWindow这个类!
2.

self.statusBar().showMessage(u"i am statu list")

设置状态栏中的信息
效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值