(1) 无边框化设计
self.setWindowFlags(Qt.FramelessWindowHint)
这句话加在self.setupUi(self)
下面
(2) 设置style 加在__init__(self)内
self.style = """ QPushButton{ color: #003300; border-top-right-radius: 4px; border-bottom-right-radius: 4px; background-color: #CCCC99; font-size: 15px; font-family: ''; } QPushButton#pushButton{; background-color: blue; } QPushButton:Hover{ background-color: #009966; color: white; } QTextEdit{ border-top-left-radius: 4px; border-bottom-left-radius: 4px; background-color: #CCCCCC; selection-color: #CCCCCC; selection-background-color: #222222; color: black; } QPushButton:pressed {background-color: ;border-style: inset;} """ self.setStyleSheet(self.style)
(3) 长按按钮触发
setAutoRepeat()设置button是否在用户长按按钮的时候可以自动重复执行。
self.pushButton.setIcon(QIcon("C://alolf_train//icons//delete.gif")) self.pushButton.setAutoRepeat(True)
(4) 图片填满button
self.pushButton.setFixedSize(QPixmap("C://alolf_train//icons//GantryKeyUp128.png").size()); self.pushButton.setStyleSheet("border-image:url(C://alolf_train//icons//GantryKeyUp128.png)");
(5) 按钮图片状态变化
self.pushButton.setStyleSheet("QPushButton{border-image:url(C://alolf_train//icons//GantryKeyUp128.png);}" "QPushButton:hover{border-image: url(C://alolf_train//icons//GantryKeyUp128_Lit.png);}" "QPushButton:pressed{border-image: url(C://alolf_train//icons//GantryKeyUp128_Pod.png);}" );
(6) 不规则按钮实现 空白区域,按了无反应
pixmap_1 = QPixmap('C://alolf_train//icons//EmergencyStop.gif') self.pushButton_1.setMask(pixmap_1.mask())
(7) 打包成exe文件
安装pyinstaller python/Scripts 目录下 pip.exe installPyInstaller
在Scripts目录下,
pyinstaller -F-w -i ico的路径.py文件路径
注意图片资源的打包:新建一个后缀为.qrc的资源文件,与icons文件夹同一目录下,里面的内容如下:
然后去文件目录下执行 pyrcc5 -oicons_qr.py icons.qrc 命令,最后在代码中 import icons_qr.py,并且修改下图片路径,一定要在路径前面加上冒号:。
import icons_qr.py
self.DownButton.setFixedSize(QPixmap(":/icons/GantryLeftDown128.png").size());
self.DownButton.setStyleSheet("QPushButton{border-image:url(:/icons/GantryLeftDown128.png);}"
(8) ubuntu下打包生成可执行文件
先安装 pyinstaller sudopip install pyinstaller
进入py文件的目录 pyinstaller xx.py
在dist目录下可以找到执行文件。 创建连接到桌面 可以打开
参考:http://blog.csdn.net/qqqqqqqqqq1qqqqqqqqq/article/details/46279963
(9) 去掉按钮等控件的虚线框(解决linux系统中按下button后会用阴影,方框) https://blog.csdn.net/caoshangpa/article/details/51771696
self.ExitButton.setStyleSheet("QPushButton{border-image:url(:/icons/Exit64.png);}"
"QPushButton{outline:none;}"
)