Pyqt按鍵功能實現
阿新 • • 發佈:2018-12-22
上文寫到圖形介面ui檔案轉成可編輯的py檔案,附連結:Py圖形介面
下面記錄使用到的pushButton、spinBox、checkBox、textBrowser、lineEdit的用法。
首先初始化圖形介面視窗,
class MainWindow(QWidget, Ui_MainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
關聯pushbutton點選後發生的事件:
class MainWindow(QWidget, Ui_MainWindow): def __init__(self, parent=None): super().__init__(parent) self.setupUi(self) self.pushButton.clicked.connect(self.on_pushButton_clicked)
可以有多個pushButton,確定好與圖形介面中各個button的對應名稱就可以:
class MainWindow(QWidget, Ui_MainWindow): def __init__(self, parent=None): super().__init__(parent) self.setupUi(self) self.pushButton.clicked.connect(self.openfile) self.pushButton1.clicked.connect(self.next_question) self.pushButton2.clicked.connect(self.submit)
寫事件的實現函式:
class MainWindow(QWidget, Ui_MainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.pushButton.clicked.connect(self.on_pushButton_clicked)
def on_pushButton_clicked(self):
……
多個按鈕:
class MainWindow(QWidget, Ui_MainWindow): def __init__(self, parent=None): super().__init__(parent) self.setupUi(self) self.pushButton.clicked.connect(self.openfile) self.pushButton1.clicked.connect(self.next_question) self.pushButton2.clicked.connect(self.submit) def openfile(self): …… def next_question(self): …… def submit(self): ……
獲取lineEdit中的資訊,得到的是str型別,如果想要得到的是數字,需要做型別轉換:
XX = self.lineEdit.text()
清空lineEdit中的資訊:
self.lineEdit_2.clear()
獲取spinBox中的數字:
num1 = self.spinBox.text()
num1 = int(num1)
檢查checkBox的狀態,編寫相應操作:
check_state = self.checkBox.checkState()
if check_state == QtCore.Qt.Checked:
ope = 3
elif check_state == QtCore.Qt.Unchecked:
ope = 1
開啟本地檔案:
def openfile(self):
# openfile_name的值形如('F:/test.txt', '文字文件(*.txt)')
#後續需要使用路徑的時候需要取openfile_name[0]
openfile_name = QFileDialog.getOpenFileName(self, '選擇檔案', '', '文字文件(*.txt)')
清空textBrowser裡顯示的內容:
self.textBrowser.clear()
textBrowser顯示資訊,括號裡的內容自行設定,是str就行:
self.textBrowser.setText(st[i][:-1])
我的程式碼裡還涉及到了獲取時間:
import time
time_start = time.time()
主函式的寫法:
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
win = MainWindow()
win.show()
sys.exit(app.exec_())
引入的包有:
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5 import QtCore
from f4_ui import Ui_MainWindow
其中f4_ui是我的圖形介面的py檔案。
最後實現了兩個介面:
原始碼:coding