学习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_())
引用来自“天方居士”的评论
谢谢楼主了 我还有个问题 关于你的网易云音乐 我安装了打不开 基本库都安装了 在终端打开出现如下问题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']
引用来自“天方居士”的评论
然后我去安装pyqt4和5 安装好了一样打不开 我才安的linux 小白一个 求解惑 在此谢过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']
引用来自“天方居士”的评论
楼主 用你的方法安装pyqt4出现如下问题fy@fy-X550CC:~$ sudo apt-get install python-pyqt4
[sudo] password for fy:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
E: 未发现软件包 python-pyqt4
fy@fy-X550CC:~$ sudo apt-get install python-pyqt4
[sudo] password for fy:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
E: 未发现软件包 python-pyqt4
引用来自“Koma”的评论
大神,问你个问题。centos下安装 pyqt4 的时候,现在是要用 qmake 选项来安装,但是我这里提示 qmake 要先安装。百度了下说 qmake 要在安装好 qt 之后就直接就OK了。。。。不明白了,请大神指点