pyqt样式表语法笔记(下)
python
启动界面
QSS
pyqt
一、启动界面的设置
简单点~说话的方式简单点
用一张静态图片作为程序启动界面为例。
原来的语句
- if __name__ == "__main__":
- imp
ort sys - app = QtGui.QApplication(sys.argv)
- myWindow = MainWindow()
- myWindow.show()
- sys.exit(app.exec_())
修改后的语句
- if __name__ == "__main__":
- imp
ort sys - app = QtGui.QApplication(sys.argv)
- splash = QSplashScreen(QPixmap(':/pics/5.jpg'))
- splash.show()
- app.processEvents()
- myWindow = MainWindow()
- myWindow.show()
- splash.finish(myWindow)
- sys.exit(app.exec_())
解释:
第4句表示将当前目录下的"5.jpg"文件导入,并设置为启动界面
第5句,不用解释了吧
第6句,是为了避免程序启动时卡死,这个没有深究了,反正加上不会错
第9句,用于在程序加载成功后退出启动界面,所以需要传入myWindow这个参数。注意不要试图用splash.exec_(),因为它会使整个程序都结束滴~~~23333
另外,如果程序比较简单,那么启动界面可能一闪而过,所以还需要适当的修改
- imp
ort time -
- class MainWindow(QMainWindow, Ui_MainWindow):
- def __init__(self, parent=None):
- super(MainWindow, self).__init__(parent)
- self.setupUi(self)
- time.sleep(0.5)
如代码所示,让程序稍微休息2秒,这样效果会更好。
上面只是显示了静态图片,但是我们还可以使启动界面变得更加友好,例如可以提示"正在加载图片资源..."等信息,让用户能够知道程序运行状态,而不至于盲目等待。
主要调用
QSplashScreen.showMessage(str, int alignment=Qt.AlignLeft, QColor color=Qt.black) 这个方法
代码示例
-
- if __name__ == "__main__":
- imp
ort sys - app = QtGui.QApplication(sys.argv)
- splash = QSplashScreen(QPixmap(':/pics/5.jpg'))
- splash.show()
- app.processEvents()
- splash.showMessage('正在加载图片资源...',Qt.AlignCenter,Qt.red)
- time.sleep(2)
- splash.showMessage('正在加载音频资源...',Qt.AlignCenter,Qt.white)
- time.sleep(2)
- splash.showMessage('正在加载渲染程序...',Qt.AlignCenter,Qt.black)
- time.sleep(2)
- myWindow = MainWindow()
- myWindow.show()
- splash.finish(myWindow)
- sys.exit(app.exec_())
效果展示
二、添加菜单栏
在Qt Designer空白处右键,选择【添加菜单栏】,然后输入相应的菜单名即可。
下面介绍菜单栏控件的方法。
之前所介绍的控件的格式一般都为“on_控件名_clicked”,菜单栏稍有不同,需要使用“触发槽函数”,方法为on_名称_triggered()
- @pyqtSlot()
- def on_actionAbout_triggered(self):
- aboutButton = QMessageBox.aboutQt(self, 'AboutQt')
忘了说怎么添加icon了,方法很简单,还是在Qt Designer进行操作。
图标的下载建议去 阿里妈妈 ,这是全民老爹马云旗下的网站,很简约,不像有的网站乱七八糟还到处是广告。