pyqt5 实现 下拉菜单 + 打开文件的示例代码
如下所示:
#-*-coding:utf-8-*-
importsys
importos
fromPyQt5importQtCore,QtGui,QtWidgets
fromPyQt5importQtCore,QtGui,QtWidgets
fromPyQt5.QtCoreimportQRect,QSize,QMetaObject,QCoreApplication,\
QPropertyAnimation
fromPyQt5.QtGuiimportQFont
fromPyQt5.QtWidgetsimportQFileDialog
fromPyQt5.QtWidgetsimportQWidget,QHBoxLayout,QGridLayout,QPushButton,\
QApplication,QMainWindow
classUi_MainWindow(object):
defsetupUi(self,MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800,681)
MainWindow.setMinimumSize(QtCore.QSize(0,651))
MainWindow.setStyleSheet("background-image:url(:/新前缀/backpic.png);")
self.centralwidget=QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.widget=QtWidgets.QWidget(self.centralwidget)
self.widget.setGeometry(QtCore.QRect(0,-580,195,631))
self.widget.setObjectName("widget")
self.scrollArea=QtWidgets.QScrollArea(self.widget)
self.scrollArea.setGeometry(QtCore.QRect(0,0,195,581))
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setObjectName("scrollArea")
self.scrollAreaWidgetContents=QtWidgets.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0,0,178,681))
self.scrollAreaWidgetContents.setMinimumSize(QtCore.QSize(177,681))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
self.verticalLayoutWidget=QtWidgets.QWidget(self.scrollAreaWidgetContents)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(0,-10,181,691))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout=QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(0,0,0,0)
self.verticalLayout.setSpacing(20)
self.verticalLayout.setObjectName("verticalLayout")
self.pushButton_2=QtWidgets.QPushButton(self.verticalLayoutWidget)
self.pushButton_2.setObjectName("pushButton_2")
self.verticalLayout.addWidget(self.pushButton_2)
self.label_2=QtWidgets.QLabel(self.verticalLayoutWidget)
self.label_2.setObjectName("label_2")
self.verticalLayout.addWidget(self.label_2)
self.pushButton_4=QtWidgets.QPushButton(self.verticalLayoutWidget)
self.pushButton_4.setObjectName("pushButton_4")
self.verticalLayout.addWidget(self.pushButton_4)
self.label_3=QtWidgets.QLabel(self.verticalLayoutWidget)
self.label_3.setObjectName("label_3")
self.verticalLayout.addWidget(self.label_3)
self.pushButton_7=QtWidgets.QPushButton(self.verticalLayoutWidget)
self.pushButton_7.setObjectName("pushButton_7")
self.verticalLayout.addWidget(self.pushButton_7)
self.label_4=QtWidgets.QLabel(self.verticalLayoutWidget)
self.label_4.setObjectName("label_4")
self.verticalLayout.addWidget(self.label_4)
self.pushButton_6=QtWidgets.QPushButton(self.verticalLayoutWidget)
self.pushButton_6.setObjectName("pushButton_6")
self.verticalLayout.addWidget(self.pushButton_6)
self.label_5=QtWidgets.QLabel(self.verticalLayoutWidget)
self.label_5.setObjectName("label_5")
self.verticalLayout.addWidget(self.label_5)
self.pushButton_5=QtWidgets.QPushButton(self.verticalLayoutWidget)
self.pushButton_5.setObjectName("pushButton_5")
self.verticalLayout.addWidget(self.pushButton_5)
self.label_6=QtWidgets.QLabel(self.verticalLayoutWidget)
self.label_6.setObjectName("label_6")
self.verticalLayout.addWidget(self.label_6)
self.pushButton=QtWidgets.QPushButton(self.verticalLayoutWidget)
self.pushButton.setObjectName("pushButton")
self.verticalLayout.addWidget(self.pushButton)
self.label_7=QtWidgets.QLabel(self.verticalLayoutWidget)
self.label_7.setObjectName("label_7")
self.verticalLayout.addWidget(self.label_7)
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
self.closeButton=QtWidgets.QPushButton(self.widget)
self.closeButton.setGeometry(QtCore.QRect(50,580,61,32))
self.closeButton.setStyleSheet("border-image:url(:/新前缀/v.png);")
self.closeButton.setText("")
self.closeButton.setObjectName("closeButton")
self.openButton=QtWidgets.QPushButton(self.centralwidget)
self.openButton.setGeometry(QtCore.QRect(50,0,61,32))
self.openButton.setStyleSheet("border-image:url(:/新前缀/xia.png);")
self.openButton.setText("")
self.openButton.setObjectName("openButton")
self.graphicsView=QtWidgets.QGraphicsView(self.centralwidget)
self.graphicsView.setGeometry(QtCore.QRect(0,0,801,641))
self.graphicsView.setObjectName("graphicsView")
self.widget.raise_()
self.graphicsView.raise_()
self.openButton.raise_()
MainWindow.setCentralWidget(self.centralwidget)
self.menubar=QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0,0,800,22))
self.menubar.setObjectName("menubar")
self.menu=QtWidgets.QMenu(self.menubar)
self.menu.setObjectName("menu")
MainWindow.setMenuBar(self.menubar)
self.statusbar=QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.action=QtWidgets.QAction(MainWindow)
self.action.setObjectName("action")
self.action_2=QtWidgets.QAction(MainWindow)
self.action_2.setObjectName("action_2")
self.action_3=QtWidgets.QAction(MainWindow)
self.action_3.setObjectName("action_3")
self.menu.addAction(self.action)
self.menu.addAction(self.action_2)
self.menu.addAction(self.action_3)
self.menubar.addAction(self.menu.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
defretranslateUi(self,MainWindow):
_translate=QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow","MainWindow"))
self.pushButton_2.setText(_translate("MainWindow","PushButton"))
self.label_2.setText(_translate("MainWindow","TextLabel"))
self.pushButton_4.setText(_translate("MainWindow","PushButton"))
self.label_3.setText(_translate("MainWindow","TextLabel"))
self.pushButton_7.setText(_translate("MainWindow","PushButton"))
self.label_4.setText(_translate("MainWindow","TextLabel"))
self.pushButton_6.setText(_translate("MainWindow","PushButton"))
self.label_5.setText(_translate("MainWindow","TextLabel"))
self.pushButton_5.setText(_translate("MainWindow","PushButton"))
self.label_6.setText(_translate("MainWindow","TextLabel"))
self.pushButton.setText(_translate("MainWindow","PushButton"))
self.label_7.setText(_translate("MainWindow","TextLabel"))
self.menu.setTitle(_translate("MainWindow","人脑架构分析"))
self.action.setText(_translate("MainWindow","导入矩阵"))
self.action_2.setText(_translate("MainWindow","退出系统"))
self.action_3.setText(_translate("MainWindow","开发者信息"))
classWindow(QMainWindow,Ui_MainWindow):
def__init__(self,*args,**kwargs):
super(Window,self).__init__(*args,**kwargs)
self.setupUi(self)
self.outani=QPropertyAnimation(self.widget,b"geometry")#背后隐藏的控件
self.outani.setDuration(1000)#1s
self.outani.setEndValue(QRect(0,30,178,681))#只是x坐标变化
#移进去动画
self.inani=QPropertyAnimation(self.widget,b"geometry")#背后隐藏的控件
self.inani.setDuration(1000)#1s
self.inani.setEndValue(QRect(0,-580,178,681))
self.inani.finished.connect(self.onFinish)
#绑定打开关闭事件
self.openButton.clicked.connect(self.onOpen)
self.closeButton.clicked.connect(self.onClose)
#打开文件
self.action.triggered.connect(self.openFile)
self.action.setStatusTip('导入矩阵')
self.action.setShortcut('Ctrl+Q')
#退出系统
self.action_2.triggered.connect(self.close)
self.action_2.setStatusTip('退出系统')
self.action_2.setShortcut('Ctrl+E')
#开发者信息
self.action_3.setStatusTip('唐伟泽谢家柯2016.12.3')
defonOpen(self):
#设置按钮不可见
self.openButton.setVisible(False)
self.widget.setVisible(True)#背后的待拉出来的控件可见
self.graphicsView.setGeometry(QtCore.QRect(195,1,611,641))
self.outani.start()#开启动画效果
defonClose(self):
self.outani.stop()#如果移动到一半则停止
self.inani.start()#退回去
defonFinish(self):#关闭动画结束
self.widget.setVisible(False)
self.openButton.setVisible(True)
self.graphicsView.setGeometry(QtCore.QRect(0,0,801,641))
defopenFile(self):
fileName1,filetype=QFileDialog.getOpenFileName(self,"选取文件","/Users/Kelisiya/Desktop","AllFiles(*);;TextFiles(*.txt)")
print(fileName1,filetype)
if__name__=="__main__":
importsys
app=QApplication(sys.argv)
w=Window()
w.show()
sys.exit(app.exec_())
以上这篇pyqt5实现下拉菜单+打开文件的示例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。