学习pyqt 基础 实践1

原创
2014/08/19 12:59
阅读数 547

学习pyqt 基础 实践1

代码加截图

学习前面一点Qwidget,QWindow 然后实现了这个界面,并没有相应的处理方法,之后在写相应的处理函数。 由于图片等比较麻烦,图标等资源没有上传 <!-- lang: python --> #! /usr/bin/python # -- coding:utf8 --

import sys
from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class MainWindow(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)

        self.setWindowFlags(Qt.FramelessWindowHint)
        btn_k1 = '''
            QPushButton{
                background-image: url(./loginHover.png);
                background-color: #CCCCCC;
                border-radius: 9px;
            }
            QPushButton:hover{
                background-image: url(./login.png);
            } 
        '''
        edit_user = "QLineEdit { \
                border-bottom: 1px solid #CCCCCC; \
                border-radius: 4px; \
                padding-left: 35px; \
                color: #666666; \
                font: 12px; \
                background-image: url(./user.png); \
                selection-background-color: darkgray; \
                selection-color: #0a214c; \
                } \
                QLineEdit:hover{ \
                } \
                "
        edit_pw = 'QLineEdit{ \
                padding-left: 35px; \
                border-radius: 4px; \
                background-image: url(./pw.png); \
                selection-background-color: darkgray; \
                lineedit-password-character: 9679; \
                color: #666666; \
                font: 8px; \
                selection-color: #0a214c; \
                } \
                QLineEdit:hover{ \
                } \
                '
        chb = '''
            QCheckBox{
                font: 13px "Microsoft Yahei UI" ;
                gridline-color: #666666;
                }
            QCheckBox::indicator:unchecked {
                image: url(./checkbox_unchecked.png);
            }

            QCheckBox::indicator:unchecked:hover {
                image: url(./checkbox_unchecked_hover.png);
            }

            QCheckBox::indicator:unchecked:pressed {
                image: url(./checkbox_unchecked_pressed.png);
            }

            QCheckBox::indicator:checked {
                image: url(./checkbox_checked.png);
            }

            QCheckBox::indicator:checked:hover {
                image: url(./checkbox_checked_hover.png);
            }

            QCheckBox::indicator:checked:pressed {
                image: url(./checkbox_checked_pressed.png);
            }

            QCheckBox::indicator:indeterminate:hover {
                image: url(./checkbox_indeterminate_hover.png);
            }

            QCheckBox::indicator:indeterminate:pressed {
                image: url(./checkbox_indeterminate_pressed.png);
            }
        '''

        label_k1 = "QLabel{ \
                background-color: #CCCCCC; \
                }"
        btn_close = '''
        QPushButton{
            background-image: url(./closeW.png);
            border-radius: 1px;
            }
        QPushButton:hover{
            background-image: url(./closeHover.png);
            }
        '''
        btn_mini = '''
        QPushButton{
            background-image: url(./miniW.png);
            border-radius: 1px;
            }
        QPushButton:Hover{
            background-image: url(./miniHover.png)
            }
        '''
        label_badge = '''
        QLabel{
            background-image: url(./Sxiaohui.png)
            }
        QLabel:Hover{
            background-image: url(./SxiaohuiHover.png)
            }
        '''

        self.label = QLabel(self)
        self.label.setStyleSheet("")
        self.img_ = QImage(self)
        self.img_.load('./on.png')
        self.label.setPixmap(QPixmap().fromImage(self.img_). \
                scaled(QSize(420,190), Qt.KeepAspectRatio))
        self.label.setGeometry(0,0,420,190)

        label_down = QLabel(self)
        label_down.setGeometry(0, 170, 420, 150)
        label_down.setStyleSheet(label_k1)

        '''
        self.label = QLabel(self)
        self.img_ = QImage(self)
        self.img_.load('./xiaohui.png')
        self.label.setPixmap(QPixmap().fromImage(self.img_). \
                scaled(QSize(140,140), Qt.KeepAspectRatio))
        self.label.setGeometry(140, 14, 150, 150)
        '''
        
        badgeLabel = QtGui.QLabel(self)
        badgeLabel.setStyleSheet(label_badge)
        badgeLabel.setGeometry(140, 14, 140, 140)

        #self.setStyleSheet(widget_login)
        editUser = QtGui.QLineEdit(self)
        editPw = QtGui.QLineEdit(self)
        editUser.setStyleSheet(edit_user)
        editUser.setMaxLength(10)
        editPw.setStyleSheet(edit_pw)
        editPw.setEchoMode(QLineEdit.Password)
        editUser.setGeometry(70, 210, 180, 30)
        editPw.setGeometry(70, 240, 180, 30)

        checkPw = QtGui.QCheckBox(u'记住密码', self)
        checkPw.setGeometry(70, 275, 70, 13)
        checkPw.setStyleSheet(chb)

        btnLogin = QtGui.QPushButton(self)
        #btnLogin.setCheckable(True)
        btnLogin.setStyleSheet(btn_k1)
        btnLogin.setGeometry(310, 197, 90, 90)
        self.resize(420, 320)
        
        btnClose = QtGui.QPushButton(self)
        btnClose.setStyleSheet(btn_close)
        btnClose.setGeometry(5, 5, 17, 17)

        btnMini = QtGui.QPushButton(self)
        btnMini.setStyleSheet(btn_mini)
        btnMini.setGeometry(30, 5, 17, 17)
        


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    mw = MainWindow()
    mw.show()
    sys.exit(app.exec_())

在此输入图片描述

展开阅读全文
打赏
0
8 收藏
分享
加载中
谢谢楼主!!!终于成功了 磨了我将近一周了.......
2015/08/27 13:10
回复
举报
Cosven博主

引用来自“天方居士”的评论

谢谢楼主了 我还有个问题 关于你的网易云音乐 我安装了打不开 基本库都安装了 在终端打开出现如下问题
ImportError:
Could not load requested Qt binding. Please ensure that
PyQt4 >= 4.7, PyQt5 or PySide >= 1.0.3 is available,
and only one is imported per session.




Currently-imported Qt library: 'pyqt5'
PyQt4 installed: False
PyQt5 installed: False
PySide >= 1.0.3 installed: False
Tried to load: ['pyqt5', 'pyside', 'pyqt']
我在Ubuntu上面试了下,发现也存在类似的问题,我又更新了一下。 先去掉部分东西
2015/08/26 19:41
回复
举报
Cosven博主

引用来自“天方居士”的评论

然后我去安装pyqt4和5 安装好了一样打不开 我才安的linux 小白一个 求解惑 在此谢过
这个软件现在的依赖库渐渐的变多了,安装的东西可能会比较多。 如果要安装使用的话,最好直接运行 install.sh 脚本,这个脚本会自动安装一些python的库,还有一些其他相关的东西。 你可以先参考 https://github.com/cosven/FeelUOwn#feeluown 这个简短的教程。 看上面这个错误提示貌似是python3 的pyqt5没有安装好。
2015/08/26 18:43
回复
举报
然后我去安装pyqt4和5 安装好了一样打不开 我才安的linux 小白一个 求解惑 在此谢过
2015/08/25 21:30
回复
举报
谢谢楼主了 我还有个问题 关于你的网易云音乐 我安装了打不开 基本库都安装了 在终端打开出现如下问题
ImportError:
Could not load requested Qt binding. Please ensure that
PyQt4 >= 4.7, PyQt5 or PySide >= 1.0.3 is available,
and only one is imported per session.




Currently-imported Qt library: 'pyqt5'
PyQt4 installed: False
PyQt5 installed: False
PySide >= 1.0.3 installed: False
Tried to load: ['pyqt5', 'pyside', 'pyqt']
2015/08/25 21:28
回复
举报
Cosven博主

引用来自“天方居士”的评论

楼主 用你的方法安装pyqt4出现如下问题
fy@fy-X550CC:~$ sudo apt-get install python-pyqt4
[sudo] password for fy:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
E: 未发现软件包 python-pyqt4
貌似名字错了,今天自己又去Ubuntu上试了下, sudo apt-get install python-qt4
2015/08/25 16:11
回复
举报
楼主 用你的方法安装pyqt4出现如下问题
fy@fy-X550CC:~$ sudo apt-get install python-pyqt4
[sudo] password for fy:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
E: 未发现软件包 python-pyqt4
2015/08/25 13:52
回复
举报
Cosven博主

引用来自“Koma”的评论

大神,问你个问题。centos下安装 pyqt4 的时候,现在是要用 qmake 选项来安装,但是我这里提示 qmake 要先安装。百度了下说 qmake 要在安装好 qt 之后就直接就OK了。。。。不明白了,请大神指点 83
centos 是不是可以用 yum install这种命令呀。 如果没错的话,我觉得你可以试试 yum install python-pyqt4. 你是自己编译源码安装么? 我在Ubuntu下,一般都是直接sudo apt-get install python-pyqt4搞定。依赖什么的好像就会自动装好 其实,你可以称呼我为LZ 之类的,“大神” 这名字担当不起啊
2015/06/15 21:01
回复
举报
大神,问你个问题。centos下安装 pyqt4 的时候,现在是要用 qmake 选项来安装,但是我这里提示 qmake 要先安装。百度了下说 qmake 要在安装好 qt 之后就直接就OK了。。。。不明白了,请大神指点 83
2015/06/15 12:18
回复
举报
更多评论
打赏
9 评论
8 收藏
0
分享
返回顶部
顶部