码迷,mamicode.com
首页 > 其他好文 > 详细

<PY><OOP>PyQt和QtDesigner混合使用(一)伯努利试验

时间:2015-05-03 14:41:13      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:gui   pyqt   python   

一,设计三个界面

main.ui,do.ui,wait.ui

技术分享

图片资源使用qrc文件来控制载入:

img.qrc的内容:

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>bg.jpg</file>
    <file>do.jpg</file>
    <file>wait.jpg</file>
</qresource>
</RCC>

显示风格使用样式表qss来控制:

技术分享

二,将资源控制文件qrc转换成python文件来控制资源载入

转换命令 为    

C:\Python27\Lib\site-packages\PyQt4\pyrcc4.exe   -o   E:\choice\srcXS\img.py     E:\choice\srcXS\img.qrc
第一个参数是转换器位置,-o是一个常用参数,第三个参数是生成的py文件,第四个参数是qrc文件位置

三,设计python文件run.py来使用界面

__init__.py这个空文件可以把一个文件夹指定为python package

#run.py
from PyQt4 import QtGui,uic
import  sys,srcXS.img
from random import randint
def show_only(windows, n):
    for i, window in enumerate(windows):
        if i != int(n):
            window.hide()
        else:
            window.show()

class Choice(QtGui.QFrame):
    def __init__(self):
        super(QtGui.QFrame, self).__init__()
        self.windows=[uic.loadUi('main.ui'),uic.loadUi('wait.ui'),uic.loadUi('do.ui')]
        show_only(self.windows,0)
        self.windows[0].chooseButton.clicked.connect(lambda: self.btn_tapped())
    def btn_tapped(self):
        show_only(self.windows,randint(1,2))

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    a=Choice()
    sys.exit(app.exec_())

文件夹组织为:
技术分享

四,运行效果

技术分享
技术分享
技术分享











<PY><OOP>PyQt和QtDesigner混合使用(一)伯努利试验

标签:gui   pyqt   python   

原文地址:http://blog.csdn.net/awsxsa/article/details/45458507

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!