1. 程式人生 > >Pyqt按鍵功能實現

Pyqt按鍵功能實現

上文寫到圖形介面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