pyqt5 實(shí)現(xiàn) 下拉菜單 + 打開(kāi)文件的示例代碼
如下所示:
# -*- coding: utf-8 -*- import sys import os from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtCore import QRect, QSize, QMetaObject, QCoreApplication,\ QPropertyAnimation from PyQt5.QtGui import QFont from PyQt5.QtWidgets import QFileDialog from PyQt5.QtWidgets import QWidget, QHBoxLayout, QGridLayout, QPushButton,\ QApplication, QMainWindow class Ui_MainWindow(object): def setupUi(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) def retranslateUi(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", "人腦架構(gòu)分析")) self.action.setText(_translate("MainWindow", "導(dǎo)入矩陣")) self.action_2.setText(_translate("MainWindow", "退出系統(tǒng)")) self.action_3.setText(_translate("MainWindow", "開(kāi)發(fā)者信息")) class Window(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坐標(biāo)變化 # 移進(jìn)去動(dòng)畫(huà) 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) # 綁定打開(kāi)關(guān)閉事件 self.openButton.clicked.connect(self.onOpen) self.closeButton.clicked.connect(self.onClose) #打開(kāi)文件 self.action.triggered.connect(self.openFile) self.action.setStatusTip('導(dǎo)入矩陣') self.action.setShortcut('Ctrl+Q') #退出系統(tǒng) self.action_2.triggered.connect(self.close) self.action_2.setStatusTip('退出系統(tǒng)') self.action_2.setShortcut('Ctrl+E') #開(kāi)發(fā)者信息 self.action_3.setStatusTip('唐偉澤 謝家柯 2016.12.3') def onOpen(self): # 設(shè)置按鈕不可見(jiàn) self.openButton.setVisible(False) self.widget.setVisible(True) # 背后的待拉出來(lái)的控件可見(jiàn) self.graphicsView.setGeometry(QtCore.QRect(195, 1, 611, 641)) self.outani.start() # 開(kāi)啟動(dòng)畫(huà)效果 def onClose(self): self.outani.stop() # 如果移動(dòng)到一半則停止 self.inani.start() # 退回去 def onFinish(self): # 關(guān)閉動(dòng)畫(huà)結(jié)束 self.widget.setVisible(False) self.openButton.setVisible(True) self.graphicsView.setGeometry(QtCore.QRect(0, 0, 801, 641)) def openFile(self): fileName1, filetype = QFileDialog.getOpenFileName(self,"選取文件","/Users/Kelisiya/Desktop","All Files (*);;Text Files (*.txt)") print(fileName1, filetype) if __name__ == "__main__": import sys app = QApplication(sys.argv) w = Window() w.show() sys.exit(app.exec_())
以上這篇pyqt5 實(shí)現(xiàn) 下拉菜單 + 打開(kāi)文件的示例代碼就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
對(duì)python遍歷文件夾中的所有jpg文件的實(shí)例詳解
今天小編就為大家分享一篇對(duì)python遍歷文件夾中的所有jpg文件的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python個(gè)人博客程序開(kāi)發(fā)實(shí)例后臺(tái)編寫(xiě)
這篇文章主要介紹了怎樣用Python來(lái)實(shí)現(xiàn)一個(gè)完整的個(gè)人博客系統(tǒng),我們通過(guò)實(shí)操上手的方式可以高效的鞏固所學(xué)的基礎(chǔ)知識(shí),感興趣的朋友一起來(lái)看看吧2022-12-12python中編寫(xiě)config文件并及時(shí)更新的方法
在pytorch或者其他深度學(xué)習(xí)框架中,有許多超參數(shù)需要調(diào)整,包括learning_rate,training_data_path等,因此編寫(xiě)一個(gè)config文件統(tǒng)一存放這些參數(shù),方便調(diào)用/查看/修改還是很有必要,這篇文章主要介紹了python中一種編寫(xiě)config文件并及時(shí)更新的方法,需要的朋友可以參考下2023-02-02Python的bit_length函數(shù)來(lái)二進(jìn)制的位數(shù)方法
今天小編就為大家分享一篇Python的bit_length函數(shù)來(lái)二進(jìn)制的位數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08Python繪圖Turtle庫(kù)的安裝問(wèn)題解決
這篇文章主要介紹了Python繪圖中解決Turtle的安裝問(wèn)題示例分析,也遇到過(guò)相同問(wèn)題的同學(xué)可以借鑒參考下,希望能夠解決你的問(wèn)題2021-10-10Jmeter如何使用BeanShell取樣器調(diào)用Python腳本
這篇文章主要介紹了Jmeter使用BeanShell取樣器調(diào)用Python腳本,文章圍繞Jmeter調(diào)用Python腳本的相關(guān)詳情展開(kāi)標(biāo)題內(nèi)容,需要的小伙伴可以參考一下2022-03-03詳解pandas映射與數(shù)據(jù)轉(zhuǎn)換
這篇文章主要介紹了pandas映射與數(shù)據(jù)轉(zhuǎn)換的相關(guān)資料,幫助大家更好的利用python進(jìn)行數(shù)據(jù)分析,感興趣的朋友可以了解下2021-01-01Python入門(mén)教程1. 基本運(yùn)算【四則運(yùn)算、變量、math模塊等】
這篇文章主要介紹了Python教程的基本運(yùn)算,包括四則運(yùn)算、變量的使用與類型檢測(cè)、math模塊等,并附帶了相關(guān)說(shuō)明,代碼備有較為詳盡的說(shuō)明,便于理解,需要的朋友可以參考下2018-10-10