学习pyqt4 基础

原创
2014/08/16 12:58
阅读数 650

#pyqt4基础学习

初步学习资料(pdf): http://pan.baidu.com/s/1sj2R2Lf 这里一般没有运行结果截图,除非效果特炫...

第一段代码学习笔记

这差不多是最最基础的

<!-- lang: python -->
#! /usr/bin/python
# -*- coding:utf8 -*-

import sys

from PyQt4 import QtGui

app = QtGui.QApplication(sys.argv)
widget = QtGui.QWidget()
widget.resize(250, 150)
widget.setWindowTitle('Simple')
widget.show()
sys.exit(app.exec_())

widget = QtGui.QWidget() QWidget部件是PyQt4中所有用户界面类的父类!所以这里就是使用了没有参数的默认构造函数。

第二段代码学习笔记

这段代码想要改变窗口的图标,总不能使用那个丑陋的windows默认图标吧!

<!-- lang: python -->
#! /usr/bin/python
# -*- coding:utf8 -*-

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('Icon')
        self.setWindowIcon(QtGui.QIcon('./1.ico'))

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

这里创建了一个Icon类,它继承QtGui.QWidget类。所以这里调用两个构造函数。 根据这个类的构造方式,我们大概可以猜测其他类的构造方法。这里使用了设置图标这个方法,我们可以使用另外一些方法来达到构造我们想要的类的目的。

第三段代码学习笔记

吃饭后继续,这里有一些关于pyqt信号槽的东西,是不是会高端一点 ~~ 这只是一部分代码(其他和上面几乎没有差别,直接加入也可以运行)

<!-- lang: python -->
quit = QtGui.QPushButton(u'退出', self)
quit.setGeometry(10, 10, 60, 35) # 设置Button的位置
self.connect(quit, QtCore.SIGNAL('clicked()'), \  
                QtGui.qApp, QtCore.SLOT('quit()')) #

如果我们单击quit 按钮,那么信号clicked()就会被触发,槽函数可以是PyQt 自带的槽函数,也可以是任何Python 可以调用的函数等。QtCore.QObject.connect()方法可以将信号和槽函数连接起来。在我们的示例中槽函数是PyQt 中已定义的quit()函数。

第四段代码学习

这段的主要目标是:在退出前,弹框确认。主要思想:重写closeEvent方法。 在之前的代码加入即可 <!-- lang: python --> def closeEvent(self, event): reply = QtGui.QMessageBox.question(self, 'Message',
u"确定退出?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) if reply == QtGui.QMessageBox.Yes: event.accept() else: event.ignore()

如果我们关闭QWidget 窗口,QCloseEvent 事件就会被触发。要改变原有的wdiget 行为阻止查窗口的关闭,我们就需要重新实现closeEvent()方法。

第五段代码学习

这里主要告诉我们怎样控制窗口位置。其中一个重要的一点就是得到屏幕的大小。 这里只贴出获取屏幕大小的代码。

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

总结回忆

学习了怎样创建窗口,设置图标,监控关闭事件,设置窗口位置

展开阅读全文
打赏
0
3 收藏
分享
加载中
更多评论
打赏
0 评论
3 收藏
0
分享
返回顶部
顶部